自然语言处理

来自集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织
跳到导航 跳到搜索
网页自动化在线客服,一个自然语言处理起重要作用的例子。[1]

自然语言处理 Natural Language Processing语言学 Linguistics计算机科学 Computer Science信息工程 Infomation Engineering人工智能 Artificial Intelligence等领域的分支学科。它涉及到计算机与人类语言(自然语言)之间的交互,特别是如何编写计算机程序来处理和分析大量的自然语言数据。

自然语言处理主要面临着语音识别 Speech Recognition自然语言理解 Natural Language Understanding自然语言生成 Natural Language Generation三大挑战。

历史

尽管相关工作可以追溯到更早,但自然语言处理(NLP)还是通常被认为始于20世纪50年代。

符号型 NLP (1950s - 1990s)

  • 1950s:1950年,艾伦 · 图灵发表《计算机器与智能》一文,提出图灵测试 Turing Test作为判断机器智能程度的标准。

1954年乔治敦大学成功将六十多个俄语句子自动翻译成了英语。作者声称在三到五年内将解决机器翻译问题[2],然而,事实上的进展要缓慢得多,1966年的ALPAC报告认为,长达10年的研究并未达到预期目标。自此之后,投入到机器翻译领域的资金急剧减少。直到20世纪80年代后期,当第一个统计机器翻译 Statistical Machine Translation系统被开发出来以后,机器翻译的研究才得以进一步推进。

  • 1960sSHRDLU和ELIZA是于20世纪60年代开发的两款非常成功的自然语言处理系统。其中,SHRDLU是一个工作在词汇有限的“积木世界”的自然语言系统;而ELIZA则是一款由约瑟夫·维森鲍姆在1964年至1966年之间编写的罗杰式模拟心理治疗师。ELIZA几乎没有使用任何有关人类思想或情感的信息,但有时却能做出一些令人吃惊的类似人类之间存在的互动。当“病人”的问题超出了它有限的知识范围时,ELIZA很可能会给出一般性的回复。例如,它可能会用“你为什么说你头疼? ”来回答病人提出的“我的头疼”之类的问题。
  • 1970s: 20世纪70年代,程序员开始编写概念本体论 Conceptual Ontology程序,将真实世界的信息结构化为计算机可理解的数据,如 MARGIE (Schank,1975)、 SAM (Cullingford,1978)、 PAM (Wilensky,1978)、 TaleSpin (Meehan,1976)、 QUALM (Lehnert,1977)、 Politics (Carbonell,1979)和 Plot Units (Lehnert,1981)。与此同时也出现了许多聊天机器人,如 PARRY,Racter 和 Jabberwacky。
  • 1980s:1980年代和1990年代初标志着NLP中符号方法(symbolic methods)的鼎盛时期。当时的重点领域包括基于规则的解析(例如,HPSG作为生成语法的计算操作化的发展),形态学(例如,二级形态学[3]),语义学(例如,Lesk算法),参考reference(例如,向心理论[4])和其他自然语言理解领域继续进行其他研究,例如与Racter和Jabberwacky合作开发的聊天机器人。一个重要的发展(最终导致1990年代的统计转变)是在此期间定量​​评估的重要性日益提高。[5]
--打豆豆讨论)"一个重要的发展(最终导致1990年代的统计转变)是在此期间定量​​评估的重要性日益提高"一句为意译

统计自然语言处理(1990s-2010s)

直到20世纪80年代,大多数自然语言处理系统仍依赖于复杂的、人工制定的规则。然而从20世纪80年代末开始,随着语言处理机器学习 Machine Learning算法的引入,自然语言处理领域掀起了一场革命。这是由于计算能力的稳步增长(参见摩尔定律 Moore's Law)和乔姆斯基语言学理论 Chomskyan Theories of Linguistics主导地位的削弱(如转换语法 Transformational Grammar)。乔姆斯基语言学理论并不认同语料库语言学,而语料库语言学 Corpus Linguistic却是语言处理机器学习方法的基础。[6]一些最早被使用的机器学习算法,比如决策树Decision Tree,使用“如果...那么..."(if-then)硬判决系统,类似于之前既有的人工制定的规则。然而,词性标注 Part-of-speech Tagging隐马尔可夫模型 Hidden Markov Models 引入到自然语言处理中,并且研究重点被放在了统计模型上。统计模型将输入数据的各个特征都赋上实值权重,从而做出软判决 Soft Decision概率决策 Probabilistic Decision。许多语音识别系统现所依赖的缓存语言模型就是这种统计模型的例子。这种模型在给定非预期输入,尤其是包含错误的输入(在实际数据中这是非常常见的),并且将多个子任务整合到较大系统中时,结果通常更加可靠。

 --Thingamabob讨论)"对词性标注的需求使得隐马尔可夫模型被引入到自然语言处理中"一句为意译
  • 1990年代:许多早期瞩目的成功出现在机器翻译 Machine Translation领域,特别是IBM研究所的工作,他们先后开发了更复杂的统计模型。这些系统得以利用加拿大议会和欧盟编制的多语言文本语料库,因为法律要求所有行政诉讼必须翻译成相应政府系统官方语言。然而其他大多数系统都必须为所执行的任务专门开发的语料库,这一直是其成功的主要限制因素。因此,大量的研究开始利用有限的数据进行更有效地学习。

