哈工大的同義詞詞林,應該是上個世紀的產物,里面的詞比較老舊,但好歹也能用
同義詞詞林的作用,跟word2vec的獲取相近詞函數比較類似,這兩者發揮的功效比較,看具體的應用吧
1. 首先下載包含同義詞的txt,CSDN上有鏈接:
http://download.csdn.net/download/answerme11/7307771
2. 得到txt的內容如下:
每一行由一系列的詞條構成
每一行的行頭的字母及數字編碼表示類別
“=”代表“相等”、“同義”;
“
#”代表“不等”、“同
類”,屬於相關詞語;
“@”代表“自我封閉”、“獨立”,它在詞典中既沒
有同義詞,也沒有相關詞。
3.
python調用同義詞詞林的代碼
def get_sym(w,word_set):
# w: input word
# word_set: 同義詞詞集或相關詞詞集
results=[]
if(len(w)==1):
for each in word_set:
for word in each:
if w == word:
results.append(each)
break
else:
for each in word_set:
for word in each:
if w in word:
results.append(each)
break
return results
f=open('同義詞.txt','r')
lines=f.readlines()
sym_words=[]
sym_class_words=[]
# 從txt中獲取詞條,構建同義詞詞集sym_words和相關詞詞集sym_class_words
for line in lines:
line=line.replace('\n','')
items=line.split(' ')
index=items[0]
if(index[-1]=='='):
sym_words.append(items[1:])
if (index[-1] == '#'):
sym_class_words.append(items[1:])
print(sym_words)
print(64*'*')
print(sym_class_words)
while True:
w=input()
print('同義詞',66*'*')
print(get_sym(w, sym_words))
print('同類詞', 66 * '*')
print(get_sym(w, sym_class_words))
運行結果:
附件列表

