zengbin93 / blog

17 stars 10 forks source link

笔记 - 自然语言处理 - 基础知识 #32

Open zengbin93 opened 6 years ago

zengbin93 commented 6 years ago

自然语言处理(natural language processing,NLP)在很大程度上与计算语言学(computational linguistics,CL)重合。

NLP领域的主要研究内容有:

zengbin93 commented 6 years ago

术语表 - Glossary

命名实体识别 - Named Entity Recognition - NER

NER的任务是在句子词序列中 定位并识别人名、地名、机构名等实体。如: 国务院 (机构名) 总理李克强 (人名) 调研上海外高桥 (地名) 时提出,支持上海 (地名) 积极探索新机制。

zengbin93 commented 6 years ago

Word2Vec

参考资料

zengbin93 commented 6 years ago

N-Gram

N-Gram是一种基于统计语言模型的算法,基本思想是将文本里面的内容按照字节(词)进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。

使用unigram,bigram,trigram提取特征,在词汇表大小为V的时候,特征向量维度长度为[V(unigram)+V^2(bigram)+V^3(trigram)]

如:

比如我们现在使用单元Unigram、二元的Bi-gram和三元的Tri-gram模型来对进行特征提取。 我们的训练样本为: 1)我去了北京天安门 2)我是中国人

Unigram 我去了北京天安门 => 我/ 去了/ 北京/ 天安门/ 我是中国人 => 我/ 是/ 中国人/

Bi-gram 我去了北京天安门 => 我 去了/ 去了 北京/ 北京 天安门/ 我是中国人 => 我 是 / 是 中国人/

Tri-gram 我去了北京天安门 => 我 去了 北京/ 去了 北京 天安门/ 我是中国人 => 我 是 中国人/

比如上面的特征向量我列举一下顺序如: 我、是、中国人、去了、北京、天安门、我 是、是 中国人、我 去了、去了 北京、北京 天安门、我 去了 北京、去了 北京 天安门、 我 是 中国人、

从上面可以得出,将训练数据中利用Unigram,Bi-gram,以及Tri-gram抽取出的不同特征组合,即可得到特征向量维度。 然后以后对应一句话,直接进行Unigram,Bi-gram,Tri-gram进行抽取特征,出现哪个特征,就统计它的频数,最后填在特征向量中即可。

抽取特征过程 那么对于一句话“我是中国人”进行N-gram特征抽取的方法是。 单元Unigram来说 对于:“我是中国人” 抽取 我 是 中国人 二元Bi-gram 对于:“我是中国人” 抽取 我 是 / 是 中国人/ 三元Tri-gram 对于:“我是中国人” 抽取 我 是 中国人/ 于是我们就在出现的词语维度赋值为1,其余没有出现过的特征赋值为0,相当于one-hot特征。得到特征向量如下: [1,1,1,0,0,0,1,1,0,0,0,0,0,0,1] 得到的上面这个特征向量就是我们使用N-gram提取特征方法提取出来的特征。

参考资料

zengbin93 commented 6 years ago

gensim - Topic modelling for humans

参考资料