python 计算两个词的相似度
时间: 2023-12-08 18:06:42 浏览: 92
在 Python 中可以使用多种方法计算两个词的相似度,下面我介绍两种常用的方法:
1. 余弦相似度
余弦相似度是常用的计算两个向量相似度的方法,也可以用来计算两个词的相似度。在 Python 中,可以使用 `sklearn.metrics.pairwise.cosine_similarity` 函数来计算余弦相似度。
示例代码:
```python
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
word1 = "apple"
word2 = "orange"
# 构建词向量
vector1 = np.random.rand(300)
vector2 = np.random.rand(300)
# 计算余弦相似度
similarity = cosine_similarity(vector1.reshape(1, -1), vector2.reshape(1, -1))[0][0]
print("词语 {} 和词语 {} 的相似度为:{}".format(word1, word2, similarity))
```
2. 基于词向量的相似度计算
另外一种常用的方法是基于词向量的相似度计算。在 Python 中,可以使用 `gensim` 库中的 `KeyedVectors` 类来加载预训练的词向量模型,并使用 `similarity` 方法计算两个词的相似度。
示例代码:
```python
from gensim.models import KeyedVectors
# 加载预训练的词向量模型
model_path = "path/to/pretrained/word2vec/model"
word_vectors = KeyedVectors.load_word2vec_format(model_path, binary=True)
word1 = "apple"
word2 = "orange"
# 计算词向量相似度
similarity = word_vectors.similarity(word1, word2)
print("词语 {} 和词语 {} 的相似度为:{}".format(word1, word2, similarity))
```
需要注意的是,使用第二种方法需要提前下载并加载预训练的词向量模型。在示例代码中,我使用的是 Google 的 Word2Vec 模型,可以在 [这里](https://code.google.com/archive/p/word2vec/) 下载。
阅读全文