我了解到NLTK中有一个内置函数,可以根据以下方式从NER标记的句子中提取关系:
import re
IN = re.compile(r'.*\bin\b(?!\b.+ing\b)')
for fileid in ieer.fileids():
for doc in ieer.parsed_docs(fileid):
for rel in relextract.extract_rels('ORG', 'LOC', doc, corpus='ieer', pattern = IN):
print(relextract.rtuple(rel))
我似乎对通用目的很有希望,但我知道 relextract.extract_rels
仅接受 'ieer'
或 'conll2002'
参数语料库
。但在这种情况下,它的使用仅限于这两个语料库,不是吗?如何将它用于自己的语料库(当然,假设它是 NER 标记的)。
最佳答案
这应该更像是一条评论,但我没有足够的声誉。
在对自定义语料库进行 pos 标记并转换为分块树列表后,您可以将其作为 doc
参数传递。对于自定义语料库,您应该使用 corpus='ace'
。
例如,在this answer中,他们使用 extract_rels
来标记自定义语料库。
关于python - NLTK 关系提取 - relextract.extract_rels 中的自定义语料库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38221147/