当前位置:   article > 正文

从利用gensim 训练好的word2vec模型中取出向量并计算余弦相似度,Levenshtein distance 计算_gensim 使用similarities计算余弦相似度

gensim 使用similarities计算余弦相似度

1、Levenshtein distance

表示两个字符串之间,由一个转成另一个所需的最少编辑次数,允许的操作有:替换、插入和删除

导入包:

  1. import Levenshtein
  2. #Levenshtein distance 两个字符串之间,由一个转成另一个所需的最少编辑次数,允许的操作有:替换、插入和删除

计算:

  1. #Name Lexical Similarity
  2. api_reference = "The offset argument"
  3. candidate_api = "the offset"
  4. leven_dis = Levenshtein.distance(api_reference,candidate_api)

2、Cosine Similarity

导入包:

代码中 tool 为自己写的分词工具,也可以用其他的分词工具,如spacy、jieba、hanlp等等

  1. from sklearn.metrics.pairwise import cosine_similarity
  2. #m和c向量表示的余弦相似度,word2vec生成的单词向量平均得到
  3. from gensim.models import Word2Vec
  4. import word2vec.Domain_Spacy_tool.Domain_Token_Spacy as tool

加载模型:

file_name为保存文件模型路径

model = Word2Vec.load(file_name)

处理:

包括分词,将一句话切割成词之后分别取出向量相加取平均

  1. m = "The offset argument"
  2. c = "the offset"
  3. m_words_vec = []
  4. c_words_vec = []
  5. #分词,取向量相加
  6. for i,words in enumerate(tool.word_token(m)):
  7. if i==0:
  8. temp = model[words]
  9. else:
  10. temp = temp+model[words]
  11. for i,words in enumerate(tool.word_token(c)):
  12. if i==0:
  13. temp1 = model[words]
  14. else:
  15. temp1 = temp1+model[words]
  16. #取平均
  17. temp = temp/len(tool.word_token(m))
  18. temp = list(temp)
  19. temp1 = temp1/len(tool.word_token(c))
  20. temp1 = list(temp1)
  21. all_vec = [temp,temp1]

计算:

  1. #计算
  2. cos_similarity = cosine_similarity(all_vec)
  3. print(cos_similarity[0][1])

结果:

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/935815
推荐阅读
  

闽ICP备14008679号