FNLP教程自然语言处理理论
main”-2014/10/31-16:03- page II一#3 习题。本书中每一章郤有一些习题和项日实践。标有一个星号的习题难度一般, 有两个星号的习题有一定的难度。标有二个星号的习题是一些还处于研究阶段的间题 FNLP简介 FNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机 学习算法和数据集。本工具包及其包含数据集使用TGP3许可证。FNTP是基于Jaw 的开源项目,利用统计机器学习和规则方法来处理中文自然语言处理的经典间题,比如 分词、词性标注、句法分析、实体名识别等。 Java基础 Java是一种可以撰写跨平台应用软件的面向对象的稈序设计语言。Jawa编程语言的 风格十分接近C、C-+语占,它然承了C+语音面向对象技术的核心。Jaa合弃了C 语言中容易引起错误的指针(以引用取代)、运算符亘载( operator overloading)、多重 承(以接口取代)等特性,增加了垃圾同收器功能用于回收不再被引用的对象所占据 的内存空间,使得程序员不用再为内存管理而担忧。为了更好的阅读本书,你有一定的 Java基础。Ja语言支持四种类型:接口( interfacc、(Glas)数组(army)和原语 型( primitive)n 构造函数、成员 Java development Kit(JDK)帮助文档,ht:/ docs. oracle. com/ javase/ 为了提扃可读性,书中的实例都省略了导言(除非必要)。为了正常运行这些例子 你可能需要在程序中加入 import语句; import java. util.* import java·⊥o.*; 当然,本书中所有的代码示例都可以从ttp//www.fnlp.org/获得,你可以直接编译 和运行这些例子。 Java IDE 当今最流行的是 Eclipse Java集成开发环境TF( Integrated Development. Environ ment,集成开发环境) 邱锡鹏《自然语言处理原理与实现(草稿) http://www.fi main”2014/10/31—16:03— page I#4 致谢 首先,特别感谢FNLP项日的主要研发人员,他们是计峰、高文君、赵嘉亿、曹零 赵建双、田乐、缪有栋、刘昭等。此外,我所在实验室的其他研究生和本科生也贡献了 部分代码。在此一并感谢大家的工作 对于本书,很多人提出了富有建设性的意见,或仁其他方面提供了帮助,在此表 感谢。 特别声明,本书的部分内容和参考材料来源』红联网,如:维基百料、百度百科以 及一些论坛、博客等。因此这些材料的原始出处已无法溯源,后面正文中不再一一引用 在此一并致谢。若有需要特别标注引用的,请联系作者更正 邱钖鹏 丘易鹏·《自然语言处理原理与实现(草稿 http://www.fnlp.org/book main 2014/10/31—16:03-page1-#5 第 绪论 个人在不接触对方的情况下,通过一种特殊的方式,和对方进行 系列的问答。如果在相当长时间内,他无法根据这些问题判断对方是 人还是计算机,那么就可以认为这个计算机是智能的。 Alan Turing1950),《机器能思维吗?》 语言是什么呢?它是一套约定了的符号以及相应的规则系统,可以来传递信息。这 里的符号可以通过视觉、听觉或者触觉等方式来进行感知但一般来讲,语言是指人类 沟通所使用的自然语言。 自然语言是人们口常生活中使用的语言,比如汉语、英语等。自然语言是人们交流 和思维的主要工具,是人类智慧的结晶。之所以把人类使用的语言称为“自然”语言,主 是区别于为计算机而设的“人工”语言,如高级程序语言(比如C语言、Jaa语言等 以及标记语言(比如xML、HTM等)。 高级程序语言的出现极大地促进了计算机的发展和普及。计算机上的各种软件,智 能手机上的各种应用,甚至来操作系统本身,都是通过程序语言实现的。人们可以通过 程序语言来高效地将自己的意图告诉计算机,让它来执行各种任务。很难想象,如果没 有这些人工语言,程序员只能通过机器指令来编写程序,我们现在的生活和工作方式是 否还停留在上个世纪。 为了让计算机理解程序语言,我们需要设计一个编译器。编译器的作用把高级程序 语言等价地翻译成汇编语言或机器指令。不同程序语言有不同的编译器。编译技术的发 展也得益于自然语言的研究成果。在20世纪50年代,编译器的编写一直被认为是十分 困难的事情,第一代 fortran的编译器据说花了18年的时间才完成。60年代初,Noan Chomsky通过对白然语言结构的研究,根据语言文法的难易程度以及识别它们所需要的 算法来对语言分类,提出了四个层次的文法:0型文法、1型文洪、2型文法和3型文法 咀其中的每一个都是其前者的特殊情况。这些成果极大地促进了编译技术的发展。其中 main”2014/10/31-16.03—page2-#6 第一章绪论 型文法(或上下文无关文法)破证明是程序语言中最有用的,并卫也成为程序语言的标 准规范。 但是,要计计算机理解自然语言,设计一个自然语言的“编译器”这个任务则要 困难很多。最根本的区别在于程序语言是确定的、无歧义的,需要一套严格的语法规则 如果输入的文本不符合语法规则,编译器就不能正确解析。而白然语言普遍存在不确定 性或歧义性。并目,自然语言一般都是需要一定的上下文才能理解的,已经超出了2型 文法的范畴 11什么是自然语言处理? 自然语言处理( Natural language processing,NLP)是人工智能和语言学领域的 分支学科,卡要是研究如何计计算机处理及运用自然语言,实现人与计算机之间用自然 语言进行有效通信的各种理论和方法。它是计算机科学领域与人⊥智能领域中的一个重 要部分,甚至核心部分,也是人工智能中最为因难的问题之一。它与语言学的研究有着 密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研 究能有效地实现让计算机分析和处埋自然语言的技术,特别是利用计算机的能力来高效 地处理大规模的文本。比如,文本分类是白然语言处理的一个主要应用,但是不太需要 算语言学的知识。 自然语言处理技术需要融合语言学、计算机科学、数学、心理学以及认知学等多学 科的知识。严格来自,自然语言处理可分为两部分 白然语言理解( Natural Language Undcrstanding,NIU)是指让计算机“懂”人 类的语言,能理解自然语言文本的意义 >自然语言生成( Natural Language Generation,NLG)是指把计算机数据转化为自 然语言,以自然话言文本来表达给定的意图、思想等。 这两部分是互逆过程。自然语言理解是从人到计算机的信息传递,自然语言生成是 从计算机到人的信息传递。但通常我们所说的白然语言理解也指自然语言处理,并不 格区分其内在的含义。 白然语言处理的主要对象就是语言,表现形式为语音或文本。这里的语言不但包括 自然语言,也包活人工语言,例如,如果我们要分析一个网页,既需要处理网页中自然 语言的内容,也需要能利用HML语言来处理网页的页而结构信息。 邱锡鹏《自然语言处理原理与实现(草稿) httr main”2014/10/31-16.03—page3-#7 1.2自然语言处理的范畴 1.2自然语言处理的范畴 通过计算机的高效计算能力,分析和处理各种语言,提高人们的生活水平和工作效 率,这是自然语言处理的目标。从这个角度看来,很难去界定自然语言理的范畴。只 要符合这个目标并以浯言为处理对象的技术都可以看成自然语言处理技术。自然语言处 理的范畴是随着时代的发展而不断变化的。新事物会对自然语言处理提出新的需求,而 以前的需求可能会随着技术的发展而不再存在。 对于目前的自然语言处理技术而言,我们可以从不同的层面米对各种不同的技术进 行划分。 首先,从应用需求来看,主要技术有: 1.文本分类和聚类 2.信息检索和过滤 3.信息抽取 4.问答系统 5.对话系统 6.机器翻译 7.情感分析 8.文本挖掘 除了上述技术,还要很多涉及到自然语言处理的相关技术 其次,从语法层面来看,主要技术有: 1.中文分词:词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格 作为自然分界符的,而中文是以字为基本的书写单位,词语之间没有明显的区分标 记,因此,中文分词是中文自然语言处理的基础技术 2.词性标注:词性指作为划分词类的根据的词的特点。词性标注是给句子中每个词标 记出最合适的词性 3.句法分析:对句子中的词话语法功能进行分析。 再次,从语义层面米看,主要技术有 1.指代消解 2.语义消歧 丘易鹏·《自然语言处理原理与实现(草稿 http://www.fnlp.org/book main”2014/10/31-16.03-page4—#8 第一章绪论 3.文本蕴涵 后来人们意识到,究竞依据什么特征来判断文本应当隶属的类别这个问题,就连 类白己都不太回答得清楚,有太多所谓“只可意会,不能言传”的东西在里面。人类的 判断大多依据经验以及直觉,因此自然而然的会有人想到何让机器像人类一样自己来通 过对大量同类文档的观察来自己总结经验,作为今后分类的依据。这便是统计学习方法 的基本思想。 从某个意义上说,科学研究就是“盲人摸象,白圆其说”。这8个字可能有人会不同 意,但我认为这是科学研究的真实写照,或者说真实描绘。事实上,就汉语语法研究来 说,已有的结论或看法,都只能说是一种假设性的结论或看法;随着研究的逐步深入, 中有的将会被证明可以确认为定论,而大多说的结论或看法,将会被修正,甚至被完全放 弃。因此我们在研究上,必须坚持“继承,借鉴,怀疑,假没,探索,求证”这12个 可以说是科学研究能有所突破的必由之嵱,也是汉语语法硏究能有所突破的必由之路 13本书的组织结构 木书主要从五个方面来介绍自然语言处理的相关知识,如图1.1所示。 自然语言处理 基础知识 词法分析 句法分析 语义分析 正则表达式 中文分词 成分句法分析 词义消歧 机器翻译 相似度计算 词性标注 依存句法分析 文本蕴涵 可答系统 语言模型 关键词抽取 情感分析 文本摘要 实体名识别 文本聚类 语义分析 信息检索 图1.1:本书的组织结构 131入门基础 正则表达式、相似度计算、语言模型、文本分类、文本聚类 公考htp:// Zh. wikipedia. org./vik/自然语言处理 邱锡鹏《自然语言处理原理与实现(草稿) http://www.fi main”2014/10/31-16.03-page5-#9 1.3本书的组织结构 中文分词 中文的语素绝大部分是单音节的。语素和语素可以组合成词(比如:吃+饭=吃 饭)。有的语素本身就是词(手、洗),有的语素本身不是词只能跟别的语素一起组成 复合词(民人民失丧失)。现代汉语里双音节词占的比重最大。大部分双音词都是按照 上面提到的复合方式造成的。有些语素虽然在现代汉语里不能作为一个词单独用,但是 有时候在借用古汉语的词句时,也偶尔作为词来使用 中文1由于继承自古代汉语的传统,词语之间没有分隔。古代汉语中除了连绵词和人 名地名等,词通常就是单个汉字,所以当时没有分词书写的必要。现代汉语的基本表达 元为“词”,以双字或多字词居多,一个字不再等同于一个词 词性标注 词性指词的语法类别,也叫词类。 以现代汉语为例,词从语法功能上可以粗分为12类。 >实词:名词、动词、形容词、数词、量词和代词 虚词:副词、介词、连词、助词、拟声词和叹词 但这样的划分对于后续的语义分析远远不够。因此,不同的语料构建者都会对词性 进行更细的划分。比如“名词”可以再进一步分为“一般名词”、“专用名词”、“抽象名 词”和“方位名词”等。“专用名词”可以再分为“人名”、“地名”“机构名”等。不同 的数据集采用的词性规范都不尽相同。 此外,对于不同语言,词性也略有不同。比如,中文里有“量词”,而英文里没有 英文中的“冠词”在中文里也不在 词性标注是给伺子中每个词标记出最合适的词性,即在给定的词性集合中选择 合适的词性。一个词在不同的上下文环境下会有充当不同的语法功能,表现为不同的词 性。比如,“希望”即是名词又是动词。 watch n.手表v.观看 但在特定的使用场合下,比如一个句子中,每个词都有唯一确定的词性。 词去年他取得 可喜 的进步 词性时间短语代词动词时态词形容词结构助词名词标点 1中文,或汉语,按照宇型分为简体中文和繁体中文。按照时间可分为代汉语和现代汉语。本书所述的中文在 丕做特别说明是一般指现代汉语。 丘易鹏·《自然语言处理原理与实现(草稿 http://www.fnlp.org/book main”-2014/10/31-16:03—page6-#10 第一章绪论 在FNLP中,词性分为:动词、能愿动词、趋向动词、把动词、被动词、形谓词、形 容词、副词、名词、方位词、人名、地名、机构名、时间短语、邮件、网址、型号名 体名、疑问代词、指示代词、人称代词、量词、介词、数词、惯用词、限定词、连词、叹 词、序数词、省略词、语气词、结构助词、时态词、标点、拟声词、表情词等。 命名实体识别 命名实体识别(NE)是指识别文本中具有特定意义的实体,主要包括人名、地名 机构名和其它实体名等。 132句法分析 成分句法分析、依存句法分析句法分析(Paig)是指对句子中的词语语法功能进行 分析。 ENP的依存关系类型包括:核心词、主语、补语、宾语、定语、状语、并列、同位 语、数量、介宾、连动、疑问连动、兼语、关联、重复、标点、的字结构、地字结构、得 字结构、语气、时态等。 133语义分析 在自然语言处理中,对语义的研充也是一个非常重要的研究方向。对自然语言的词 法和句法分析并不是最终的目标,而是一种让计算机更准确地坦解语言的L具 “ Colorless green ideas sleep furiously”,是 Chomsky在1957年的《 Syntactic Struc ures》中使用的著名例句。虽然这个句子语法正确,但语义荒谬,可以用来说明语法和 语义的区別,也可以说明目前主流的统计语法模型的不足 比“红烧肉的做法”“怎么做红烧肉”和“红烧肉制作方法”这一句表示的含义 是样的。对自然语言的语义可以从两个维度来看。 是从不同粒度来看,可以分为词、短语、句子、篇章的语义。二是从表示方法来 看,形式化语义( Formal Semantics和分布式语义( Distributional semantics)两种表 示模型。 现在比较成功的是对词汇意义的研究,但是对更扃粒度上的语义研究还在发展中 研究的内容主要在于诃汇的意义和结构,比如说义素分析,语义场,词义之间的结构关 系等等。这样的语义学研究也可以称为词汇语义学,词和词之间的各种关系是词汇语义 学研究的一个方面,例如同义词、反义词,同音词等,找出词语之间的细微差别 邱锡鹏《自然语言处理原理与实现(草稿) http://www.fnlp.org/book/
暂无评论