神经NLP(2010s-至今)

二十一世纪一零年代,表示学习 Representation Learning深度神经网络Deep Neural Network式的机器学习方法在自然语言处理中得到了广泛的应用,部分原因是一系列的结果表明这些技术可以在许多自然语言任务中获得最先进的结果[7][8],比如语言建模、语法分析等[9][10][11]。流行的技术包括使用词嵌入Word Embedding来获取单词的语义属性,以及增加高级任务的端到端学习(如问答) ,而不是依赖于分立的中间任务流程(如词性标记和依赖性分析)。在某些领域,这种转变使得NLP系统的设计发生了重大变化,因此,基于深层神经网络的方法可以被视为一种有别于统计自然语言处理的新范式。例如,神经机器翻译(neural machine translation,NMT)一词强调了这样一个事实:基于深度学习的机器翻译方法直接学习序列到序列变换,从而避免了统计机器翻译(statistical machine translation,SMT)中使用的词对齐和语言建模等中间步骤。

基于规则的NLP vs. 统计NLP(SNLP)

在早期,许多语言处理系统是通过人工编码一组规则来设计的[12][13]: 例如通过编写语法或设计用于词干提取的启发式 Heuristic规则。 .

自20世纪80年代末和90年代中期的“统计革命”ref name=johnson:eacl:ilcl09>Mark Johnson. How the statistical revolution changes (computational) linguistics. Proceedings of the EACL 2009 Workshop on the Interaction between Linguistics and Computational Linguistics.</ref>[14]以来,许多自然语言处理研究都深度依赖机器学习。机器学习的范式要求通过分析大型语料库(corpora,语料库corpus的复数形式,是一组可能带有人或计算机标注的文档)使用统计学推论自动学习这些规则。

许多不同类型的机器学习算法已被应用在自然语言处理任务中。这些算法将输入数据的大量“特性”作为输入。一些最早被使用的算法,比如决策树Decision Tree,使用“如果...那么..."(if-then)硬判决系统,类似于之前既有的人工制定的规则。然而后来人们将研究重点聚焦在统计模型上。统计模型将输入数据的各个特征都赋上实值权重,从而做出软判决 Soft Decision概率决策 Probabilistic Decision。这种模型的优点是,它们可以表示出许多不同的可能答案的相对确定性,而不仅仅是一个答案。当这种模型作为一个更大系统的模块时,产生的结果更加可靠。

基于机器学习算法的系统比人工制定的规则有许多优点:

  • 机器学习的学习过程自动聚焦于最常见的例子,然而人工制定的规则常常不知道从何下手
  • 自动学习过程中可以利用统计推断算法生成对不常见输入(包含未见过的字词或结构)、错误输入(如拼错或无意遗漏词语)有较好鲁棒性的模型。通常用人工制定的规则或建立一个人工制定规则的软决策系统处理这样的输入是极其困难、易于出错且耗费时间的。

基于自动学习规则的系统可以仅用更多的输出就能得到更精确的结果。然而基于人工制定规则的系统只能通过把规则变得复杂来实现提高结果精确度,而制定更复杂的规则这件事本身就很困难。而且基于人工制定规则的系统有一定的限制,超过限制后系统就会变得不可控。然而制造更多数据供给机器学习系统只需要增加相应的人工标注的时间,而且这个过程的复杂度不会有显著改变。

主要评估及任务(Major evaluations and tasks)

以下列出了自然语言处理中最常被研究的任务。其中一些任务在具有直接的实际应用,而其他任务则通常作为子任务,用于帮助解决更大的任务。

尽管自然语言处理的各种任务紧密交错,但为了方便,它们常被细分为不同的类别。下面给出一个粗略的分类。

