计算机科学

首页 > 计算机科学

自然语言处理

2018-07-27 09:50:47     所属分类:人机互动

自然语言处理英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。

自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

目录

  • 1 历史
  • 2 任务和限制
  • 3 实际问题
  • 4 自然语言处理的主要范畴
  • 5 自然语言处理研究的难点
    • 5.1 单词的边界界定
    • 5.2 词义的消歧
    • 5.3 句法的模糊性
    • 5.4 有瑕疵的或不规范的输入
    • 5.5 语言行为与计划
  • 6 当前自然语言处理研究的发展趋势
  • 7 统计自然语言处理
    • 7.1 相关实例
  • 8 延伸阅读
  • 9 外部链接
  • 10 参见

历史

自然语言处理大体是从1950年代开始,虽然更早期也有作为。1950年,图灵发表论文“计算机器与智能英语Computing Machinery and Intelligence”,提出现在所谓的“图灵测试”作为判断智能的条件。

1954年的乔治城实验英语Georgetown-IBM experiment涉及全部自动翻译英语automatic translation超过60句俄文成为英文。研究人员声称三到五年之内即可解决机器翻译的问题。[1]不过实际进展远低于预期,1966年的ALPAC报告英语ALPAC report发现十年研究未达预期目标,机器翻译的研究经费遭到大幅削减。一直到1980年代末期,统计机器翻译系统发展出来,机器翻译的研究才得以更上一层楼。

1960年代发展特别成功的NLP系统包括SHRDLU英语SHRDLU——一个词汇设限、运作于受限如“积木世界英语blocks world”的一种自然语言系统,以及1964-1966年约瑟夫·维森鲍姆模拟“个人中心治疗”而设计的ELIZA英语ELIZA——几乎未运用人类思想和感情的讯息,有时候却能呈现令人讶异地类似人之间的互动。“病人”提出的问题超出ELIZA 极小的知识范围之时,可能会得到空泛的回答。例如问题是“我的头痛”,回答是“为什么说你头痛?”

1970年代,程序员开始设计“概念本体论”(conceptual ontologies)的程式,将现实世界的资讯,架构成电脑能够理解的资料。实例有MARGIE、SAM、PAM、TaleSpin、QUALM、Politics以及Plot Unit。许多聊天机器人在这一时期写成,包括PARRY英语PARRYRacter英语Racter 以及Jabberwacky英语Jabberwacky

一直到1980年代,多数自然语言处理系统是以一套复杂、人工订定的规则为基础。不过从1980年代末期开始,语言处理引进了机器学习的算法,NLP产生革新。成因有两个:运算能力稳定增加(参见摩尔定律);以及乔姆斯基 语言学理论渐渐丧失主导(例如转换-生成文法)。该理论的架构不倾向于语料库——机器学习处理语言所用方法的基础。有些最早期使用的机器学习算法,例如决策树,是硬性的、“如果-则”规则组成的系统,类似当时既有的人工订定的规则。不过词性标记英语part-of-speech tagging将隐马尔可夫模型引入NLP,并且研究日益聚焦于软性的、以机率做决定的统计模型,基础是将输入资料里每一个特性赋予代表其分量的数值。许多语音识别现今依赖的快取语言模型英语cache language model即是一种统计模型的例子。这种模型通常足以处理非预期的输入数据,尤其是输入有错误(真实世界的数据总免不了),并且在整合到包含多个子任务的较大系统时,结果比较可靠。

许多早期的成功属于机器翻译领域,尤其归功IBM的研究,渐次发展出更复杂的统计模型。这些系统得以利用加拿大和欧盟现有的语料库,因为其法律规定政府的会议必须翻译成所有的官方语言。不过,其他大部分系统必须特别打造自己的语料库,一直到现在这都是限制其成功的一个主要因素,于是大量的研究致力于从有限的数据更有效地学习。

