forked from yaleimeng/Final_word_Similarity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.py
44 lines (34 loc) · 2.28 KB
/
example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding: utf-8 -*-
'''
@author: yaleimeng@sina.com
@license: (C) Copyright 2017
@desc: 使用评测数据,计算词语相似度以及皮尔逊系数。本混合方法的皮尔逊系数0.854左右
@DateTime: Created on 2017/12/28, at 18:28 by PyCharm
'''
from Hybrid_Sim import HybridSim
import pandas as pd
# 30个 评测词对中的左侧词
left = ['轿车', '宝石', '旅游', '男孩子', '海岸', '庇护所', '魔术师', '中午', '火炉', '食物', '鸟', '鸟', '工具', '兄弟', '起重机', '小伙子',
'旅行', '和尚', '墓地', '食物', '海岸', '森林', '岸边', '和尚', '海岸', '小伙子', '琴弦', '玻璃', '中午', '公鸡']
# 30个 评测词对中的右侧词
right = ['汽车', '宝物', '游历', '小伙子', '海滨', '精神病院', '巫师', '正午', '炉灶', '水果', '公鸡', '鹤', '器械', '和尚', '器械', '兄弟',
'轿车', '圣贤', '林地', '公鸡', '丘陵', '墓地', '林地', '奴隶', '森林', '巫师', '微笑', '魔术师', '绳子', '航行']
# 人工评定的相似度列表。
human = [0.98, 0.96, 0.96, 0.94, 0.925, 0.9025, 0.875, 0.855, 0.7775, 0.77, 0.7625, 0.7425, 0.7375, 0.705, 0.42, 0.415,
0.29, 0.275, 0.2375,
0.2225, 0.2175, 0.21, 0.1575, 0.1375, 0.105, 0.105, 0.0325, 0.0275, 0.02, 0.02]
# 论文中的相似度列表。方便与自己计算结果比对。
# lunwen = [0.9108, 0.7182, 1, 0.9036, 0.9697, 0.7513, 0.7498, 1, 0.7669, 0.2822, 0.818, 0.8215, 0.7653, 0.5908, 0.4615,
# 0.5631, 0.1032, 0.4838, 0.3968,
# 0.2789, 0.4, 0.1682, 0.1586, 0.4511, 0.2807, 0.3986, 0.0922, 0.1704, 0.1352, 0.1032]
if __name__ == '__main__':
print('词林词汇量', len(HybridSim.ci_lin.vocab ),'\t知网词汇量', len(HybridSim.how_net.vocab))
print('两者总词汇量',len(HybridSim.ci_lin.vocab | HybridSim.how_net.vocab),'\t重叠词汇量', len(HybridSim.Common))
sim_list = []
for w1, w2 in zip(left, right):
hybrid = HybridSim.get_Final_sim(w1, w2)
print('使用混合方法计算,相似度为:', hybrid)
sim_list.append(hybrid)
#print(sim_list)
s1, s2 = pd.Series(sim_list), pd.Series(human)
print('\n本方法皮尔逊系数为:',s1.corr(s2)) # 打印皮尔逊相关系数