在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;
}
}
文章標籤
全站熱搜
