加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

基于评论文本挖掘的景区推荐系统

发布时间:2020-12-14 05:04:19 所属栏目:大数据 来源:网络整理
导读:快,关注这个公众号,一起涨姿势~ 业务背景 自由行已经成为80后90后的主流出行方式,一般预订顺序如下:购买机票,购买酒店,然后确定游玩哪些景点和项目,确定去哪儿玩的过程: 1 翻攻略,看别人去了哪儿 2 翻目的地城市的景点列表看推荐的景点 查看玩过的人

快,关注这个公众号,一起涨姿势~


业务背景

自由行已经成为80后90后的主流出行方式,一般预订顺序如下:购买机票,购买酒店,然后确定游玩哪些景点和项目,确定去哪儿玩的过程:

1

翻攻略,看别人去了哪儿

2

翻目的地城市的景点列表看推荐的景点
查看玩过的人评论内容,判断这个地方是不是如封面图看起来一样那么美好

3

购票入园


目前评论的展示方式:


本文要解决的问题:

1、根据用户场景:

官方推荐的景点千篇一律,而用户的需求是多样的
2、快速决策去哪儿玩:
满足用户找景点解决去哪儿玩的问题
3、提升用户游玩满意度:
基于大数据文本挖掘技术和NLP自然语言分析,利用现有的用户真实评论数据进行挖掘分析,以期给用户推荐最有用的评论信息,帮助用户有效决策,在选择之前使得用户提前获得对应景区已出行游客的游玩提示(如交通,人流量,换票点,景区里面的情况,是否适合带孩子,需要注意什么)


本文对去哪儿网玩乐事业部的景区游玩评论数据进行文本挖掘分析,本项目的建模目标如下:

评论文本训练word2vec模型

评论关键词提取

对评论内容进行情感分析

4

根据评论对景区进行打分Rank

5

根据评论内容对评论进行Rank

评论文本挖掘流程?

在开始文本挖掘时,首先对景区的评论文本进行全量抽取(注:项目上线后会对新增评论采用增量文本处理的方式,保证评论的时效性)。

1) 第一步:对评论数据进行文本清洗,包括去重、去空、去缺失值以及停用词过滤,

2) 第二步:对评论文本进行分词处理,以及语料库的训练

3) 第三步:对分词后的结果进行关键词提取,并利用训练好的模型对关键词进行同义词的训练和收集,这些关键词的同义词都作为用户索引词的一部分存储在数据库中

4) 第四步:对评论进行情感分类、评论打分以及景区热度的排名


具体参考以下步骤:


一、景区主题选择

我们选择一个景区主题进行分析,比如游乐场。游乐场主题根据词频获取关键词:取票、排队、刺激、项目、价格、订票、二维码、表演、过山车、入园10大关键词。但是为了方便用户索引,我们将这10大关键词定义为游乐场表演,性价比之王,扫码验证,入园便利,过山车,设施完善,取票方便,惊险刺激,遛娃儿,不排队。这样更能贴近用户的索引需求,更加便利。



二、评论关键词提取

如下是根据TF-IDF做出的词频统计,以及景区和关键词的词云图,非常清晰的可以看出评论的词频大致情况。


三、整体技术架构

架构特点:

① 查询速度快

② 情感分类准确度高

③ 景区热度排序

④ 推荐理由准确

⑤ 覆盖所有需求点

⑥ 模型新颖、成熟度高

⑦ 提供索引词减少用户决策时间

⑧ 投入少、开发快,上线周期短


四、算法模型评价


五、关键技术

Data Analysis:

① 玩乐总评论数据分析

② 游乐场评论数据分析

③ 关键词提取

④ 同义词排序


Model Training:

① 维基百科语料库word2vec训练

② 总体评论语料库训练

③ 游乐场语料库训练

④ 结巴分词


Comment Rank:

① 景区热度排名

② 评论打分排名

③ 情感分类

④ 情感极性排名


Algorithms:

① word2vec

② SVM

③ 朴素贝叶斯

④ LDA

⑤ AHP层次分析法


Implementation:

① 数据库:Postgresql

② 全文检索:ElasticSearch

③ 同义词提取:Gensim

④ 情感分析:snowNLP(最后验证分类效果不好)

⑤ 主题分类:LDA

⑥ Http接口:Python

⑦ 数据分析:Pandas

⑧ 分词:jieba/snowNLP/NLTK

六、经验总结及建议


七、?成果展示


八、结语

NLP自然语言处理是庞大的领域,涉及语言学业务背景、复杂的算法,语料收集等等,其研究领域非常广泛。在学习的时候也遇到了诸多的困难,生涩艰难的数学模型(概率图模型:隐马尔科夫过程HMM,最大熵模型,条件随机场CRF等),还有最重要的就是语料库的难度,很多新词层出不穷,如何来定义新词的词性和情感分类,这些都需要投入人力或者深度学习等高深的知识。本文虽然提到了NLP,但实际上只是利用了NLP的最基本功,然后结合统计分析方法完成了简单的评论文本挖掘,虽然在工程上满足了业务应用的要求。但在知识学习层面却还有很多路要走。作者水平有限,分享此文,恳请大家不吝赐教。 ??

(特别感谢团队中可爱的伙伴:王宇娟、张同婕、刘涛、黄甫刚)


参考资料:

感谢好多在NLP领域中分享的同学:

1.情感分析

https://github.com/chaoming0625/SentimentPolarityAnalysis

2.词云图

https://github.com/amueller/word_cloud

3.结巴分词

https://github.com/fxsjy/jieba

4.snownlp

https://github.com/isnowfy/snownlp


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读