11

我一直在尝试查找 NLTK 实体类型的完整列表。我只能在此页面上找到最常见的,但不是完整列表。您能否分享 NLTK 拥有的命名实体类型的完整列表?

4

1 回答 1

12

这是一个很好的问题,我自己也有同样的疑惑。它似乎没有记录在任何地方,即使在 nltk 源中,当然它是由训练分块器的语料库决定的——这似乎是或曾经是 ACE 语料库,它没有随nltk。

在源代码中进行一些挖掘发现了答案:

>>> chunker=nltk.data.load(nltk.chunk._MULTICLASS_NE_CHUNKER) # cf. nltk/chunk/__init__.py
>>> sorted(chunker._tagger._classifier.labels())
['B-FACILITY', 'B-GPE', 'B-GSP', 'B-LOCATION', 'B-ORGANIZATION', 'B-PERSON', 
 'I-FACILITY', 'I-GPE', 'I-GSP', 'I-LOCATION', 'I-ORGANIZATION', 'I-PERSON',
 'O']

请注意,本书中提到的一些“常见”类型,包括 DATE 和 TIME,实际上并没有被这个分块器检测到。GPE 代表Geo-Political Entity, GSP 代表Geographical-Social-Political Entity,这是一个较旧的标签,在 ACE 项目中被 GPE 取代。从他们的定义(见下面的链接)来看,他们似乎几乎是等价的。

编辑, 2019 年 1 月:在 Daniel 的问题提示下,我自己查看了 ACE 项目的文档,以寻找对这些实体的描述。果然,这个页面链接到项目每个阶段的文档。上面列出的实体名称,包括神秘的 GSP,但没有GPE 实体,在项目的第一阶段使用。从第 2 阶段开始,GPE 取代了名单上的 GSP。人们不得不想知道 nltk 分块器最终是如何在GPE 和 GSP 上接受训练的,或者它是如何在两者之间做出决定的。我最好的猜测是它是在第 1 阶段和第 2 阶段材料的组合上训练的。

于 2017-07-20T11:57:00.160 回答