用户评论标签的抽取

原文链接:https://blog.csdn.net/shijing_0214/article/details/71036808

无意中在知乎中看到一个问题:淘宝的评论归纳是如何做到的? 了解之后觉得较为容易实现,就简单实现了一个对用户评论的标签抽取功能,纯属兴趣所致,所以并没有做十分细致的工作,例如词向量仅用不到3M的评论语料进行训练,词典也是随便找了一些词构建的,代码见CommentsMining
首先来看下评论标签抽取是做什么的,如图:


这里写图片描述

我们希望在给出下面的评论语料里,自动抽取出上面矩形框中大家一致认同的评论标签展现给用户观看,方便用户快速了解商品特点。对某件商品的标签抽取简单实现的一个效果如下:

这里写图片描述

抽取出来的标签看起来还算正常。

我这里主要是用句法分析+word2vec+dbscan+词典来实现的这样一个功能,具体步骤如下:
1、语料收集
使用爬虫简单爬取了某电商网站女装衬衫下的一些评论语料,由训练集与测试集两部分构成,测试集里仅包含对某件衬衫的评论语料,用于最后的评论抽取,训练集里包含对多个衬衫的评论语料,用于word2vec的训练,处理后的训练集如下:


这里写图片描述

2、训练评论词向量
使用上面得到的训练集,首先使用斯坦福的分词工具进行分词处理并去掉停用词, 此处见教程。然后将分词结果交给word2vec来训练出关于评论语料的词向量,本地方用的评论语料仅不到3M,为了得到更好的词向量,可以考虑增加语料的规模。词向量的维度此处为50维。
3、依存句法分析
使用斯坦福nlp工具包+中文model文件来对测试语料做句法分析。因为上一步有用到分词工具,这里建议直接下载斯坦福的 coreNLP+中文model文件来使用,句法分析得到的结果如下:

这里写图片描述

4、制定抽取规则
根据上一步对评论语料进行依存句法分析得到的结果,总结出评论标签的抽取规则,如:
nsubj + advmod
nsubj + advmod + advmod
advmod + advmod
advmod + amod

5、获得候选标签
结合抽取规则及情感词典获得候选标签。

6、候选标签消重
可以利用simhash算法对候选标签集合进行消重。

7、候选标签聚类
利用dbscan+word2vec对候选标签进行聚类,通过聚类将语义相似的一些标签聚在一起,实现语义消重的作用。使用dbscan可以很好地将相关标签聚在一起,而不过多地引入杂质。

8、获得目标标签
对每个聚成的簇,计算其聚类中心,并返回与聚类中心最近的一条评论,返回前可以对该条评论进行过滤词的操作,如”颜色比较暗“过滤后变成”颜色暗“。

9、总结
以上是对用户评论标签抽取的简单实现,如若需要做的更细致一些,本人认为可以从下面几点细化:
1、训练语料规模,为了实现方便,只爬了2M多点的语料,但2M多的语料太小了,词向量必然不会很准,好的词向量对聚类至关重要。
2、停用词表、情感词典的构建,好的词典应基于语料构建,这里的停用词表及情感词典都是在网上随便找了一些词添加进来,效果必然不会太好。
3、抽取规则
抽取规则设计的比较简单,会在产生候选标签中生成较多的杂质,这些杂质会对标签抽取产生比较大的影响。

参考
1. 用户评论中的标签抽取以及排序,李丕绩,2012.

扫描二维码关注公众号,回复: 12314435 查看本文章

无意中在知乎中看到一个问题:淘宝的评论归纳是如何做到的? 了解之后觉得较为容易实现,就简单实现了一个对用户评论的标签抽取功能,纯属兴趣所致,所以并没有做十分细致的工作,例如词向量仅用不到3M的评论语料进行训练,词典也是随便找了一些词构建的,代码见CommentsMining
首先来看下评论标签抽取是做什么的,如图:


这里写图片描述

我们希望在给出下面的评论语料里,自动抽取出上面矩形框中大家一致认同的评论标签展现给用户观看,方便用户快速了解商品特点。对某件商品的标签抽取简单实现的一个效果如下:

这里写图片描述

抽取出来的标签看起来还算正常。

我这里主要是用句法分析+word2vec+dbscan+词典来实现的这样一个功能,具体步骤如下:
1、语料收集
使用爬虫简单爬取了某电商网站女装衬衫下的一些评论语料,由训练集与测试集两部分构成,测试集里仅包含对某件衬衫的评论语料,用于最后的评论抽取,训练集里包含对多个衬衫的评论语料,用于word2vec的训练,处理后的训练集如下:


这里写图片描述

2、训练评论词向量
使用上面得到的训练集,首先使用斯坦福的分词工具进行分词处理并去掉停用词, 此处见教程。然后将分词结果交给word2vec来训练出关于评论语料的词向量,本地方用的评论语料仅不到3M,为了得到更好的词向量,可以考虑增加语料的规模。词向量的维度此处为50维。
3、依存句法分析
使用斯坦福nlp工具包+中文model文件来对测试语料做句法分析。因为上一步有用到分词工具,这里建议直接下载斯坦福的 coreNLP+中文model文件来使用,句法分析得到的结果如下:

这里写图片描述

4、制定抽取规则
根据上一步对评论语料进行依存句法分析得到的结果,总结出评论标签的抽取规则,如:
nsubj + advmod
nsubj + advmod + advmod
advmod + advmod
advmod + amod

5、获得候选标签
结合抽取规则及情感词典获得候选标签。

6、候选标签消重
可以利用simhash算法对候选标签集合进行消重。

7、候选标签聚类
利用dbscan+word2vec对候选标签进行聚类,通过聚类将语义相似的一些标签聚在一起,实现语义消重的作用。使用dbscan可以很好地将相关标签聚在一起,而不过多地引入杂质。

8、获得目标标签
对每个聚成的簇,计算其聚类中心,并返回与聚类中心最近的一条评论,返回前可以对该条评论进行过滤词的操作,如”颜色比较暗“过滤后变成”颜色暗“。

9、总结
以上是对用户评论标签抽取的简单实现,如若需要做的更细致一些,本人认为可以从下面几点细化:
1、训练语料规模,为了实现方便,只爬了2M多点的语料,但2M多的语料太小了,词向量必然不会很准,好的词向量对聚类至关重要。
2、停用词表、情感词典的构建,好的词典应基于语料构建,这里的停用词表及情感词典都是在网上随便找了一些词添加进来,效果必然不会太好。
3、抽取规则
抽取规则设计的比较简单,会在产生候选标签中生成较多的杂质,这些杂质会对标签抽取产生比较大的影响。

参考
1. 用户评论中的标签抽取以及排序,李丕绩,2012.

猜你喜欢

转载自blog.csdn.net/stay_foolish12/article/details/112788172
今日推荐