Java中的Spacy Alternatives
问题描述:
我目前使用spacy来遍历依赖关系树,并生成实体。Java中的Spacy Alternatives
nlp = get_spacy_model(detect_lang(unicode_text))
doc = nlp(unicode_text)
entities = set()
for sentence in doc.sents:
# traverse tree picking up entities
for token in sentence.subtree:
## pick entitites using some pre-defined rules
entities.discard('')
return entities
Spacy是否有很好的Java替代品?
我正在寻找像Spacy那样生成依赖树的库。
编辑:
我看着斯坦福分析器 然而,它生成以下分析树:
ROOT
|
NP
_______________|_________
| NP
| _________|___
| | PP
| | ________|___
NP NP | NP
____|__________ | | _______|____
DT JJ JJ NN NNS IN DT JJ NN
| | | | | | | | |
the quick brown fox jumps over the lazy dog
不过,我期待一个树状结构Spacy作用:
jumps_VBZ
__________________________|___________________
| | | | | over_IN
| | | | | |
| | | | | dog_NN
| | | | | _______|_______
The_DT quick_JJ brown_JJ fox_NN ._. the_DT lazy_JJ
答
您正在寻找Stanford Dependency Parser。与大多数斯坦福工具一样,这也与Stanford CoreNLP捆绑在depparse
注释器下。其他解析器包括Malt parser(一种基于特征的移位缩减解析器)和Ryan McDonald的MST parser(准确但速度较慢的最大生成树解析器)。
是的,并使用我得到了上述树^^。但是,我需要一些帮助来解释这些内容,并且找不到任何文档。 Spacy通过标记单词使其非常容易,因此遍历Spacy中的树实际上是遍历句子。而斯坦福分析器的依赖不是基于字的依赖关系。你能指点我一些文档,所以我可以将斯坦福解析器树转换成Spacy生成的东西? – vin
斯坦福既有[选区分析器](http://nlp.stanford.edu/software/lex-parser.shtml)和[依赖分析器](http://nlp.stanford.edu/software/nndep.shtml )。令人困惑的是,选区解析器也可以转换为依赖关系解析。 Spacy的解析器输出依赖关系解析,而你目前正在尝试使用CoreNLP的选区解析器。请参阅:http://stanfordnlp.github.io/CoreNLP/depparse.html(尝试从一个句子的'BasicDependenciesAnnotation'注释中获得'SemanticGraph'对象) –
您也可以尝试使用[Simple API](http:///stanfordnlp.github.io/CoreNLP/simple.html),它将在内部使用依赖解析器。 –