我了解到,有在NLTK内置功能,可以提取根据以下从NER标记的句子关系:NLTK关系萃取 - relextract.extract_rels定制语料库
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'
参数corpus
。但在这种情况下,它的用法仅限于这两个语料库,不是吗?如何将它用于他自己的语料库(当然,假设它是NER标记的)。
谢谢。我有点困惑,为什么在这里需要'doc'和'corpus'呢?这里只需要一个文本输入,即要提取的分块文本。语料库在这里添加了什么? – Hendrik
查看源代码[here](http://www.nltk.org/_modules/nltk/sem/relextract.html)'corpus'定义了与不同的可能语料库参数相关联的NE(名称 - 实体)类。看看字典'NE_CLASSES'。 –