赞
踩
表示两个字符串之间,由一个转成另一个所需的最少编辑次数,允许的操作有:替换、插入和删除
导入包:
- import Levenshtein
- #Levenshtein distance 两个字符串之间,由一个转成另一个所需的最少编辑次数,允许的操作有:替换、插入和删除
计算:
- #Name Lexical Similarity
- api_reference = "The offset argument"
- candidate_api = "the offset"
- leven_dis = Levenshtein.distance(api_reference,candidate_api)
导入包:
代码中 tool 为自己写的分词工具,也可以用其他的分词工具,如spacy、jieba、hanlp等等
- from sklearn.metrics.pairwise import cosine_similarity
- #m和c向量表示的余弦相似度,word2vec生成的单词向量平均得到
- from gensim.models import Word2Vec
- import word2vec.Domain_Spacy_tool.Domain_Token_Spacy as tool
加载模型:
file_name为保存文件模型路径
model = Word2Vec.load(file_name)
处理:
包括分词,将一句话切割成词之后分别取出向量相加取平均
- m = "The offset argument"
- c = "the offset"
- m_words_vec = []
- c_words_vec = []
- #分词,取向量相加
- for i,words in enumerate(tool.word_token(m)):
- if i==0:
- temp = model[words]
- else:
- temp = temp+model[words]
-
- for i,words in enumerate(tool.word_token(c)):
- if i==0:
- temp1 = model[words]
- else:
- temp1 = temp1+model[words]
-
- #取平均
- temp = temp/len(tool.word_token(m))
- temp = list(temp)
-
- temp1 = temp1/len(tool.word_token(c))
- temp1 = list(temp1)
- all_vec = [temp,temp1]
计算:
- #计算
- cos_similarity = cosine_similarity(all_vec)
- print(cos_similarity[0][1])
结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。