句法(Syntax)

语法归纳 Grammar Induction[15]: 生成描述语言句法结构的规范语法。

词形还原 Lemmatization: 只去掉词形变化的词尾,并返回词的基本形式,也称词目 Lemma

语素切分 Morphological Segmentation: 将单词分成独立的语素 Morpheme,并确定语素的类别。这项任务的难度很大程度上取决于所考虑的语言的形态(即句子的结构)的复杂性。英语有相当简单的语素,特别是屈折语素 Inflectional Morphology,因此通常可以完全忽略这个任务,而简单地将一个单词的所有可能形式(例如,"open,opens,opened,opening")作为单独的单词。然而,在诸如土耳其语或曼尼普尔语这样的语言中[16] ,这种方法是不可取的,因为每个词都有成千上万种可能的词形。

词性标注 Part-of-speech Tagging: 给定一个句子,确定每个词的词性(part of speech, POS)。许多单词,尤其是常见的单词,可以拥有多种词性。例如,“book”可以是名词(书本)(“ the book on the table”)或动词(预订)(“to book a flight”); “set”可以是名词、动词或形容词; “out”至少有五种不同的词性。有些语言比其他语言有更多的这种模糊性。像英语这样几乎没有屈折形态的语言尤其容易出现这种歧义。汉语是一种在动词化过程中会变音调的语言,所以容易出现歧义现象。这样的词形变化不容易通过正字法中使用的实体来传达预期的意思。

--Thingamabob讨论)“‘out’至少有五种不同的词性”一句为意译

语法分析 Parsing: 确定给定句子的语法树 Parse tree(语法分析)。自然语言的语法是模糊的,典型的句子有多种可能的分析: 也许会让人有些吃惊,一个典型的句子可能有成千上万个潜在的语法分析(其中大多数对于人类来说是毫无意义的)。分析类型主要有两种: 依存分析 Dependency Parsing成分分析 Constituency Parsing。依存句法分析侧重于句子中单词之间的关系(标记主要对象和谓语等) ,而成分分析侧重于使用概率上下文无关文法 Probabilistic Context-free Grammar, PCFG(probabilistic context-free grammar,PCFG)构建语法树(参见随机语法 Stochastic Grammar)。

断句 Sentence breaking(也被称为句子边界消歧 Sentence Boundary Disambiguation) : 给定一段文本,找到句子边界。句子的边界通常用句号或其他标点符号来标记,但是这些标点符号也会被用于其他目的(例如,标记缩写)。

词根化 Stemming: 把词形变化(或者派生出来的)的词缩减到其词根形式的过程。(例如,close 是“ closed”、“ closing”、“ close”、“ closer”等的词根。).

分词 Word Segmentation: 把一段连续的文本分割成单独的词语。对于像英语之类的语言是相对简单的,因为单词通常由空格分隔。然而,对于汉语、日语和泰语的文字,并没有类似这种方式的词语边界标记,在这些语言中,文本分词是一项重要的任务,要求掌握语言中词汇和词形的知识。有时这个过程也被用于数据挖掘中创建词包(bag of words,BOW)。

术语抽取 Terminology Extraction: 术语抽取的目标是从给定的语料库中自动提取相关术语。

语义(Semantics)

词汇语义学 Lexical Semantics: 每个词在上下文中的计算意义是什么?

分布语义 Distributional semantics: 我们如何从数据中学习语义表示?

机器翻译 Machine Translation: 将文本从一种语言自动翻译成另一种语言。这是最困难的问题之一,也是“人工智能完备”问题的一部分,即需要人类拥有的所有不同类型的知识(语法、语义、对现实世界的事实的认知等)才能妥善解决。

命名实体识别 Named entity Recognition, NER: 给定一个文本流,确定文本中的哪些词能映射到专有名称,如人或地点,以及这些名称的类型(例如:人名、地点名、组织名)。虽然大写有助于识别英语等语言中的命名实体,但这种信息对于确定命名实体的类型无用,而且,在多数情况下,这种信息是不准确、不充分的。比如,一个句子的第一个字母也是大写的,以及命名实体通常跨越几个单词,只有某些是大写的。此外,许多其他非西方文字的语言(如汉语或阿拉伯语)没有大写,甚至有大写的语言也不一定能用它来区分名字。例如,德语中多有名词都大写,法语和西班牙语中作为形容词的名称不大写。

自然语言生成: 将计算机数据库或语义意图中的信息转换为人类可读的语言。

