NLTK 的实体类型是什么?

What are the entity types for NLTK?

我一直在努力寻找 NLTK 实体类型的完整列表。我只能在 this page 上找到最常见的,但找不到完整列表。您能否分享 NLTK 具有的命名实体类型的完整列表?

这是一个很好的问题,我自己也有同样的疑问。它似乎没有在任何地方记录,即使在 nltk 源中也是如此,当然它是由语料库决定的,语料库是训练分块器的——它似乎是或曾经是 the ACE corpus,它不是与 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']

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

编辑, 2019 年 1 月:在 Daniel 的问题提示下,我查看了列表中的 documentation of the ACE project myself in search of a description of these entities. Sure enough, this page links to documentation for each phase of the project. The entity names listed above, including the mysterious GSP but without the GPE entity, were used through phase 1 of the project. Starting with phase 2,GPE 取代了 GSP。人们不得不想知道 nltk 分块器是如何最终在 GPE 和 GSP 上接受训练的,或者它是如何在两者之间做出决定的。我最好的猜测是它是结合第 1 阶段和第 2 阶段的材料进行训练的。