提交 061beb09 编写于 作者: W wizardforcel

2020-12-29 17:49:09

上级 e25a5cb2
......@@ -191,6 +191,6 @@ NLTK 设计中的四个主要目标:
## 关于本文档...
针对 NLTK 3.0 作出更新。本章来自于《Python 自然语言处理》,[Steven Bird](http://estive.net/), [Ewan Klein](http://homepages.inf.ed.ac.uk/ewan/)[Edward Loper](http://ed.loper.org/),Copyright © 2014 作者所有。本章依据 *Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License* [[http://creativecommons.org/licenses/by-nc-nd/3.0/us/](http://creativecommons.org/licenses/by-nc-nd/3.0/us/)] 条款,与[*自然语言工具包*](http://nltk.org/) 3.0 版一起发行。
针对 NLTK 3.0 进行更新。本章来自于《Python 自然语言处理》,[Steven Bird](http://estive.net/), [Ewan Klein](http://homepages.inf.ed.ac.uk/ewan/)[Edward Loper](http://ed.loper.org/),Copyright © 2014 作者所有。本章依据 [*Creative Commons Attribution-Noncommercial-No Derivative Works 3\.0 United States License*](http://creativecommons.org/licenses/by-nc-nd/3.0/us/) 条款,与[*自然语言工具包*](http://nltk.org/) 3.0 版一起发行。
本文档构建于 2015 年 7 月 1 日 星期三 12:30:05 AEST
\ No newline at end of file
# 1\. 语言处理与 Python
# 1 语言处理与 Python
上百万字的文本,是容易拿到手的。假设我们会写一些简单的程序,那我们可以用它来做些什么?在本章中,我们将解决以下几个问题:
......
# 10\. 分析句子的意思
# 10 分析句子的意思
我们已经看到利用计算机的能力来处理大规模文本是多么有用。现在我们已经有了分析器和基于特征的语法,我们能否做一些类似分析句子的意思这样有用的事情?本章的目的是要回答下列问题:
......
# 11\. 语言学数据管理
# 11 语言学数据管理
已标注的语言数据的结构化集合在 NLP 的大部分领域都是至关重要的,但是,我们使用它们仍然面临着许多障碍。本章的目的是要回答下列问题:
......@@ -688,7 +688,7 @@ NLP 社区的成员的一个共同需要是发现具有很高精度和召回率
## 6.2 OLAC:开放语言档案社区
开放语言档案社区(OLAC)是正在创建的一个世界性语言资源的虚拟图书馆的机构和个人的国际伙伴关系:(i)制订目前最好的关于语言资源的数字归档实施的共识,(ii )开发存储和访问这些资源的互操作信息库和服务的网络。OLAC 在网上的主页是`http://www.language-archives.org/`
开放语言档案社区(OLAC)是正在创建的一个世界性语言资源的虚拟图书馆的机构和个人的国际伙伴关系:(i)制订目前最好的关于语言资源的数字归档实施的共识,(ii)开发存储和访问这些资源的互操作信息库和服务的网络。OLAC 在网上的主页是`http://www.language-archives.org/`
OLAC 元数据是描述语言资源的标准。通过限制某些元数据元素的值为使用受控词表中的术语,确保跨库描述的统一性。OLAC 元数据可用于描述物理和数字格式的数据和工具。OLAC 元数据扩展了都柏林核心元数据集(一个描述所有类型的资源被广泛接受的标准)。对这个核心集,OLAC 添加了语言资源的基本属性,如主题语言和语言类型。下面是一个完整的 OLAC 记录的例子:
......@@ -734,7 +734,7 @@ OLAC 元数据是描述语言资源的标准。通过限制某些元数据元素
本章的附加材料发布在`http://nltk.org/`,包括网络上免费提供的资源的链接。
语言学语料库的首要来源是*语言数据联盟**欧洲语言资源局*,两者都有广泛的在线目录。本书中提到的主要语料库的细节也有介绍:美国国家语料库(Reppen, Ide, & Suderman, 2005)、英国国家语料库({BNC}, 1999),Thesaurus Linguae Graecae({TLG}, 1999)、儿童语言数据交换系统 (CHILDES) (MacWhinney, 1995)和 TIMIT(S., Lamel, & William, 1986)。
语言学语料库的首要来源是*语言数据联盟**欧洲语言资源局*,两者都有广泛的在线目录。本书中提到的主要语料库的细节也有介绍:美国国家语料库(Reppen, Ide, & Suderman, 2005)、英国国家语料库(BNC, 1999),Thesaurus Linguae Graecae(TLG, 1999)、儿童语言数据交换系统 (CHILDES) (MacWhinney, 1995)和 TIMIT(S., Lamel, & William, 1986)。
计算语言学协会定期组织研讨会发布论文集,它的两个特别兴趣组:SIGWAC 和 SIGANN;前者推动使用网络作为语料,发起去除 HTML 标记的 CLEANEVAL 任务;后者鼓励对语言注解的互操作性的努力。
......@@ -772,13 +772,13 @@ Rotokas 数据由 Stuart Robinson 提供,勉方言数据由 Greg Aumann 提供
10. ◑ 使用办公软件创建一个电子表格,每行包含一个词条,包括一个中心词,词性和注释。以 CSV 格式保存电子表格。写 Python 代码来读取 CSV 文件并以 Toolbox 格式输出,使用`lx`表示中心词,`ps`表示词性,`gl`表示注释。
11. ◑ 在`nltk.Index`帮助下,索引莎士比亚的戏剧中的词。产生的数据结构允许按单个词查找,如 music,返回演出、场景和台词的引用的列表,`[(3, 2, 9), (5, 1, 23), ...]`的形式,其中`(3, 2, 9)`表示第 3 场演出场景 2 台词 9。
11. ◑ 在`nltk.Index`帮助下,索引莎士比亚的戏剧中的词。产生的数据结构允许按单个词查找,如`music`,返回演出、场景和台词的引用的列表,`[(3, 2, 9), (5, 1, 23), ...]`的形式,其中`(3, 2, 9)`表示第 3 场演出场景 2 台词 9。
12. ◑ 构建一个条件频率分布记录《威尼斯商人》中每段台词的词长,以角色名字为条件,如`cfd['PORTIA'][12]`会给我们 Portia 的 12 个词的台词的数目。
13. ★ 获取 CSV 格式的比较词表,写一个程序,输出相互之间至少有三个编辑距离的同源词。
14. ★ 建立一个出现在例句的词位的索引。假设对于一个给定条目的词位是 *w*。然后为这个条目添加一个单独的交叉引用字段`xrf`,引用其它有例句包含 *w* 的条目的中心词。对所有条目做这个,结果保存为 Toolbox 格式文件。
14. ★ 建立一个出现在例句的词位的索引。假设对于一个给定条目的词位是`w`。然后为这个条目添加一个单独的交叉引用字段`xrf`,引用其它有例句包含`w`的条目的中心词。对所有条目做这个,结果保存为 Toolbox 格式文件。
15. ◑ 写一个递归函数将任意树转换为对应的 XML,其中非终结符不能表示成 XML 元素,叶子表示文本内容,如:
......
......@@ -32,11 +32,11 @@ g. There are two ways to do this, AFAIK :smile: (internet discussion archive)
以计算方式处理自然语言的真正观念脱胎于一个研究项目,可以追溯到 1900 年代早期,使用逻辑重建数学推理,最清楚地表明是在 Frege、Russell、Wittgenstein、Tarski、Lambek 和 Carnap 的工作中。这项工作导致语言作为可以自动处理的形式化系统的概念。三个后来的发展奠定了自然语言处理的基础。第一个是形式语言理论。它定义一个语言为被一类自动机接受的字符串的集合,如上下文无关语言和下推自动机,并提供计算句法的支柱。
第二个发展是符号逻辑。它提供一个捕捉选定的自然语言的表达的逻辑证明的有关方面的形式化方法。符号逻辑中的形式化演算提供一种语言的句法和推理规则,并可能在一套理论模型中对规则进行解释;例子是命题逻辑和一阶逻辑。给定这样的演算和一个明确的句法和语义,通过将自然语言的表达翻译成形式化演算的表达式,联系语义与自然语言的表达成为可能。例如,如果我们翻译 John saw Mary 为公式`saw(j,m)`,我们(或明或暗地)将英语动词 saw 解释为一个二元关系,而 John 和 Mary 表示个体元素。更多的一般性的表达式如 All birds fly 需要量词,在这个例子中是∀,意思是对所有的:∀x (bird(x) → fly(x))。逻辑的使用提供了技术性的机制处理推理,而推理是语言理解的重要组成部分。
第二个发展是符号逻辑。它提供一个捕捉选定的自然语言的表达的逻辑证明的有关方面的形式化方法。符号逻辑中的形式化演算提供一种语言的句法和推理规则,并可能在一套理论模型中对规则进行解释;例子是命题逻辑和一阶逻辑。给定这样的演算和一个明确的句法和语义,通过将自然语言的表达翻译成形式化演算的表达式,联系语义与自然语言的表达成为可能。例如,如果我们翻译`John saw Mary`为公式`saw(j,m)`,我们(或明或暗地)将英语动词`saw`解释为一个二元关系,而`John``Mary`表示个体元素。更多的一般性的表达式如`All birds fly`需要量词,在这个例子中是`∀`,意思是对所有的:`∀x (bird(x) → fly(x))`。逻辑的使用提供了技术性的机制处理推理,而推理是语言理解的重要组成部分。
另一个密切相关的发展是组合原理,即一个复杂表达式的意思由它的各个部分的意思和它们的组合模式组成`(10)`。这一原理提供了句法和语义之间的有用的对应,即一个复杂的表达式的含义可以递归的计算。考虑句子 It is not true that p,其中 p 是一个命题。我们可以表示这个句子的意思为 not(p)。同样,我们可以表示 John saw Mary 的意思为 saw(j, m)。现在,我们可以使用上述信息递归地计算 It is not true that John saw Mary 的表示,得到 not(saw(j,m))
另一个密切相关的发展是组合原理,即一个复杂表达式的意思由它的各个部分的意思和它们的组合模式组成`(10)`。这一原理提供了句法和语义之间的有用的对应,即一个复杂的表达式的含义可以递归的计算。考虑句子`It is not true that p`,其中`p`是一个命题。我们可以表示这个句子的意思为`not(p)`。同样,我们可以表示`John saw Mary`的意思为`saw(j, m)`。现在,我们可以使用上述信息递归地计算`It is not true that John saw Mary`的表示,得到`not(saw(j,m))`
刚刚简要介绍的方法都有一个前提,自然语言计算关键依赖于操纵符号表示的规则。NLP 发展的一个特定时期,特别是 1980 年代,这个前提为语言学家和 NLP 从业人员提供了一个共同的起点,导致一种被称为基于归一(基于特征)语法的形式化语法家族(参见 9),也导致了在 Prolog 编程语言上实现 NLP 应用。虽然基于语法的自然语言处理仍然是一个研究的重要领域,由于多种因素在过去的 15-20 年它已经有些黯然失色。一个显著的影响因素来自于自动语音识别。虽然早期的语音处理采用一个模拟一类基于规则的音韵处理的模型,典型的如 *Sound Pattern of English* (Chomsky & Halle, 1968),结果远远不能够解决实时的识别实际的讲话这样困难的问题。相比之下,包含从大量语音数据中学习的模式的系统明显更准确、高效和稳健的。此外,言语社区发现建立对常见的测试数据的性能的定量测量的共享资源对建立更好的系统的过程有巨大帮助。最终,大部分的 NLP 社区拥抱面向数据密集型的语言处理,配合机器学习技术和评价为主导的方法的越来越多地使用。
刚刚简要介绍的方法都有一个前提,自然语言计算关键依赖于操纵符号表示的规则。NLP 发展的一个特定时期,特别是 1980 年代,这个前提为语言学家和 NLP 从业人员提供了一个共同的起点,导致一种被称为基于归一(基于特征)语法的形式化语法家族(参见 9),也导致了在 Prolog 编程语言上实现 NLP 应用。虽然基于语法的自然语言处理仍然是一个研究的重要领域,由于多种因素在过去的 15-20 年它已经有些黯然失色。一个显著的影响因素来自于自动语音识别。虽然早期的语音处理采用一个模拟一类基于规则的音韵处理的模型,典型的如《Sound Pattern of English》(Chomsky & Halle, 1968),结果远远不能够解决实时的识别实际的讲话这样困难的问题。相比之下,包含从大量语音数据中学习的模式的系统明显更准确、高效和稳健的。此外,言语社区发现建立对常见的测试数据的性能的定量测量的共享资源对建立更好的系统的过程有巨大帮助。最终,大部分的 NLP 社区拥抱面向数据密集型的语言处理,配合机器学习技术和评价为主导的方法的越来越多地使用。
## 当代哲学划分
......
# Index
# 索引
* _
......
# 2\. 获得文本语料和词汇资源
# 2 获得文本语料和词汇资源
在自然语言处理的实际项目中,通常要使用大量的语言数据或者语料库。本章的目的是要回答下列问题:
......
# 5\. 分类和标注词汇
# 5 分类和标注词汇
早在小学你就学过名词、动词、形容词和副词之间的差异。这些“词类”不是闲置的文法家的发明,而是对许多语言处理任务都有用的分类。正如我们将看到的,这些分类源于对文本中词的分布的简单的分析。本章的目的是要回答下列问题:
......
# 6\. 学习分类文本
# 6 学习分类文本
模式识别是自然语言处理的一个核心部分。以`-ed`结尾的词往往是过去时态动词`(5)`。频繁使用`will`是新闻文本的暗示`(3)`。这些可观察到的模式——词的结构和词频——恰好与特定方面的含义关联,如时态和主题。但我们怎么知道从哪里开始寻找,形式的哪一方面关联含义的哪一方面?
......
# 7\. 从文本提取信息
# 7 从文本提取信息
对于任何给定的问题,很可能已经有人把答案写在某个地方了。以电子形式提供的自然语言文本的数量真的惊人,并且与日俱增。然而,自然语言的复杂性使访问这些文本中的信息非常困难。NLP 目前的技术水平仍然有很长的路要走才能够从不受限制的文本对意义建立通用的表示。如果我们不是集中我们的精力在问题或“实体关系”的有限集合,例如:“不同的设施位于何处”或“谁被什么公司雇用”上,我们就能取得重大进展。本章的目的是要回答下列问题:
......
# 8\. 分析句子结构
# 8 分析句子结构
前面的章节重点关注词:如何识别它们,分析它们的结构,分配给他们词汇类别,以及获得它们的含义。我们还看到了如何识别词序列或 N 元组中的模式。然而,这些方法只触碰到支配句子的复杂约束的表面。我们需要一种方法处理自然语言中显著的歧义。我们还需要能够应对这样一个事实,句子有无限的可能,而我们只能写有限的程序来分析其结构和发现它们的含义。
......
# 9\. 构建基于特征的语法
# 9 构建基于特征的语法
自然语言具有范围广泛的语法结构,用 8 中所描述的简单的方法很难处理的如此广泛的语法结构。为了获得更大的灵活性,我们改变我们对待语法类别如`S``NP``V`的方式。我们将这些原子标签分解为类似字典的结构,其特征可以为一个范围的值。
......
......@@ -13,13 +13,13 @@
+ [在线阅读](https://nltk.apachecn.org)
+ [在线阅读(Gitee)](https://apachecn.gitee.io/nlp-py-2e-zh/)
本版本的 NLTK 已经针对 Python 3 和 NLTK 3 更新。本书的第一版由 O'Reilly 出版,可以在[http://nltk.org/book_1ed/](http://nltk.org/book_1ed/) 访问到。(本书目前没有计划出第二版)
本版本的 NLTK 已经针对 Python 3 和 NLTK 3 更新。本书的第一版由 O'Reilly 出版,可以在 [http://nltk.org/book_1ed/](http://nltk.org/book_1ed/) 访问到。(本书目前没有计划出第二版)
本版本的初译基于[原书第一版的翻译](http://www.52nlp.cn/resources),参见第一版[译者的话](./15.html)
本书的发行遵守[Creative Commons Attribution Noncommercial No-Derivative-Works 3.0 US License](http://creativecommons.org/licenses/by-nc-nd/3.0/us/) 条款。
本书的发行遵守 [Creative Commons Attribution Noncommercial No-Derivative-Works 3.0 US License](http://creativecommons.org/licenses/by-nc-nd/3.0/us/) 条款。
如果对材料有任何疑问请提交至[nltk-users](http://groups.google.com/group/nltk-users) 邮件列表。请在[issue tracker](https://github.com/nltk/nltk_book/issues) 上报告错误。
如果对材料有任何疑问请提交至 [nltk-users](http://groups.google.com/group/nltk-users) 邮件列表。请在 [issue tracker](https://github.com/nltk/nltk_book/issues) 上报告错误。
## 下载
......
+ [Python 自然语言处理 第二版](README.md)
+ [前言](0.md)
+ [1\. 语言处理与 Python](1.md)
+ [2\. 获得文本语料和词汇资源](2.md)
+ [1 语言处理与 Python](1.md)
+ [2 获得文本语料和词汇资源](2.md)
+ [3 处理原始文本](3.md)
+ [4 编写结构化程序](4.md)
+ [5\. 分类和标注词汇](5.md)
+ [6\. 学习分类文本](6.md)
+ [7\. 从文本提取信息](7.md)
+ [8\. 分析句子结构](8.md)
+ [9\. 构建基于特征的语法](9.md)
+ [10\. 分析句子的意思](10.md)
+ [11\. 语言学数据管理](11.md)
+ [5 分类和标注词汇](5.md)
+ [6 学习分类文本](6.md)
+ [7 从文本提取信息](7.md)
+ [8 分析句子结构](8.md)
+ [9 构建基于特征的语法](9.md)
+ [10 分析句子的意思](10.md)
+ [11 语言学数据管理](11.md)
+ [后记:语言的挑战](12.md)
+ [Bibliography](13.md)
+ [Index](14.md)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册