现如今,在更多情况下,我们是以比特和字节为生,而不是依靠交换情感。我们使用一种称之为计算机的超级智能机器在互联网上进行交易和沟通。因此,我们觉得有必要让机器明白我们在说话时是如何对其进行理解的,并且试图用人工智能,一种称之为NLP——自然语言处理技术为它们提供语言。作为一种研究结果,聊天机器人正在成为一种可靠的聊天工具,使用这种非人为依赖的智能工具与人类进行交流。
什么是NLP
这是一种人工智能方法,给定机器一些人类语言从而使得它们能够与人类进行沟通交流。它涉及使用NLP技术对书面语言进行智能分析,以获取对一组文本数据的见解,如:
1.情绪分析
2.信息提取和检索
3.智能搜索等
它是人工智能和计算语言学的交汇点,能够处理机器和人类自然语言之间的交互,即计算机需要对其进行分析、理解、改变或生成自然语言。NLP帮助计算机机器以各种形式使用自然人类语言进行交流,包括但不限于语音、印刷、写作和签名。
NLP机器学习和深度学习:它们是如何连接的
NLP与机器学习和深度学习密切相关,所有这些都是人工智能领域的分支,如下图所示:它是一个致力于使机器智能化的计算机科学领域。深度学习是一种流行的机器学习技术之一,如回归,K-means等。
机器学习的类型很多,像无监督机器学习这样的经常用于NLP技术中,如LDA(潜在狄利克雷分布,一种主题模型算法)。
为了能够执行任何一个NLP,我们需要深入理解人类使如何处理语言的情感和分析方面。还有各种各样像社交媒体这样的语言数据源,人们直接或间接地分享他们感受到的内容,而这必须通过使用NLP的机器进行智能分析。NLP机器需要建立一个人类推理系统,借助ML技术,它们可以自动执行NLP过程并对其进行扩展。
简而言之,“深度学习与自然语言处理”是相互联系、相互依存的,以构建一个能够像人类一样思考、说话和行动的智能计算机。
Meltwater Group的NLP专家John Rehling在《自然语言处理是如何帮助揭示社交媒体情绪》一文中说,
“通过分析语言的含义,NLP系统扮演着非常重要的角色,如纠正语法,将语音转换为文本,以及在多语言之间自动翻译。”
NLP如何工作
理解NLP的工作原理是非常重要的,因为这样的话,我们就可以将NLP作为一个整体来理解。NLP一般有两个主要组成部分:
1.NLU:自然语言理解
2.NLG:自然语言生成
让我们深入理解NLU
自然语言理解:它涉及的是一种方法论,试图了解如何对馈送给计算机的自然语言赋予一定的相关意义。
在开始时,计算机获得自然语言的输入(自然语言可以是任何语言,它们通过使用和重复在人类中自然进化,而不是有意识的计划或预谋,自然语言可以采用不同的形式,例如语音或签名)。
计算机之后将它们转换成人工语言,如语音识别和/或语音转换文本。在这里我们把数据转换成一个文本形式, NLU过程来理解其中的含义。
HMM:隐马尔可夫模型(NLU示例)
来源:wikipedia
它是一种统计语音识别模型,它可以在预先构建的数学技术的帮助下,将你的语音转换成文本,并试图推断出你所说的语言。
它试图理解你所说的,通过将语音数据分解成一小段特定的时间段,大多数情况下时间是20-20 ms。这些数据集将进一步与预馈语音进行比较,从而进一步解读你在每个语音单位中所说的内容。这里的目的是找到音素(一个最小的语音单位)。然后,机器对一系列这样的音素进行观察,并统计了最可能说出的单词和句子。
不仅如此,NLU会深刻理解每个单词,试图理解它是一个名词还是动词,什么是时态(过去或未来)等。这个过程被定义为POS:词性标注部分(Part Of Speech Tagging)。NLP具有内置的词典和一套与语法预编码相关的协议,这些协议被预编码到它们的系统中,并在处理自然语言数据集时使用它,从而在NLP系统处理人类语音时,编译所说的内容。
NLP系统也有一个词典(词汇表)和一套编码到系统中的语法规则。现代NLP算法使用统计机器,学习将这些规则应用于自然语言,并推断所说话语背后最可能的含义。在考虑诸如具有多个含义的词语(多义词)或具有相似含义的词语(同义词)时,存在一些挑战,但软件开发者在他们的NLU系统中建立了自己的规则,可以通过适当的训练和学习来处理这类问题。
自然语言生成:
与第一阶段(NLU做了大量的努力以理解人类的话语)相比,NLG可以很容易的进行翻译工作,即将计算机的人工语言翻译为有意义的文本,并可以通过文字转语音(tex-to-speech)技术将其转化为可听语音。文本转语音((tex-to-speech))技术通过韵律模型(prosody model)来分析文本,从而确定语言的断句、长短和音调。然后,利用语音数据库,将记录的所有音素汇集在一起,形成一个连贯的语音串。
简而言之,NLP采用NLU和NLG来处理人类自然语言,尤其是处理语音识别领域的人类自然语言,并试图将传递字符串或可听语言作为输出,来理解、编译并推断所说的内容。
NLP在现代语境中的应用:
在这个处于数字革命的电脑时代中,大部分任务需要由人类利用链接物联网的机器来完成。NLP在为媒体、出版、广告、医疗、银行和保险等行业领域建立强大的软件工具方面,发挥了重要作用,从而帮助他们高效快捷地运作。
NLP的一些现代用法:
1.聊天机器人
这是一个被称为机器人的成熟软件,它可以处理任何场景的人物对话。api.ai、微软语音理解智能服务(LUIS)等一些热门的NLP和机器学习平台,可用于研发你的商业聊天机器人。
2.垃圾邮件过滤
来源:yhat
你们中的大多数人一定对垃圾邮件并不陌生。Google使用基于NLP的技术来保障你的收件箱清洁、无垃圾邮件。贝叶斯垃圾邮件过滤(Bayesian spam filtering)是一种备受瞩目的技术,它是一种统计技术,基于此,电子邮件中词语的审核通过率根据其在垃圾和非垃圾邮件语料库中的典型事例来确定。
3.机器翻译
NLP被越来越多的应用于机器翻译程序当中,这使得一种语言被自动翻译成另一种语言,谷歌是一个将你的文本翻译为所需语言的先驱者。
机器翻译技术所面临的挑战不在于翻译单词,而在于保留句子的含义,这是一个复杂的技术问题,也是NLP的核心。
4.命名实体提取(Named entity extraction)
它用于从给定的项目集合中分离出具有相似性质和属性的项目。例如名字、姓氏、年龄、地理位置、地址、电话号码、电子邮件地址和公司名称等等。命名实体提取(亦称命名实体识别)使挖掘数据变得更加容易。
5.自动汇总
自然语言处理可用于从大段文本中提取可读摘要。例如,我们可以自动总结出一份长篇学术文章的简短摘要。
接下来我们将深入介绍一些NLP的技术细节。
当自然界与人工相逢的时候,机器就像是一个真正具有生命力的人类一样进入了生活中。
NLP技术术语
NLP术语
•语音体系——关于系统性地组织语音的研究。
•形态学——这是一个从基本意义单位中进行单词构建的研究。
•语素——语言中意义的基本单位。
•语法——它是指单词经过组合排列构成句子,它还涉及在句子和短语中确定单词结构的作用。
•语义——它涉及的是单词的含义,以及该如何将单词组合成有意义的短语和句子。
•语用学——它涉及的是在不同情况下使用和理解句子以及对句子的解释是如何受到影响的。
•话语——它指的是前面的句子如何影响对于下一句的解释的。
•常识性知识——它涉及的是对于世界的一般性认识。
自然语言处理库(对于开发者而言)
NLP库:
有许多通用的第三方开源库,开发人员可以使用它们来构建基于NLP的Projects Viz .。
•自然语言工具包(NLTK)
•Apache OpenNLP
•斯坦福大学NLP套件
•Gate NLP库
自然语言工具包(NLTK)是最通用的自然语言处理(NLP)库。它是用Python编写的,背后有一个很大的社区。
NLP实施所涉及的步骤:
来源:mediterra-soft
它涵盖了5个主要步骤:
•词法分析——它对给定单词的结构进行识别和分析,其中整个文本数据块在词法分析中被分解成段落、句子和词汇。
•解析(句法分析)——它涉及以一种显示单词之间的关系的方式对分析句子中的单词进行语法和单词排列分析,在这个阶段,任何不符合语法正确的句子都被拒绝,例如,“building lives in sita”将不会被语法分析器所接受
•语义分析——对给定的文本进行分析以从中提取意义。它通过对任务域中的语法结构和目标进行分析来完成。语义分析器拒绝不相关的句子,如“hot banana”。
•话语整合——正如我们所知,每个句子都与前一句话相互联系,基于倒数第二句的意义而言,任何句子都变得有意义。同样,它也使得后一句话变得有意义。
•语用分析——在此期间,常识性知识被重新定义了,解释了它们的真实意义到底是什么,它涉及到那些需要常识性知识的语言方面。
用图片来解读NLP(点击图片放大):
NLP应用程序:
1.光学字符识别
2.语音识别
3.机器翻译
4.自然语言生成
5.情绪分析
6.语义搜索
7.自然语言编程
8.情感计算
9.开发聊天机器人