2013-10-05 65 views
0

我在Java,Pascal,PERL,SQL,& R中有一些背景,並且希望找到從該背景到自動或半自動從文本中提取概念並將結果轉化爲可統計分析的合理最小阻力路徑(如果需要,願意學習新的語言)。我想我需要在幾千頁的文本上執行一些NLP任務,特別是POS處理,名詞短語識別,詞義消歧。後者,我認爲,可能需要準確性的半監督機器學習。我有的問題是從哪裏開始學習實用 NLP?閱讀課程或閱讀NLP書籍似乎涉及到更多關於NLP任務如何進行的詳細信息,而不是我現在需要的 - 我只需要知道它的作用,準確程度以及其他選擇。跳入現有的NLP框架似乎讓我陷入困境。我已經使用GATE進行POS處理,但是輸出是使用XML,我不知道如何進一步處理,或者使用postgresql,這是操縱w/SQL生成統計數據的熊。此外,當時,GATE沒有很好的提取詞義的方法。如何學習*實用*自然語言處理?

+1

嘗試使用Python中的NLTK庫,該庫已經實現了幾種NLP算法。 – neeagl

+0

歡迎來到計算器。如果你使用空格,你的問題會更具可讀性。 – Johan

+0

謝謝Johan!在回車的空白處?評論似乎發送時,我使用回車.... – user2850274

回答

1

NLTK是你走的路。 :)

另外,如果你有興趣在實現像LDA,LSA等算法,我會建議去與gensims

2

OpenNLP將使您能夠利用您現有的Java知識。但毫無疑問,neeagl的建議NLTK是一個突出的問題。另外,Python可能是最好的語言,可以讓事情順利進行。

+0

不得不說nltk.org網站的第一頁給出了一些簡單的例子,使用NLTK令人印象深刻的案例和免費書看起來非常方便!不太確定如何將分塊文本轉換爲 – user2850274

+0

如果您需要NLTK的幫助,請告知我們。 – neeagl

+0

謝謝neeagl!我想我有兩個問題:我看到NLTK具有詞義消歧算法。但是,這些似乎是完全自動化的,我猜測準確度是適度的(比選擇最常用的方法稍微好一些)。你知道是否有辦法將NLTK輸出連接到一個半監督的詞義檢測算法?另外,如果我想從分塊文本輸出到統計文件(例如,表示名詞短語中存在複合名詞的變量),我想這是我的代碼?可能很容易w/Python。 – user2850274

0

我現在已經與NLTK的NLTK書,和斯坦福大學的一些經驗CoreNLP軟件,所以我認爲我可以添加一些有用的信息,說明有實際興趣的人應該如何接近NLP。

我最初的目標是完成一些NLP任務並且完成得很好,而不需要學習NLP如何執行它的功能(至少在特殊興趣領域之外)的細節。有了這個目標,我可能應該簡單地從斯坦福CoreNLP軟件開始。它或多或少採用了最先進的工作,學習如何將文本放入軟件並獲得輸出非常簡單。在輸出質量方面,NLTK對CoreNLP很害羞,除了統計搭配分析(據我所知)之外,CoreNLP擁有更廣泛的實用算法。

例如,在大塊名詞短語的NLTK中,您需要編寫正則表達式或訓練機器學習例程。對於解析,您可以學習多種解析方法,並且可以應用多種語法。我不清楚哪些是最好的或者是否可用是最先進的。在CoreNLP中,您請求解析並獲得非常稱職的解析。解析標識名詞短語,所以我解決了名詞短語ID的問題。

毫無疑問,我最終需要更多地瞭解自己是否按照理想的方式做事,以及是否應該培訓具體的數據。但我手邊有一個實際問題,需要看看NLP是否可以開始解決這個問題。我可以稍後迴圈並填補空白。所以,現在,使用CoreNLP可以簡單地滿足我的需求。

CoreNLP會將結果踢出到XML或註釋對象,所以我需要學習如何在Java中處理這些對象。而且,我需要學習如何進行一些額外的處理並添加結果。

對於有興趣學習NLP的一些基本知識的人來說,NLTK書將是一本很好的實踐書。而且,看看語言數據是如何由NLTK表示和操作的,儘管Java中最終的處理方式是不同的,這正是我現在關注的焦點。對於大型複雜任務,Java也許更有用 - 語言更加結構化,比Python快一個數量級。最後,CoreNLP有一個管道 - 你可以放入文本,指出你想要什麼類型的註釋,然後輸出最終產品。在NLTK中,不太清楚如何將多個不同的註釋(比如POS,引理,解析)疊加在一起。