语义分析情感分类
我们从开源社区找到了中科院谭松波博士整理的携程网酒店评论数据集(https://raw.githubusercontent.com/SophonPlus/ChineseNlpCorpus/master/datasets/ChnSentiCorp_htl_all/ChnSentiCorp_htl_all.csv)。一共七千余条数据,包括 label 和 review 两个字段。review 是评论文本,label 是情感分类标记,为 1 表示正向,0 表示负向。
我们可以先试试,完全不给任何提示,ChatGPT 的分类能力如何。从数据集中间,正向和负向交汇的位置,复制 5 行数据交给 ChatGPT:
- 总的来说可以,总是再这里住,公司客人还算满意。就是离公司超近,上楼上班下楼回家
- 房间设施难以够得上五星级,服务还不错,有送水果。
- 标准间太差房间还不如3星的而且设施非常陈旧.建议酒店把老的标准间从新改善.
- 服务态度极其差,前台接待好象没有受过培训,连基本的礼貌都不懂,竟然同时接待几个客人;大堂副理更差,跟客人辩解个没完,要总经理的电话投诉竟然都不敢给。要是没有作什么亏心事情,跟本不用这么怕。
- 地理位置还不错,到哪里都比较方便,但是服务不象是豪生集团管理的,比较差。下午睡了一觉并洗了一个澡,本来想让酒店再来打扫一下,所以,打开了,请打扫的服务灯,可是到晚上回酒店,发现打扫得服务灯被关掉了,而房间还是没有打扫过。 对上述5 条评论进行情感分类,正向为 1,负向为 0.
ChatGPT 返回的结果如下:
- 正向 - 客人对房间位置的方便性和服务的满意度表示肯定。
- 正向 - 客人对服务的评价较好,但是认为房间设施不够五星级。
- 负向 - 客人对标准间的设施和质量表示不满意,建议酒店改善。
- 负向 - 客人对服务态度的评价非常差,前台和大堂副理的服务都不佳。
- 负向 - 客人认为地理位置还可以,但是对服务不满意,房间没有得到打扫。
对比数据集内实际的标注,完全正确。当然,要在 ChatGPT 聊天窗口一口气把 7000 条数据都标注一遍,还是挺费劲的,一次问答有字数限制。因此,想用 ChatGPT 做实际的文本标注工作,还是要学习如何使用 openai 公司的 API 接口,本书后续章节也有针对性的内容可以参照。
接下来,我们可以尝试一点更难的事情,在更复杂的语境中进行分类。我们摘录一段金庸《倚天屠龙记》的片段,看看 ChatGPT 如何判断张无忌的感情。为了避免狡猾的 ChatGPT 通过一些两不相帮的话术来躲避话题,我们这次在 prompt 中明确要求他只能回答 yes or no。这也是一种非常常用的技巧:
张无忌心中一片迷惘,想起赵敏盈盈笑语、种种动人之处,只觉若能娶赵敏为妻,长自和她相伴,那才是生平至福,但一转念间,立时忆起殷离脸上横七竖八、血淋淋的剑伤来,忙道:“赵姑娘是我大仇,我要杀了她为表妹雪恨。 仅从上面这段话来判断,张无忌喜欢赵敏么?你只用回答喜欢或不喜欢,不要说其他任何字。
ChatGPT给出了"喜欢"的回答。然后我们再来问它是如何得出这个结论的:
这个分析可以说相当到位,当语文老师绰绰有余。正向情绪溢于言表,负向情绪藏起来没明说,一多一少,总体就依然是正向的"喜欢"。可以说,ChatGPT 拆解完以后,我们甚至都学到了一点写作技巧呢。
情感分类,目前运用场景非常广泛。比如呼叫中心领域,在客服对话过程中,需要根据客户情绪及时转发或升级处理;对话结束后,可以根据对话过程生成客服满意度评级等等。