WordSim353评价词向量代码
时间: 2023-07-10 16:10:32 浏览: 69
以下是使用Python编写的WordSim353评价词向量的代码示例:
```
import csv
import numpy as np
def load_word_pairs(file_path):
word_pairs = []
with open(file_path, 'r') as f:
reader = csv.reader(f, delimiter='\t')
for row in reader:
word_pairs.append((row[0], row[1], float(row[2])))
return word_pairs
def evaluate_word_vectors(word_vectors, word_pairs):
predicted_scores = []
for pair in word_pairs:
if pair[0] in word_vectors and pair[1] in word_vectors:
score = np.dot(word_vectors[pair[0]], word_vectors[pair[1]])
predicted_scores.append(score)
correlation = np.corrcoef(predicted_scores, [pair[2] for pair in word_pairs])[0][1]
return correlation
# 使用示例
word_pairs = load_word_pairs('wordsim353.txt')
word_vectors = {'apple': [0.1, 0.2, 0.3], 'banana': [0.2, 0.3, 0.4], 'orange': [0.3, 0.4, 0.5]}
correlation = evaluate_word_vectors(word_vectors, word_pairs)
print('Correlation:', correlation)
```
在这个示例中,load_word_pairs函数从WordSim353文件中加载单词对及其相似度分数。evaluate_word_vectors函数计算单词对的相似度分数,并将计算结果与人工定义的分数进行比较,最终返回相关系数作为评价结果。使用者可以将自己的词向量模型传递给evaluate_word_vectors函数进行评估。
阅读全文