Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
nlp-py-2e-zh
提交
10b3bb18
N
nlp-py-2e-zh
项目概览
OpenDocCN
/
nlp-py-2e-zh
大约 1 年 前同步成功
通知
2
Star
69
Fork
24
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nlp-py-2e-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
10b3bb18
编写于
12月 29, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-12-29 16:38:34
上级
f7a9a18c
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
28 deletion
+28
-28
5.md
5.md
+22
-22
7.md
7.md
+6
-6
未找到文件。
5.md
浏览文件 @
10b3bb18
此差异已折叠。
点击以展开。
7.md
浏览文件 @
10b3bb18
...
...
@@ -54,7 +54,7 @@
图 2.1:词符和词块级别的分割与标注
在本节中,我们将在较深的层面探讨词块划分,以词块的定义和表示开始。我们将看到正则表达式和 N
-gram
的方法来词块划分,使用 CoNLL-2000 词块划分语料库开发和评估词块划分器。我们将在
[
(5)
](
./ch07.html#sec-ner
)
和 6 回到命名实体识别和关系抽取的任务。
在本节中,我们将在较深的层面探讨词块划分,以词块的定义和表示开始。我们将看到正则表达式和 N
元
的方法来词块划分,使用 CoNLL-2000 词块划分语料库开发和评估词块划分器。我们将在
[
(5)
](
./ch07.html#sec-ner
)
和 6 回到命名实体识别和关系抽取的任务。
## 2.1 名词短语词块划分
...
...
@@ -340,7 +340,7 @@ ChunkParse score:
## 3.3 训练基于分类器的词块划分器
无论是基于正则表达式的词块划分器还是
n-gram
词块划分器,决定创建什么词块完全基于词性标记。然而,有时词性标记不足以确定一个句子应如何划分词块。例如,考虑下面的两个语句:
无论是基于正则表达式的词块划分器还是
N 元
词块划分器,决定创建什么词块完全基于词性标记。然而,有时词性标记不足以确定一个句子应如何划分词块。例如,考虑下面的两个语句:
```
py
class ConsecutiveNPChunkTagger(nltk.TaggerI): ❶
...
...
@@ -742,8 +742,8 @@ IOB 格式(有时也称为 BIO 格式)由[(Ramshaw & Marcus, 1995)](./biblio
8. ◑ 使用基于正则表达式的词块语法`RegexpChunk`,为 CoNLL 语料库中词块类型中的一个开发一个词块划分器。使用词块、词缝、合并或拆分规则的任意组合。
9. ◑ 有时一个词的标注不正确,例如"12/CD or/CC so/RB cases/VBZ"中的中心名词。不用要求手工校正标注器的输出,好的词块划分器使用标注器的错误输出也能运作。查找使用不正确的标记正确为名词短语划分词块的其他例子。
10. ◑ 二元词块划分器的准确性得分约为 90%。研究它的错误,并试图找出它为什么不能获得 100% 的准确率。实验三元词块划分。你能够再提高准确性吗?
11. ★ 在 IOB 词块标注上应用
n-gram
和 Brill 标注方法。不是给词分配词性标记,在这里我们给词性标记分配 IOB 标记。例如如果标记`DT`(限定符)经常出现在一个词块的开头,它会被标注为`B`(开始)。相对于本章中讲到的正则表达式词块划分方法,评估这些词块划分方法的表现。
12. ★ 在[5.](./ch05.html#chap-tag)中我们看到,通过查找有歧义的 n-grams 可以得到标注准确性的上限,即在训练数据中有多种可能的方式标注的 n-grams。应用同样的方法来确定一个
n-gram
词块划分器的上限。
11. ★ 在 IOB 词块标注上应用
N 元
和 Brill 标注方法。不是给词分配词性标记,在这里我们给词性标记分配 IOB 标记。例如如果标记`DT`(限定符)经常出现在一个词块的开头,它会被标注为`B`(开始)。相对于本章中讲到的正则表达式词块划分方法,评估这些词块划分方法的表现。
12. ★ 在[5.](./ch05.html#chap-tag)中我们看到,通过查找有歧义的 n-grams 可以得到标注准确性的上限,即在训练数据中有多种可能的方式标注的 n-grams。应用同样的方法来确定一个
N 元
词块划分器的上限。
13. ★ 挑选 CoNLL 语料库中三种词块类型之一。编写函数为你选择的类型做以下任务:
1. 列出与此词块类型的每个实例一起出现的所有标记序列。
2. 计数每个标记序列的频率,并产生一个按频率减少的顺序排列的列表;每行要包含一个整数(频率)和一个标记序列。
...
...
@@ -753,8 +753,8 @@ IOB 格式(有时也称为 BIO 格式)由[(Ramshaw & Marcus, 1995)](./biblio
16. ★ 宾州树库样例包含一部分已标注的《华尔街日报》文本,已经按名词短语划分词块。其格式使用方括号,我们已经在本章遇到它了几次。该语料可以使用`for sent in nltk.corpus.treebank_chunk.chunked_sents(fileid)`来访问。这些都是平坦的树,正如我们使用`nltk.corpus.conll2000.chunked_sents()`得到的一样。
1. 函数`nltk.tree.pprint()`和`nltk.chunk.tree2conllstr()`可以用来从一棵树创建树库和 IOB 字符串。编写函数`chunk2brackets()`和`chunk2iob()`,以一个单独的词块树为它们唯一的参数,返回所需的多行字符串表示。
2. 写命令行转换工具`bracket2iob.py`和`iob2bracket.py`,(分别)读取树库或 CoNLL 格式的一个文件,将它转换为其他格式。(从 NLTK 语料库获得一些原始的树库或 CoNLL 数据,保存到一个文件,然后使用`for line in open(filename)`从 Python 访问它。)
17. ★ 一个
n-gram
词块划分器可以使用除当前词性标记和 n-1 个前面的词块的标记以外其他信息。调查其他的上下文模型,如 n-1 个前面的词性标记,或一个写前面词块标记连同前面和后面的词性标记的组合。
18. ★ 思考一个
n-gram
标注器使用临近的标记的方式。现在观察一个词块划分器可能如何重新使用这个序列信息。例如:这两个任务将使用名词往往跟在形容词后面(英文中)的信息。这会出现相同的信息被保存在两个地方的情况。随着规则集规模增长,这会成为一个问题吗?如果是,推测可能会解决这个问题的任何方式。
17. ★ 一个
N 元
词块划分器可以使用除当前词性标记和 n-1 个前面的词块的标记以外其他信息。调查其他的上下文模型,如 n-1 个前面的词性标记,或一个写前面词块标记连同前面和后面的词性标记的组合。
18. ★ 思考一个
N 元
标注器使用临近的标记的方式。现在观察一个词块划分器可能如何重新使用这个序列信息。例如:这两个任务将使用名词往往跟在形容词后面(英文中)的信息。这会出现相同的信息被保存在两个地方的情况。随着规则集规模增长,这会成为一个问题吗?如果是,推测可能会解决这个问题的任何方式。
## 关于本文档...
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录