深圳市航顺芯片技术研发有限公司
直播中

迷你洼哇

11年用户 553经验值
私信 关注
[问答]

什么是自然语言处理

什么是自然语言处理?
自然语言处理任务有哪些?
自然语言处理的方法是什么?

回帖(1)

柳杨

2021-9-8 18:13:35
  什么是自然语言处理?
  尽管存在自然语言处理失败的故事,但自然语言处理(NLP)目前是深度学习的主要成功应用领域之一。 自然语言处理的总体目标是使计算机能够理解人类语言并根据人类语言行事。 我们将在下一部分中进一步细分。
  从历史上看,自然语言处理是由基于规则的系统处理的,最初是通过为例如语法和词干编写规则来进行的。 除了手工编写这些规则所需的大量工作之外,它们往往效果不佳。
  为什么不? 让我们考虑一下应该是一个简单的示例,即拼写。 在某些语言(例如西班牙语)中,拼写确实很容易并且有规则。 但是,任何学习英语作为第二语言的人都知道英语的拼写和发音可能会不规则。 想象一下,必须编写出许多例外的规则,例如,年级学校的拼写规则“ I在E之前,E在C之外,或者听起来像A在邻居或称重中。” 事实证明, “ E之前的I”规则几乎不是规则 。 准确时间大约为3/4,它有许多类别的异常。
  在1980年代末和1990年代初几乎放弃了手写规则之后,NLP社区开始使用统计推断和机器学习模型 。 尝试了许多模型和技术。 当将它们推广到超出其最初的用途时,几乎没有幸免。 一些更成功的方法已在多个领域中使用。 例如,隐藏马尔可夫模型在1970年代用于语音识别,并在1980年代和1990年代用于生物信息学(特别是蛋白质和DNA序列的分析)。
  基于短语的统计机器翻译模型仍然需要针对每种语言对进行调整,其准确性和精确度主要取决于可监督学习训练的文本语料库的质量和大小。 对于法语和英语,加拿大议事录(议会程序,自1867年以来就以双语进行)是并且对于监督学习非常宝贵。 欧洲联盟的诉讼程序提供了更多的语言,但期限却更少。
  在2016年秋天,Google Translate突然从平均与原始语言含义含糊不清的“文字沙拉”的产生,转变为经常发出优美,连贯的句子,至少对于受支持的语言对而言例如英语-法语,英语-汉语和英语-日语。 从那时起,添加了更多的语言对。
  这种显着改善是Google Brain和Google Translate团队经过9个月的共同努力 ,将Google Translate从使用旧的基于短语的统计机器翻译算法升级为使用经过深度学习和词嵌入训练的神经网络进行改造的结果, TensorFlow框架 。 在不到一年的时间里,神经机器翻译(NMT)取代了统计机器翻译(SMT)成为最新技术。
  那是魔术吗? 一点都不。 这甚至都不容易。 从事转换工作的研究人员可以使用大量翻译来训练他们的网络,但是他们很快发现他们需要数千个 GPU进行训练,并且他们需要创建一种新型的芯片,即Tensor Processing部门(TPU),可在经过训练的神经网络上大规模运行Google翻译。 他们还试图训练一个几乎与人类翻译者一样好的模型,因此他们不得不不得不数百次地完善自己的网络。
  自然语言处理任务
  除了Google Translate解决的机器翻译问题外, 主要的NLP任务还包括自动摘要,共引用解析(确定哪些单词指代相同的对象,尤其是代词),命名实体识别(识别人,地点和组织) ,自然语言生成(将信息转换为可读语言),自然语言理解(将文本块转换为更正式的表示形式,例如一阶逻辑结构),词性标记,情感分析(将文本分类为对有利或不利)特定对象)和语音识别(将音频转换为文本)。
  尽管最新一代的基于神经网络的NLP系统有时可以省去中间步骤,但是主要的NLP任务通常被分解为子任务。 例如,一个名为Translatotron的实验性Google语音 翻译器可以通过操作频谱图直接将西班牙语语音转换为英语语音,而无需语音到文本,语言翻译和文本到语音的中间步骤。 Translatotron尚不十分准确,但足以证明概念。
  自然语言处理方法
  像任何其他机器学习问题一样,NLP问题通常通过一系列过程来解决,其中大多数过程旨在为建模准备数据。 DJ Sarkar 在使用Python编写的有关NLP的出色教程中列出了标准的工作流程:文本预处理-》文本解析和探索性数据分析-》文本表示和特征工程-》建模和/或模式挖掘-》评估和部署。
  Sarkar使用Beautiful Soup从抓取的网站中提取文本,然后使用Natural Language Toolkit(NLTK)和spaCy通过对文本进行标记,词干化和词形化以及删除停用词和扩大收缩来对文本进行预处理。 然后,他继续使用NLTK和spaCy标记语音部分,执行浅层解析,并提取Ngram块进行标记:单字组,双字组和三字组。 他使用NLTK和Stanford Parser生成解析树,并使用spaCy生成依赖树并执行命名实体识别。
  萨卡(Sarkar)继续使用几种无监督的方法进行情感分析,因为他的示例数据集尚未被标记为进行监督的机器学习或深度学习训练。 在随后的文章中 ,萨卡(Sarkar)讨论了使用TensorFlow访问Google的通用语句嵌入模型并执行转移学习来分析电影评论数据集以进行情感分析。
  如您所见,如果您阅读这些文章并通过Jupyter笔记本进行阅读,则没有一种通用的最佳文本分析模型或算法。 萨卡(Sarkar)不断尝试多种模型和算法,以查看哪种模型最适合他的数据。
  有关NLP的最新基于深度学习的模型和方法的回顾,我可以推荐自称Elvis的AI教育家推荐这篇文章 。
  自然语言处理服务
  您期望Amazon Web Services,Microsoft Azure和Google Cloud除了提供众所周知的语音识别和语言翻译服务外,还提供一种或另一种自然语言处理服务。 当然可以,不仅可以使用通用的NLP模型,还可以使用定制的NLP。
  Amazon Comprehend是一种自然语言处理服务,可从非结构化文本中提取关键短语,地点,人们的名字,品牌,事件和情感。 Amazon Comprehend使用预先训练的深度学习模型,并识别相当普通的地方和事物。 如果您想扩展此功能以标识更多特定的语言,则可以自定义Amazon Comprehend以标识特定于域的实体并将文档归类到您自己的类别中
  Microsoft Azure具有多个NLP服务。 文本分析可识别文本块的语言,情感,关键短语和实体。 支持的功能取决于语言。
  语言理解(LUIS)是用于社交媒体应用程序,聊天机器人和启用语音的桌面应用程序的可自定义自然语言界面。 您可以使用预构建的LUIS模型,预构建的特定于域的模型或具有机器训练或文字实体的自定义模型。 您可以使用创作API或LUIS门户构建自定义LUIS模型。
  为了更精通技术,Microsoft发布了一篇论文和代码,向您展示如何使用Azure机器学习服务为自定义应用程序微调BERT NLP模型 。
  Google Cloud提供了预先训练的自然语言API和可自定义的AutoML自然语言 。 Natural Language API在文本中发现语法,实体和情感,并将文本分类为一组预定义的类别。 AutoML自然语言使您可以使用深度转移学习为自己的类别集训练自定义分类器。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分