import hanlp
sim = hanlp.load(hanlp.pretrained.sts.STS_ELECTRA_BASE_ZH)
strArr = ['看图猜一电影名', '看图猜电影', '无线路由器怎么无线上网', '无线上网卡和无线路由器怎么用','北京到上海的动车票', '上海到北京的动车票']
sim = hanlp.load(hanlp.pretrained.sts.STS_ELECTRA_BASE_ZH)
for idx1, outer in enumerate(strArr):
compared = []
for idx2, inner in enumerate(strArr):
if idx1 != idx2:
compared.append([outer, inner])
similarity_values = sim(compared) #速度很慢的地方
max_value = max(similarity_values)
if max_value >= 0.85:
m = f" [{outer}] 相似度的句子为:"
for idx, v in enumerate(similarity_values):
if v > 0.85:
m = f"{m} {strArr[idx]} "
print(f"{m} \n")
当strArr集合到1万的时候,速度很慢。
很慢的原因是 strArr 中每个句子的特征值都重复集合了1万篇导致的。
我的疑问是有没有方法让每个句子的特征值 可以先保存下来的办法?
欢迎各位大咖提出意见。谢谢您