句子

【机器学习笔记】朴素贝叶斯_分类评论示例

拜拜、爱过 提交于 2019-11-28 00:10:21
朴素贝叶斯 概念:   英文名Naive Bayesian Model,简称NB,是一种玩条件概率的分类模型。   条件概率公式:   P(A) 指事件A发生的概率;   P(AB) 指事件A与B同时发生的概率;   P(A|B) 指事件A在事件B已经发生的情况下,发生的概率。 示例:   评价分类,好评(标记为0)或差评(标记为1)的数据集 DataSet:   上面的单词模型 VacbModel(词袋模型)就是: [my, problems, cute, dalmation, so, licks, steak, take, food, stupid, I, posting, ate, not, quit, has, maybe, flea, dog, him, please, garbage, buying, to, worthless, love, is, stop, mr, how, park, help] 32项   DataSet[0] 中的 problems 对应到 VacbModel 中的第2项,也即 VacbModel[1]。如果对应到即表示1,没有对应就表示为0,那么DataSet[0]的词集是: [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1] 设A为 “一个句子出现这些词”

语言模型

梦想与她 提交于 2019-11-27 19:09:15
NLP中,一个句子通常被看作是一系列词语的全排列,这些词语能形成各种不同的组合,比如 我 在 北京 天安门 在 我 北京 天安门 北京 我 在 天安门 北京 在 我 天安门 ... 在这些所有可能的排列的情况中,只有很少一部分( 由于语言的多样性,不一定只有一种可能是合法 )是可以被人理解的。 为了衡量一个词语序列是否可被理解(或者说合法),自然语言处理大师 贾里尼克(Fred Jelinek) 提出了一个统计数学模型来描述一个自然语言的句子。这个模型就是语言模型 语言模型 概率表示 给每个句子一个概率,合法的句子概率大,只需要从所有可能的情况中选取概率最大的那种组合,就能够得到合法的句子。 这个概率该如何赋予呢?如何保证合法的就能够得到大概率,不合法的就是小概率呢?这需要从数学角度来看待这个问题。 假设 \(S\) 表示一个有意义(合法)的句子,我们可以将其表示成 \(S=w_1,w_2,\cdots,w_n\) ,其中 \(w_i\) 表示第 \(i\) 个词语。 用 \(P(S)\) 来表示这个句子出现的概率,则 \[ \begin{equation} P(S) = P(w_1,w_2,\cdots,w_n) \end{equation} \] 根据条件概率公式,可以推导得 \[ \begin{equation} P(S) = P(w_1,w_2,\cdots,w_n) =

Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN )

