2012-02-28 74 views
6

我使用lucene雪球分析器來執行阻塞。結果不是有意義的單詞。我提到這個question阻塞的逆過程

其中一個解決方案是使用一個數據庫,其中包含詞的詞幹版本與該詞的一個穩定版本之間的映射。 (從社區到社區的例子,無論Communti(社區/或其他一些詞)的基地是什麼)

我想知道是否有數據庫執行這樣的功能。

回答

4

理論上不可能從詞幹中恢復特定單詞,因爲一個詞幹可能對許多詞。根據您的應用程序,一種可能性是構建一個莖的數據庫,每個莖映射到一個由數個單詞組成的數組。但是,你需要預測哪一個詞適合重新轉換。

作爲一個非常天真地解決了這個問題,如果你知道這個詞的標籤,你可以嘗試儲存的話,在你的數據庫中的標籤:

run: 
    NN:  runner 
    VBG: running 
    VBZ: runs 

然後,給定幹「運行」標籤「神經網絡」,你可以確定「跑步者」是在這種情況下最可能的詞。當然,這個解決方案並不完美。值得注意的是,你需要處理這樣的事實:相同的單詞形式可能在不同的上下文中以不同的方式標記。但請記住,解決此問題的任何嘗試都至多是一種近似。

編輯:從下面的評論,它看起來像你可能想使用詞形而不是詞幹。下面是如何使用Stanford Core NLP tools將文字的引理:

import java.util.*; 

import edu.stanford.nlp.pipeline.*; 
import edu.stanford.nlp.ling.*; 
import edu.stanford.nlp.ling.CoreAnnotations.*; 

Properties props = new Properties(); 

props.put("annotators", "tokenize, ssplit, pos, lemma"); 
pipeline = new StanfordCoreNLP(props, false); 
String text = "Hello, world!"; 
Annotation document = pipeline.process(text); 

for(CoreMap sentence: document.get(SentencesAnnotation.class)) { 
    for(CoreLabel token: sentence.get(TokensAnnotation.class)) { 
     String word = token.get(TextAnnotation.class); 
     String lemma = token.get(LemmaAnnotation.class); 
    } 
} 
+0

等詞語運行做工精細用詞幹。我正在談論像efficieny這樣的詞。有效的詞幹變得沒有意義。我打算實現的目標是將效率轉換爲效率,無論生產效率如何(高效/其他一些詞) – CTsiddharth 2012-02-29 04:28:28

+0

然後,您可能正在尋找詞法化(找到詞的「基本」形式 - 詞典中將列出的詞) ,而不是阻止(找到這個詞的「根」)。一個詞幹可以有很多基本詞 - 「效率」 - >「效率」 - >「效率」是沒有意義的。一個引理恰好對應一個基本單詞:「高效」 - >「高效」,「效率」 - >「效率」,「效率」 - >「效率」。在詞幹中,你失去了變調和基本詞彙。在詞義化中,你只會失去活力。我剛剛在帖子中添加的代碼應該讓你開始使用斯坦福大學的推理工具。 – user2398029 2012-02-29 20:53:26

+0

嗨..請看看這[問題](http://stackoverflow.com/questions/9528080/error-in-stanford-nlp-core#comment12070615_9528080)我的幫助我! – CTsiddharth 2012-03-02 05:49:03

1

您可能會看到NCI Metathesaurus--雖然主要是生物醫學,但它們提供了自然語言處理的示例以及一些Java的開源工具集,您可能會通過瀏覽其代碼來發現它們。

2

您提到的問題包含一個經常被忽略的重要信息。你所需要的就是所謂的「lemmatisation」 - 將折彎的單詞縮減爲規範形式。它與詞幹相關但不同,仍然是一個開放的研究問題。對於具有更復雜形態的語言而言尤其困難(英語不那麼難)。 Wikipedia有一個你可以嘗試的軟件列表。我使用的另一個工具是TreeTagger - 它的速度非常快,合理準確,但它的主要目的是詞性標註,並且lemmatisation只是一種獎勵。嘗試谷歌搜索「統計lemmatisation」(是的,我對統計vs規則爲基礎的NLP有強烈的感受)