提交 3a68cdb8 编写于 作者: W wizardforcel

2020-12-29 14:50:50

上级 558e532a
......@@ -457,7 +457,7 @@ NLTK 中定义的基本语料库函数:使用`help(nltk.corpus.reader)`可以
除了组合两个或两个以上的频率分布和更容易初始化之外,`ConditionalFreqDist`还为制表和绘图提供了一些有用的方法。
1.1 是基于下面的代码产生的一个条件频率分布绘制的。条件是词 america 或 citizen❷,被绘图的计数是在特定演讲中出现的词的次数。它利用了每个演讲的文件名——例如`1865-Lincoln.txt` ——的前 4 个字符包含年代的事实❶。这段代码为文件`1865-Lincoln.txt`中每个小写形式以 america 开头的词——如 Americans——产生一个配对`('america', '1865')`
1.1 是基于下面的代码产生的一个条件频率分布绘制的。条件是词`america``citizen`❷,被绘图的计数是在特定演讲中出现的词的次数。它利用了每个演讲的文件名——例如`1865-Lincoln.txt`——的前 4 个字符包含年代的事实❶。这段代码为文件`1865-Lincoln.txt`中每个小写形式以`america`开头的词——如`Americans`——产生一个配对`('america', '1865')`
```py
>>> from nltk.corpus import inaugural
......@@ -481,7 +481,7 @@ NLTK 中定义的基本语料库函数:使用`help(nltk.corpus.reader)`可以
... for word in udhr.words(lang + '-Latin1'))
```
`plot()``tabulate()`方法中,我们可以使用`conditions=`来选择指定哪些条件显示。如果我们忽略它,所有条件都会显示。同样,我们可以使用`samples=`parameter 来限制要显示的样本。这使得载入大量数据到一个条件频率分布,然后通过选定条件和样品,绘图或制表的探索成为可能。这也使我们能全面控制条件和样本的显示顺序。例如:我们可以为两种语言和长度少于 10 个字符的词汇绘制累计频率数据表,如下所示。我们解释一下上排最后一个单元格中数值的含义是英文文本中 9 个或少于 9 个字符长的词有 1,638 个。
`plot()``tabulate()`方法中,我们可以使用`conditions=`来选择指定哪些条件显示。如果我们忽略它,所有条件都会显示。同样,我们可以使用`samples=parameter`来限制要显示的样本。这使得载入大量数据到一个条件频率分布,然后通过选定条件和样品,绘图或制表的探索成为可能。这也使我们能全面控制条件和样本的显示顺序。例如:我们可以为两种语言和长度少于 10 个字符的词汇绘制累计频率数据表,如下所示。我们解释一下上排最后一个单元格中数值的含义是英文文本中 9 个或少于 9 个字符长的词有 1,638 个。
```py
>>> cfd.tabulate(conditions=['English', 'German_Deutsch'],
......@@ -603,7 +603,7 @@ wishes
fen
```
显然,我们的复数函数明显存在错误,因为 fan 的复数是 fans。不必再重新输入这个函数的新版本,我们可以简单的编辑现有的。因此,在任何时候我们的复数函数只有一个版本,不会再有使用哪个版本的困扰。
显然,我们的复数函数明显存在错误,因为`fan`的复数是`fans`。不必再重新输入这个函数的新版本,我们可以简单的编辑现有的。因此,在任何时候我们的复数函数只有一个版本,不会再有使用哪个版本的困扰。
在一个文件中的变量和函数定义的集合被称为一个 Python 模块。相关模块的集合称为一个包。处理布朗语料库的 NLTK 代码是一个模块,处理各种不同的语料库的代码的集合是一个包。NLTK 的本身是包的集合,有时被称为一个库。
......@@ -642,7 +642,7 @@ def unusual_words(text):
'ads', 'adults', 'afe', 'affairs', 'affari', 'affects', 'afk', 'agaibn', 'ages', ...]
```
还有一个停用词语料库,就是那些高频词汇,如 the,to 和 also,我们有时在进一步的处理之前想要将它们从文档中过滤。停用词通常几乎没有什么词汇内容,而它们的出现会使区分文本变困难。
还有一个停用词语料库,就是那些高频词汇,如`the``to``also`,我们有时在进一步的处理之前想要将它们从文档中过滤。停用词通常几乎没有什么词汇内容,而它们的出现会使区分文本变困难。
```py
>>> from nltk.corpus import stopwords
......@@ -679,7 +679,7 @@ def unusual_words(text):
图 4.3:一个字母拼词谜题::在由随机选择的字母组成的网格中,选择里面的字母组成词;这个谜题叫做“目标”。
一个词汇列表对解决如图 4.3 中这样的词的谜题很有用。我们的程序遍历每一个词,对于每一个词检查是否符合条件。检查必须出现的字母❷和长度限制❶是很容易的(这里我们只查找 6 个或 6 个以上字母的词)。只使用指定的字母组合作为候选方案,尤其是一些指定的字母出现了两次(这里如字母 v)这样的检查是很棘手的。`FreqDist`比较法❸允许我们检查每个*字母*在候选词中的频率是否小于或等于相应的字母在拼词谜题中的频率。
一个词汇列表对解决如图 4.3 中这样的词的谜题很有用。我们的程序遍历每一个词,对于每一个词检查是否符合条件。检查必须出现的字母❷和长度限制❶是很容易的(这里我们只查找 6 个或 6 个以上字母的词)。只使用指定的字母组合作为候选方案,尤其是一些指定的字母出现了两次(这里如字母`v`)这样的检查是很棘手的。`FreqDist`比较法❸允许我们检查每个*字母*在候选词中的频率是否小于或等于相应的字母在拼词谜题中的频率。
```py
>>> puzzle_letters = nltk.FreqDist('egivrvonl')
......@@ -707,7 +707,7 @@ def unusual_words(text):
'Angie', 'Ariel', 'Ashley', 'Aubrey', 'Augustine', 'Austin', 'Averil', ...]
```
正如大家都知道的,以字母 a 结尾的名字几乎都是女性。我们可以在 4.4 中看到这一点以及一些其它的模式,该图是由下面的代码产生的。请记住`name[-1]``name`的最后一个字母。
正如大家都知道的,以字母`a`结尾的名字几乎都是女性。我们可以在 4.4 中看到这一点以及一些其它的模式,该图是由下面的代码产生的。请记住`name[-1]``name`的最后一个字母。
```py
>>> cfd = nltk.ConditionalFreqDist(
......@@ -719,7 +719,7 @@ def unusual_words(text):
![Images/5e197b7d253f66454a97af2a93c30a8e.jpg](Images/5e197b7d253f66454a97af2a93c30a8e.jpg)
图 4.4:条件频率分布:此图显示男性和女性名字的结尾字母;大多数以 a,e 或 i 结尾的名字是女性;以 h 和 l 结尾的男性和女性同样多;以 k, o, r, s 和 t 结尾的更可能是男性。
图 4.4:条件频率分布:此图显示男性和女性名字的结尾字母;大多数以`a, e``i`结尾的名字是女性;以`h``l`结尾的男性和女性同样多;以`k, o, r, s``t`结尾的更可能是男性。
## 4.2 发音的词典
......@@ -742,7 +742,7 @@ def unusual_words(text):
('fireball', ['F', 'AY1', 'ER0', 'B', 'AO2', 'L'])
```
对每一个词,这个词典资源提供语音的代码——不同的声音不同的标签——叫做 phones。请看 fire 有两个发音(美国英语中):单音节`F AY1 R`和双音节`F AY1 ER0`。CMU 发音词典中的符号是从 *Arpabet* 来的,更多的细节请参考`http://en.wikipedia.org/wiki/Arpabet`
对每一个词,这个词典资源提供语音的代码——不同的声音不同的标签——叫做`phones`。请看`fire`有两个发音(美国英语中):单音节`F AY1 R`和双音节`F AY1 ER0`。CMU 发音词典中的符号是从 *Arpabet* 来的,更多的细节请参考`http://en.wikipedia.org/wiki/Arpabet`
每个条目由两部分组成,我们可以用一个复杂的`for`语句来一个一个的处理这些。我们没有写`for entry in entries:`,而是用*两个*变量名`word, pron`替换`entry`❶。现在,每次通过循环时,`word`被分配条目的第一部分,`pron`被分配条目的第二部分:
......@@ -760,7 +760,7 @@ pott AA1 pout AW1 puett UW1 purt ER1 put UH1 putt AH1
上面的程序扫描词典中那些发音包含三个音素的条目❷。如果条件为真,就将`pron`的内容分配给三个新的变量:`ph1`, `ph2``ph3`。请注意实现这个功能的语句的形式并不多见❸。
这里是同样的`for`语句的另一个例子,这次使用内部的列表推导。这段程序找到所有发音结尾与 nicks 相似的词汇。你可以使用此方法来找到押韵的词。
这里是同样的`for`语句的另一个例子,这次使用内部的列表推导。这段程序找到所有发音结尾与`nicks`相似的词汇。你可以使用此方法来找到押韵的词。
```py
>>> syllable = ['N', 'IH0', 'K', 'S']
......@@ -770,7 +770,7 @@ pott AA1 pout AW1 puett UW1 purt ER1 put UH1 putt AH1
'cynics', 'diasonics', "dominic's", 'ebonics', 'electronics', "electronics'", ...]
```
请注意,有几种方法来拼读一个读音:nics, niks, nix 甚至 ntic's 加一个无声的 t,如词 atlantic's。让我们来看看其他一些发音与书写之间的不匹配。你可以总结一下下面的例子的功能,并解释它们是如何实现的?
请注意,有几种方法来拼读一个读音:`nics`, `niks`, `nix`甚至`ntic's`加一个无声的`t`,如词`atlantic's`。让我们来看看其他一些发音与书写之间的不匹配。你可以总结一下下面的例子的功能,并解释它们是如何实现的?
```py
>>> [w for w, pron in entries if pron[-1] == 'M' and w[-1] == 'n']
......@@ -837,7 +837,7 @@ KeyError: 'blog'
[['B', 'L', 'AA1', 'G']]
```
如果我们试图查找一个不存在的关键字❷,就会得到一个`KeyError`。这与我们使用一个过大的整数索引一个列表时产生一个`IndexError`是类似的。词 blog 在发音词典中没有,所以我们对我们自己版本的词典稍作调整,为这个关键字分配一个值❸(这对 NLTK 语料库是没有影响的;下一次我们访问它,blog 依然是空的)。
如果我们试图查找一个不存在的关键字❷,就会得到一个`KeyError`。这与我们使用一个过大的整数索引一个列表时产生一个`IndexError`是类似的。词`blog`在发音词典中没有,所以我们对我们自己版本的词典稍作调整,为这个关键字分配一个值❸(这对 NLTK 语料库是没有影响的;下一次我们访问它,`blog`依然是空的)。
我们可以用任何词典资源来处理文本,如过滤掉具有某些词典属性的词(如名词),或者映射文本中每一个词。例如,下面的文本到发音函数在发音词典中查找文本中每个词:
......@@ -908,7 +908,7 @@ KeyError: 'blog'
一个 Toolbox 文件由一个大量条目的集合组成,其中每个条目由一个或多个字段组成。大多数字段都是可选的或重复的,这意味着这个词汇资源不能作为一个表格或电子表格来处理。
下面是一个罗托卡特语的词典。我们只看第一个条目,词 kaa 的意思是"to gag"
下面是一个罗托卡特语的词典。我们只看第一个条目,词`kaa`的意思是`"to gag"`
```py
>>> from nltk.corpus import toolbox
......@@ -934,7 +934,7 @@ WordNet 是面向语义的英语词典,类似与传统辞典,但具有更丰
## 5.1 意义与同义词
考虑[(1a)](./ch02.html#ex-car1)中的句子。如果我们用 automobile 替换掉[(1a)](./ch02.html#ex-car1)中的词 motorcar,变成[(1b)](./ch02.html#ex-car2),句子的意思几乎保持不变:
考虑`(1a)`中的句子。如果我们用`automobile`替换掉`(1a)`中的词`motorcar`,变成`(1b)`,句子的意思几乎保持不变:
```py
>>> from nltk.corpus import wordnet as wn
......@@ -942,14 +942,14 @@ WordNet 是面向语义的英语词典,类似与传统辞典,但具有更丰
[Synset('car.n.01')]
```
因此,motorcar 只有一个可能的含义,它被定义为`car.n.01`,car 的第一个名词意义。`car.n.01`被称为 synset 或“同义词集”,意义相同的词(或“词条”)的集合:
因此,`motorcar`只有一个可能的含义,它被定义为`car.n.01``car`的第一个名词意义。`car.n.01`被称为 Synset 或“同义词集”,意义相同的词(或“词条”)的集合:
```py
>>> wn.synset('car.n.01').lemma_names()
['car', 'auto', 'automobile', 'machine', 'motorcar']
```
同义词集中的每个词可以有多种含义,例如:car 也可能是火车车厢、一个货车或电梯厢。但我们只对这个同义词集中所有词来说最常用的一个意义感兴趣。同义词集也有一些一般的定义和例句:
同义词集中的每个词可以有多种含义,例如:`car`也可能是火车车厢、一个货车或电梯厢。但我们只对这个同义词集中所有词来说最常用的一个意义感兴趣。同义词集也有一些一般的定义和例句:
```py
>>> wn.synset('car.n.01').definition()
......@@ -972,7 +972,7 @@ Synset('car.n.01')
'automobile'
```
与词 motorcar 意义明确且只有一个同义词集不同,词 car 是含糊的,有五个同义词集:
与词`motorcar`意义明确且只有一个同义词集不同,词`car`是含糊的,有五个同义词集:
```py
>>> wn.synsets('car')
......@@ -988,7 +988,7 @@ Synset('cable_car.n.01')]
['cable_car', 'car']
```
为方便起见,我们可以用下面的方式访问所有包含词 car 的词条。
为方便起见,我们可以用下面的方式访问所有包含词`car`的词条。
```py
>>> wn.lemmas('car')
......@@ -998,17 +998,17 @@ Lemma('car.n.04.car'), Lemma('cable_car.n.01.car')]
注意
**轮到你来**:写下词 dish 的你能想到的所有意思。现在,在 WordNet 的帮助下使用前面所示的相同的操作探索这个词。
**轮到你来**:写下词`dish`的你能想到的所有意思。现在,在 WordNet 的帮助下使用前面所示的相同的操作探索这个词。
## 5.2 WordNet 的层次结构
WordNet 的同义词集对应于抽象的概念,它们并不总是有对应的英语词汇。这些概念在层次结构中相互联系在一起。一些概念也很一般,如*实体**状态**事件*;这些被称为唯一前缀或者根同义词集。其他的,如*油老虎**有仓门式后背的汽车*等就比较具体的多。5.1 展示了一个概念层次的一小部分。
WordNet 的同义词集对应于抽象的概念,它们并不总是有对应的英语词汇。这些概念在层次结构中相互联系在一起。一些概念也很一般,如*实体**状态**事件*;这些被称为唯一前缀或者根同义词集。其他的,如`gas guzzer``hatch-back`等就比较具体的多。5.1 展示了一个概念层次的一小部分。
![Images/74248e04835acdba414fd407bb4f3241.jpg](Images/74248e04835acdba414fd407bb4f3241.jpg)
图 5.1:WordNet 概念层次片段:每个节点对应一个同义词集;边表示上位词/下位词关系,即上级概念与从属概念的关系。
WordNet 使在概念之间漫游变的容易。例如:一个如 *motorcar* 这样的概念,我们可以看到它的更加具体(直接)的概念——下位词。
WordNet 使在概念之间漫游变的容易。例如:一个如`motorcar`这样的概念,我们可以看到它的更加具体(直接)的概念——下位词。
```py
>>> motorcar = wn.synset('car.n.01')
......@@ -1073,7 +1073,7 @@ Synset('stump.n.01'), Synset('trunk.n.01')]
[Synset('forest.n.01')]
```
来看看可以获得多么复杂的东西,考虑具有几个密切相关意思的词 mint。我们可以看到`mint.n.04``mint.n.02`的一部分,是组成`mint.n.05`的材质。
来看看可以获得多么复杂的东西,考虑具有几个密切相关意思的词`mint`。我们可以看到`mint.n.04``mint.n.02`的一部分,是组成`mint.n.05`的材质。
```py
>>> for synset in wn.synsets('mint', wn.NOUN):
......@@ -1153,7 +1153,7 @@ mint.n.06: a plant where money is coined by authority of the government
0
```
WordNet 同义词集的集合上定义的相似度能够包括上面的概念。例如,`path_similarity`是基于上位词层次结构中相互连接的概念之间的最短路径在`0`-`1`范围的打分(两者之间没有路径就返回`-1`)。同义词集与自身比较将返回`1`。考虑以下的相似度:露脊鲸与小须鲸、逆戟鲸、乌龟以及小说。数字本身的意义并不大,当我们从海洋生物的语义空间转移到非生物时它是减少的。
WordNet 同义词集的集合上定义的相似度能够包括上面的概念。例如,`path_similarity`是基于上位词层次结构中相互连接的概念之间的最短路径在`0`-`1`范围的打分(两者之间没有路径就返回`-1`)。同义词集与自身比较将返回`1`。考虑以下的相似度:`minke, orca, tortoise, novel`。数字本身的意义并不大,当我们从海洋生物的语义空间转移到非生物时它是减少的。
```py
>>> right.path_similarity(minke)
......@@ -1168,7 +1168,7 @@ WordNet 同义词集的集合上定义的相似度能够包括上面的概念。
注意
还有一些其它的相似性度量方法;你可以输入`help(wn)`获得更多信息。NLTK 还包括 VerbNet,一个连接到 WordNet 的动词的层次结构的词典。It can be accessed with `nltk.corpus.verbnet`.
还有一些其它的相似性度量方法;你可以输入`help(wn)`获得更多信息。NLTK 还包括 VerbNet,一个连接到 WordNet 的动词的层次结构的词典。可以从`nltk.corpus.verbnet`访问。
## 6 小结
......@@ -1186,7 +1186,7 @@ WordNet 同义词集的集合上定义的相似度能够包括上面的概念。
本章的附加材料发布在`http://nltk.org/`,包括网络上免费提供的资源的链接。语料库方法总结请参阅`http://nltk.org/howto`上的语料库 HOWTO,在线 API 文档中也有更广泛的资料。
公开发行的语料库的重要来源是语言数据联盟((LDC)和欧洲语言资源局(ELRA)。提供几十种语言的数以百计的已标注文本和语音语料库。非商业许可证允许这些数据用于教学和科研目的。其中一些语料库也提供商业许可(但需要较高的费用)。
公开发行的语料库的重要来源是语言数据联盟(LDC)和欧洲语言资源局(ELRA)。提供几十种语言的数以百计的已标注文本和语音语料库。非商业许可证允许这些数据用于教学和科研目的。其中一些语料库也提供商业许可(但需要较高的费用)。
用于创建标注的文本语料库的好工具叫做 Brat,可从`http://brat.nlplab.org/`访问。
......@@ -1206,10 +1206,10 @@ WordNet 原始描述是[(Fellbaum, 1998)](./bibliography.html#fellbaum1998)。
4. ☼ 使用`state_union`语料库阅读器,访问《国情咨文报告》的文本。计数每个文档中出现的`men``women``people`。随时间的推移这些词的用法有什么变化?
5. ☼ 考查一些名词的整体部分关系。请记住,有 3 种整体部分关系,所以你需要使用:`member_meronyms()`, `part_meronyms()`, `substance_meronyms()`, `member_holonyms()`, `part_holonyms()``substance_holonyms()`
6. ☼ 在比较词表的讨论中,我们创建了一个对象叫做`translate`,通过它你可以使用德语和意大利语词汇查找对应的英语词汇。这种方法可能会出现什么问题?你能提出一个办法来避免这个问题吗?
7. ☼ 根据 Strunk 和 White 的《Elements of Style》,词 however 在句子开头使用是“in whatever way”或“to whatever extent”的意思,而没有“nevertheless”的意思。他们给出了正确用法的例子:However you advise him, he will probably do as he thinks best.(`http://www.bartleby.com/141/strunk3.html`) 使用词汇索引工具在我们一直在思考的各种文本中研究这个词的实际用法。也可以看 *LanguageLog* 发布在`http://itre.cis.upenn.edu/~myl/languagelog/archives/001913.html`上的“Fossilized prejudices abou‘t however’”
7. ☼ 根据 Strunk 和 White 的《Elements of Style》,词`however`在句子开头使用是`in whatever way``to whatever extent`的意思,而没有`nevertheless`的意思。他们给出了正确用法的例子:`However you advise him, he will probably do as he thinks best.``http://www.bartleby.com/141/strunk3.html`)。使用词汇索引工具在我们一直在思考的各种文本中研究这个词的实际用法。也可以看 *LanguageLog* 发布在`http://itre.cis.upenn.edu/~myl/languagelog/archives/001913.html`上的《Fossilized prejudices about however》
8. ◑ 在名字语料库上定义一个条件频率分布,显示哪个*首*字母在男性名字中比在女性名字中更常用(参见 4.4)。
9. ◑ 挑选两个文本,研究它们之间在词汇、词汇丰富性、文体等方面的差异。你能找出几个在这两个文本中词意相当不同的词吗,例如在《白鲸记》与《理智与情感》中的 monstrous
10. ◑ 阅读 BBC 新闻文章:*UK's Vicky Pollards 'left behind'* `http://news.bbc.co.uk/1/hi/education/6173441.stm`。文章给出了有关青少年语言的以下统计:“使用最多的 20 个词,包括 yeah, no, but 和 like,占所有词的大约三分之一”。对于大量文本源来说,所有词标识符的三分之一有多少词类型?你从这个统计中得出什么结论?更多相关信息请阅读`http://itre.cis.upenn.edu/~myl/languagelog/archives/003993.html`上的 *LanguageLog*
9. ◑ 挑选两个文本,研究它们之间在词汇、词汇丰富性、文体等方面的差异。你能找出几个在这两个文本中词意相当不同的词吗,例如在《白鲸记》与《理智与情感》中的`monstrous`
10. ◑ 阅读 BBC 新闻文章:[《UK's Vicky Pollards 'left behind'》](http://news.bbc.co.uk/1/hi/education/6173441.stm)。文章给出了有关青少年语言的以下统计:“使用最多的 20 个词,包括`yeah`, `no`, `but``like`,占所有词的大约三分之一”。对于大量文本源来说,所有词标识符的三分之一有多少词类型?你从这个统计中得出什么结论?更多相关信息请阅读`http://itre.cis.upenn.edu/~myl/languagelog/archives/003993.html`上的 *LanguageLog*
11. ◑ 调查模式分布表,寻找其他模式。试着用你自己对不同文体的印象理解来解释它们。你能找到其他封闭的词汇归类,展现不同文体的显著差异吗?
12. ◑ CMU 发音词典包含某些词的多个发音。它包含多少种不同的词?具有多个可能的发音的词在这个词典中的比例是多少?
13. ◑ 没有下位词的名词同义词集所占的百分比是多少?你可以使用`wn.all_synsets('n')`得到所有名词同义词集。
......@@ -1222,7 +1222,7 @@ WordNet 原始描述是[(Fellbaum, 1998)](./bibliography.html#fellbaum1998)。
20. ◑ 写一个函数`word_freq()`,用一个词和布朗语料库中的一个部分的名字作为参数,计算这部分语料中词的频率。
21. ◑ 写一个程序,估算一个文本中的音节数,利用 CMU 发音词典。
22. ◑ 定义一个函数`hedge(text)`,处理一个文本和产生一个新的版本在每三个词之间插入一个词`'like'`
23.**齐夫定律***f(w)* 是一个自由文本中的词 *w* 的频率。假设一个文本中的所有词都按照它们的频率排名,频率最高的在最前面。齐夫定律指出一个词类型的频率与它的排名成反比(即 *f* × *r = k**k* 是某个常数)。例如:最常见的第 50 个词类型出现的频率应该是最常见的第 150 个词型出现频率的 3 倍。
23.**齐夫定律***f(w)* 是一个自由文本中的词`w`的频率。假设一个文本中的所有词都按照它们的频率排名,频率最高的在最前面。齐夫定律指出一个词类型的频率与它的排名成反比(即`f × r = k``k`是某个常数)。例如:最常见的第 50 个词类型出现的频率应该是最常见的第 150 个词型出现频率的 3 倍。
1. 写一个函数来处理一个大文本,使用`pylab.plot`画出相对于词的排名的词的频率。你认可齐夫定律吗?(提示:使用对数刻度会有帮助。)所绘的线的极端情况是怎样的?
2. 随机生成文本,如使用`random.choice("abcdefg ")`,注意要包括空格字符。你需要事先`import random`。使用字符串连接操作将字符累积成一个很长的字符串。然后为这个字符串分词,产生前面的齐夫图,比较这两个图。此时你怎么看齐夫定律?
24. ★ 修改例 2.2 的文本生成程序,进一步完成下列任务:
......@@ -1231,8 +1231,8 @@ WordNet 原始描述是[(Fellbaum, 1998)](./bibliography.html#fellbaum1998)。
3. 现在使用两种不同文体训练你的系统,使用混合文体文本做实验。讨论你的观察结果。
25. ★ 定义一个函数`find_language()`,用一个字符串作为其参数,返回包含这个字符串作为词汇的语言的列表。使用《世界人权宣言》`udhr`的语料,将你的搜索限制在 Latin-1 编码的文件中。
26. ★ 名词上位词层次的分枝因素是什么?也就是说,对于每一个具有下位词——上位词层次中的子女——的名词同义词集,它们平均有几个下位词?你可以使用`wn.all_synsets('n')`获得所有名词同义词集。
27. ★ 一个词的多义性是它所有含义的个数。利用 WordNet,使用`len(wn.synsets('dog', 'n'))`我们可以判断名词 *dog* 有 7 种含义。计算 WordNet 中名词、动词、形容词和副词的平均多义性。
28.使用预定义的相似性度量之一给下面的每个词对的相似性打分。按相似性减少的顺序排名。你的排名与这里给出的顺序有多接近?[(Miller & Charles, 1998)](./bibliography.html#millercharles1998)实验得出的顺序: car-automobile, gem-jewel, journey-voyage, boy-lad, coast-shore, asylum-madhouse, magician-wizard, midday-noon, furnace-stove, food-fruit, bird-cock, bird-crane, tool-implement, brother-monk, lad-brother, crane-implement, journey-car, monk-oracle, cemetery-woodland, food-rooster, coast-hill, forest-graveyard, shore-woodland, monk-slave, coast-forest, lad-wizard, chord-smile, glass-magician, rooster-voyage, noon-string
27. ★ 一个词的多义性是它所有含义的个数。利用 WordNet,使用`len(wn.synsets('dog', 'n'))`我们可以判断名词`dog`有 7 种含义。计算 WordNet 中名词、动词、形容词和副词的平均多义性。
28. 使用预定义的相似性度量之一给下面的每个词对的相似性打分。按相似性减少的顺序排名。你的排名与这里给出的顺序有多接近?[(Miller & Charles, 1998)](./bibliography.html#millercharles1998)实验得出的顺序:`car-automobile, gem-jewel, journey-voyage, boy-lad, coast-shore, asylum-madhouse, magician-wizard, midday-noon, furnace-stove, food-fruit, bird-cock, bird-crane, tool-implement, brother-monk, lad-brother, crane-implement, journey-car, monk-oracle, cemetery-woodland, food-rooster, coast-hill, forest-graveyard, shore-woodland, monk-slave, coast-forest, lad-wizard, chord-smile, glass-magician, rooster-voyage, noon-string`
## 关于本文档...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册