将CoreNLPParser
中的NLTK
与CoreNLP Server一起使用时,生成的令牌包含一个'origintalText'
键和一个'word'
键
两者之间有什么区别?有关于它们的任何文档吗?
我只找到了this issue,上面提到了origintalText
键,但没有回答我的问题。
from nltk.parse.corenlp import CoreNLPParser
corenlp_parser = CoreNLPParser('http://localhost:9000', encoding='utf8')
text = u'我家没有电脑。'
result = corenlp_parser.api_call(text, {'annotators': 'tokenize,ssplit'})
print(result)
打印
{'sentences':[{'index':0,'tokens':[{'index':1,'word':'我家', 'originalText':'我家','characterOffsetBegin':0,'characterOffsetEnd': 2},{'index':2,'word':'没有','originalText':'没有', 'characterOffsetBegin':2,'characterOffsetEnd':4},{'index':3, 'word':'电脑','originalText':'电脑','characterOffsetBegin':4, 'characterOffsetEnd':6},{'index':4,'word':'。','originalText': '。','characterOffsetBegin':6,6,'characterOffsetEnd':7}]}]}
更新:
似乎Token
实现了HasWord
和HasOriginalText
答案 0 :(得分:1)
word
进行了一些转换,例如可以将其打印为S表达式(即,解析树)。因此,括号和其他花括号变成了-LRB-
之类的标记(左圆括号)。此外,将引号归一化为反引号(``)和正勾号('')和其他一些小东西)。
originalText
是可用于重构原始句子的标记的原义文字。