近来的研究更加聚焦于非监督式学习和半监督学习英语semi-supervised learning的算法。这种算法,能够从没有人工注解理想答案的资料里学习。大体而言,这种学习比监督学习困难,并且在同量的数据下,通常产生的结果较不准确。不过没有注解的数据量极巨(包含了万维网),弥补了较不准确的缺点。

近年来, 深度学习技巧纷纷出炉[2][3] 在自然语言处理方面获得最尖端的成果,例如语言模型[4] ,语法分析[5][6]等等。

任务和限制

理论上,NLP是一种很吸引人的人机交互方式。早期的语言处理系统如SHRDLU,当它们处于一个有限的“积木世界”,运用有限的词汇表会话时,工作得相当好。这使得研究员们对此系统相当乐观,然而,当把这个系统拓展到充满了现实世界的含糊与不确定性的环境中时,他们很快丧失了信心。

由于理解(understanding)自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,自然语言认知,同时也被视为一个人工智能完备(AI-complete)的问题。同时,在自然语言处理中,"理解"的定义也变成一个主要的问题。

实际问题

一些NLP面临的问题实例:

  • 句子“我们把香蕉给猴子,因为(它们)饿了”和“我们把香蕉给猴子,因为(它们)熟透了”有同样的结构。但是代词“它们”在第一句中指的是“猴子”,在第二句中指的是“香蕉”。如果不了解猴子和香蕉的属性,无法区分。(英文的it没有区分,但在中文里“它”和“它”是有区别的,只是代词在中文里常常被省略,因此需区别属性并且标示出来)

自然语言处理的主要范畴

  • 文本朗读(Text to speech)/语音合成(Speech synthesis)
  • 语音识别(Speech recognition)
  • 中文自动分词(Chinese word segmentation)
  • 词性标注(Part-of-speech tagging)
  • 句法分析(Parsing)
  • 自然语言生成(Natural language generation)
  • 文本分类(Text categorization)
  • 信息检索(Information retrieval)
  • 信息抽取(Information extraction)
  • 文字校对(Text-proofing)
  • 问答系统(Question answering)
给一句人类语言的问句,决定其答案。 典型问题有特定答案 (像是加拿大的首都叫什么?),但也考虑些开放式问句(像是人生的意义是是什么?)
  • 机器翻译(Machine translation)
将某种人类语言自动翻译至另一种语言
  • 自动摘要(Automatic summarization)
产生一段文字的大意,通常用于提供已知领域的文章摘要,例如产生报纸上某篇文章之摘要
  • 文字蕴涵(Textual entailment)

自然语言处理研究的难点

单词的边界界定

在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。

词义的消歧

许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。

句法的模糊性

自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析(Parse)出多棵剖析树(Parse Tree),而我们必须要仰赖语意及前后文的资讯才能在其中选择一棵最为适合的剖析树。

有瑕疵的或不规范的输入

例如语音处理时遇到外国口音或地方口音,或者在文本的处理中处理拼写,语法或者光学字元识别(OCR)的错误。

语言行为与计划

句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是动手把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程去年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。

当前自然语言处理研究的发展趋势

[7] 第一,传统的基于句法-语义规则的理性主义方法受到质疑,随着语料库建设和语料库语言学的崛起,大规模真实文本的处理成为自然语言处理的主要战略目标。

第二,统计数学方法越来越受到重视,自然语言处理中越来越多地使用机器自动学习的方法来获取语言知识。

第三,浅层处理与深层处理并重,统计与规则方法并重,形成混合式的系统。

第四,自然语言处理中越来越重视词汇的作用,出现了强烈的“词汇主义”的倾向。词汇知识库的建造成为了普遍关注的问题。

统计自然语言处理

统计自然语言处理运用了推测学、机率、统计的方法来解决上述,尤其是针对容易高度模糊的长串句子,当套用实际文法进行分析产生出成千上万笔可能性时所引发之难题。处理这些高度模糊句子所采用消歧的方法通常运用到语料库以及马可夫模型(Markov models)。统计自然语言处理的技术主要由同样自人工智能下与学习行为相关的子领域:机器学习及资料采掘所演进而成。

