全文共3067字,预计学习时长6分钟
神奇的创造力 图片来源:Pixabay
最近当笔者在亚马逊上买笔记本电脑包时,偶然发现了一个非常有趣的买家评论:
“这是我买过的最好的笔记本电脑包。真的非常好,才使用不到两个月,就值得拿来当个杂物袋用了。”
很显然,这条评论是在讽刺,因为该买家并不满意包的质量。然而,由于句子中包含了“最好”、“好”和“值得”等词,因此很容易被误认为是在肯定该产品。这种幽默又隐晦的评论在社交媒体上走红也是一种普遍现象。然而如果这种评论没有被企业检测到并作出回应的话,这可能会损害企业的声誉,尤其是当他们正要发布新产品时。回到正题,在评论中检测出讽刺意味是自然语言处理的一个重要用例,下文中将介绍机器学习如何在这方面提供帮助。
情感分析:从非结构化数据中获得重要见解
图片来源: 五种情感分析方法可促进业务发展
在了解讽刺检测的本质之前,先对情感分析进行一个全面的概述吧。
情感分析,也称为意见挖掘,是自然语言处理(NLP)的一个子领域,它试图从给定的文本中识别和提取意见。
从前,企业依靠传统的方法,如进行问卷调查和焦点小组讨论来获得消费者的反馈。然而,现在机器学习和人工智能相关技术已经可以准确地分析各种来源中的文本数据了。无须多言,从文本中分析情感是一个非常有价值的功能,因为这可能显著提高许多企业的投资回报率。
情感分析的重要性
情感分析在推动企业发展中的优势
Space-TimeInsight的首席技术官保罗·霍夫曼曾经表示:“如果你想了解他人,尤其是你的客户,那么你必须具备强大的文本分析能力。”对于保罗所言,简直不能赞同更多了,因为近年来文本分析给企业带来的优势已经十分明显。随着社交媒体活动的激增,情感从商业角度被视为有价值的商品。通过仔细衡量人们的意见和情感,企业可以合理地得到人们对产品的看法,并相应地纳入反馈。
讽刺:用肯定词表达消极情感
情感分析不是一项容易的任务。因为,文本数据通常是预先加载的,带有很多干扰。讽刺是一种天生存在于社交媒体和产品评论中的噪音,可能会干扰判断结果。
讽刺性的文本表现出一种独特的行为。与简单的否定不同,讽刺句只使用词的积极内涵来表达消极情感。下面是一些明显的讽刺例子。
图片来源: 网络产品评论中讽刺句的半监督识别
情感分析则很容易被这些讽刺性的词语误导,因此,讽刺检测是许多NLP任务中一个重要的预处理步骤。所以,在训练NLP应用程序的模型之前,识别和消除干扰样本是很有用的。
利用Driverless AI(DAI)进行讽刺检测
Driverless AI是来自H2O.ai的自动化机器学习平台。它运用了自然语言处理的方法,来处理文本分类和回归问题。无论是独立文本还是具有其他数值的文本,该平台都支持其作预测功能。以下是DAI已实施的模型:
无驱动人工智能NLP的关键功能
该平台使用功能强大的技术(如TFIDF,CNN和GRU)来自动转换文本字符串。借助TensorFlow,Driverless AI还可以处理更大的文本块,并使用所有可用数据来构建模型以解决业务问题。由此可见,Driverless AI有着最先进的自然语言处理能力来进行情感分析,因此可以利用它建立一个讽刺分类检测器。
讽刺数据库
讽刺数据库由130万条来自网络评论网站Reddit的讽刺评论组成,这些评论分别被标记为讽刺和非讽刺。数据库的来源是一篇论文,题目是:“一个关于讽刺的大型自我注释语料库”。此数据库的处理版本也可以在Kaggle上找到,所以在运行各种分类算法之前,不妨先来研究一下这个数据库吧。
导入数据
数据库由一百万行组成,每条记录由十个属性组成:
而我们主要对以下两列感兴趣:
· 标签(label):0表示讽刺评论,1表示非讽刺评论
· 注释(comment):将用于进行实验的文本列
探索性的数据分析
从中发现,数据库是完全均衡的,讽刺和非讽刺的评论文本数量相等。
讽刺评论和非讽刺评论的长度分布也几乎相同。
讽刺评论和非讽刺评论的分布图
由于数据库已转换为表格格式,因此可以将其输入到无驱动人工智能中。请注意,文本特性将在过程中自动生成和评估。
进行实验
实验将分三个部分进行,以获得可能的最佳结果。
· 内置TF/IDF自然语言处理方法
在第一部分中,将使用Driverless AI的内置TF/IDF功能。
为了更新关于开始使用Driverless AI的知识,则需要“试驾”(Test Drive)。“试驾”是指H2O在AWS云上的Driverless AI,在这里可以探索它的所有功能,而无需下载。
首先,启动一个新的Driverless AI实例。接下来,将数据集按70:30的比例分割为训练集和测试集,并指定label作为目标列。并且还将取消选择所有其他列,只保留数据集中的comment列。最后,选择LogLoss作为记分员,保持其他所有参数为默认值,并启动实验。屏幕应显示如下:
用内置NLP方法的情感分析
· 内置TensorFlow 的自然语言处理方法
作为替代方案,将启动相同实验的另一个实例,但是使用的是Tensorflow模型。这是因为TextCNN依赖于TensorFlow模型。点击“Expert Settings”选项卡,打开“TensorFlow模型”,其余的过程保持不变。
用内置Tensorflow方法的情感分析
· 用户自定义的情感分析方法
如果使用内置的相关方法还不够,那么还可以构建一个专门针对特定用例的方法。最新版本的DAI(1.7.0)实现了一个名为BYOR的关键功能,意为定制自定义处理方法(Bring Your Own Recipe)。此功能旨在使数据科学家能够根据业务需要定制DAI。
如要上载自定义配方,则需到expertsettings上传所需的方法。目前,H2O 已经建立和开放了超过80个方法,可作为模板。这些方法可从https://github.com/h2ai/driverlesai-recipes访问。而对于本实验,将使用以下这种方法:
text_sentiment_transformer.py(使用TextBlob中预先训练好的模型从文本中提取情感。)
TextBlob是一个python库,提供了一个简单的应用程序界面来访问其方法并执行基本的自然语言处理任务,如情感分析、拼写检查、摘要创建、语言翻译等。单击expertsettings选项卡并导航到driverlessai-recipes >transformers > nlp并选择所需的方法。最后单击save 保存设置。
接下来,还可以选择特定的转换器并取消选择其余转换器。
实验结果总结
下面的屏幕截图显示了三个不同方法的无驱动人工智能实例之间的比较。自定义方法的加入将logloss组件从0.54减少到0.50,当运用于为业务方面时,该组件可能具有巨大的价值。
一旦实验完成,用户可以做出新的预测并下载评分通道,这跟其他无驱动人工智能实验是一样的。
情感分析可以在市场营销领域发挥关键作用。它可以利于发布有针对性的品牌信息,并帮助公司了解消费者的偏好。而这样的优势对于一家企业增加其在各个行业的影响力至关重要。
留言 点赞 发个朋友圈
我们一起分享AI学习与发展的干货
编译组:沈田、孙梦琪
相关链接:
https://towardsdatascience.com/sentiment-analysis-is-difficult-but-ai-may-have-an-answer-a8c447110357
如需转载,请后台留言,遵守转载规范
推荐文章阅读
ACL2018论文集50篇解读
EMNLP2017论文集28篇论文解读
2018年AI三大顶会中国学术成果全链接
ACL2017 论文集:34篇解读干货全在这里
10篇AAAI2017经典论文回顾
长按识别二维码可添加关注
读芯君爱你