Skip to content
Snippets Groups Projects
Commit 244b64c4 authored by weber's avatar weber
Browse files

finished WSD Method 2 + experiments

parent 9ffe96bf
No related branches found
No related tags found
No related merge requests found
...@@ -27,8 +27,11 @@ if __name__ == '__main__': ...@@ -27,8 +27,11 @@ if __name__ == '__main__':
wsd_node_embeddings = [] wsd_node_embeddings = []
for x, y, z in zip(lemma_emb, gloss_emb, pos_emb): #for x, y, z in zip(lemma_emb, gloss_emb, pos_emb):
wsd_node_embeddings.append(np.concatenate((x, y, z))) # wsd_node_embeddings.append(np.concatenate((x, y, z)))
for x, y in zip(lemma_emb, gloss_emb):
wsd_node_embeddings.append(np.concatenate((x, y)))
wsd_node_embeddings = np.array(wsd_node_embeddings) wsd_node_embeddings = np.array(wsd_node_embeddings)
......
...@@ -48,7 +48,7 @@ def concatenate_embeddings(emb_list, name_list): ...@@ -48,7 +48,7 @@ def concatenate_embeddings(emb_list, name_list):
if __name__ == '__main__': if __name__ == '__main__':
gloss_emb = load_pickle('node_embeddings_glossdummy') gloss_emb = load_pickle('node_embeddings_gloss')
lemma_emb = load_pickle('node_embeddings_lemma') lemma_emb = load_pickle('node_embeddings_lemma')
lexfile_emb = load_pickle('node_embeddings_lex_file') lexfile_emb = load_pickle('node_embeddings_lex_file')
pos_emb = load_pickle('node_embeddings_pos') pos_emb = load_pickle('node_embeddings_pos')
...@@ -57,4 +57,4 @@ if __name__ == '__main__': ...@@ -57,4 +57,4 @@ if __name__ == '__main__':
embs = [gloss_emb, lemma_emb, lexfile_emb, pos_emb, id_emb] embs = [gloss_emb, lemma_emb, lexfile_emb, pos_emb, id_emb]
names = ['gloss', 'lemma', 'lexfile', 'pos', 'id'] names = ['gloss', 'lemma', 'lexfile', 'pos', 'id']
concatenate_embeddings(embs, names) concatenate_embeddings(embs, names)
\ No newline at end of file
...@@ -133,15 +133,15 @@ def run_experiment(window_size, document, output_file, mfs=False): ...@@ -133,15 +133,15 @@ def run_experiment(window_size, document, output_file, mfs=False):
if __name__ == '__main__': if __name__ == '__main__':
windows = [5] windows = [5,10,15,20,25]
output_file = "method2_experiments/output_senseval3_context_" output_file = "method2_experiments/output_senseval3_nopost_"
'''
for win in windows: for win in windows:
for i in senseval_3: for i in senseval_3:
run_experiment(win, i, output_file) run_experiment(win, i, output_file)
'''
output_file = "method2_experiments/output_senseval2_mfs"
output_file = "method2_experiments/output_senseval2_nopos_"
for win in windows: for win in windows:
for i in senseval_2: for i in senseval_2:
run_experiment(win, i, output_file, mfs=True) run_experiment(win, i, output_file, mfs=True)
...@@ -111,8 +111,11 @@ class WSD: ...@@ -111,8 +111,11 @@ class WSD:
return no_context return no_context
# embed head POS-tag as POS # embed head POS-tag as POS
pos = self.pos_mapping[head[wn_tag]] pos = self.pos_mapping[head[wn_tag]]
pos_repr = self.pos_embedding[pos] pos_repr = self.pos_embedding[pos]
# concatenate the above for a node representation of the contextS # concatenate the above for a node representation of the contextS
node_repr = np.concatenate((lemma_repr, gloss_repr, pos_repr)) node_repr = np.concatenate((lemma_repr, gloss_repr, pos_repr))
...@@ -121,7 +124,7 @@ class WSD: ...@@ -121,7 +124,7 @@ class WSD:
for sense_id in EP_synset_ids: for sense_id in EP_synset_ids:
ep_node = self.node_embeddings[sense_id] ep_node = self.node_embeddings[sense_id]
distances.append(np.linalg.norm(ep_node - node_repr)) distances.append(np.linalg.norm(ep_node - node_repr))
# return synset_id with nearest # return synset_id that is nearest to node representation
nearest_sense = EP_synset_ids[distances.index(min(distances))] nearest_sense = EP_synset_ids[distances.index(min(distances))]
wn_nearest = self.reverse_id_mapping[nearest_sense][::-1] wn_nearest = self.reverse_id_mapping[nearest_sense][::-1]
pred_pos = wn_nearest[0] pred_pos = wn_nearest[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment