Я не нахожу ни одного законченного учебника по использованию stanford corenlp в моей системе (windows) с использованием python. После многих поисков я использую пакет StanfordCoreNLP и использую его в своей системе. Я не нахожу никакой документации, чтобы использовать это более эффективно. Я хочу извлечь ОТНОШЕНИЯ и ОТКРЫТИЕ Поскольку документации нигде нет, я просто попытался поместить OpenIE в свойства
self.props = {
'annotators': 'tokenize,ssplit,pos,lemma,ner,parse,depparse,dcoref,relation,OpenIE',
'pipelineLanguage': 'en',
'outputFormat': 'json'
}
и
self.nlp.relations(sentence)
self.nlp.relations(sentence)
Но это не работает! (Очевидно). Я получаю эту ошибку
AttributeError: у объекта 'StanfordCoreNLP' нет атрибута 'Relations' AttributeError: У объекта 'StanfordCoreNLP' нет атрибута 'openie'
Можете ли вы привести меня к источникам, где я могу получить подробные руководства для PYTHON? и я слышал, что пакет StanfordCoreNLP не обладает всеми функциями Stanford-corenlp? Это так запутанно! Есть так много пакетов, и трудно решить, какой из них использовать, а какой - правильный! Пожалуйста, помогите!
from stanfordcorenlp import StanfordCoreNLP
import logging
import json
class StanfordNLP:
def __init__(self, host='http://localhost', port=9000):
self.nlp = StanfordCoreNLP(host, port=port,
timeout=30000) # , quiet=False, logging_level=logging.DEBUG)
self.props = {
'annotators': 'tokenize,ssplit,pos,lemma,ner,parse,depparse,dcoref,relation,OpenIE',
'pipelineLanguage': 'en',
'outputFormat': 'json'
}
def word_tokenize(self, sentence):
return self.nlp.word_tokenize(sentence)
def pos(self, sentence):
return self.nlp.pos_tag(sentence)
def ner(self, sentence):
return self.nlp.ner(sentence)
def parse(self, sentence):
return self.nlp.parse(sentence)
def dependency_parse(self, sentence):
return self.nlp.dependency_parse(sentence)
def annotate(self, sentence):
return json.loads(self.nlp.annotate(sentence, properties=self.props))
def cor(self, sentence):
return (self.nlp.coref(sentence))
# **I tried to get relations and OpenIE**
def relations(self, sentence):
return (self.nlp.relations(sentence))
def openie(self, sentence):
return (self.nlp.openie(sentence))
@staticmethod
def tokens_to_dict(_tokens):
tokens = defaultdict(dict)
for token in _tokens:
tokens[int(token['index'])] = {
'word': token['word'],
'lemma': token['lemma'],
'pos': token['pos'],
'ner': token['ner']
}
return tokens
if __name__ == '__main__':
sNLP = StanfordNLP()
text = 'John likes apple. Mary Likes Him'
s=sNLP.relations(text)
print(s)
print("OpenIE:", sNLP.openie(text))
```