当前位置:   article > 正文

Neural Bag-of-Ngrams_bag-of-n-grams代码

bag-of-n-grams代码

简介

前一段时间看的几篇有关文本建模的论文,如Mikolov的Doc2vec,Kiros的Skip-thought等都是侧重模型的创建,即通过怎样的神经网络方法,得到一个较理想的文本表示。其他的有关文本建模(句子和篇章)的论文,他们的注意力并不是集中在纯粹的文本建模上,而是在进行文本分类的时候,顺带的对文本进行了建模,用的方法基本上也都是深度学习,如DNN、RNN、CNN之类的。这些模型的一个共同点就是模型的时间复杂度较大,需要硬件的支持。
但是这篇论文使用比较原始简单的求和或者求平均的方法对文本进行建模,他的侧重点是对模型输入的优化。模型的输入不再是单纯的词向量,而是ngram向量。ngram向量借鉴的是N-gram语言模型。比如对于句子“I like this movie very much”,则它的2gram集合是{I-like, like-this, this-movie, movie-very, very-much}, 也就是将连续的两个单词组合成一个整体,并为每个个体创建一个向量,创建方法参考的是Skip-gram模型。文本向量就是这些向量的求和或平均。模型如下图所示。
该文一共提出了三种ngram向量创建的方法。分别是Context guided N-gram representation, Text Guided N-gram representation以及Label guided N-gram representation. 其中前两个模型都是无监督的,最后一个模型是监督算法,需要对文本打标签。

Context guided N-gram representation

Context guided N-gram representation简称CGNR,借鉴的是Skip-gram模型生成词向量的方法。CGNR用当前ngram向量预测其上下文中的ngram向量。其形式化表示如下

其中g表示其是第i篇文章第j个ngram,vg是其对应的向量,c表示g的第q个上下文中的ngram。其中上下文集合表示如下

其中win是上下文窗口的大小,m是最大的gram值。上下文集合创建的例子如下图所示

其中绿色表示目标gram,蓝色表示该gram的上下文集合,gram最大值是3,即包含1gram, 2gram和3gram。
CGNR依然存在一些问题,因为有相似上下文的词它们的词义不一定相似,可能刚好相反,如词”good”和”bad”。所以作者又提出了Text Guided N-gram representation以及Label guided N-gram representation.

Text Guided N-gram representation

一般而言,同一篇文章里出现的词,他们的词义也是相似的,尤其是有关评论的文章里,经常会出现”good”, “not bad”等词。他们所表达的词义是一样的。因此,该文提出要用ngram向量预测该ngram所属的文本,形式化表述如下

其中ti表示第i篇文档。TGNR模型适合于长文本,比如在一篇消极的电影影评中,可能会同时出现”terrible”, “waste of time”等词,TGNR模型能将这些词聚集在一起,而对于短文本,可能并不会出现这么多词。由此,该文进一步提出了Label guided N-gram representation模型。

Label guided N-gram representation

当词”good”和”perfect”出现在不同的文档里是,CGNR和TGNR可能都不能达到较好的效果。但是当两篇文档归属于同一个标签时,其中的词可能具有相似的语义。由此该文提出了Label guided N-gram representation方法,用当前ngram预测其所属的文档的标签,形式化表示如下

相对而言,LGNR更适合短文本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/350951
推荐阅读
相关标签
  

闽ICP备14008679号