forked from alvations/pywsd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_wsd.py
157 lines (137 loc) · 4.99 KB
/
test_wsd.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/usr/bin/env python -*- coding: utf-8 -*-
bank_sents = ['I went to the bank to deposit my money',
'The river bank was full of dead fishes']
plant_sents = ['The workers at the industrial plant were overworked',
'The plant was no longer bearing flowers']
print "======== TESTING simple_lesk ===========\n"
from lesk import simple_lesk
print "#TESTING simple_lesk() ..."
print "Context:", bank_sents[0]
answer = simple_lesk(bank_sents[0],'bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition # Using older version of NLTK.
print "Definition:", definition
print
print "#TESTING simple_lesk() with POS ..."
print "Context:", bank_sents[1]
answer = simple_lesk(bank_sents[1],'bank','n')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition # Using older version of NLTK.
print "Definition:", definition
print
print "#TESTING simple_lesk() with POS and stems ..."
print "Context:", plant_sents[0]
answer = simple_lesk(plant_sents[0],'plant','n', True)
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "#TESTING simple_lesk() with nbest results" # i.e. output ranked synsets.
print "Context:", plant_sents[0]
answer = simple_lesk(plant_sents[0],'plant','n', True, nbest=True)
print "Senses ranked by #overlaps:", answer
best_sense = answer[0]
try: definition = best_sense.definition()
except: definition = best_sense.definition
print "Definition:", definition
print
print "#TESTING simple_lesk() with nbest results and scores"
print "Context:", plant_sents[0]
answer = simple_lesk(plant_sents[0],'plant','n', True, \
nbest=True, keepscore=True)
print "Senses ranked by #overlaps:", answer
best_sense = answer[0][1]
try: definition = best_sense.definition()
except: definition = best_sense.definition
print "Definition:", definition
print
print "#TESTING simple_lesk() with nbest results and normalized scores"
print "Context:", plant_sents[0]
answer = simple_lesk(plant_sents[0],'plant','n', True, \
nbest=True, keepscore=True, normalizescore=True)
print "Senses ranked by #overlaps:", answer
best_sense = answer[0][1]
try: definition = best_sense.definition()
except: definition = best_sense.definition
print "Definition:", definition
print
print "======== TESTING adapted_lesk ===========\n"
from lesk import adapted_lesk
print "#TESTING adapted_lesk() ..."
print "Context:", bank_sents[0]
answer = adapted_lesk(bank_sents[0],'bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "#TESTING adapted_lesk() with pos, stem, nbest and scores."
print "Context:", bank_sents[0]
answer = adapted_lesk(bank_sents[0],'bank','n', True, \
nbest=True, keepscore=True)
print "Senses ranked by #overlaps:", answer
best_sense = answer[0][1]
try: definition = best_sense.definition()
except: definition = best_sense.definition
print "Definition:", definition
print
print "======== TESTING cosine_lesk ===========\n"
from lesk import cosine_lesk
print "#TESTING cosine_lesk() ..."
print "Context:", bank_sents[0]
answer = cosine_lesk(bank_sents[0],'bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "#TESTING cosine_lesk() with nbest results..."
print "Context:", bank_sents[0]
answer = cosine_lesk(bank_sents[0],'bank', nbest=True)
print "Senses ranked by #overlaps:", answer
best_sense = answer[0][0]
try: definition = best_sense.definition()
except: definition = best_sense.definition
print "Definition:", definition
print
print "======== TESTING baseline ===========\n"
from baseline import random_sense, first_sense
from baseline import max_lemma_count as most_frequent_sense
print "#TESTING random_sense() ..."
print "Context:", bank_sents[0]
answer = random_sense('bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "#TESTING first_sense() ..."
print "Context:", bank_sents[0]
answer = first_sense('bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "#TESTING most_frequent_sense() ..."
print "Context:", bank_sents[0]
answer = most_frequent_sense('bank')
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print
print "======== TESTING similarity ===========\n"
from similarity import max_similarity
for sim_choice in ["path", "lch", "wup", "res", "jcn", "lin"]:
print "Context:", bank_sents[0]
print "Similarity:", sim_choice
answer = max_similarity(bank_sents[0], 'bank', sim_choice, pos="n")
print "Sense:", answer
try: definition = answer.definition()
except: definition = answer.definition
print "Definition:", definition
print