NLP在旅游情感分析的应用?

NLP在旅游情感分析的应用?,第1张

自然语言处理(NLP)在旅游领域具有广泛的应用,其中之一是情感分析。情感分析是指通过计算机程序来识别文本中的情感倾向,分析人们对旅游目的地、酒店、餐厅、交通工具等的评价。这种技术可以帮助旅游公司、酒店、餐厅等机构了解消费者的需求和喜好,改善服务质量和提高客户满意度。

一个典型的旅游情感分析应用是在线评论分析。在线评论是消费者对旅游目的地、酒店、餐厅等的反馈,通过使用 NLP 技术,旅游公司和酒店等机构可以分析这些评论,了解消费者对服务质量、位置、价格、餐饮等的看法。这些信息可以帮助他们改善服务质量、提高客户满意度。

另一个应用是社交媒体情感分析。社交媒体是消费者展示旅游经历的主要渠道,通过使用 NLP 技术,旅游公司和酒店等机构可以分析消费者在社交媒体上发布的文本、和视频,了解消费者对旅游目的地、酒店、餐厅等的感受。这些信息可以帮助他们改善服务质量、提高客户满意度、扩大品牌知名度。

                                   

此外,NLP还可以用于预测未来趋势,通过分析历史数据来预测旅游需求、价格趋势等,进而帮助旅游公司和酒店等机构调量、提高客户满意度。

NLP技术还可以用于语音识别和语音合成,在旅游领域中应用于语音导航、语音查询等场景。例如,旅游公司可以开发一款语音导航应用,让游客在旅游中使用语音命令来获取信息和导航。

总之,NLP在旅游领域有着广泛的应用,它可以帮助旅游公司、酒店、餐厅等机构了解消费者的需求和喜好,改善服务质量和提高客户满意度。通过使用NLP技术,旅游行业可以更好地了解客户,并提供更好的服务和体验。

古代阿拉伯学者阿维森纳,曾把一胎所生的两只羊羔置于不同的外界环境中生活:一只小羊羔随羊群在水草地快乐地生活;而在另一只羊羔旁拴了一只狼,它总是看到自己面前那只野兽的威胁,在极度惊恐的状态下,根本吃不下东西,不久就因恐慌而死去。

后来,医学心理学家还用狗作嫉妒情绪实验:把一只饥饿的狗关在一个铁笼子里,让笼子外面另一只狗当着它的面吃肉骨头,笼内的狗在急躁、气愤和嫉妒的负性情绪状态下,产生了神经症性的病态反应。

到了现代,随着医学科技的发达,美国一些心理学家以人为对象,进行了一次类似的实验,他们把生气人的血液中含的物质注射在小老鼠身上,以观察其反应。初期这些小鼠表现呆滞,胃口尽失,整天不思饮食,数天后,小老鼠就默默地死去了。

美国生理学家爱尔马不久前也做过实验,他收集了人们在不同情况下的“气水”,即把有悲痛、悔恨、生气和心平气和时呼出的“气水”做对比实验。结果又一次证实,生气对人体危害极大。他把心平气和时呼出的“气水”放入有关化验水中沉淀后,则无杂无色,清澈透明,悲痛时呼出的“气水”沉淀后呈白色,悔恨时呼出的“气水”沉淀后则为蛋白色,而生气时呼出的“生气水”沉淀后为紫色。把“生气水”注射在大白鼠身上,几分钟后,大白鼠死了。由此,爱尔马分析:人生气 (10分钟)会耗费大量人体精力,其程度不亚于参加一次3000米赛跑;生气时的生理反应十分剧烈,分泌物比任何情绪的都复杂,都更具毒性。

实验告诉我们:恐惧、焦虑、抑郁、嫉妒、敌意、冲动等负性情绪,是一种破坏性的情感,长期被这些心理问题困扰就会导致身心疾病的发生。

在非洲草原上,有一种不起眼的动物叫吸血蝙蝠。它身体极小,却是野马的天敌。这种蝙蝠靠吸动物的血生存,它在攻击野马时,常附在马腿上,用锋利的牙齿极敏捷地刺破野马的腿,然后用尖尖的嘴吸血。

野马受到这种外来的挑战和攻击后,马上开始蹦跳、狂奔,但却总是无法驱逐这种蝙蝠。蝙蝠却可以从容地吸附在野马身上,落在野马头上,直到吸饱吸足,才满意地飞去。而野马常常在暴怒、狂奔、流血中无可奈何地死去。

