疫情期间如何运用自然语言“云旅游”?
在网上预定酒店时,在线评分是旅客们进行决策的重要依据。在线评分通常分为数字评分和在线点评两种。由于数字评分直观但包含信息较少,所以想要找到真正符合旅客偏好的酒店,还需要从在线点评中挖掘出是否有旅客所关注的酒店特征,以及其他旅客对该特征的真实评价。于此同时,酒店经营者也需要提取点评中的有用信息,来更好地满足顾客的各项需求。
然而,一家历史悠久的酒店可能拥有成千上万条评价,我们怎样才能快速且高效地提取有效信息,从而筛选出最符合要求的酒店呢?
本文以海外出行常用的旅游点评网站TripAdvisor(猫途鹰)为例,通过运用自然语言处理方法,教你速读评论,科学选房。
第一步,使用Python爬取酒店评价
为了更好地了解酒店评价和酒店服务的关系,我们用Python爬取了TripAdvisor中一家名为Hilton Hawaiian Village的酒店的所有评价。
第二步,使用R语言对评价文本进行文本挖掘
1. 分析评价文本数量及其分布
在使用R读取爬取的数据集后,我们一共从TripAdvisor上爬取到了13701条关于Hilton Hawaiian Village酒店的英文点评,并且这些点评都发布于2002-3-21至2018-08-02之间。接下来,我们以周为间隔,绘制了一张点评发布时间的分布图。如下图所示,可以看到这家酒店的周评论数量在2014年末达到最高,在那一周里获得了超过70条点评。
2. 对评价文本进行数据清洗和文本挖掘
数据清洗
我们对评价文本的数据清洗主要包括数据预处理(去特殊标记、标点等)、去停用词(比如介词、连词等)、统计词频并排序、去低频词和去高频非特征词。下图是第一次清洗评价文本数据后得到的25个在该酒店点评中出现频率最高的词汇。
词干提取
对于上图的结果我们还可以做一些改进,比如把“stay”和“stayed”,“pool”和“pools”这些意思相近的词合并起来。这种做法被称为词干提取,也就是将变形(或者衍生)的词语还原为词干本身。图3是进一步进行词干提取以后得到的排名前25的高频词汇。可以看出,“stay”和“pool”超过“beach”和“hotel”成为频次最高的两组词汇。
二元词组(Bigrams)
在分析评价文本时,我们希望了解酒店评价中词汇的相互关系。比如,哪些词汇组合在评价文本中比较常见呢?如果给出一列词汇,紧接着会出现什么词汇呢?哪些词汇有较强的关联性呢?许多有意思的文本挖掘都是基于这些关系的。当我们研究两个连续的词汇时,它们被称为“二元词组”。
那么,在Hilton Hawaiian Village酒店的点评中,哪些是最常见的二元词组呢?
我们统计了所有二元词组的出现频次并进行了排序,如图4所示,最常见的二元词组有“rainbow tower”,其次是“Hawaiian village”。
我们可以在词汇网中可视化这些二元词组,如下图所示。这些词汇至少出现了1000次,而且其中不包含停用词。每一根连线代表一组二元词组,因此,网络图中颜色越深代表连线越多,词汇相关性越强。从这张词汇网中我们发现出现频次最高的几个词之间存在着很强的相关性(“Hawaiian”, “village”, “ocean” 和“view”),不过我们没有发现明显的聚集现象。
三元词组(Trigrams)
有时候仅仅分析二元词组还不够,让我们来看看评价中关于Hilton Hawaiian Village酒店最常见的三元词组有哪些。在进行三元词组词频统计后我们发现,最常见的三元词组是“Hilton Hawaiian village”,“diamond head tower”,和“partial ocean view”(如下图所示)。
点评中关键词的趋势
随着时间的推移,哪些词汇或主题出现更频繁了或是逐渐消失了呢?通过捕捉这些变化我们可以探知酒店所做的调整,例如在服务、翻新、解决问题方面,从而预测出此后与这些调整相关的主题会出现得更加频繁。
下图展示了酒店评价中词频增长最快的九个词汇。2010年前后大家讨论的焦点是“Friday fireworks”(周五的烟花)和“logoon”(环礁湖),而2005年以前“resort fee”(度假费用)和“busy“(繁忙)这些词汇的词频增长最快。
与此同时,评论中哪些词汇的词频下降了呢?
下图展示了自2010年以来酒店评价中出现频率逐渐减少的词汇/主题,其中包括“hhv”(该酒店名称缩写),“breakfast”(早餐),“upgraded”(升级),“prices”(价格)和“free”(免费)。
当我们对一些关键词进行比较时,也许会发现比较有意思的现象。如下图所示,我在比较了“service”(服务)和“food”(食物)之后发现,在2010年以前,服务和食物都是点评中的热门主题,于2003年达到顶峰,自2005年以后一直在下降。
情感分析
情感分析被广泛应用于对评论、调查、网络和社交媒体文本的分析,以反映客户的感受,涉及范围包括市场营销、客户服务和临床医学等。
在这个例子中,我们的目标是对点评者(也就是酒店顾客)在住店以后对酒店的态度进行分析,而这个态度可能是一个判断或是评价。我们使用了情感文本库对文本词汇进行评分,正分数为积极评价,负分则为消极评价。
下面我们来看评论中出现得最频繁的积极词汇和消极词汇。
出乎意料的是,“diamond”(来自Diamond Head: 钻石山,夏威夷一处景点)被标记为积极词汇。
这里其实有一个潜在问题,比如说“clean”(干净),根据语境的不同词性也不同。如果前面有一个“not”,那就是带有消极情感了。事实上一元词(Unigrams)在否定词(如“not”)存在时经常碰到这种问题,这就引出了我们下一个话题:
在情感分析中使用二元词组来明辨语境
那么在我们的数据中,哪些词因为否定词“not”而容易被误解为相反的情感呢?
我们统计了出现在“not”后最多的情感词汇,发现最常见的是“worth”(值得)、“great”、(好的)“good”(好的)、“recommend”(推荐)和“like”(喜欢),而这些词都被认为是积极词汇。因此,二元词组“not worth”, “not great”, “not good”, “not recommend”和“not like”是导致错误判断的最大根源,使得我们的分析结果比它原本的含义积极的多。
除了“not”,其他的否定词也可以会对后面的内容进行情绪的扭转,例如“never”和“without”。从下图中我们可以看到,“never regretted”(不后悔)和“without worrying”(不必担心)被判定为了消极情绪。
最后,让我们来观察一下Hilton Hawaiian Village酒店的最积极和最消极的评论。
最积极的评论来自于ID为2363的记录:“哇哇哇我们在这样里度过了一段完美的时光。我们的房间拥有完美的景色。Hilton酒店非常棒,无论是大人还是小孩,这家酒店可以满足你们的所有需求!”
从下图可以看出,这条点评情感分析评分都为正数,且分数较高。
最消极的评论则来自于ID为3748的记录:“从5/12/16到5/17/16,我们在这里住了五个晚上了。第一晚我们发现地板坏掉了而孩子们在玩手指。第二个晚上我们发现有小蟑螂在孩子们的食物上爬。前台好不容易给我们换了间房却要求我们在一小时内搬进去,不然他们就不让我们换了… 那时候已经晚上十一点了啊,我们都很累了而且孩子们都睡着了。于是我们拒绝了酒店的要求。可是在退房的时候,前台的工作人员居然和我说蟑螂在这家酒店很常见,还问我说难道加州没有蟑螂吗?这简直毁了我对Hilton酒店的所有期待。“
从下图可以看出,这条点评情感分析评分都为负数,且分数较低。
怎么样,今天的文章是不是非常的有意思? 如果你也想像文章中一样,在日常生活中运用自然语言处理方法,使用Python/R爬取酒店评价或者设计更多创意活动的话,你就一定不能错过MarTechApe携手谷歌美国软件工程师、东南亚独角兽公司Grab的资深数据科学家,共同打造的《Python自然语言处理》课程,教你从0到1地学会应用超级广泛的NLP技术!
1. 来自Google和Grab的课程主讲老师
2. 理论与实践相结合的课程安排
这门课共分6章节,每章节都由理论课程与编程实践两部分组成。确保每一位学员可以学以致用、真正理解课堂内容。在完成课程后,学员不仅对自然语言处理有了一定的掌握,同时也熟练运用Python编程语言。
完整的课程大纲
3. 课程适合人群与学员收获
适合人群
想要系统性学习自然语言处理,了解如何应用NLP解决文本分析问题的人
想学习如何用Python做数据科学项目的人
想在数据科学、人工智能等领域,找到职业方向的人
想进入高科技公司的人
虽然从没有过数据科学经验,但是想要用数据科学前沿技术来提升自己工作能力与求职竞争力的人(尤其是,当你的工作需要经常与用户调研、定性研究、文本分析打交道时,NLP可以大大提高你的工作效率!)
在工作/学习中需要与自然语言处理打交道的人(尤其推荐工作中负责AI产品的人来报名课程)
希望从其他行业领域转型到数据科学的人
你将获得
来自Google美国与Grab新加坡的资深数据科学家的一手经验输出
丰富的行业洞察与NLP的实际案例
理论和动手实践相结合,掌握典型自然语言分析的底层逻辑
在课程中完成一份自己的NLP语义分析与主题模型
课程结束后,可以将完整的数据科学工作方法运用到感兴趣的数据集上
获得数据岗位资深面试官的内部分享,助力数据科学的求职进程
4. 报名课程
课程价格:¥399人民币
人民币(微信)购买通道:
美元购买通道:
还等什么,快来一起走进自然语言处理的世界吧!