如何计算2个字符串之间的字符串相似度(语义)?
例如,如果我有2个字符串,如“显示”和“屏幕”,字符串相似度必须接近100%
如果我有“显示”和“颜色”,则屏幕相似度必须接近0%
我正在用Python写我的脚本...我的问题是,是否存在一些图书馆或框架来做这种或思考......另外,有人可以建议我一个好的方法吗?
答案 0 :(得分:3)
根据您的示例,我认为您正在寻找语义相似性。例如,您可以使用WordNet执行此操作,但是您必须添加例如您正在使用名词并且可能迭代不同的含义这个单词。该链接显示了根据各种实现计算相似性的两个示例。
然而,大多数实现的计算成本都很高:它们使用大量文本来计算两个单词彼此接近的频率等等。
答案 1 :(得分:2)
您要解决的是NLP问题;如果你不熟悉,可能会很麻烦。最受欢迎的图书馆是NTLK,它有很多人工智能工具。快速谷歌了解您正在寻找的东西产生语义逻辑:http://www.nltk.org/book/ch10.html
这是一个计算量很大的过程,因为它涉及加载整个英语的字典。如果你有一小部分例子,你可能最好自己创建一个映射。
答案 2 :(得分:1)
我不擅长NPL,但我认为Levenshtein距离算法可以帮助你解决这个问题。但是我使用这个算法来计算字符串之间的相似性。而且表现也不错。 以下是我的CPP代码,单击链接,也许你可以将代码转换为Python。我将在以后发布Python代码。 如果你低于动态编程,我认为你可以理解它。 enter link description here
答案 3 :(得分:0)
查看以下库:
答案 4 :(得分:0)
查看在Gensim库中实现的word2vec。它的一个特点是计算单词相似度。
https://radimrehurek.com/gensim/models/word2vec.html
可以找到更多详细信息和演示here。
我相信这是现在最先进的技术。