动物学家在分析这一问题时,一致认为吸血蝙蝠所吸的血量是微不足道的,远不会让野马死去,野马的死亡是它自己的狂奔所致。对上野马来说,蝙蝠吸血只是一种外界的挑战,是一种外因,而野马对这一外因的剧烈情绪反应,才是导致死亡的真正原因。

http://minieastdaycom/bdmip/180414224336264html

在这篇文章中,主要介绍的内容有:

1、将单词转换为特征向量

2、TF-IDF计算单词关联度

文本的预处理和分词。

如何将单词等分类数据转成为数值格式,以方便我们后面使用机器学习来训练模型。

一、将单词转换为特征向量

词袋模型(bag-of-words model):将文本以数值特征向量的形式来表示。主要通过两个步骤来实现词袋模型:

1、为整个文档集(包含了许多的文档)上的每个单词创建一个唯一的标记。

2、为每个文档构建一个特征向量,主要包含每个单词在文档上的出现次数。

注意:由于每个文档中出现的单词数量只是整个文档集中很少的一部分,因此会有很多的单词没有出现过,就会被标记为0。所以,特征向量中大多数的元素就会为0,就会产生稀疏矩阵。

下面通过sklearn的CountVectorizer来实现一个词袋模型,将文档转换成为特征向量

通过countvocabulary_我们可以看出每个单词所对应的索引位置,每一个句子都是由一个6维的特征向量所组成。其中,第一列的索引为0,对应单词"and","and"在第一和二条句子中没有出现过,所以为0,在第三条句子中出现过一些,所以为1。特征向量中的值也被称为原始词频(raw term frequency)简写为tf(t,d),表示在文档d中词汇t的出现次数。

注意:在上面词袋模型中,我们是使用单个的单词来构建词向量,这样的序列被称为1元组(1-gram)或单元组(unigram)模型。除了一元组以外,我们还可以构建n元组(n-gram)。n元组模型中的n取值与特定的应用场景有关,如在反垃圾邮件中,n的值为3或4的n元组可以获得比较好的效果。下面举例说明一下n元组,如在"the weather is sweet"这句话中,

1元组:"the"、"weather"、"is"、"sweet"。

2元组:"the weather"、"weather is"、"is sweet"。

在sklearn中,可以设置CountVecorizer中的ngram_range参数来构建不同的n元组模型,默认ngram_range=(1,1)。

sklearn通过CountVecorizer构建2元组

二、TF-IDF计算单词关联度

在使用上面的方法来构建词向量的时候可能会遇到一个问题:一个单词在不同类型的文档中都出现,这种类型的单词其实是不具备文档类型的区分能力。我们通过TF-IDF算法来构建词向量,从而来克服这个问题。

词频-逆文档频率(TF-IDF,term frequency-inverse document frequency):tf-idf可以定义为词频×逆文档频率

其中tf(t,d)表示单词t在文档d中的出现次数,idf(t,d)为逆文档频率,计算公式如下

其中,nd表示文档的总数,df(t,d)表示包含单词t的文档d的数量。分母中加入常数1,是为了防止df(t,d)=0的情况,导致分母为0。取log的目的是保证当df(t,d)很小的时候,不会导致idf(t,d)过大。

通过sklearn的TfidfTransformer和CountVectorizer来计算tf-idf

可以发现"is"(第二列)和"the"(第六列),它们在三个句子中都出现过,它们对于文档的分类所提供的信息并不会很多,所以它们的tf-idf的值相对来说都是比较小的。

注意:sklearn中的TfidfTransformer的TF-IDF的计算与我们上面所定义TF-IDF的公式有所不同,sklearn的TF-IDF计算公式

通常在计算TF-IDF之前,会对原始词频tf(t,d)做归一化处理,TfidfTransformer是直接对tf-idf做归一化。TfidfTransformer默认使用L2归一化,它通过与一个未归一化特征向量L2范数的比值,使得返回向量的长度为1,计算公式如下:

下面通过一个例子来说明sklearn中的TfidfTransformer的tf-idf的计算过程,以上面的第一句话"The sun is shining"为例子

1、计算原始词频

a、单词所对应的下标

b、计算第三句话的原始词频tf(t,d)

c、计算逆文档频率idf(t,d)

注意:其他的词在计算tf-idf都是0,因为原始词频为0,所以就不需要计算idf了,log是以自然数e为底。