相关实例

  • GATE: a Java Library for Text Engineering
  • LTP:语言技术平台(简体中文)
  • MARF
  • Python编程语言的自然语言处理工具包教程
  • FudanNLP开源中文自然语言处理工具包

延伸阅读

  • Bates, M. Models of natural language understanding. Proceedings of the National Academy of Sciences of the United States of America. 1995, 92 (22): 9977–9982. doi:10.1073/pnas.92.22.9977. 
  • Steven Bird, Ewan Klein, and Edward Loper (2009). Natural Language Processing with Python. O'Reilly Media. ISBN 978-0-596-51649-9.
  • Daniel Jurafsky and James H. Martin (2008). Speech and Language Processing, 2nd edition. Pearson Prentice Hall. ISBN 978-0-13-187321-6.
  • Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978-0-521-86571-5. Official html and pdf versions available without charge.
  • Christopher D. Manning and Hinrich Schütze (1999). Foundations of Statistical Natural Language Processing. The MIT Press. ISBN 978-0-262-13360-9.
  • David M. W. Powers and Christopher C. R. Turk (1989). Machine Learning of Natural Language. Springer-Verlag. ISBN 978-0-387-19557-5.

外部链接

  • 人类语言技术当前发展情况概览
  • 哥伦比亚大学自然语言处理研究组
  • 卡内基梅隆大学语言技术研究院
  • 斯坦福大学自然语言处理研究小组
  • 中文自然语言处理开放平台
  • ACL(美国电脑语言学协会)提供的相关杂志以及研讨会的论文

参见

  • 万能翻译机英语universal translator
  • 电脑语言学
  • 受限自然语言
  • 信息抽取
  • 资讯检索
  • 自然语言理解
  • 潜在语义索引
  • 潜在语义学
  • 随机文法英语Stochastic grammar
  • 机器记者
  • 写作自动评分英语Automated essay scoring
  • 生物医学文件探勘系统英语Biomedical text mining
  • 复合词处理英语Compound term processing
  • 计算语言学
  • 电脑辅助审查英语Computer-assisted reviewing
  • 深度学习
  • 深度语言处理英语Deep linguistic processing
  • 辅助外文阅读英语Foreign language reading aid
  • 辅助外文写作英语Foreign language writing aid
  • 语言科技英语Language technology
  • 隐含狄利克雷分布(LDA)
  • 母语识别英语Native-language identification
  • 自然语言编程英语Natural language programming
  • 自然语言使用者界面英语Natural language user interface
  • 扩展查询
  • 具体化 (语言学)英语Reification (linguistics)
  • 语义折叠英语Semantic folding
  • 语音处理
  • 口语对话系统英语Spoken dialogue system
  • 校对
  • 文字简化英语Text simplification
  • Thought vector英语Thought vector
  • Truecasing英语Truecasing
  • 问答系统
  • Word2vec
  1. ^ Hutchins, J. The history of machine translation in a nutshell. 2005. Template:Self-published source
  2. ^ Goldberg, Yoav (2016). https://www.jair.org/media/4992/live-4992-9623-jair.pdf A Primer on Neural Network Models for Natural Language Processing. Journal of Artificial Intelligence Research 57 (2016) 345–420
  3. ^ Ian Goodfellow, Yoshua Bengio and Aaron Courville. http://www.deeplearningbook.org/ Deep Learning. MIT Press.
  4. ^ Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu (2016). https://arxiv.org/abs/1602.02410 Exploring the Limits of Language Modeling
  5. ^ Do Kook Choe and Eugene Charniak (EMNLP 2016). http://www.aclweb.org/website/old_anthology/D/D16/D16-1257.pdf Parsing as Language Modeling
  6. ^ Vinyals, Oriol, et al. (NIPS2015). https://papers.nips.cc/paper/5635-grammar-as-a-foreign-language.pdf
  7. ^ http://www.lingviko.net/feng/4feature.pdf

上一篇:Webcam-V
下一篇:网景 (浏览器)
相关推荐