【发布时间】:2017-04-14 06:06:00
【问题描述】:
我需要执行命名实体识别/分类,并以 IOB 标记格式生成输出。
我正在使用NLTK-train library 提供的 NLTK 分块器,但这会生成树,而不是 IOB 标记列表。
def chunk_iob(list_of_words):
nltk_tagger = nltk.data.load("taggers/conll2002_aubt.pickle")
nltk_chunker = nltk.data.load("chunkers/conll2002_NaiveBayes.pickle")
t = nltk_tagger.tag(list_of_words)
print(t)
c = nltk_chunker.parse(t)
print(c)
我们得到 c 作为一棵树,例如:
(S
(LOC Barcelona/NC)
(PER Juan/NC :/Fd)
...
但我正在寻找类似的东西:
Barcelona - LOC
Juan - PER
...
这是list_of_words参数的IOB标记列表,与list_of_words的顺序相同。
如何从树中获取该标记列表?
【问题讨论】:
-
他们有 2.7 的同等泡菜吗?我在运行您的脚本时遇到错误
-
请注意
NLTK-trainer不是NLTK;P -
@bogs 看来你很清楚什么是 IOB,恐怕我对 IOB 不清楚,你能用简单的外行术语解释一下在块的内部或外部是什么意思简单的例子...我相信我理解 Chinking 和 Chunking.. 非常感谢 Cheers raky stackoverflow.com/questions/1598940/…
标签: nltk nltk-trainer