原创Python文本相似度计算工具介绍 -- 知识铺
介绍
最近因为工作需要,需要使用一个功能,就是中文文本相似度的计算。属于nlp领域的一个应用吧,这里找到一个非常好的包和大家分享。这个包叫sentence-transformers
。
这里给大家介绍,如何使用这个包对中文文本做相似度计算(这个包的其中一个小用途罢了)
-
这里使用的模型是
paraphrase-multilingual-MiniLM-L12-v2
模型,因为paraphrase-MiniLM-L6-v2
模型已经非常好了,paraphrase-multilingual-MiniLM-L12-v2
是paraphrase-MiniLM-L6-v2
模型的多语言版本,速度快,效果好,支持中文! -
这里计算相似度的方法是使用的余弦相似度。
使用步骤
- 第一步先安装这个包,可以直接使用pip安装:
|
|
- 导入包
|
|
- 使用模型
|
|
因为在中国境内,访问一些模型网站,可能会失败,出现这样的结果:
|
|
要使用特定的模型,您可以按照以下步骤操作:
- 访问模型网站:首先,您需要前往模型的官方网站进行下载。网址为:模型网站。
- 寻找所需模型:在网站上,搜索名为
paraphrase-multilingual-MiniLM-L12-v2
的模型。 - 下载模型:找到模型后,点击相应的下载链接进行下载。
- 解压模型文件:下载完成后,将模型文件解压到您选择的文件夹中。
- 使用模型:最后,通过传递该文件夹的路径,即可直接使用模型。
请确保您的操作环境支持模型的运行,并检查模型文件的完整性。
然后将这个模型解压到paraphrase-multilingual-MiniLM-L12-v2
文件夹。然后再将这个文件夹路径放到下面的模型即可。
|
|
- 计算结果
下面的内容就很简单了,传递了两个list,分别对每个list里面的文本做encode,然后再计算余弦相似度,最后输出结果。
|
|
最近,我接触到了两个非常出色的Python包:text2vec
和sentence-transformers
。这两个包在自然语言处理领域,特别是在文本嵌入(Sentence Embedding)方面,表现出了极高的性能和灵活性。以下是我对这两个包的体验和感想。
text2vec
包体验
起初,我是出于对text2vec
的兴趣而开始探索的。这个包的设计非常精良,功能强大,能够将文本转换为向量表示,这在处理诸如文本相似度计算等任务时非常有用。当我查看其源码时,我被代码的整洁和优雅所震撼。
发现sentence-transformers
然而,在深入研究后,我意外地发现text2vec
实际上在内部调用了sentence-transformers
。这个发现让我意识到,我之前所赞赏的许多精妙的代码,实际上源自sentence-transformers
。
对sentence-transformers
的认识
sentence-transformers
是一个由德国乌尔姆大学的UKPLab开发的库,它提供了一种简便的方法来计算句子、段落甚至图像的密集向量表示。这些模型基于BERT等变换器网络,并且在多个任务上达到了最先进的性能。
源码学习的价值
无论是text2vec
还是sentence-transformers
,它们的源码都非常值得一读。它们不仅代码质量高,而且展示了如何高效地实现复杂的NLP功能。对于任何对自然语言处理感兴趣的开发者来说,深入研究这些源码都是一次宝贵的学习经历。
结论
尽管我最初是被text2vec
所吸引,但最终我对两个包都留下了深刻的印象。它们各自在文本嵌入领域都有着独特的贡献,值得每一个NLP从业者关注和学习。
参考链接
延伸阅读
有关更多关于文本嵌入的深入讨论和使用案例,推荐阅读以下知乎回答:知乎 - Sentence Embedding 十碘努 sota 脊北儿兰唇?。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek001/post/20240730/%E5%8E%9F%E5%88%9Bpython%E8%AE%A1%E7%AE%97%E4%B8%AD%E6%96%87%E6%96%87%E6%9C%AC%E7%9B%B8%E4%BC%BC%E5%BA%A6%E7%A5%9E%E5%99%A8_paraphrase-multilingual-minilm-l12-v2--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com