在Information Retrieval領域,有時候需要計算字與字之間的關聯性,通常我們會使用PMI、Chi-square、Log-likelihood等方法來計算。
不過,計算兩個字在WordNet之間的關聯性也是一個不錯的選擇。
呼叫WordNet,要先裝WordNet: https://wordnet.princeton.edu/
計算前,請先下載WS4J.jar,官網如下:
https://code.google.com/p/ws4j/
呼叫並且計算相似度很簡單,先將WS4J import,之後使用下列程式碼即可計算,這個Jar檔提供了非常多的相似度計算方式,簡易程式碼如下,
import edu.cmu.lti.lexical_db.ILexicalDatabase; import edu.cmu.lti.lexical_db.NictWordNet; import edu.cmu.lti.ws4j.impl.WuPalmer; import edu.cmu.lti.ws4j.util.WS4JConfiguration; public class similarityInWN { private static ILexicalDatabase db = new NictWordNet(); /* //相似度選擇 new HirstStOnge(db), new LeacockChodorow(db), new Lesk(db), new WuPalmer(db), new Resnik(db), new JiangConrath(db), new Lin(db), new Path(db) */ public static double computeSmilarityInWN(String word1, String word2) { WS4JConfiguration.getInstance().setMFS(true); //s代表兩個字的相似度 double s = new WuPalmer(db).calcRelatednessOfWords(word1, word2); return s; } }
文章標籤
全站熱搜
留言列表