2011-04-29 139 views
10

我願意開始在NLP上開發一個項目。我不知道很多可用的工具。谷歌搜索後約一個月。我意識到openNLP可以成爲我的解決方案。Java的簡單自然語言處理啓動

不幸的是我沒有看到任何關於使用API​​的完整教程。他們都缺乏一些一般的步驟。我需要一個來自底層的教程。我在網站上看到很多下載,但不知道如何使用它們?我是否需要培訓什麼?..這裏是我想知道 -

如何安裝/設置它能夠 -

  1. 解析英語一句話
  2. 識別自然語言處理系統詞性不同
+0

請參閱http://stackoverflow.com/questions/22904025/java-or-python-for-natural-language-processing – alvas 2014-04-07 07:58:41

回答

11

你說你需要「解析」每個句子。您可能已經知道這一點,但僅僅爲了明確起見,在NLP中,術語「解析」通常意味着恢復一些分層語法結構。最常見的類型是組成結構(例如,通過上下文無關語法)和依賴結構。

如果您需要層次結構,我建議您考慮只是從解析器開始。我知道的大多數解析器都包含解析過程中的POS標記,並且可以提供比有限狀態POS標記更高的準確性標記(注意 - 我更熟悉組成解析器而不是依賴解析器,可能有一些或大多數依賴解析器會需要POS標籤作爲輸入)。

解析的一大缺點是時間複雜度。有限狀態的POS標籤通常每秒鐘以千字計算。即使是貪婪的依賴關係解析器也相當慢,構成的解析器通常每秒運行1-5個句子。所以如果你不需要分層結構,你可能想要使用有限狀態的POS標籤來提高效率。

如果你決定你需要解析結構,有幾個建議:

我認爲@aab建議斯坦福解析器既包括組成分析器和依賴解析器。

Berkeley解析器(http://code.google.com/p/berkeleyparser/)是一個非常有名的PCFG構成解析器,達到了最先進的準確性(相當於斯坦福解析器,我相信它),並且效率相當高(〜每秒5句話)。

BUBS解析器(http://code.google.com/p/bubs-parser/)也可以運行高精度Berkeley語法,並將效率提高到15-20句/秒。全面披露 - 我是從事這個解析器的主要研究人員之一。

警告:這兩個解析器都是研究代碼,帶有所有產生的問題。但我很想看到人們實際使用BUBS,所以如果它對您有用,請嘗試與我聯繫,並提供問題,意見和建議等。

如果需要,還可以使用以下幾種維基百科背景參考:

+0

我現在不需要解析..我只需要POStag – shababhsiddique 2011-04-29 18:16:38

+0

如果你不需要解析結構,那麼肯定會堅持一個有限狀態的標記。它的速度應該更快,更簡單,並且準確度相當可比(至少如果你能找到一個可比較的文本進行訓練的標記模型)。斯坦福POS Tagger可能是一個很好的選擇。 – AaronD 2011-04-29 18:24:03

+0

我真的很困擾這麼多工具..我沒有良好的互聯網連接,所以它需要時間下載一個新的(斯坦福)。如果你能幫我用openNLP做到這一點很好。隨着我走得更遠 - http:// stackoverflow。com/questions/5836148/how-to-use-opennlp-with-java 我剛纔需要從Java應用程序中使用它 – shababhsiddique 2011-04-29 18:57:01

5

通常你會在其他的順序執行這兩個任務:

  1. 做兼職的,speec^h標籤
  2. 使用POS機的標籤,輸入

OpenNLP的文檔是不是徹底,一些情況變得很難找到,由於開關運行Apache解析器。在舊的SF wiki中有一些(可能稍微過期的)教程。

您可能想看看Stanford NLP tools,特別是斯坦福POS Tagger和斯坦福分析器。兩者都具有包含預先訓練好的模型文件的下載,並且在頂層目錄中還有演示文件,演示瞭如何開始使用API​​以及顯示如何使用命令行工具的短shell腳本。

LingPipe可能是另一個很好的檢查工具包。在這裏快速搜索會導致您遇到一些類似的問題,並提供與其他替代方案的鏈接!

+0

我應該使用哪一個? 斯坦福CoreNLP 或斯坦福分析器 或斯坦福POS標記器 – shababhsiddique 2011-04-29 15:16:14

+0

這取決於你想要/需要做什麼。 CoreNLP包括其他兩個工具和其他註釋器,所以如果您只是嘗試不同類型的註釋,CoreNLP將是一個很好的開始。從這個問題和你的相關問題,聽起來你可能從開始閱讀任務之前閱讀更多有關計算語言學的知識。我會建議Jurafsky和Martin的語音和語言處理:http://www.cs.colorado.edu/~martin/slp.html – aab 2011-05-02 08:00:45

0

最流行的是:

  • GATE:易於使用和相當快下手
  • UIMA:緩慢的學習曲線,但更高效,更通用的
+0

你可以給我一些帶門的演練嗎? – shababhsiddique 2011-04-29 18:31:27

+0

我建議你按照用戶指南開始使用GATE GUI。還有一個快速入門指南。這將使您掌握GATE基礎知識。然後你可以使用API​​(有Javadocs和代碼示例)。 – 2011-05-03 09:41:49