我期待做一些句子分析(主要針對twitter應用程序)並推斷出一些一般特徵。 Ruby中有這種類型的任何好的自然語言處理庫嗎?Ruby中的自然語言處理
類似於Is there a good natural language processing library,但是對於Ruby。我更喜歡一般的東西,但任何線索感謝!
我期待做一些句子分析(主要針對twitter應用程序)並推斷出一些一般特徵。 Ruby中有這種類型的任何好的自然語言處理庫嗎?Ruby中的自然語言處理
類似於Is there a good natural language processing library,但是對於Ruby。我更喜歡一般的東西,但任何線索感謝!
有一些東西在Ruby Linguistics和其中的一些鏈接,儘管它似乎並沒有接近NLTK的Python版本。
你需要更具體地瞭解這些「一般特徵」是什麼。
在NLP中,一個句子的「一般特徵」可能意味着一百萬個不同的事物 - 情感分析(即說話者的態度),基本的詞性標註,使用人稱代詞,句子是否包含主動或被動動詞,什麼是動詞的時態和語態...
我不介意你是否模糊地描述它,但如果我們不知道你在問什麼,這是不太可能的,我們可以是特定的幫助你。
我的一般建議,特別是對於NLP,你應該得到最適合這項工作的工具,而不是將自己限制爲一種特定的語言。限制自己使用某種特定的語言對於一些普遍工具在任何地方都可以實現的任務來說都很好,但是NLP不是其中的一種。
與Twitter一起工作的另一個問題是大量的句子會以一種奇怪而奇妙的方式被壓縮或壓縮 - 大多數NLP工具都沒有受過培訓。爲了幫助那裏,NUS SMS Corpus包括「約10000學生收集的SMS消息」。由於類似的限制和使用,分析可能有助於您使用Twitter進行探索。
如果您更具體,我會嘗試列出一些有用的工具。
您可以隨時使用jruby並使用java庫。
編輯:能夠在jvm上本地執行ruby並輕鬆利用java庫是rubyists的一大優點。這是一個很好的選擇,應該在這種情況下考慮。
您不應該只是說應該使用java庫,而應該使用哪些java庫。因爲讀者可能知道,它們甚至可能不存在。 – 2010-12-03 17:33:25
http://stackoverflow.com/questions/895893/which-nlp-toolkit-to-use-in-java – jshen 2012-04-26 20:35:07
我發現一個很好的文章,詳細說明紅寶石here一些NLP算法。這包括詞幹分析器,日期時間分析器和語法分析器。
我會看看Mark Watson的免費書Practical Semantic Web and Linked Data Applications, Java, Scala, Clojure, and JRuby Edition。他使用java,clojure,ruby和scala編寫了有關NLP的章節。他還提供了所需資源的鏈接。
TREAT - 文本檢索和註釋工具包 - 是最全面的工具包,我所知道的對Ruby:https://github.com/louismullie/treat/wiki/
三個優,成熟NLP包Stanford Core NLP,Open NLP和LingPipe。有Ruby綁定到Stanford Core NLP工具(GPL許可證)以及OpenNLP工具(Apache許可證)。
在事物的更實驗方面,我維護一個在GPL下發布的Text Retrieval, Extraction and Annotation Toolkit(Treat),它爲幾乎所有與Ruby相關的NLP相關gem提供了一個通用API。以下的Treat特性列表也可以作爲與Ruby 1.9兼容的穩定的自然語言處理寶石的良好參考。
punkt-segmenter
,tactful_tokenizer
,srx-english
,scalpel
)stanford-core-nlp
)。linguistics
),詞幹(ruby-stemmer
,uea-stemmer
,lingua
等)rwordnet
),POS標註器(rbtagger
,engtagger
等)whatlanguage
),日期/時間(chronic
,kronic
,nickel
),關鍵字(lda-ruby
)提取。ferret
)。stanford-core-nlp
)。 (decisiontree
),MLP(ruby-fann
),SVM(rb-libsvm
)和線性分類(tomz-liblinear-ruby-swig
)的基本機器學習。levenshtein-ffi
,,tf-idf-similarity
)。不包括在治療,但相關的NLP:hotwater(字符串距離算法),yomu(粘合劑到Apache忻用於讀取.DOC,.DOCX,.PAGES,的.odt,.RTF,.PDF), graph-rank(GraphRank的實現)。
試試這個
https://github.com/louismullie/stanford-core-nlp
關於斯坦福核心NLP寶石
這種寶石提供了高層次的Ruby綁定到斯坦福核心NLP包,集自然語言處理的符號化工具,句子分詞,詞性標註,詞形和英語,法語和德語的解析。該軟件包還爲英語提供了命名實體識別和共識解決方案。
http://nlp.stanford.edu/software/corenlp.shtml 演示頁 http://nlp.stanford.edu:8080/corenlp/
還要考慮使用SaaS的API,如MonkeyLearn。您可以使用機器學習輕鬆地訓練文本分類器,並通過API進行集成。有一個Ruby SDK可用。
除了創建自己的分類器,您還可以選擇預先創建的模塊進行情感分析,主題分類,語言檢測等。 我們也有提取器,如關鍵字提取和實體,我們將繼續添加更多的公共模塊。
很好的特性:
對於尋找更輕量級和簡單實施的人來說,這個選項對我來說效果很好。
我保持Ruby Natural Language Processing resources(庫,API和演示文稿)在GitHub上的列表覆蓋在這裏其他的答案,以及一些其他的庫列出的庫。
爲什麼不試試wit.ai?這是一項免費的外部服務。我寫了一個封裝了它們功能的gem:[wit_bot](// bensites.com/wit_bot) – 2016-04-03 22:19:17