混江龙づ霸主 提交于 2019-11-27 19:04:22
作者提出了一种多模态循环神经网络(AlexNet / VGGNet +多模式层+ RNN),用CNN提取图像特征,单词经过两层词输入到RNN中,最后将单词特征,图像特征,以及RNN的hidden一起输入到多模态层,经过Softmax生成下一个词的概率分布。RNN主要是为了保存句子前面的特征。 加入两层Embedding,比单层更有效学习单词的稠密表示 不使用循环层来存储视觉信息 图像特征与句子描述中的每个单词一起被输入到m-RNN模型 Key Point 大多数句子 - 图像多模态模型使用预先计算的词嵌入向量作为其模型的初始化,相比之下,作者随机初始化他们的单词嵌入层并从训练数据中学习它们。实验效果更好 通过对Flickr8K数据集的交叉验证,对超参数(如层尺寸和非线性激活函数的选择)进行调优,然后在所有的实验中进行固定。 以前的工作:将图像描述视作检索任务,首先提取句子和图像特征,将其嵌入共同的语义空间,计算图像和句子之间的距离。生成图像时,从句子数据库中检索距离最小的句子作为描述。这种方法不能自动生成丰富的描述 Benchmark datasets for Image Captioning: IAPR TC-12 ( Grubinger et al.(2006) ), Flickr8K ( Rashtchian et al.(2010) ), Flickr30K ( Young

Doc2vec学习总结(三)

江枫思渺然 提交于 2019-11-27 08:35:47
这篇是 七月在线 问答系统项目中使用到的一个算法,由于当时有总结,就先放上来了后期再整理。 Doc2vec ​ Doc2vec又叫Paragraph Vector是Tomas Mikolov基于word2vec模型提出的,其具有一些优点,比如 不用固定句子长度,接受不同长度的句子做训练样本 ,Doc2vec是一个无监督学习算法,该算法用于预测一个向量来表示不同的文档,该模型的结构潜在的克服了词袋模型的缺点。 ​ Doc2vec模型是受到了word2vec模型的启发,word2vec里预测词向量时,预测出来的词是含有词义的,比如上文提到的词向量'powerful'会相对于'Paris'离'strong'距离更近,在Doc2vec中也构建了相同的结构。所以Doc2vec克服了词袋模型中没有语义的去缺点。假设现在存在训练样本,每个句子是训练样本。和word2vec一样,Doc2vec也有两种训练方式,一种是PV-DM(Distributed Memory Model of paragraphvectors)类似于word2vec中的CBOW模型,另一种是PV-DBOW(Distributed Bag of Words of paragraph vector)类似于word2vec中的skip-gram模型 1. A distributed memory model ​

1.文本切分

╄→гoц情女王★ 提交于 2019-11-27 08:16:23
文本切分 之前讨论了文本结构、成文和表示。具体来说,标识(token)是具有一定的句法语义且独立的最小文本成分。一段文本或一个文本文件具有几个组成部分,包括可以进一步细分为从句、短语和单词的语句。最流行的文本切分技术包括句子切分和词语切分,用于将文本语料库分解成句子,并将每个句子分解成单词。因此,文本切分可以定义为将文本数据分解或拆分为具有更小且有意义的成文(即标识)的过程。 句子切分 句子切分(sentence tokenization)是将文本语料库分解成句子的过程,这些句子是组成语料库的第一级切分结果。这个过程也称为句子分隔,因为尝试将文本分割成有意义的句子。任何文本语料库都是文本的集合,其中每一段落包含多个句子。 执行句子切分有多种技术,基本技术包括在句子之间寻找特定的分隔符,例如句号 ( . )、换行符 ( \n ) 或者分号 ( ; )。将使用 NLTK 框架进行切分,该框架提供用于执行句子切分的各种接口。将主要关注以下句子切分器: sent_tokenize PunktSentenceTokenizer RegexpTokenizer 在将文本分割成句子之前,需要一些测试该系统的文本。下面将加载一些示例文本,以及部分在 NLTK 中可用的古腾堡(Gutenberg)资料库。可以使用以下代码段加载必要的依存项: import nltk from nltk.corpus

句法分析总结

僤鯓⒐⒋嵵緔 提交于 2019-11-27 08:10:38
学习nlp应该对nlp的一些基础任务都有个follow,至少知道对于某些任务目前主流的做法是什么? 文章目录 句法分析分类 句法结构分析 依存句法分析 深层句法分析 依存分析的一些重要概念 依存句法分析总结(cs224n) 课程内容 句法结构的两种观点 句子的歧义问题 通过句法分析表示句子的语义(sementic) 依存句法的历史 句法分析的语料 为什么使用tree bank 依存句法分析的解决方法 依存句法的评估 为什么构造神经dependency parser 句法分析的应用 句法分析在opinion extraction(观点抽取)中的应用 句法分析分类 句法结构分析 句法结构分析(syntactic structure parsing),又称短语结构分析(phrase structure parsing),也叫成分句法分析(constituent syntactic parsing)。作用是识别出句子中的短语结构以及短语之间的层次句法关系。 依存句法分析 依存关系分析,又称依存句法分析(dependency syntactic parsing),简称依存分析,作用是识别句子中词汇与词汇之间的相互依存关系。 深层句法分析 深层文法句法分析,即利用深层文法,例如词汇化树邻接文法(Lexicalized Tree Adjoining Grammar, LTAG)、词汇功能文法

BERT学习笔记

ε祈祈猫儿з 提交于 2019-11-27 03:26:42
bert 论文阅读 一、模型结构 是一个多层的双向transformer encoder 注意 这里tranformer模型输入的是embedding后的词向量 二、 输入编码 可以编码一个单句或一串单句 Token Embedding 每个词被表示成一个768维的向量 CLS表示开始符号 SEP表示结束符号 这里使用WordPiece tokenization的原因是这种表示方法使Bert只需要存储很少的词汇,并且很少遇到未登陆词 Segment Embedding 用于区分句子的表示 比如哪些单词属于句子1 那些单词属于句子2 Position Embedding 和transformer中的一样 目的在于区分句子中词的位置关系 I think, therefore I am 第一个I和第二个I应该有不同的向量表示 bert中的最大句子长度是512 所以Position Embedding layer 是一个size为(512,768)的lookup table 不同句子同样的位置,位置编码是一样的 联合表示 很简单 就是将三部分的represention对应的元素相加 形成一个(1, n, 768)的表示 三、预训练任务(目标函数) 论文不使用传统的从左到右或从右到左的语言模型来预训练BERT。相反,使用两个新的无监督预测任务对BERT进行预训练。 任务1: Masked