基于字符级卷积神经网络的民宿顾客意见挖掘


Homestay Customer Opinion Mining Based on Character-level Convolutional Neural Networks







姓    名:张振         
指导老师:杨有 副教授  
答辩时间:2019.6.02    
所学专业:计算机技术   

目录


1. 研究背景和意义

2. 顾客意见挖掘现状

3. 主要工作

4. 程序演示

5. 总结与展望

PART 01  研究背景和意义

    依托互联网经济的发展,民宿业坐上了互联网经济的“顺风车”,百度指数显示民宿指数已经高于酒店。民宿业准入门槛较低,繁荣的背后也有许多问题,比如:民宿刷单问题、民宿宰客问题等等。怎样更合理的对民宿进行监管,以实现民宿业生态的“自淘汰”,这些问题的解决都需要更深入的顾客意见挖掘作为支持。

%E9%85%92%E5%BA%97%E8%AF%84%E4%BB%B7.png

PART 02  顾客意见挖掘研究现状

    目前基于意见挖掘应用的有:

    1. 对电商平台对评论数据进行情感分析,提升产品质量

    2. 帮助智能汽车运营平台实现对车载数据的用户画像,实现个性化推荐

    3. 帮助对公众数据进行挖掘,实现舆情分析

    本文以民宿用户生成数据为主,对民宿顾客意见进行挖掘。

PART 03  主要工作

    借助于自然语言处理技术进行数据挖掘,开展了基于携程民宿的数据采集、预处理、主题提取和情感分析相关工作,实现端对端的数据处理流程。

%E6%84%8F%E8%A7%81%E6%8C%96%E6%8E%98.png

PART 03  主要工作

流程设计

%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B.png

PART 03  主要工作

数据采集

    问题分析:原始的Scrayp不支持POST的请求形式,无法直接请求JSON格式,携程的网页结构较复杂,需要带有POST功能加入。

    解决方法:使用Requests的POST的功能增加Scrapy框架的灵活性,利用Requests的POST功能搭配Scrapy的多线程的能力,开发出一套具有多线程、代理IP、自动清洗数据的网络爬虫工程。

PART 03  主要工作

    数据采集采集性能测试

%E9%87%87%E9%9B%86%E6%80%A7%E8%83%BD.png

PART 03  主要工作

评论预处理:基于词性标注的民宿评论截断处理

    问题分析:原始的评论语料如:“环境很不错!餐饮也挺好的”是无法直接进行主题提取,因为原始的评论之中含有两个主题,“环境”和“餐饮”,需要评论截断。

    解决方法:通过词性标注技术,识别句子中的标点符号,并以此对句子进行切分,如图所示。

%E6%88%AA%E6%96%AD.png

PART 03  主要工作

主题提取:多向量化下的LDA的民宿主题提取

    问题分析:原始的LDA主题聚类算法是依据词频的向量化方式进行的,容易造成停用词排在前面,从而造成提取的主题质量下降,无法挖掘隐含特征。

    解决方法:采用的是TF-IDF的词向量化的方式来代替传统的词频向量化,TF-IDF不仅考虑到词频影响,而且结合逆文档频率可以使更多合理的词权重较大,有助于挖掘隐含特征,文本向量化如图所示。

tf-idf.png

PART 03  主要工作

    主题提取流程设计:基于词性标注下的LDA的民宿主题提取流程

LDA.png

PART 03  主要工作

    主题提取过程:基于词性标注,结合TF-IDF和LDA的民宿主题属性词典构建,可视化主题提取,k=8时的主题聚类。

%E8%AF%8D%E6%80%A7%E6%A0%87%E6%B3%A8.png

PART 03  主要工作

    主题提取结果:左边为民宿标准文件的参考主题,右边为主题挖掘扩充后的主题,如下所示。

%E4%B8%BB%E9%A2%98%E5%B1%9E%E6%80%A7%E8%AF%8D%E5%85%B8.png