自然语言理解 Natural Language Understanding: 将文本块转换成更加正式的表示形式,比如更易于计算机程序处理的一阶逻辑结构 First-order Logic Structure。自然语言理解包括从多种可能的语义中识别预期的语义,这些语义可以由有序符号表现的自然语言表达中派生出来。引入和创建语言元模型和本体是有效但经验化的做法。自然语言语义要求清楚明了,而不能是混有隐含的猜测,如封闭世界假设与开放世界假设、主观的是 / 否与客观的真 / 假[17]

光学字符识别 Optical Character Recognition,OCR) : 给定一幅印有文字的图像,识别相应的文本。

问答: 给出一个用人类语言表述的问题,确定它的答案。典型的问题都有一个明确的正确答案(例如“加拿大的首都是哪里? ”),但有时候也需要考虑开放式的问题(比如“生命的意义是什么? ”)。最近一些工作在研究更复杂的问题.[18]

文本蕴涵识别 Recognizing Textual Entailment: 给定两个文本片段,确定其中一个是否蕴含了另一个,或者是否蕴含了另一个的否定,或者是否允许另一个文本中立[19]


关系抽取 Relation Extraction: 给定一个文本块,识别命名实体之间的关系(例如:谁嫁给了谁)。

情感分析 Sentiment Analysis(参见多模态情感分析 Multimodal Sentiment Analysis): 从一组文档中提取主观信息,通常使用在线评论来确定特定对象的“极性”。情感分析在识别社会媒体中的舆论趋势和市场营销中尤其有效。

话题分割和识别: 给定一个文本块,将其分成几个部分,每个部分都有一个主题,并确定各个部分的主题。

词义消歧 Word Sense Disambiguation: 从词语的多个意思中选出最符合上下文的一个意思。为了解决这个问题,我们通常会从字典或如WordNet的在线资源中取一系列的单词和相关的词义。

话语(Discourse)

自动摘要 Automatic Summarization:自动生成一个可读的文本摘要。常用于提供已知类型如研究论文、报纸财经版的文章等文本的摘要。

共指消解 Coreference Resolution: 给定一个句子或更大的文本块,确定哪些单词(“指称”)指的是相同的对象(“实体”)。指代消解就是这项任务的一个具体实例,它专门研究代词与所指名词或名称的匹配问题。共指消解的一般任务还包括识别指称之间的“桥接关系”。例如,在“他从前门进入了约翰的房子”这句话中,“前门”是一种指称,需要确定的桥接关系是:所指的门是约翰的房子的前门(而不是其他一些也可以指称的结构)。

话语分析 Discourse Analysis:这个部分包括几个相关任务。一个是识别相连文本的语篇结构,即句子之间的话语关系(例如:详述、解释、对比)。还有识别和分类文本块中的言语行为(例如:是-否问题,内容问题,陈述,断言等)

语音(Speech)

语音识别 Speech Recognition: 给定一个或多个人说话的声音片段,确定语音的文本内容。这是文本转语音的反过程,是一个极其困难被称为“人工智能完备”(见上文)的问题。自然语音中连续的单词之间几乎没有停顿,因此语音分割是语音识别的一个必要的子任务(见下文)。在大多数口语中,连续字母的声音在“协同发音”中相互融合,因此将模拟信号转换为离散字符会是一个非常困难的过程。此外,由于说同一个词时不同人的口音不同,所以语音识别软件必须能够识别文本相同的不同输入。

语音分割 Speech Segmentation: 给一个人或人说话的声音片段,将其分成单词。这是语音识别的一个子任务,通常两者一起出现。

语音合成 Text-to-speech : 给定一个文本,把这些文字转换为口语表达。语音合成可以用来帮助视力受损的人[20]

对话(Dialogue)

第一部由人工智能创作的作品于2018年出版,名为《路》(1 the Road) ,以小说的形式发售,包含6000万字。

参见

