友情提示:本文共有 2496 个字,阅读大概需要 5 分钟。
自然语言处理(NLP,Natural Language Processing)是人工智能研究人员早期关注的焦点。 但由于当时有限的计算能力,处理能力是相当薄弱的。 他们的目标是创建规则来解释单词和句子,但这些规则很复杂,而且无法扩展。 在某种程度上,早期的NLP更像是一种计算机语言。
但随着时间的推移,自然语言处理演化出了一个总体结构。 这一点非常关键,因为NLP处理的是非结构化数据,而非结构化数据是不可预测和难以解释的。
总体上看,自然语言处理包括以下两个关键步骤:
文本的清理和预处理:这涉及到使用标记化、词干化和词元化等技术来解析文本。
语言理解和生成:这绝对是处理过程中计算最密集的部分,通常使用深度学习算法。
接下来,我们将详细地研究不同的步骤。
第一步:清洁和预处理
在清理和预处理步骤中需要完成三件事:标记化、词干化和语义化。
标记化
在进行NLP之前,必须对文本进行解析并将其分割为不同的部分,这个过程被称为标记化。 例如,我们将下面这个句子:“John ate four cupcakes.” 的每个元素分开并分类。
看起来挺简单,不是吗?
标记化后,接着要对文本进行标准化。 这将需要对文本做一些转换以使其更容易分析,例如将大小写改为大写或小写,删除标点符号和缩写。
标准化很容易导致一些问题。 假设我们有一个含有"A.I."的句子。我们应该删除标点吗? 如果是的话,电脑知道“A I”是什么意思吗?
它可能不会。
有趣的是,即使是对单词,标准化也会对意思理解产生重大影响。 看看“fed”和“Fed”的区别就知道了。 Fed通常是美联储的另一个名字。
以下是其他一些问题:
空格问题:两个或更多的单词应该是一个标记,因为这些单词构成了一个复合短语。 一些例子包括“New York”和“Silicon Valley”。
科学词汇和短语:这些单词有连字符、括号和希腊字母是很常见的。 如果去掉这些字符,系统可能无法理解这些单词和短语的含义。
凌乱的文本:许多文件有语法和拼写错误。
句子拆分:像“MR.”或“Mrs.”这样的词 ,可能会因为后缀的句号而过早地结束一个句子。
不重要的单词:有些单词实际上对一个句子没有什么意义,比如“the”,“a”和“an”。 可以使用一个简单的停用词过滤器来删除它们。
正如我们所看到的,句子很容易被错误解析。这还是对于英语而言,如果是汉语和日语,语法问题可能会变得更加复杂和困难。 这些问题可能产生深远的影响。 由于标记化通常是自然语言处理的第一步,一些前期错误可能会在整个NLP过程中累计和传播。
词干化
词干化是将一个词还原为词根的过程,比如去掉词缀和后缀。 这对于搜索引擎来说是非常有效的,因为它需要使用集群来得到更相关的结果。 使用词干,搜索引擎可以找到更多的匹配,因为单词有更广泛的含义,甚至可以处理拼写错误等问题。 当使用人工智能应用程序时,这可以帮助提高整体理解。
词干化的算法有很多,其中大都相当简单, 但他们的结果好坏参半。
例如,波特算法认为“universal”与“university”和“universities”有着相同的词干,这一观察可能有历史基础,但并不具有语义相关性。 与此相对,波特算法不认为“theater”和“theatre”应该属于同一个词干。 由于诸如此类的原因,部分搜索引擎波特词干算法作为其英语词干化算法。
语义化
语义化类似于词干化。 但是它并不是简单地删除词缀或前缀,而是专注于寻找相似的词根词。 一个例子是“better”,我们可以把它词元化为“good”。 只要意思基本不变,这个方法就能奏效。 在我们的例子中,两者大致相似,但是“good”有更清晰的含义。 语元化也可以提供更好的搜索或语言理解,特别是在翻译中。
自然语言处理系统要想有效地运用语义化,就必须理解词语的含义和语境。 换句话说,这个过程通常比词干化有更好的性能。 另一方面,这也意味着算法更加复杂,需要更强大的计算能力。
第二步:理解并生成语言
一旦文本被转换成计算机可以处理的格式,那么自然语言处理系统就必须理解整个文本的意思。 在大多数情况下,这是最难的部分。
但多年来,研究人员开发了无数的技术来帮助解决问题,例如:
词性标记(POS,Tagging Parts of Speech):它扫描文本,并将每个单词指定为其正确的语法形式,如名词、动词、副词等。
组块:将根据短语分析单词。 例如,名词短语(NP)是作为动词主语或宾语的名词。
命名实体识别:这是用来识别代表地点、人员和组织的单词。
主题建模:在文本中寻找隐藏的模式和集群。 其中一种算法叫作潜狄利克雷分配(LDA, Latent Dirichlet Allocation),它基于无监督学习方法。 也就是说,将随机分配主题,然后计算机将迭代查找匹配。
我们可以在类似过程中使用深度学习模型。 它们可以扩展到更多的分析领域,包括无缝的语言理解和生成。
使用我们之前讨论过的卷积神经网络(CNN,Convolutional Neural Network),可以找到被翻译成特征图的单词簇。 这使得语言翻译、语音识别、情感分析和问答等应用程序成为可能。
CNN也存在一些问题。 例如,模型很难处理跨大距离依赖的文本。 但是有一些方法可以解决这个问题,比如使用时滞神经网络(TDNN,Time-Delayed Neural Networks)和动态卷积神经网络(DCNN,Dynamic Convolutional Neural Networks)。 这些方法在处理序列数据方面表现出了较高的性能。 由于可以记忆数据,循环神经网络(RNN,Recurrent Neural Network)在这方面也表现出更多成功的模型。
感谢您的阅读,我每周都会发布几次关于机器学习、人工智能、编程和所有与计算机科学相关的内容。
想了解更多精彩内容,快来关注科技创造财富
往期内容:
自然语言处理面临的主要挑战
尺有所短;寸有所长:了解机器人流程自动化的优缺点
机器人流程自动化—通向人工智能的便捷途径
了解深度学习的缺点:扬长避短 瑜不掩瑕
本文如果对你有帮助,请点赞收藏《机器识文断字的秘密:人工智能如何理解语言》,同时在此感谢原作者。