d、计算tf-idf

所以,第一个句子的tf-idf特征向量为[0,1,129,129,0,1,0]

e、tf-idf的L2归一化

由于语料缺乏,前期若使用到情感分析,建议暂时使用SnowNLP(此模块主要使用淘宝评论语料)做情感挖掘,但不仅仅为单纯调用,需要优化,下面是一些实践思考:

可在此基础上优化,比如文本需要特别处理,除了平常的去停用词外,还可以需要对输入的文本结合词性等进行处理。

下面是一些常识:

一)无情感的词语(如去停用词,去掉语气词,无词性标签的词语)

二)对于文本过长,则可以考虑提取关键词或抽取文本摘要后再提取关键词

对于后者实践结果差异明显:

以"发布了头条文章: 《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显 "为例子, 显然该文本为“积极”文本。

1)s = SnowNLP("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")

得分为05,明显不符合

2)s = SnowNLP(“ ”join(jiebaanalysetextrank("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")))

而对于文本特别长的,则可以先抽取摘要,再对摘要提取关键词。

这主要由于此SnowNLP主要用贝叶斯机器学习方法进行训练文本,机器学习在语料覆盖上不够,特征上工程处理不当会减分,也没考虑语义等。

为何要考虑语义层面:

以“ 苏宁易购,是谁给你们下架OV的勇气” 中的“ 下架”其实才是中心词(为表达愤怒的文本),但“ 勇气 ”为下架的宾语(其为积极的文本),此句应该结果小于05,但实际为088,去掉“苏宁易购”则为06>

以下以语义特征为例:

机器学习基于语义特征的情感分析

基于语义特征的情感分析先人已有研究,可以通过情感词典匹配来做,但是应用机器学习在这方面会使精确度更高些。 

以本人参与的一个项目为主,总结下相关技术点。 

背景是:分析用户评论感情色彩是积极还是消极,即是褒还是贬。

具体步骤为: 

1有监督的人工给文本标注类标签。如有5000条评论数据,我们给其中的1000条标为积极的,再选1000条标为消极的,积极和消极就是所谓的类标签。 

2选择特征。从积极的评论数据中按词来选择积极的所有特征。同理,从消极的评论数据中按词来选择消极的所有特征。如“这款游戏非常好玩”->”这款”->“游戏”->”非常”->”好玩”,分为四个特征词,也可以采用双词搭配,“这个游戏”和“非常好玩”作为特征。 

3特征降维,减少特征的数量。如上“这个游戏非常好玩”中的“这个游戏”没有必要作为特征,因为“好玩”或“非常好玩”已经决定了评论是积极的。 

4将语料文本变成使用特征表示。 

5统计所有特征出现的次数,并按倒序排序。 

6从以上结果中选出排序最靠前的一些特征作为最终的评判特征。 

7使用训练数据根据特征训练分类算法,得到分类器。 

8用测试数据检测分类器的准确度。 

我们将数据分为两部分:开发集、测试集。用开发集的数据训练分类算法得到分类器;再用分类器对测试集里的数据进行分类,给出分类预测得到的标签;对比分类标签和人工标注得到的标签的差异,计算出准确度。

1、文章花大量笔墨写“时酒”是强调“时酒”价格便宜,醉得很透,醒得也快的特点,说明农民大多爱喝的原因,也是为表现癞六伯借酒寻找短暂安慰后又要为生计辛劳,从而为下文癞六伯喝醉后的骂人发泄内心的孤寂与不平作铺垫(意对即可)

2、运用比拟的手法,(比喻、或幽默诙谐的语言)表现癞六伯骂人像鸡啼已成为家乡的一种自然现象,表明癞六伯意在发泄,也想引起周围人的注意,却被当作报时工具的可笑与无奈(意对即可)

3、作者同情他的“环睹萧然”、“孑然一身”;羡慕他的自耕自食、自得其乐;感激他的热情款待;理解了他的喝酒骂人的行为(答对三点即可)

4、A D

5、“略”

6、相同:渴望被人关注;喜欢喝酒骂人发泄内心的不平;自我满足,自得其乐不同:癞六伯善良,安分守己,诚实勤劳;阿Q狡猾,欺软怕硬,自以为是,自欺欺人

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/7968199.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-07
下一篇2023-09-07

发表评论

登录后才能评论

评论列表(0条)

    保存