文本向量化笔记(一)

文本表示是自然语言处理中的基础工作,文本表示的好坏直接影响到整个自然语言处理系统的性能。文本向量化是文本表示的一种重要方式。

文本向量化就是将文本表示成一系列能够表达文本语义的向量。无论是中文还是英文,词语都是表达文本处理的最基本单元。

当前阶段,对文本向量化大部分的研究都是通过词向量化实现的。与此同时,也有相当一部分研究者将文章或者句子作为文本处理的基本单元,于是产生了doc2vec 和str2vec 技术。
文本向量化方法:

以词语为基本处理单元的word2vec 技术

doc2vec

str2vec

文本向量化的实际案例一一将网页文本向量化。

 

向量化算法word2vec
词袋( Bag Of Word ) 模型是最早的以词语为基本处理单元的文本向量化方法。

两个简单的文本:
 John likes to watch movies,Mary likes too.
 John also likes to watch football games.
基于上述两个文档中出现的单词,构建如下词典( dictionary ) :
{  "John": 1 ,  "likes" : 2 , " to ": 3 , "watch ": 4 , "movies": 5 , "also" : 6 , "football":7 , "games ": 8 , "Mary": 9 , "too" : 10}
上面词典中包含10 个单词,每个单词有唯一的索引,那么每个文本我们可以使用一个10 维的向量来表示。如下所示:
[1 , 2 , 1 , 1, 1 , 0 , 0 , 0 , 1 , 1]
[1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0]
该向量与原来文本中单词出现的顺序没有关系, 而是词典中每个单词在文本中出现的频率。该方法虽然简单易行 但是存在如下三方面的问题:
维度灾难。  很显然,如果上述例子词典中包含10000 个单词,那么每个文本需要用10000 维的向量表示,也就是说除了文本中出现的词语位置不为0 ,其余9000多的位置均为0 ,如此高维度的向量会严重影响计算速度。

无法保留词序信息。
存在语义鸿沟的问题。
近年来,随着互联网技术的发展,互联网上的数据急剧增加。大量无标注的数据产生,使得研究者将注意力转移到利用无标注数据挖掘有价值的信息上来。

词向量( word2vec ) 技术就是为了利用神经网络从大量无标注的文本中提取有用信息而产生的。

一般来说词语是表达语义的基本单元。

因为词袋模型只是将词语符号化,所以词袋模型是不包含任何语义信息的。如何使"词表示"包含语义信息是该领域研究者面临的问题。

分布假说( distributional hypothesis) 的提出为解决上述问题提供了理论基础。

假说的核心思想是: 上下文相似的词, 其语义也相似。

随后有学者整理了利用上下文分布表示词义的方法,这类方法就是有名的词空间模型( word space model ) 。

随着各类硬件设备计算能力的提升和相关算法的发展,神经网络模型逐渐在各个领域中崭露头角,可以灵活地对上下文进行建模是神经网络构造词表示的最大优点。

通过语言模型构建上下文与目标词之间的关系是一种常见的方法。神经网络词向量模型就是根据上下文与目标词之间的关系进行建模

在初期,词向量只是训练神经网络语言模型过程中产生的副产品,而后神经网络语言模型对后期词向量的发展方向有着决定性的作用。

 

神经网络语言模型(Neural Network Language Model , NNLM ) 与传统方法估算不同, NNLM 模型直接通过一个神经网络结构对n 元条件概率进行估计。

大致的操作是: 从语料库中搜集一系列长度为n 的文本序列,假设这些长度为n 的文本序列组成的集合为D , 那么NNLM 的目标函数如式:

上式的含义是: 在输入词序列为的情况下,计算目标词为ωi的概率。

 

 

posted @ 2020-04-06 17:42  qinzhuy  阅读(1348)  评论(0编辑  收藏  举报