PART 03  主要工作

    情感分析数据集构建:用户打分和用户评论情感呈现强烈的正相关趋势,所以本文使用用户打分为1的作为消极,打分为5的作为积极,针对消极文本不平衡的问题,利用打分为2的切分后的评论,进行数据填充,并构建弱分类器,当朴素贝叶斯按照概率输出的时候,值域通常在[0,1]之间,通常一个类别的后验概率大于0.5即可分类成功,本文使用输出概率值大于0.9作为置信度高的积极文本,输出概率小于0.1的作为置信度高的消极文本,如下图的情感不一致。

%E8%AF%84%E8%AE%BA%E4%B8%8D%E4%B8%80%E8%87%B4.png

PART 03  主要工作

情感的细粒度分析方法:在建立训练集的时候使用极端情感(用户打分的1分和5分),字符级卷积神经网络的下的积极情感下的Softmax概率输出映射为情感极性。

    问题分析:评论分词由于用户字典覆盖不全的问题,容易造成分词误差,在使用中不同的分词器会有不同的效果,研究不分词的情况下进行模型训练。

    解决方法:本文将字符级的文本当做原始信号,按照字符进行去重,并按照字符频率进行降序排列建立字符表,即{字符:索引ID}的形式,通过查询字符表中的的位置索引ID的方式将评论向量化,并且构建一维卷积核的卷积神经网络去进行特征提取,这种方式无需考虑语言的语法或语义结构,并且比词级的维度更低。

In [1]:
# tensorflow代码运行
from SA import CnnModel
import tensorflow as tf
import os
# os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
for i in open('data/data/1.txt', 'r', encoding='utf-8'):
    tf.reset_default_graph()
    test_text = i.strip().split('\t')[1]
    predict_score = CnnModel().emotion_score(test_text)
    print('{}-{}'.format(test_text,predict_score))
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
卫生不好-0.009347633458673954
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
店家服务差-0.046952810138463974
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
隔音不好-0.010467812418937683
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
房间很小-0.044162001460790634
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
有家的感觉-0.8834744095802307
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
位置繁华-0.788189172744751
INFO:tensorflow:Restoring parameters from checkpoints/textcnn\best_validation
交通便利-0.9982715845108032

PART 03  主要工作

情感分析框架设计:本文字符级卷积神经网络情感分析框架

%E6%9E%B6%E6%9E%84%E5%9B%BE.png

PART 03  主要工作

    情感分析的性能评测

%E6%80%A7%E8%83%BD%E8%AF%84%E6%B5%8B.png

PART 03  主要工作

情感分析结果:单一主题下的评论进行情感分析可视化后的结果。

%E6%83%85%E6%84%9F%E5%88%86%E6%9E%90%E7%BB%93%E6%9E%9C.png

PART 03  主要工作

意见挖掘可视化: 以0.2为间隔的细粒度的情感强度可视化。

%E7%BB%93%E6%9E%9C.png

In [1]:
# 程序演示
from IPython.display import HTML
HTML("""<video width="980" height="500" controls><source src="video/demo.mp4" type="video/mp4"></video>""")
Out[1]:

PART 04  总结与展望

论文总结

     本文对于民宿顾客意见挖掘的问题,开展了基于数据采集、预处理、主题提取和情感分析相关工作,包括:

     1. 数据采集---结合Requests和Scrapy的联合数据采集

     2. 评论预处理---基于词性标记的评论截断

     3. 隐含主题提取---结合词性标注、TF-IDF和LDA主题提取

     4. 数据集的构建问题---自动标注和弱监督预训练

     5. 细粒度的情感分析问题---基于字符级卷积神经网络的情感分析

PART 04  总结与展望

论文展望

     不足之处:

     1. 基于匹配的主体识别容易随着新词的产生容易造成覆盖率不全

     2. 情感训练语料较为单一,场景泛化能力有待提升

     后续工作:

     1. 后续考虑使用基于模型的属性识别,增加主题识别的泛化性

     2. 考虑使用迁移学习模型,增加情感分析场景的泛化性

谢     谢