我正在尋找一種類或方法,需要一個長100多萬字的單詞和標記的字符串,刪除在IR系統中使用的停用詞和詞幹。Tokenizer,停止詞的刪除,在Java中的詞幹
例如:
「大肥貓,說:‘你最有趣的傢伙,我知道’的袋鼠......」
標記生成器將消除標點和回報也就是說
停用詞卸妝將刪除像「」,「來」字的ArrayList
等
詞幹會減少他們的'根'每個單詞,例如'最有趣'會變得有趣
非常感謝提前。
我正在尋找一種類或方法,需要一個長100多萬字的單詞和標記的字符串,刪除在IR系統中使用的停用詞和詞幹。Tokenizer,停止詞的刪除,在Java中的詞幹
例如:
「大肥貓,說:‘你最有趣的傢伙,我知道’的袋鼠......」
標記生成器將消除標點和回報也就是說
停用詞卸妝將刪除像「」,「來」字的ArrayList
等
詞幹會減少他們的'根'每個單詞,例如'最有趣'會變得有趣
非常感謝提前。
AFAIK Lucene可以做你想做的。用StandardAnalyzer
和StopAnalyzer
你可以去除停用詞。結合Lucene contrib-snowball
(其中包括Snowball的工作)項目,您也可以執行此操作。
但對制止也考慮這個答案:Stemming algorithm that produces real words
這些是自然語言處理的標準要求,所以我會查找這樣的工具包。既然你需要Java我與OpenNLP開始: http://opennlp.sourceforge.net/
如果你可以看看其他語言中也有NLTK(Python)的
注意,「你最有趣的傢伙,我知道」不規範的語法,這比「你是我認識的最有趣的人」更難處理。不是不可能的,但更難。我不知道有什麼系統會將「你」與「你是」等同起來。
http://en.wikipedia.org/wiki/Natural_language_processing_toolkits – Fedearne 2009-11-03 00:15:36
openNLP中是否有話題建模?在描述中沒有看到。 – 2012-05-03 08:13:55
這裏是NLP tools完整列表。有時候自己創建它們是有意義的,因爲它們會變得更輕,並且對內部工作有更多的控制:使用簡單的正則表達式來進行標記化。對於停止的話就按下面的列表或其他一些列表到HashSet:
這裏是許多Java implementation of porter stemer一個)。
我已經處理了一些我曾經使用的任務的問題,所以讓我給出一個標記器的建議。由於我沒有看到它直接作爲答案,所以我經常使用edu.northwestern.at.utils.corpuslinguistics.tokenizer.*
作爲我的標記器家族。我看到很多使用PennTreebankTokenizer
類的案例。以下是您如何使用它:
WordTokenizer wordTokenizer = new PennTreebankTokenizer();
List<String> words = wordTokenizer.extractWords(text);
指向此作品的鏈接是here。只是一個免責聲明,我與西北航空,集團或他們所從事的工作沒有任何關係。我只是偶爾使用代碼的人。
我可以從哪裏下載西北分詞器? – Hector 2016-05-26 09:11:13
@Hector試試https://bitbucket.org/pibburns/morphadorner/src/9c3188655f6386e65c93f315f86b3a176607c8f7/src/edu/northwestern/at/morphadorner/corpuslinguistics/tokenizer/?at=default。也許我給了錯誤的包。 4年後,很難看出包裝是否改變或者我原來是錯的 – demongolem 2016-05-26 15:52:25
嘿! @jitter去Lucene沒有幫助?需要更具體的鏈接。 – jsroyal 2017-01-22 07:16:05