美文网首页机器学习之旅
senLDA实践—长短文本相似度

senLDA实践—长短文本相似度

作者: 吹洞箫饮酒杏花下 | 来源:发表于2018-03-05 11:22 被阅读0次

背景:计算短文本与长文本的相似度,如在搜索场景中,计算query和doc的相似度,用于排序。

经过调研,找到百度的Familia项目,在其关于“语义匹配”的介绍中,分为三类

1. 短文本与短文本 : 场景如 网页搜索中,我们需要度量用户查询 (query) 和网页标题 (web page title) 的语义相关性;在query推荐中,我们需要度量query其他query之间的相似度。 主题模型在短文本上的效果不太理想,在短文本-短文本匹配任务中词向量的应用比主题模型更为普遍如Wordvec向量进行计算。可以考虑的处理方式 1. 按位相加取平均 2. 按位取最大值  3.带权按位相加  。 非监督模型,不需要标注。

2. 短文本与长文本   根据长文本的主题分布,计算该分布生成短文本的概率,作为它们之间的相似度。而各分布概率由senLDA给出。

其中表示query, 表示content, w表示query中的词,Zk 表示第k个主题。

3. 长文本与长文本

通过使用主题模型,我们可以得到两个长文本的主题分布,再通过计算两个多项分布的距离来衡量它们之间的相似度。衡量多项分布的距离可以利用Hellinger Distance和Jensen-Shannon Divergence (JSD)。

github地址  : https://github.com/baidu/Familia  

Familia  项目中需要下载已经训练好的LDA模型,然后进行计算。而训练好的有新闻、小说、网页、微博四个领域。不是适合我的领域。因此需要预先训练好一个模型,由Familia   去加载进行计算。则,1. 模型什么样子 2. 怎么训练模型 3. 怎么用Familia。  

对于问题1,通过读 Familia一点代码,其运行demo需要依赖的输入很少。而下载好的模型中,senLDA模型中是可读的文件,每行表达了每个词的id ,属于每个topic 的次数。  

对于问题2,在寻找Familia资料的过程中,找到另一个开源的项目,是用于训练的代码。这份代码只对英文,也需要分词。而对中文场景,采用Hanlp做分词,并做一些处理。处理主要是在保留“分句”标点的前提下,删除其他标点,去停用词,利用词性去一些词。(真实数据还是千奇百怪的)而这些都是为了去掉一些无用的词,来保证主题模型能有一个比较好的结果。而对于主题模型,有一个问题,其主题没有具体的含义,该如何量化的衡量模型的好坏,又以何标准去调整参数。对这个问题,先是尝试了自带的perplexity的方法。perplexity,直译为困惑度。对于一篇文档d,我们的模型对文档d属于哪个topic有多不确定,这个不确定程度就是Perplexity。其他条件固定的情况下,topic越多,则Perplexity越小,但是容易过拟合。  测试文本集中有M篇文本,对词袋模型里的任意一个单词w,P(w)=∑z p(z|d)*p(w|z),即该词在所有主题分布值和该词所在文本的主题分布乘积,是(该doc生成某个词的概率)。模型的perplexity就是exp^{ - (∑log(p(w))) / (N) },∑log(p(w))是对所有单词取log(直接相乘一般都转化成指数和对数的计算形式),N的测试集的单词数量(不排重)。其实衡量的就是 这个模型下,该文本属于现在的主题分布的概率(非严格概率)。

对于问题3,Familia对长短文本相似度的计算是用c实现的,而且还必须加载TWE模型。 肯定是要改的。至于怎么改,算出这个概率,1.首先得算出来。这个doc的主题分布。2. 通过两个概率分布,计算query与doc的相似度。

后续待补。

衡量模型标准:1. Perplexity 2. 当主题结构的平均相似度最小时,对应的模型最优。 3. 层次狄利克雷过程(HDP)。

在该方法中,主题本身是由数据生成的,而不是预先将主体固定,然后通过对数据的反向工程把它们恢复出来。

如果不去那些停用词,会有什么后果。

github地址 :https://github.com/balikasg/topicModelling

相关文章

  • senLDA实践—长短文本相似度

    背景:计算短文本与长文本的相似度,如在搜索场景中,计算query和doc的相似度,用于排序。 经过调研,找到百度的...

  • 余弦相似度理解及shengxin中应用

    cosin similarity(余弦相似度) 1,它最常见的应用是计算文本相似度。将文本转换为向量 2,余弦相似...

  • 文本相似算法

    公司有很多场景需求,都需要用到了文本相似比对的算法。文本相似度算法比较常用的有余弦相似度,simHash算法,对文...

  • 文本计算

    2.2 中文分词 2.3 文本的表示 2.4 文本的相似度计算

  • 相似文本合并

    NLP文本相似度(TF-IDF)

  • 文本相似度-simhash

    之前流量检测项目针对恶意请求文本做过聚类 , 其中用到计算文本的相识度,文本相似度曾经尝试过用simhash,虽然...

  • siamese 文本相似度

    https://www.jianshu.com/p/fc3e4787ecac https://www.jiansh...

  • 文本相似度计算

    1.安装gensim库 https://www.lfd.uci.edu/~gohlke/pythonlibs/#g...

  • 文本、语音相似度算法

    背景与原理 前段时间公司项目用到了语音识别,图像识别,视频识别等,其实不能说是识别,应该说是相似度对比吧,毕竟相似...

  • 文本相似度算法

    TF−IDF算法 TF是指归一化后的词频,IDF是指逆文档频率。给定一个文档集合D,有d1,d2,d3,........

网友评论

    本文标题:senLDA实践—长短文本相似度

    本文链接:https://www.haomeiwen.com/subject/yfjgxftx.html