簡介
WordNet::Similarity是一個Perl實現的軟件包,可以用來計算兩個概念(或者word sense)之間的語義相似度,它提供了六種計算相似度和三種計算概念之間關聯度的方法,所有的這些方法都是基於WordNet這個詞匯數據庫。
依附
下載位置
安裝
WordNet
1. sudo apt-get install tcl8.4-dev
sudo apt-get install tk8.4-dev
2. ./configure
3. sudo make
如果出現問題:checking for gawk... no
解決:sudo apt-get install gawk
4. sudo make install
5. 設置變量
sudo vim /etc/profile
添加:export PATH=$PATH:/usr/local/Wordnet-3.0/bin
退出編譯:source /etc/profile
Digest-SHA1
進入相應目錄cd path
依次運行如下命令
perl Makefile.PL
make
make test
sudo make install
其他
WordNet::QueryData,Text-Similarity,WordNet::Similarity的安裝與Digest-SHA1完全一樣
使用
$ similarity.pl --type WordNet::Similarity::lin car#n#2 bus#n#1
car#n#2 bus#n#1 0.530371390319309 # railway car versus motor coach
$similarity.pl --type WordNet::Similarity::lin car#n bus#n
car#n#1 bus#n#1 0.603649218135011 #返回相似值最高的匹配對
$similarity.pl --type WordNet::Similarity::lin --allsensescar#n bus#n
car#n bus#n (all senses)
car#n#1 bus#n#1 0.603649218135011
car#n#2 bus#n#1 0.533827219913664
car#n#1 bus#n#4 0
car#n#3 bus#n#3 0
car#n#4 bus#n#1 0
car#n#2 bus#n#4 0
car#n#5 bus#n#1 0
car#n#5 bus#n#4 0
car#n#3 bus#n#4 0
car#n#4 bus#n#2 0
car#n#5 bus#n#3 0
car#n#3 bus#n#2 0
car#n#4 bus#n#4 0
car#n#2 bus#n#2 0
car#n#5 bus#n#2 0
car#n#1 bus#n#3 0
car#n#3 bus#n#1 0
car#n#2 bus#n#3 0
car#n#1 bus#n#2 0
car#n#4 bus#n#3 0 #加上參數—allsenses 返回所有的匹配
腳本
#/usr/bin/perl -w use WordNet::QueryData; use WordNet::Similarity::lin; $wnObj = new WordNet::QueryData; $linObj = new WordNet::Similarity::lin($wnObj); $value = $linObj -> getRelatedness('car#n#1', 'bus#n#1'); print $value
依靠路徑長度的:lch, wup, path
依靠路徑長度和最小公共包含(LCS):res, lin, jcn
相似度和關聯度的介紹可以參考翻譯論文:http://hi.baidu.com/dailyye/item/a2c7fb61ae6ae22769105b18
CPAN地址:http://search.cpan.org/dist/WordNet-Similarity/utils/similarity.pl