簡體   English   中英

OpenNLP與斯坦福CoreNLP

[英]OpenNLP vs Stanford CoreNLP

我一直在對這兩個包進行一些比較,並且不確定要進入哪個方向。我正在尋找的是:

  1. 命名實體識別(人員,地點,組織等)。
  2. 性別認同。
  3. 一個體面的培訓API。

據我所知,OpenNLP和Stanford CoreNLP提供了非常相似的功能。 然而,斯坦福CoreNLP似乎有更多活動,而OpenNLP在過去六個月中只有一些提交。

根據我所看到的,OpenNLP似乎更容易訓練新模型,僅憑這個原因可能更具吸引力。 但是,我的問題是其他人會將其作為添加NLP功能到Java應用程序的基礎? 我最擔心的是OpenNLP是“剛剛成熟”還是半成熟。

在完全披露中,我是CoreNLP的貢獻者,所以這是一個有偏見的答案。 但是,在我看來你的三個標准:

  1. 命名實體識別:我認為CoreNLP在准確性和易用性方面明顯勝出。 例如,OpenNLP每個NER標簽都有一個模型,而CoreNLP使用一個Annotator檢測所有標簽。 此外,使用SUTime的時間分辨率是CoreNLP中的一個很好的特權。 准確性方面,我的軼事經驗是CoreNLP在通用文本方面做得更好。

  2. 性別認同。 我認為這兩種工具在這方面都很難記錄。 OpenNLP似乎有一個GenderModel類; CoreNLP有一個性別注釋器。

  3. 培訓API。 我懷疑OpenNLP培訓API更易於使用而不是現成的培訓。 但是,如果你想做的只是,例如,從CoNLL文件中訓練模型,兩者都應該是直截了當的。 CoreNLP的訓練速度往往比我嘗試過的其他工具更快,但是我還沒有正式對它進行基准測試,所以請稍等一下。

這里有點晚了,但我最近看看OpenNLP僅基於斯坦福獲得GPL許可的事實 - 如果這對您的項目來說可行,那么斯坦福通常被稱為NLP的基准/最先進技術。

也就是說,預訓練模型的性能將取決於您的目標文本,因為它是特定於域的。 如果您的目標文本與模型所訓練的數據類似,那么您應該獲得不錯的結果,但如果沒有,那么您將不得不自己訓練模型,這將取決於訓練數據。

OpenNlp的優勢在於它非常易於擴展,並且易於與其他庫一起使用而編寫,並且具有良好的集成API - 使用OpenNLP進行培訓非常簡單(一旦獲得了訓練數據)( 我在這里寫了一下 - 與一個非常糟糕的生成數據集我能夠獲得確定食物的結果 ,並且它非常易於配置 - 您可以非常容易地配置訓練周圍的所有參數,並且您可以使用一系列算法(感知器,最大熵和在快照版本中他們添加了Naive Bayes

如果你發現你確實需要自己訓練模型,我會考慮嘗試OpenNlp,看看它是如何進行比較的,就像微調一樣,你可以得到相當不錯的結果。

這取決於你的目的和需要,我對這兩者的了解是OpenNLP是開源的,而CoreNLP當然不是。

但是如果你看一下准確度, Stanford CoreNLP檢測精度比OpenNLP更准確。 最近我對兩者的Part Of Speech (POS)標記做了比較,並且肯定是任何NLP任務中最重要的部分,所以在我的分析中,獲勝者是CoreNLP

展望未來的NER有作為CoreNLP有更准確的結果比較OpenNLP

因此,如果您剛剛開始,可以在以后根據需要使用OpenNLP ,您可以遷移到Stanford CoreNLP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM