自然语言处理笔记(一)--句子编码

NLP最初的步骤就是将文本中的句子表示成计算机能够处理的数字矩阵,而句子是由多个单词组成的,所以表达句子的任务就变成了如何表达单词。表达单词一般有两种大方法:词袋模型,词向量模型。

一、词袋模型(BOW)

将所有出现过的单词装进一个袋子里,忽略词法与语序,每个单词都是独立的。那么单词的维度就是词袋的大小(用单词的出现次数表达)。这样会出现稀疏性的问题(one-hot)。

二、词向量模型(WordEmbedding)

为了表达不同词语之间的相似性,通过大量的语料训练,将每个单词映射到高维空间,通过向量之间的距离表达单词之间的关系。常用算法模型有CBOW,Skip-Gram。Word2Vec工具用到了这两种模型。

1.CBOW模型

输入n个与单词X相关的单词(a1,a2,...,an)(即上下文,位置上就是句子中出现在这个单词附近的单词),CBOW能够输出这个上下文所代表的中心单词X。

2.Skip-Gram模型

输入单词X,SG能够输出n个与X相关的单词(a1,a2,...,an)。

三、句向量(Sentence2Vec)

本质上还是使用词向量,但是最后表示一个句子不是使用矩阵,而是向量。即将句子的所有单词的词向量做一个非线性变换得到一个能够表示一个句子的向量。具体可以使用单词的TF-IDF或者SIF。

你可能感兴趣的:(机器学习)