参考文献

  1. Kongthon, Alisa; Sangkeettrakarn, Chatchawal; Kongyoung, Sarawoot; Haruechaiyasak, Choochart (October 27–30, 2009). Implementing an online help desk system based on conversational agent. MEDES '09: The International Conference on Management of Emergent Digital EcoSystems. France: ACM. doi:10.1145/1643823.1643908.
  2. Hutchins, J. (2005). "The history of machine translation in a nutshell" (PDF).[self-published source]
  3. Koskenniemi, Kimmo (1983), Two-level morphology: A general computational model of word-form recognition and production (PDF), Department of General Linguistics, University of Helsinki
  4. Joshi, A. K., & Weinstein, S. (1981, August). Control of Inference: Role of Some Aspects of Discourse Structure-Centering. In IJCAI (pp. 385-387).
  5. Guida, G.; Mauri, G. (July 1986). "Evaluation of natural language processing systems: Issues and approaches". Proceedings of the IEEE. 74 (7): 1026–1035. doi:10.1109/PROC.1986.13580. ISSN 1558-2256. S2CID 30688575.
  6. Chomskyan linguistics encourages the investigation of "corner cases" that stress the limits of its theoretical models (comparable to pathological phenomena in mathematics), typically created using thought experiments, rather than the systematic investigation of typical phenomena that occur in real-world data, as is the case in corpus linguistics. The creation and use of such corpora of real-world data is a fundamental part of machine-learning algorithms for natural language processing. In addition, theoretical underpinnings of Chomskyan linguistics such as the so-called "poverty of the stimulus" argument entail that general learning algorithms, as are typically used in machine learning, cannot be successful in language processing. As a result, the Chomskyan paradigm discouraged the application of such models to language processing.
  7. Goldberg, Yoav (2016). "A Primer on Neural Network Models for Natural Language Processing". Journal of Artificial Intelligence Research. 57: 345–420. arXiv:1807.10854. doi:10.1613/jair.4992.
  8. Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). Deep Learning. MIT Press. http://www.deeplearningbook.org/. 
  9. Jozefowicz, Rafal; Vinyals, Oriol; Schuster, Mike; Shazeer, Noam; Wu, Yonghui (2016). Exploring the Limits of Language Modeling. arXiv:1602.02410. Bibcode 2016arXiv160202410J. 
  10. Choe, Do Kook; Charniak, Eugene. "Parsing as Language Modeling". Emnlp 2016.
  11. Vinyals, Oriol; Kaiser, Lukasz (2014). "Grammar as a Foreign Language" (PDF). Nips2015. arXiv:1412.7449. Bibcode:2014arXiv1412.7449V. {{cite journal}}: Unknown parameter |displayauthors= ignored (help)
  12. Winograd, Terry (1971). Procedures as a Representation for Data in a Computer Program for Understanding Natural Language (Thesis).
  13. Schank, Roger C.; Abelson, Robert P. (1977). Scripts, Plans, Goals, and Understanding: An Inquiry Into Human Knowledge Structures. Hillsdale: Erlbaum. ISBN 0-470-99033-3. 
  14. Philip Resnik. Four revolutions. Language Log, February 5, 2011.
  15. Klein, Dan; Manning, Christopher D. (2002). "Natural language grammar induction using a constituent-context model" (PDF). Advances in Neural Information Processing Systems.
  16. Kishorjit, N.; Vidya, Raj RK.; Nirmal, Y.; Sivaji, B. (2012). "Manipuri Morpheme Identification" (PDF). Proceedings of the 3rd Workshop on South and Southeast Asian Natural Language Processing (SANLP). COLING 2012, Mumbai, December 2012: 95–108.{{cite journal}}: CS1 maint: location (link)
  17. Duan, Yucong; Cruz, Christophe (2011). "Formalizing Semantic of Natural Language through Conceptualization from Existence". International Journal of Innovation, Management and Technology. 2 (1): 37–42. Archived from the original on 2011-10-09.
  18. Mittal (2011). "Versatile question answering systems: seeing in synthesis" (PDF). International Journal of Intelligent Information and Database Systems. 5 (2): 119–142. doi:10.1504/IJIIDS.2011.038968.
  19. PASCAL Recognizing Textual Entailment Challenge (RTE-7) https://tac.nist.gov//2011/RTE/
  20. Yi, Chucai; Tian, Yingli (2012), "Assistive Text Reading from Complex Background for Blind Persons", Camera-Based Document Analysis and Recognition (in English), Springer Berlin Heidelberg, pp. 15–28, CiteSeerX 10.1.1.668.869, doi:10.1007/978-3-642-29364-1_2, ISBN 9783642293634


扩展阅读

! -- 按姓氏的字母顺序 --


模板:Commons


模板:Natural Language Processing

模板:Portal bar

Category:Computational linguistics

类别: 计算语言学

Category:Speech recognition

类别: 语音识别

Category:Computational fields of study

类别: 研究的计算领域

Category:Artificial intelligence

类别: 人工智能


This page was moved from wikipedia:en:Natural language processing. Its edit history can be viewed at 自然语言处理/edithistory