什么是用于词性标注的优秀Java库?

我正在寻找一个优秀的Java开源POS Tagger 。 这是我到目前为止所提出的。

  • LingPipe
  • 斯坦福
  • LBJ
  • FastTag

有人有什么建议吗?

您是否希望在特定域中标记POS? 大多数通用标记符都是通过新闻专线文本进行培训的。 通常,当您在特定域(例如生物医学文本)中使用它们时,它们表现不佳。 还有其他标记器专门针对此类域进行了培训,例如用于生物医学文本的dTagger (java)。

对于newswire文本,Adwait Ratnaparkhi的MXPOST非常好,是我推荐的。

其他Java实现包括:

  1. MontyLingua
  2. Berkeley Parser (不是真正的POS标记器,但所有完整的解析器通常都包含POS标记器.Google用于Java语法分析器 ,你会发现很多。)
  3. QTag
  4. LBJ

由其他海报发布的OpenNLP和Lingpipe也相当不错。

有关POS标签最新技术的信息可以在这里找到。 正如你所看到的那样LTAG-Spinal (也被另一张海报提到)排名最高,但各种标签的变化并不多。 我自己没有使用过LTAG。

另请注意,POS标记的基准性能约为90%。 基线意味着 – (a)通过词典中最频繁的POS标签标记每个单词,以及(b)将每个未知单词标记为名词。

我使用OpenNLP效果很好。 您还可以查看MorphAdorner 。

我使用过LingPipe和Stanford的POS Tagger。 后者是最先进的 POS Tagger,但根据我的经验,它太慢了(尽管它们确实提供了不太准确的模型,而且速度相当快)。 当然,它总是取决于你想要达到的目标,并且总是会在速度和准确性之间进行权衡。

我也曾经使用过基于LBJ的NER软件,尽管它非常准确,但源代码完全混乱。 LingPipe和斯坦福的来源都非常干净且记录完备。

你也可以看看LTAG-spinal 。 我还没有使用它,但从算法描述和列出的准确性来看,它肯定比你到目前为止的替代方案更好。

希望能帮助到你。