文本向量化 java_文本向量化的原理

一、文本分词

将需要进行分析的文本进行分词(英文直接按照空格分隔词汇,中文则需通过分词工具分隔之后,把词之间加上空格)

二、去停用词

在文本中可以发现类似”the”、”a”等词的词频很高,但是这些词并不能表达文本的主题,我们称之为停用词。

对文本预处理的过程中,我们希望能够尽可能提取到更多关键词去表达这句话或文本的中心思想,因此我们可以将这些停用词去掉后再编码。

三、将词编号

按照词频(次出现的频率)进行倒序编号,如英文中一篇文章出现最多的应该是“a”,“the”等词汇(假设‘a’出现次数大于‘the’),则把“a”编号为“1”,‘the’编号为“2”,以此类推。

这样在文本中出现过的词都会有自己特有的编号。对每个词编码之后,每句话中的每个词就可以用对应的编码表示,即每条文本已经转变成一个向量了。

四、文本长度统一

对每个词编码之后,每条文本中的每个词就可以用对应的编码表示,即每条文本已经转变成一个向量。但是,由于文本的长度不唯一,需要将每条文本的长度设置一个固定值。

假设每个句子的长度都固定为100,如果长度大于100,则将超过的部分截掉;如果小于100,则在最前面用0填充。

五、将词编码转化为词向量

在神经网络中一般要将文本转化成矩阵进行计算,单单将文本转化为向量还是不够,所以需要将每个词编码转化成词向量。

此步骤一般先使用“one-hot”编码方式编码,这样就会将一条文本转化为一个n*n的矩阵(n表示文本中出现的不同的词个数)。然后通过神经网络的训练迭代更新得到一个合适的权重矩阵(具体实现过程可以参考skip-gram模型),行大小为n,列大小为词向量的维度(小于n)。

至此已经将文本数据预处理完毕,将每个影评样本转换为一个数字矩阵,矩阵的每一行表示一个词向量。

你可能感兴趣的:(文本向量化,java)