基于评论文本挖掘的景区推荐系统
快,关注这个公众号,一起涨姿势~ 业务背景 自由行已经成为80后90后的主流出行方式,一般预订顺序如下:购买机票,购买酒店,然后确定游玩哪些景点和项目,确定去哪儿玩的过程: 1 翻攻略,看别人去了哪儿 2 翻目的地城市的景点列表看推荐的景点 3 购票入园 目前评论的展示方式: 本文要解决的问题: 1、根据用户场景: 官方推荐的景点千篇一律,而用户的需求是多样的 本文对去哪儿网玩乐事业部的景区游玩评论数据进行文本挖掘分析,本项目的建模目标如下: 评论文本训练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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |