面向机器学习的自然语言标注1.1 语言标注的重要性-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

面向机器学习的自然语言标注1.1 语言标注的重要性

简介:

基础知识

人们几乎每天都会教计算机去解决一些新的激动人心的问题,这些问题包括如何在国际象棋比赛或“危险边缘”节目译注1中取胜,以及驾驶车辆时的最短路径选择。但仍有大量的问题是计算机不能完成的,特别是在理解人类语言方面。已经证明统计方法是解决这一问题的有效途径,但当可以为机器学习(Machine Learning, ML)算法提供关于数据集所包含信息的数据线索提示而不仅仅是数量巨大的数据时,ML通常可以产生更好的效果。讨论自然语言时,这些提示通常以标注的形式呈现——提供关于文本额外信息的元数据。但是,为了有效地指导计算机,让它从正确和足够的数据中学习是非常重要的。本书的目的是为你提供创建良好数据的工具以便服务于你自己的机器学习任务。本章主要内容包括:

为什么标注对语言学家和计算机科学家而言是同样重要的工具。

语料库语言学(corpus linguistics)是怎么样发展成今天这样的。

语言学的不同领域以及它们与标注和机器学习任务之间的关系。

什么是语料库,如何使之具有平衡性。

如何用标注表示一些经典的机器学习问题。

标注开发循环(annotation development cycle)的基础知识。

1.1 语言标注的重要性


众所周知,因特网是一个信息宝库,它可以教你做任何事情:玩杂技、编程序、弹奏乐器等。然而,因特网上还有另一层信息:所有这些课程(以及博客、论坛、推特等)中是如何交流的。网络上的信息以多种媒体的形式存在(文本、图片、视频和声音),语言是让人们理解这些内容的沟通媒介,它把内容和其他媒体连接起来。但是,尽管计算机善于把这些信息传递给感兴趣的用户,但它却非常不擅长理解语言本身。

理论和计算语言学(Computational Linguistics, CL)集中研究语言更深层次的本质并获取语言结构的可计算特性。人类语言技术(Human Language Technology, HLT)试图使用这些原理和算法并将之实现为可用的高性能程序来影响我们使用语言和计算机的交互方式。随着使用因特网的人数的日益增加,可供研究使用的语言数据也急剧增长,这样可以将语言学建模问题看作机器学习任务,而不是局限于相对小规模的个人手工处理的数据。

但是,仅仅给计算机输入大量的数据就期望它能够学会说话是不够的——这些数据应该以计算机更易于发现模式和推理的方式准备好。通常通过给数据集增加相关元数据来实现这一目标。用于标记数据集元素的元数据标签(tag)称为在输入上的标注。然而,为了使算法更有效地学习,数据上的标注必须准确并与要执行的任务相关。所以,语言标注是开发智能人类语言技术的关键环节。

注意: 给机器学习算法过多的信息会拖慢它且导致不准确的结果,或导致算法和训练数据过于一致而产生“过拟合”(overfit),在新的数据上可能产生更不准确的结果。认真思考什么是你要完成的东西,什么信息与你的目标最相关,这一点非常重要。本书的后续章节将介绍如何找到这些信息,以及如何确定你的算法在完成你所设定的任务上的表现。

自然语言形成的数据集称为语料库(corpus),基于同一个标注规格说明标注的数据集合称为标注语料库(annotated corpus)。标注的语料库可用于训练ML算法。本章将讨论什么是语料库,解释标注的含义,并且描述用标注来充实面向机器学习的语言数据集合的方法。

1.1.1 语言学描述的层次

我们将列举许多类型的标注任务的例子,虽然创建一个标注语料库不要求必须经受过正规的语言学培训,但如果你对标注涉及的语言学方面有基本的了解,本书对你的帮助会更大一些。一般来说,语法是语言中负责产生良好结构的机制。大多数语言学家认为语法本身是由多个通过认知设计或者用于描述性便利的模块或系统构成的。它们通常包括句法、语义、形态学、音系学(和语音学)以及词汇。除了语法外,关于如何将语言嵌入人类活动的领域包括话语、语用学和篇章结构分析。详解如下:

句法学

研究单词如何组成句子。它包括对词性的研究以及它们是如何组合成更大结构的。

语义学

研究语言中的意义。包括单词间的相互关系以及它们所表达的内容。

形态学

研究语言中有意义的单元。语素是具有意义或功能的最小单元,包括单词、前缀、后缀和其他能够表示意义的单词结构。

音系学

研究某种语言的发音模式。它包括哪些音素是重要且有意义的(即音位);音节是如何构成的;需要哪些特征来描写语言中的离散单元(音段)以及如何解释它们。

语音学

研究人说话的声音以及它们是如何产生和被感知的。音位是个人声音的术语,本质上是人类语音中的最小单位。

词汇

研究语言中所使用的单词和短语,即一种语言的词汇。

话语分析

研究那些通常以对话方式出现的信息交换,特指跨句的信息流。

语用学

研究语境对语言表达的影响,以及哪些方式有助于理解隐含的或预设的含义。

篇章结构分析

研究叙述文或其他文本体裁如何形成更大的篇章结构。

本书通篇将给出多个标注项目的实例,它们将涉及上述列表中不同概念的各种组合。

1.1.2 什么是自然语言处理

自然语言处理(Nature Language Processing,NLP)是计算机科学和工程的一个领域,源自人工智能领域中的语言和计算语言学研究。自然语言处理的目标是设计和创建各种应用系统,这些应用系统使得人和计算机可以直接通过自然语言完成各种交互。自然语言处理的主要应用领域包括:

问答系统

设想,假如你能直接问你的计算机或者手机:在纽约你最喜欢的那家餐厅在周五的晚上何时打烊。提问不是通过键盘笨拙地将文字输入搜索框中,而是用你自己平常的自然语言,无论是英语、汉语或西班牙语,进行提问。(iPhone中的Siri就是此类系统的一个好的尝试,但Siri并不能完全地理解自然语言,它只能理解某些关键短语的子集。)

文档摘要

这个领域包括收集文档或电子邮件并根据其内容生成一个连贯的摘要。也可以用于对较长的文本给出系列快照,甚至直接做成幻灯片。

机器翻译

这是NLP应用的圣杯!它也是该领域中最重要的研究和工程领域。尽管谷歌翻译变得越来越好,但真正有杀伤力的应用软件是一个叫作BabelFish的手机应用软件。当你查找一趟合适的发往北京的火车时,它可以进行实时翻译。

语音识别

这是NLP中最难的问题之一。不断涌现出新的改进模型,可以在智能手机或者计算机上识别口语提问或指令。尽管这些自动语音识别(Automatic Speech Recognition, ASR)系统是通用的,但它们只是在特定领域中工作得很好,并且不允许说话人偏离设定的内容(“请现在说出或输入你的卡号”)。

文档分类

这是NLP最成功的应用之一,该任务的目的是把文档归入合适的类别。在垃圾邮件过滤、新闻分类以及电影评论分类等方面的应用都很成功,原因之一是学习一个用于分类的训练算法的模型相对容易。

如前言所述,在O扲eilly公司出版的另一本书《Natural Language Processing with Python》中描述的自然语言工具包(NLTK)是一个不错的软件包,它提供了上述应用中的许多系统的具体实现。本书的目的之一是提供构建具体语料库(即训练和测试数据)所需要的知识,这些语料库对于开发上述应用系统是必不可少的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接