python - 新的斯坦福自然语言处理原生Python包和Core-NLP的Python包装器有什么区别?

标签 python nlp stanford-nlp

任何人都可以阐明新的原生 Python StanleyNLP 包中使用的神经管道之间的差异:https://stanfordnlp.github.io/stanfordnlp/

以及 Java coreNLP 包的 python 包装器 https://stanfordnlp.github.io/CoreNLP/

这两种不同的实现吗?我看到斯坦福NLP 包有原生神经实现,但也有一个 CoreNLP 包的包装器,我想知道如果所有东西都迁移到 python,为什么还需要这个包装器?

最佳答案

这两个系统完全不同。 Python 原生神经管道大致对应于 Universal Dependency Parsing from Scratch ,其中使用的 Tensorflow 解析器在 PyTorch 中重现。它为许多语言提供了一个完整的神经管道,从句子分割到依存分析,利用 UD资源,但(目前)不支持其他内容,例如 NER、共指、关系提取、开放 IE 和手写模式匹配,并且仅在 UD 资源上进行训练。 CoreNLP您可以通过这个或其他 Python 包装器使用它,它确实为少数语言提供了所有其他组件,并且一些模型(包括英语)接受了更多数据的训练。它具有许多前神经组件的优点和缺点(快速分词器!纯粹的启发式句子分割)。最有可能的是,如果您正在处理正式的英语文本,那么目前使用 CoreNLP 仍然会做得更好。在许多其他情况下,使用 Python stanfordnlp 会做得更好。

关于python - 新的斯坦福自然语言处理原生Python包和Core-NLP的Python包装器有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56205454/

相关文章:

python - 无法以自定义方式对输出进行分层

python - 从字典的完整笛卡尔积创建数据框

nlp - 如何以编程方式确定单词的词性标签?

nlp - 如何使用 NLP 库从句子中提取谓词和主语?

java - corenlp 情绪通过 Python 中的 Py4j Java 程序引发错误

python - 为什么在 numpy 数组中使用 split() 时会得到此输出?

python - MacVim 未加载 ftplugins

java - 如何使用斯坦福解析器

math - 计算两个不同大小向量的余弦相似度

python - 如何安装和调用 Stanford NERTagger?