📜  自然语言工具包-简介

📅  最后修改于: 2020-10-14 09:06:46             🧑  作者: Mango


什么是自然语言处理(NLP)?

在人类可以说,读,写的帮助下进行交流的方法是语言。换句话说,我们人类可以用我们的自然语言思考,制定计划,做出决定。这里最大的问题是,在人工智能,机器学习和深度学习的时代,人类可以用自然语言与计算机/机器进行通信吗?开发NLP应用程序对我们来说是一个巨大的挑战,因为计算机需要结构化的数据,但是另一方面,人类的言语是非结构化的,而且本质上常常是模棱两可的。

自然语言是计算机科学(尤其是AI)的子领域,它使计算机/机器能够理解,处理和操纵人类语言。简而言之,NLP是一种用于分析,理解和从人类自然语言(如印地语,英语,法语,荷兰语等)中获取含义的机器。

它是如何工作的?

在深入研究NLP的工作之前,我们必须必须了解人类如何使用语言。每天,我们人类都会使用成千上万个单词,而其他人类会对其进行解释并相应回答。对人类来说这是一种简单的交流,不是吗?但是我们知道单词的含义远不止于此,而且我们总是从我们所说的话和怎么说中得到一个上下文。这就是为什么我们可以说而不是专注于语音调制,而NLP确实借鉴了上下文模式。

让我们通过一个例子来理解它-

Man is to woman as king is to what?
We can interpret it easily and answer as follows:
Man relates to king, so woman can relate to queen.
Hence the answer is Queen.

人们如何知道什么词意味着什么?这个问题的答案是我们通过经验学习。但是,机器/计算机如何学习相同的东西?

让我们通过以下简单的步骤来理解它-

  • 首先,我们需要为机器提供足够的数据,以便机器可以从经验中学习。

  • 然后,机器将使用深度学习算法,根据我们之前提供的数据及其周围的数据创建单词向量。

  • 然后,通过对这些词向量执行简单的代数运算,机器将能够以人类的身份提供答案。

NLP的组成部分

下图表示自然语言处理(NLP)的组件-

组件

形态加工

形态学处理是NLP的第一部分。它包括将大量的语言输入分成对应于段落,句子和单词的标记集。例如,像“每天”这样的单词可以分为两个子单词标记作为“每天”

语法分析

语法分析是第二个组件,它是NLP最重要的组件之一。该组件的目的如下-

  • 检查句子的格式是否正确。

  • 将其分解为一个结构,以显示不同单词之间的句法关系。

  • 例如,语法分析器将拒绝诸如“学校到学生”的句子。

语义分析

语义分析是NLP的第三个组成部分,用于检查文本的含义。它包括绘图的确切含义,或者我们可以从文本中说出字典的含义。例如,“这是热冰淇淋”之类的句子。将被语义分析器丢弃。

语用分析

语用分析是自然语言处理的第四部分。它包括将每个上下文中存在的实际对象或事件与由先前组件(即语义分析)获得的对象引用进行匹配。例如, “将水果放在桌子上的篮子里”之类的句子可以有两种语义解释,因此,语用分析器会在这两种可能性之间进行选择。

NLP应用示例

NLP是一种新兴技术,它衍生了我们近来所见过的各种形式的AI。对于当今和未来越来越多的认知应用,使用NLP来创建人与机器之间的无缝交互界面将仍然是重中之重。以下是NLP的一些非常有用的应用程序。

机器翻译

机器翻译(MT)是自然语言处理的最重要应用之一。 MT基本上是将一种源语言或文本翻译成另一种语言的过程。机器翻译系统可以是双语的也可以是多语言的。

打击垃圾邮件

由于不需要的电子邮件数量激增,垃圾邮件过滤器变得很重要,因为它是防范此问题的第一道防线。通过将其假阳性和假阴性问题视为主要问题,可以使用NLP的功能来开发垃圾邮件过滤系统。

N-gram建模,词干和贝叶斯分类是可用于垃圾邮件过滤的一些现有NLP模型。

信息检索与网页搜索

大多数搜索引擎,例如Google,Yahoo,Bing,WolframAlpha等,都将其机器翻译(MT)技术基于NLP深度学习模型。这种深度学习模型允许算法读取网页上的文本,解释其含义并将其翻译为另一种语言。

自动文本汇总

自动文本摘要是一种创建较长文本文档的简短,准确摘要的技术。因此,它有助于我们在更少的时间内获得相关信息。在这个数字时代,我们迫切需要自动文本摘要,因为我们在互联网上的信息泛滥并没有停止。 NLP及其功能在开发自动文本摘要中起着重要作用。

语法校正

拼写校正和语法校正是Microsoft Word等文字处理器软件的一项非常有用的功能。自然语言处理(NLP)被广泛用于此目的。

问答式

问答是自然语言处理(NLP)的另一个主要应用,着眼于构建系统,该系统可以自动回答用户以其自然语言发布的问题。

情绪分析

情感分析是自然语言处理(NLP)的另一重要应用。顾名思义,情感分析用于-

  • 确定几个职位之间的情感

  • 确定没有明确表达情绪的情绪。

诸如Amazon,ebay等在线电子商务公司正在使用情感分析来识别其在线客户的意见和情感。这将帮助他们了解客户对他们的产品和服务的看法。

语音引擎

Siri,Google Voice,Alexa等语音引擎均基于NLP构建,因此我们可以使用自然语言与它们进行交流。

实施NLP

为了构建上述应用程序,我们需要具有特定的技能,并且对语言和工具有很好的理解,可以有效地处理语言。为此,我们提供了各种开源工具。其中一些是开源的,而其他一些则是由组织开发以构建自己的NLP应用程序的。以下是一些NLP工具的列表-

  • 自然语言工具包(NLTK)

  • 公开NLP

  • UIMA

  • 基因主义

  • 斯坦福工具包

这些工具大多数都是用Java编写的。

自然语言工具包(NLTK)

在上述NLP工具中,NLTK在易用性和概念解释方面得分很高。 Python的学习曲线非常快,并且NLTK是用Python编写的,因此NLTK也具有很好的学习工具。 NLTK已合并了大多数任务,例如标记化,词干,词法化,标点,字符计数和字数统计。它非常优雅,易于使用。