【发布时间】:2016-05-22 13:43:55
【问题描述】:
我有一个关于斯坦福 CoreNLP OpenIE 注释器的问题。
我正在使用斯坦福 CoreNLP 版本 stanford-corenlp-full-2015-12-09 以便使用 OpenIE 提取关系。我不太了解 Java,这就是为什么我在 Python 3.4 中使用 pycorenlp 包装器。
我想提取句子中所有单词之间的关系,下面是我使用的代码。我也有兴趣展示每个三胞胎的信心:
import nltk
from pycorenlp import *
import collections
nlp=StanfordCoreNLP("http://localhost:9000/")
s="Twenty percent electric motors are pulled from an assembly line"
output = nlp.annotate(s, properties={"annotators":"tokenize,ssplit,pos,depparse,natlog,openie",
"outputFormat": "json","triple.strict":"true"})
result = [output["sentences"][0]["openie"] for item in output]
print(result)
for i in result:
for rel in i:
relationSent=rel['relation'],rel['subject'],rel['object']
print(relationSent)
这是我得到的结果:
[[{'relationSpan': [4, 6], 'subject': 'Twenty percent electric motors', 'objectSpan': [8, 10], 'relation': 'are pulled from', 'object': 'assembly line', 'subjectSpan': [0, 4]}, {'relationSpan': [4, 6], 'subject': 'percent electric motors', 'objectSpan': [8, 10], 'relation': 'are pulled from', 'object': 'assembly line', 'subjectSpan': [1, 4]}, {'relationSpan': [4, 5], 'subject': 'Twenty percent electric motors', 'objectSpan': [5, 6], 'relation': 'are', 'object': 'pulled', 'subjectSpan': [0, 4]}, {'relationSpan': [4, 5], 'subject': 'percent electric motors', 'objectSpan': [5, 6], 'relation': 'are', 'object': 'pulled', 'subjectSpan': [1, 4]}]]
三胞胎是:
('are pulled from', 'Twenty percent electric motors', 'assembly line')
('are pulled from', 'percent electric motors', 'assembly line')
('are', 'Twenty percent electric motors', 'pulled')
('are', 'percent electric motors', 'pulled')
第一个问题是结果中没有显示信心。第二个问题是我只想检索包含句子所有单词的三元组,即这个三元组:
('are pulled from', 'Twenty percent electric motors', 'assembly line')
我得到的不仅仅是一个三胞胎组合。我尝试使用选项"triple.strict":"true",因为它提取“仅当它们消耗整个片段时三元组”但它不起作用。
谁能给我建议?
【问题讨论】:
标签: python stanford-nlp