原文来自Wikipedia自由的百科全书(From Wikipedia, the free encyclopedia)
自然语言处理(Natural language processing ( NLP))是关于计算机与人类(自然语言)交互的计算机科学与语言学一个领域。自然语言生成( Natural language generation)系统把计算机数据库信息转换成人类可读的语言。自然语言理解系统( Natural language understanding)把人类语言的样本转换为计算机容易处理的更加形式化的表示,诸如分析树或者一阶逻辑。NLP 范围内的很多难题适用于生成和理解,例如,为了理解句子,计算机必须能够为形态( morphology,词的构造)建模,为了生产语法上正确的英语句子也必须有形态的模型。 NLP有与计算语言学的领域的重大交叉,通常被认为是人工智能(artificial intelligence)的分支领域。 自然语言这个术语用来区分人类语言(诸如西班牙语、史瓦希里语或瑞典语)与形式化(formal)的或计算机语言(computer language)(诸如,C++、Java 或 LISP).[1]。虽然NLP也许包含文本和话语,但是话语处理(speech processing)的工作已经变成了另一个分开的领域。
任务与局限(Tasks and limitations)
理论上,自然语言处理是人机交互(human-computer interaction)一个非常有吸引力的方法。早期的系统,如SHRDLU,运行在有限的“块世界”与有限的词汇量上,运行的很好,结果研究人员过份乐观,当系统延伸到与真实世界的二义性和复杂性有关的更加现实的情形时很快地迷失了。
自然语言理解,有时被称为AI完全性(AI-complete)的问题,因为自然语言识别似乎要求有关外部世界广泛的知识,才能够进行处理。“理解”的定义在自然语言处理中就是个重大问题。
子问题(Subproblems)
-
话语切分(Speech segmentation)
- 在多数的口语中,语音表示连续的字母互相结合在一起,因此模拟的符号转换为分别的字符可能就是很困难的过程。还有,在自然的话语中,连续的词之间几乎没有什么停顿;而这些界限通常是语法( grammatical )及语义( semantic )以及上下文( context)必须考虑到的。
-
-
文本切分(Text segmentation)
- 某些书面语言,如汉语、日语和泰语就没有词之间的界限,因此,任何重要的分析要求词边界的识别,通常是一项重要的任务。
-
词义消歧(Word sense disambiguation)
-
很多词不止一个意思;我们不得不选择在上下文中那个是最合适的意义。
-
句法歧义(Syntactic ambiguity)
- 自然语言的语法也是有歧义的,即,一个特定句子经常可能有多个可能的分析树。选择最合适的分析树通常需要语义及上下文信息。语法二义性具体问题包括句子界限消歧。
-
不完善或不规则的输入(Imperfect or irregular input)
- 外国人或地方口音在话语中的声音障碍;键入或语法错误;文本中的 OCR错误。
-
言语行为(Speech acts)与计划
- 一个句子经常被认为是说话人的行为。单独句子结构包含的信息也许不足以定义这种行为。例如,一个疑问句实际上是说话人要求听者的某种回答。期待的回应也许是口头的、动作的,或者某种结合。例如,"Can you pass the class?"是要求简单的yes-或-no的答复,而"Can you pass the salt?"则要求执行个实际的动作。回答"Yes, I can pass the salt,"而不伴随行为是不合适的(尽管可以说"No" 或者"I can't reach the salt(我够不着盐)"也会解释没有动作)。
- )。
统计的NLP(Statistical NLP)
统计的自然语言处理用随机(stochastic)、概率(probabilistic)及统计(statistical)的方法解决上面讨论的困难,尤其是在处理实际的语法,遇到较长的句子,面临高度歧义,会有成千上万种可能的分析时的那些困难。消除歧义的方法通常涉及到使用语料库(corpora)及马尔科夫模型(Markov models)。统计的NLP 包括所有对自动化的语言处理的定量方法,包括概率建模、信息理论(information theory)和线性代数(linear algebra[2])。统计的NLP的技术主要来自机器学习(machine learning)与数据挖掘(da
NLP中的主要任务(Major tasks in NLP)
- 自动文摘(Automatic summarization)
- 辅助外语阅读(Foreign language reading aid)
- 辅助外语写作(Foreign language writing aid)
- 信息提取(Information extraction)
- 信息检索(Information retrieval (IR)) - IR是与存储、搜索及检索信息有关的。是计算机科学之单独的领域(与数据库接近),但是IR是依赖于某些NLP方法的(例如,切分)。有些目前的研究与应用谋求在IR 于NLP之间搭建起桥梁。
- 机器翻译(Machine translation) - 从一种人类语言自动翻译到另一种。
- 命名实体识别(Named entity recognition) (NER) - 对于既定文本流,确定文本中的哪些项映射到专有名词,诸如人或地方。尽管在英语中,命名实体是用大写的词,但是在很多其他语言中,没有用大写来区分命名实体。
- 自然语言生成(Natural language generation)
- 自然语言理解(Natural language understanding)
- 光学字符识别(Optical character recognition)
- 指代消解(anaphora resolution)
- 查询扩展(Query expansion)
- 问题应答(Question answering) - 给出一个人类语言的问题,产生一个人类语言的答复的任务。问题可以封闭的(诸如,"What is the capital of Canada(加拿大的首都是什么)?")或者是开放的(诸如,"What is the meaning of life(生命的意义是什么)?")。
- 话语识别(Speech recognition) - 给出一个人或人们说话的片段,产生一段说话人的听写的文本的任务(与文本到话语相反)。
- 口语会话系统(Spoken dialogue system)
- Stemming
- 文本简化(Text simplification)
- 文本到话语(Text-to-speech)
- 文本检验(Text-proofing)
具体问题(Concrete problems)
自然语言理解系统面对的问题的某些例子:
- 句子"We gave the monkeys the bananas because they were hungry(我们给猴子香蕉,因为它们饿了)" 和 "We gave the monkeys the bananas because they were over-ripe(我们给猴子香蕉,是因为它们早熟了)"有相同的表层语法结构。但是在一个句子中代词指monkeys (猴子),在另一句子中指bananas 香蕉,没有对猴子与香蕉属性的知识,是不可能区分出是哪个的。
- A string of words may be interpreted in different ways. For example, the string "Time flies like an arrow" may be interpreted in a variety of ways:一串词可以有不同的解释法。例如,字符串"Time flies like an arrow" 可以各种方式解释为:
- 普通的明喻(simile): time moves quickly just like an arrow does(光阴似箭);
- 度量蝇的速度,就像度量箭那样(time是个祈使动词,'flies(蝇)'是昆虫)--即,(你应该)测出蝇的时间就像测箭那样(You should) time flies as you would (time) an arrow)。
- 象度量箭那样度量蝇 -- 即,Time flies in the same way that an arrow would (time them)测箭那样测(它们)。
- 测量像箭那样的蝇--即,Time those flies that are like arrows(测量像箭那样的那些蝇);
- 各种类型的飞行昆虫,"time-flies",共享单一的箭(比较,Fruit flies like a banana(象香蕉的果蝇))。
- 飞行类型昆虫的每种,"time-flies,",单独享受不同的箭(用类似的比较);
- 一个具体对象,例如杂志, Time时间,穿越空气中的一个箭头状的方式。
英语在这方面是特别具有挑战性的,因为它几乎没有屈折形态(inflectional morphology)来区分词类(parts of speech)。
- 英语和其他几种语言不指定一个形容词适用于哪个词。例如,在字符串"pretty little girls' school"中,
- Does the school look little? (学校看起来很小?)
- Do the girls look little?(小姑娘看起来很小?)
- Do the girls look pretty?(女孩样子漂亮?)
- Does the school look pretty? (学校看起来漂亮?)
- Does the school look little? (学校看起来很小?)
- 在口语中,我们经常借助把重音放在哪个词上表示附加的信息。句子,"I never said she stole my money()"说明了重音在句子中起的重要作用,因而自然语言处理器在分析时有着固有的困难。按照说话人放置重音的不同,这个句子可以有几种不同的意思:
- "I never said she stole my money(我从没说过她偷过我的钱)" - 别人说过,但我没有说过。
- "I never said she stole my money(我根本没说过她偷过我的钱)" - 我根本就没说过。
- "I never said she stole my money" - 我也许暗示过,但是我从没有明确地说出来过。
- "I never said she stole my money" -我说过有人偷过,但没说是她。
- "I never said she stole my money" - 我只是说她也许借过。
- "I never said she stole my money" - 我说过她偷过别人的钱。
- "I never said she stole my money" - 我说过她偷过什么,但不是我的钱。
自然语言处理的评测(Evaluation of natural language processing)
目标(Objectives)
NLP评测的目标是评测一个算法或系统的一或多项品质,为了确定是否(或某种程度上)系统是否完成了设计者的目标,或者适应其用户的需要。NLP评测的研究受到了相当的主意,因为适当的评测标准的定义是准确地界定NLP问题的方式之一,因而远超出了定义为语言理解或语言生成任务的模糊性。一套准确的评测标准,主要包括评估数据和评价指标,让几个团队来比较其对特定NLP问题的解决方案。
NLP评测简史(Short history of evaluation in NLP)
第一次就书面文本的评估活动似乎是1987年致力于信息理解的评估活动(Pallet 1998)。然后是比较短语结构语法的项目Parseval/GEIG(Black 1991)。就Tipster项目的一系列争论被认为是有关对文摘、翻译及搜索诸任务的(Hirshman 1998)。1994年,在德国Morpholympics比较了德语的标记。而后,Senseval 和Romanseval论辩了语义消歧的目标。1996年,Sparkle提出了用四种语言(英、法、德、意)的句法分析器。在法国,1977年Grace项目比较了法语的21种标记(Adda 1999)。2004年,在Technolangue/Easy项目期间,进行了13种分析器的比较。在2006和2007年在共享任务的CoNLL上下文中进行了独立分析器的大规模评测。在意大利,2007年,evalita提出比较了evalita 站点意大利语的各种工具。在法国,ANR-Passage(2007年底)之内,10种法语分析器进行了比较(passage网站)。
Adda G., Mariani J., Paroubek P., Rajman M. 1999 L'act
Black E., Abney S., Flickinger D., Gdaniec C., Grishman R., Harrison P., Hindle D., Ingria R., Jelinek F., Klavans J., Liberman M., Marcus M., Reukos S., Santoni B., Strzalkowski T. 1991 A procedure for quantitatively comparing the syntactic coverage of English grammars(覆盖英语语法的句法量化比较过程). DARPA Speech and Natural Language Workshop(DARPA 言语及自然语言工作室)
Hirshman L. 1998 Language understanding evaluation: lessons learned from MUC and ATIS. LREC Granada
Pallet D.S. 1998 The NIST role in automatic speech recognition benchmark tests. LREC Granada
评测的不同类型(Different types of evaluation)
按照评测过程不同,传统上对NLP评测做出了一些区分。
- 内在与外在的评价(Intrinsic vs. extrinsic evaluation)
内在评测考虑一个孤立的NLP系统,根据由评测者预定义的‘金本位’结果概括其性能。外在的评测,也叫使用评测,以更复杂的设置考察NLP系统,或者作为一嵌入的系统,或者为人类用户提供准确的功能。而外在评测系统性能是利用其工具或人类用户对整体任务的评价。例如,考察一个基于某种新词类标注(POS))的新句法分析器。内在评测会就某些标记的数据运行POS,与‘金本位’标准比较系统的POS标记输出,比较分析的准确性。
- 黑盒与白盒评测(Black-box vs. glass-box evaluation)
黑盒评测要求人们就给定的数据集运行NLP系统,测度与过程质量相关的一些参数(即,数据表示法的准确性,或者逼真度)。白盒评测在系统设计时,即考虑实现的算法、所使用的语言学资源(如,词汇集的规模)等。由于NLP难题的复杂性,仅用基于白盒方法的评测性能往往是很难预料的,但是,这种类型的评测对错误分析或者将来的系统开发是很有益的。
看被实施它使用系统、算法,语言资源(即词汇量大小)等等的设计。
- 自动与人工评测(Automatic vs. manual evaluation)
很多情况下,自动过程可以定义为,通过比较其输出与黄金标准(或预期的)评测一个NLP系统。尽管黄金标准可能要很高昂的代价,但是自动评测在需要时是可以重复进行的,而不用增加额外的成本(对相同的输入数据)。然而,因为很多NLP的难题,定义黄金标准是很复杂的任务,在互助评注者不够一致时几乎就是不可能的。人工评测是由人类来进行判断,基于一定的标准,按照说明评估系统或者常见的是其样本的质量。
尽管因为其语言学能力,但是人类判断可以作为一些语言处理任务的参照,他们的可靠性程度上还是有相当大的差异。这就是为什么自动评测有时被认为是客观评测,而人类评测更主观些。
共享的任务(Shared tasks (Campaigns))
NLP中的标准化(Standardization in NLP)
一个ISO 子委员会为了缓和词汇资源(Lexical resources)和NLP程序之间的互用性正在进行他们的工作。这个子委员会是 ISO/TC37的部分,叫ISO/TC37/SC4。有些ISO标准已经公布,但是其多数还在建设中,主要是有关词汇表示(参见LMF)、标注和数据范畴注册的。
期刊(Journals)
- 计算语言学(Computational Linguistics)
- 语言资源与评测(Language Resources and Evaluation)
- 语言技术中的语言学问题(Linguistic Issues in Language Technology)
组织及会议(Organizations and conferences)
协会(Associations)
- 计算语言学协会(Association for Computational Linguistics)
- 美国机器翻译协会(Association for Machine Translation in the Americas)
- AFNLP - 自然语言处理协会亚洲联合会(Asian Federation of Natural Language Processing Associations)
- 澳大拉西亚语言技术协会(Australasian Language Technology Association (ALTA))
会议(Conferences)
软件工具(Software tools)
- AlchemyAPI
- Expert System S.p.A.
- 文本工程的一般结构(General Architecture for Text Engineering)
- MontyLingua
- Natural Language Toolkit (NLTK): a Python 库套件。
- OHNLP
- NLP软件包(NLP Software Packages) - 自由的 software packages for NLP research, including a Semantic Role Labeler, Named Entity Tagger, Coreference Resolution, and more! This also the home of Learning-Based Java (Machine Learning Framework) and Sparse Network of Winnows (Learning Architecture).
另参见(See also)
- 自然语言生成(Natural language generation)
- 自然语言理解(Natural language understanding)
- 生物医学的文本挖掘(Biomedical text mining)
- Chatterbot
- Compound term processing
- Computational linguistics
- 计算机辅助回顾(Computer-assisted reviewing)
- 受控自然语言(Controlled natural language)
- 人类语言技术(Human language technology)
- 信息检索(Information retrieval)
- 潜在语义索引(Latent semantic indexing)
- 词汇标注框架 (Lexical markup framework)
- lojban / loglan
- Transderivational search
- 具体化(语言学)(Reification (linguistics))
- 话语识别(Speech Recognition)
参考文献(References)
- ^ Charniak, Eugene: 人工智能导论(Introduction to artificial intelligence), 第 2页. 阿狄森-维斯利(Addison-Wesley), 1984.
- ^ Christopher D. Manning, Hinrich Schütze: 统计自然语言处理基础(Foundations of Statistical Natural Language Processing), MIT(麻省理工学院) 出版社 (1999), ISBN 978-0262133609, p. xxxi
有关的学术文章(Related academic articles)
- Bates, M. (1995). 自然语言理解模型(Models of natural language understanding). 美国国家科学院会报(Proceedings of the National Academy of Sciences of the United States of America), Vol. 92, No. 22 (Oct. 24, 1995), pp. 9977-9982.
外部链接(External links)
资源(Resources)
- 计算语言学出版物(Computational Linguistics Publications)
- 计算语言学资源(Computational Linguistics Resources)
- 文本、话语及语言处理资源(Resources for Text, Speech and Language Processing)
- 按范畴分类的综合资源列表(A comprehensive list of resources, classified by category)
- 有关智能文本处理与计算语言学的CICLing 与会议(CICLing annual conferences on Intelligent Text Processing and Computational Linguistics)
- 计算语言学:模型、资源应用(Computation Linguistics: Models, Resources, Applications (在线文本))
- 芬兰语言技术文档中心(Language Technology Documentation Centre in Finland (FiLT))
- NLP难话语的简单样本(Some simple examples of NLP-hard utterances).
组织机构(Organizations)
- 斯坦福自然语言处理组(The Stanford Natural Language Processing Group)
- 认知计算小组(The Cognitive Computation Group)
- CIC-IPN NLP组,有很多在线出版物(NLP group of CIC-IPN; many publications available on
line)