树人论文网一个专业的学术咨询网站!!!
树人论文网

基于 Python 的人机对话自然语言处理

来源: 树人论文网发表时间:2021-08-12
简要:摘 要:本文调用了 Python 功能丰富的第三方库 jieba 以及 TextBlob,利用其强大的函数方法读取了存于 Text 文档中的科幻文学人机对话以及 Siri 和 Cleverbot 的对话文本并进行了分析;随后借助

  摘 要:本文调用了 Python 功能丰富的第三方库 jieba 以及 TextBlob,利用其强大的函数方法读取了存于 Text 文档中的科幻文学人机对话以及 Siri 和 Cleverbot 的对话文本并进行了分析;随后借助 Excel 实现了对于量化数据的可视化分析,并结合自然语言处理和语用学理论提出了一种强人工智能的语言模式,最终实现了一次完整的基于 Python 的自然语言处理,为人工智能中的人机对话领域的研究者提供了一种分析文本的可能思路。

基于 Python 的人机对话自然语言处理

  李轩宇; 李御龙, 科学技术创新 发表时间:2021-08-12

  关键词:Python3.7;自然语言处理;可视化分析;人机对话;语用学

  1 选题背景与意义

  十三五期间,我国公布了《新一代人工智能发展规划》,该规划描述了三个主要发展阶段,确定了至 2030 年使中国成为人工智能世界主要创新中心的目标。

  实现强人工智能人机对话的关键是理解并处理自然语言,但想要完成这一目标,除了语料数据的支撑,同样需要人工智能拥有情感交流的能力。根据传播学的信息交互理论,人与人之间的内容沟通大约只占 20%,而情感沟通要占到 80%。因此,如何深层次地理解语境并进行合适的情感交流,是人机对话领域的重点。基于 Python 的英语自然语言处理已存有较多研究,但语料文本多出于网络[1],在科幻类文学中的人机对话领域,目前尚无成熟的研究。

  在此背景下,本文将以文学文本中的人机对话为语料,基于 Python 的自然语言处理功能来分析文学作品中人机对话,并结合语用学理论,以此来整合出一种强人工智能的语言模式。

  2 Python 自然语言处理需求分析

  在对于科幻类文学中人机对话进行自然语言处理的过程中含有两个关键步骤,其一是读取文本并进行相关统计,其二是对其内容进行分析。

  就第一部分而言,考虑到目标是文本分析,因此选择是在自然语言处理领域已经较为成熟的 jieba 库。基础编程思路是利用 jieba 库内置的丰富方法,如 lcut 函数,来进行分词与词频统计等一系列相关处理。在具体读取过程中,可利用 Python 的列表与字典功能对文本内容进行转存[2]。

  在进行第二部分时,考虑到 SnowNLP 和 NLTK 库并不具备处理大量复杂的英语语言文本的能力,因此本文选择了在英语语言国家更为常见的 TextBlob 库[3]。统计完成后,本文将在运行结果的基础上对于原始文本的数据进行分析,并基于文学文本内容的情感得分和主客观得分定义两项新的评分,即 “礼貌值”与“合作值”。

  3 关键代码说明以及代码测试

  3.1 所使用第三方库介绍

  如前所述,本文最重要的环节是文本处理,而在实现需求的过程中将主要调用 Python 的两个第三方库,分别为 jieba 库与 TextBlob 库,本部分将简述这两个库的功能以及在本项目中所起到的具体作用。本部分代码所调用第三方库名称以及应用:

  (1)jieba 库:对原文文本实现分词处理并进行统计词频

  jieba 库是一款优秀的 Python 第三方分词库,支持三种分词模式,函数简单,容易上手。

  (2)TextBlob 库:统计分析文本内容的情感倾向得分

  TextBlob 是用 Python 编写的开源文本处理库,可以用来执行很多自然语言处理的任务,比如,短语提取、词汇标注、情感分析、语法分析、情感分析与添加语言新模型,等等[4]。

  3.2 代码设计

  本部分将介绍代码的两个主体部分,其功能分别为统计词频和分析文本情感倾向。碍于篇幅所限,本部分只介绍重要代码与编程思想,部分代码将略去不表。

  下述 def 代码(1- 25 行)功能为统计词频,具体实现过程中调用了 jieba 库[5],随后简单使用 cut 方法设置停用词并利用列表功能进行词频统计,本部分代码的输出文件将会是一个存有词频的 Text 文档。代码 26- 30 行的功能为分析文本内容极性(即情感积极 / 消极程度)以及文本主客观程度,在代码中分别定义为“Emotion”与“Subjectivity”。此处代码意在简要说明 TextBlob 库中重要的 sentiment 方法与 polarity 方法。

  4 数据的可视化分析

  4.1 对于科幻小说中人机对话的分析数据

  本部分以 Python 的 TextBlob 库所得出的源文本情感得分和主客观程度得分为基础,分别对于科幻类文学中的 AI、iPhone 助手 Siri 以及人工智能机器人 Cleverbot 在相同对话中所做出的回答进行了文本分析。为了使得数据更加直观,本部分选取了科幻类文学文本中较有代表性的 30 个问题,分别令人工智能 Siri 和 Cleverbot 进行回答,结合科幻类文学中的人机对话,利用 Excel 进行数据的可视化分析。

  分析结果表明,Siri 和 Cleverbot 的情感得分分布围绕着两条基本线:- 3.125 和 0(最大值为 10 而最小值为 - 10)。即 Siri 在面对多个问题时采取了“回避策略”,即对问题表示不知道答案,这也是现有人工智能在人机对话中的常见策略;与之相比,人工智能 Cleverbot 则试图在回答问题时保持绝对理智,尽量不夹带情感。与之相比,科幻类文学中的 AI 则尽量与对话人保持相接近的情感倾向。

  而在主客观程度的得分上可以的出类似的结论,即科幻类文学中的 AI 尽量与源问题中的主客观程度保持一致,而 Siri 与 Cleverbot 的回答得分分布依然围绕着两条基本线:6.875 和 0 (最大值为 10 而最小值为 0)。即 Siri 的回答更为主观,而 Cleverbot 则尽量保持绝对客观。这一点其实也与两款人工智能的市场定位有关:Siri 的 市 场 定 位 是“私 人 办 公 助 手”;而 Cleverbot 则是用于智能对话的机器人。故此,Siri 的回答会基于 “为 iPhone 用户提供个性化的帮助”而变得更加“私人化”,而 Cleverbot 则采取了“理智回答”方案。

  4.2 礼貌值与合作值

  参考前部分的数据分析结果,可得出四项分析内容的平均分:

  如上表所示,四项内容在情感内容平均分上相差不大,虽然可从主客观得分上判断出 Siri 和 Cleverbot 的明显不同,但由于源问题各不相同,很难单一用平均分进行判断。故此,本项目引用自定义的两个评分项,分别为合作值“C”与礼貌值“P”,其定义式如下:

  其主要数据对比为情感得分与主客观得分的差值,即反应两者之间的极性。礼貌值与合作值的平均分如下:

  5 人机对话自然语言处理以及语用学分析结果

  1983 年,Leech 在《语用学原则》一书中提出了礼貌原则,其中包括两条重要准则,一致原则与同情原则[6]。即减少自己与别人在观点上的不一致[7]。除此之外,格莱斯 1975 年在“逻辑与会话(Logic and Conversation)”一文中指出了合作原则的原则,其中包括量准则、关联准则以及方式准则,即避免言语晦涩,逻辑要简洁清晰[8]。

  基于前文分析,可以得出结论,科幻类文学中的“强人工智能”不论是在情感还是主客观程度上都倾向于与对话者保持一致,但现有的人工智能则倾向于在对话中采纳以“回避”为主的消极主观态度(例如 Siri)或以“不犯错”为主的中性客观态度(例如 Cleverbot)。实际上,人工智能 AI 的对话原则与语用学的两大原则,即“礼貌原则”与“合作原则”[9- 10],不谋而合,亦即是说,这两条原则可以成为人工智能语言模式中的一部分。具体到人机对话领域中,人工智能应当尽量在对话时与对方在情感与语言极性上保持一致,同时使得自己的话语与对方在逻辑、主客观程度和信息量上达到态度一致,图 1。

  6 结论

  本文调用了 Python 的 jieba 库词频统计、TextBlob 库情感分析以及 re 库 Python 办公自动化等多种功能,实现了一次完整的基于 Python 的自然语言处理,为人工智能中人机对话领域的研究者提供了一种分析文本的可能思路。但文章中尚存有不少课继续探究之处。首先,自然语言处理并非只能局限于 Python,目前这一领域的研究已经较为成熟,在经过外文文献阅读后可以得到更多的研究视角;其次,TextBlob 库以及 SnowNLP 库只是 Python 强大第三方库中的冰山一角,倘若对于 Python 加以更富有创造性的使用,势必可以获得更加客观且更富有统计学意义的分析结果,而更加前沿的研究,则需要未来更加深入且不间断地探索与思考。