Python与自然语言处理——文本向量化
文本向量化(一)
文本向量化概述
- 文本向量化是将文本表示成一系列能够表达文本语义的向量。
- 主要技术
- word2vec
- doc2vec
- str2vec
向量化算法word2vec
词袋模型
- 最早的以词语为基本处理单元的文本向量化方法
- 方法:
- 基于出现的词语构建词典(唯一索引)
- 统计每个单词出现的词频构成向量
- 存在的问题
- 维度灾难
- 无法保留语序信息
- 存在语义鸿沟的问题
神经网络语言模型(NNLM)
- 特点
与传统方法估算 P ( w i ∣ w i − ( n − 1 ) , ⋯   , w i − 1 ) P\left( { {w_i}\left| { {w_{i - \left( {n - 1} \right)}}, \cdots ,{w_{i - 1}}} \right.} \right) P(wi∣∣wi−(n−1),⋯,wi−1)不同,NNLM直接通过一个神经网络结构对 n n n元条件概率进行估计。 - 基本结构
- 大致操作
从语料库中搜集一系列长度为 n n n的文本序列 w i − ( n − 1 ) , ⋯   , w i − 1 , w i { {w_{i - \left( {n - 1} \right)}}, \cdots ,{w_{i - 1}},{w_i}} wi−(n−1),⋯,wi−1,wi,假设这些长度为 n n n的文本序列组成的集合为 D D D,那么NNLM的目标函数为:
∑ D P ( w i ∣ w i − ( n − 1 ) , ⋯   , w i − 1 ) \sum\nolimits_D {P\left( { {w_i}\left| { {w_{i - \left( {n - 1} \right)}}, \cdots ,{w_{i - 1}}} \right.} \right)} ∑DP(wi∣∣wi−(n−1),⋯,wi−1) - 网络模型
- 输入层:低维度、紧密的词向量,将词序列 w i − ( n − 1 )