发明名称 基于词向量的针对电影评论信息的情感分析系统及方法
摘要 本发明提供一种基于词向量的针对电影评论信息的情感分析系统,包括:采集部,采集电影评论,形成评论文本库;评论文本处理部,对评论文本库中的每一条评论进行分词,构建分词后的评论文本库;特征提取部,对分词后的评论文本库中的每一条评论转换为基于词向量的评论向量,完成每一条评论的特征提取,其中,所述词向量为所述评论中每一个词语的词语概率最大化的最优解,所述评论向量为每一条评论中的所有词向量的平均值;评论分类部,存储有分类模型,将所述评论向量输入到所述分类模型中进行训练,得到每一条评论的评论类型。上述情感分析系统不需人工标注,不依赖于情感词典的维修修缮工作。
申请公布号 CN106156004A 申请公布日期 2016.11.23
申请号 CN201610519169.7 申请日期 2016.07.04
申请人 中国传媒大学 发明人 殷复莲;潘幸艺;刘晓薇;王颜颜
分类号 G06F17/27(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F17/27(2006.01)I
代理机构 北京鸿元知识产权代理有限公司 11327 代理人 许向彤;张宁
主权项 一种基于词向量的针对电影评论信息的情感分析系统,其特征在于,包括:采集部,采集电影评论,形成评论文本库;评论文本处理部,对评论文本库中的每一条评论进行分词,构建分词后的评论文本库;特征提取部,对分词后的评论文本库中的每一条评论转换为基于词向量的评论向量,完成每一条评论的特征提取,其中,所述词向量为所述评论中每一个词语的词语概率最大化的最优解,所述评论向量为每一条评论中的所有词向量的平均值;评论分类部,存储有分类模型,将所述评论向量输入到所述分类模型中进行训练,得到每一条评论的评论类型,其中,所述特征提取部包括:第一设定单元,设定词向量训练窗口的大小、词向量的维度和变化阈值;映射单元,将分词后的评论文本库中的所有评论中的词去重复后形成词汇表,建立分词后的评论文本库的词语到词汇表中词语的映射;词向量查找表构建单元,将上述词汇表中的每一个词语的词向量的每一维的数值设定为变量,构建词向量查找表;第一更新单元,随机生成所述词向量查找表构建单元中各词向量在各维度的数值,设定词向量训练窗口内一个词语为所述词语所在评论的中心词,通过所述中心词的词向量预测所述评论中其他词语的预测概率,通过所述预测概率采用平均对数法和迭代方法不断更新所述其他词语的词向量在每一维度的数值,直到所述数值的变化值小于变化阈值,完成词向量查找表的更新,其中,所述数值的变化值为:<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>B</mi><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>,</mo><mi>k</mi></mrow><mi>a</mi></msubsup><mo>=</mo><msubsup><mi>v</mi><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>,</mo><mi>k</mi></mrow><mi>a</mi></msubsup><mo>-</mo><msubsup><mi>v</mi><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>,</mo><mi>k</mi></mrow><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mo>&lsqb;</mo><mfrac><mn>1</mn><mrow><mi>w</mi><mi>o</mi><mi>r</mi><mi>d</mi><mi>c</mi><mrow><mo>(</mo><msub><mi>doc</mi><mi>n</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><msup><mi>O</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>v</mi><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub></mrow></msub><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&times;</mo><msub><msup><mi>v</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi></mrow></msub><mo>,</mo><mi>k</mi></mrow></msub></mrow>]]></math><img file="FDA0001040096890000011.GIF" wi="1766" he="157" /></maths><maths num="0002"><math><![CDATA[<mrow><msup><mi>O</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mi>w</mi><mi>o</mi><mi>r</mi><mi>d</mi><mi>c</mi><mrow><mo>(</mo><msub><mi>doc</mi><mi>n</mi></msub><mo>)</mo></mrow></mrow></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>I</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>w</mi><mi>o</mi><mi>r</mi><mi>d</mi><mi>c</mi><mrow><mo>(</mo><msub><mi>doc</mi><mi>n</mi></msub><mo>)</mo></mrow></mrow></munderover><munder><mo>&Sigma;</mo><mrow><mo>-</mo><mi>w</mi><mi>i</mi><mi>n</mi><mo>/</mo><mn>2</mn><mo>&le;</mo><mi>J</mi><mo>&le;</mo><mi>w</mi><mi>i</mi><mi>n</mi><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>&NotEqual;</mo><mn>0</mn></mrow></munder><mi>log</mi><mi> </mi><msup><mi>p</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>|</mo><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi></mrow></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001040096890000012.GIF" wi="1902" he="159" /></maths><maths num="0003"><math><![CDATA[<mrow><msup><mi>p</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub><mo>|</mo><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>exp</mi><mo>&lsqb;</mo><msup><mrow><mo>(</mo><msubsup><mi>v</mi><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi><mo>+</mo><mi>J</mi></mrow></msub></mrow><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>T</mi></msup><mo>&CenterDot;</mo><msub><msup><mi>v</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi></mrow></msub></mrow></msub><mo>&rsqb;</mo></mrow><mrow><msubsup><mo>&Sigma;</mo><mrow><mi>X</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></msubsup><mi>exp</mi><mo>&lsqb;</mo><msup><mrow><mo>(</mo><msubsup><mi>v</mi><mrow><msub><mi>word</mi><mi>X</mi></msub></mrow><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>T</mi></msup><mo>&CenterDot;</mo><msub><msup><mi>v</mi><mrow><mi>a</mi><mo>-</mo><mn>1</mn></mrow></msup><mrow><msub><mi>word</mi><mrow><mi>n</mi><mo>,</mo><mi>I</mi></mrow></msub></mrow></msub><mo>&rsqb;</mo></mrow></mfrac></mrow>]]></math><img file="FDA0001040096890000021.GIF" wi="1422" he="271" /></maths>其中,a为迭代次数,为自然数;wordc(doc<sub>n</sub>)为第n条评论的词语总数;m为词汇表中的词语总数;win为词向量训练窗口的大小;word<sub>n,I</sub>为第n条评论的第I个词语;<img file="FDA0001040096890000025.GIF" wi="227" he="90" />为第a‑1次迭代中,第n条评论中第I个词语的第k维的数值;<img file="FDA0001040096890000022.GIF" wi="141" he="91" />为第a‑1次迭代中,第n条评论的第I个词语的词向量;<img file="FDA0001040096890000023.GIF" wi="141" he="126" />为第a‑1次迭代中,词汇表的第X个词语的词向量;p<sup>a‑1</sup>(word<sub>n,I+J</sub>|word<sub>n,I</sub>)为第a‑1次迭代中,通过中心词word<sub>n,I</sub>词向量预测得到词语word<sub>n,I+J</sub>词向量的预测概率;O<sup>a‑1</sup>(word<sub>n,I+J</sub>)为第a‑1次迭代中,第n条评论的除中心词外各词语的预测概率的对数平均值;<img file="FDA0001040096890000024.GIF" wi="214" he="78" />为词语word<sub>n,I+J</sub>第k维数值在第a‑1次迭代和第a次迭代的数值变化;评论向量构建单元,通过计算每一条评论中的所有词向量的平均值,将所述评论的信息替换为评论向量。
地址 100024 北京市朝阳区定福庄南里7号中国传媒大学