如何在Python中获得字符串与另一个字符串类似的概率?
我想获得像0.9(意味着90%)等十进制值.最好使用标准的Python和库.
例如
similar("Apple","Appel") #would have a high prob.
similar("Apple","Mango") #would have a lower prob.
Run Code Online (Sandbox Code Playgroud) 有类似的问题,但不是我可以在我的源代码中使用的C#库.
感谢大家的帮助.
我已经看过lucene,但我需要更容易搜索类似字符串的东西,而不需要索引部分的开销.
我标记的答案有两个非常简单的算法,一个也使用LINQ,所以它是完美的.
我需要比较2个字符串并计算它们的相似性,以过滤掉最相似字符串的列表.
例如.寻找"狗"会回来
例如.寻找"破解"将返回
我遇到过:
你知道更多的字符串相似度算法吗?
我找到了很多关于模糊匹配的链接,将一个字符串与另一个字符串进
我有一个非常长的字符串,它是一个文档和一个子字符串.子字符串来自原始文档,但已被多次转换,因此可能引入了奇怪的工件,例如此处的空格,字符串.子字符串将匹配原始文档中文本的一部分99%或更多.我不匹配以查看此字符串是哪个文档,我试图在文档中找到字符串开始的索引.
如果字符串是相同的,因为没有引入随机错误,我会使用document.index(substring),但是如果甚至有一个字符差异,则会失败.
我认为通过删除除字符串和子字符串中的az之外的所有字符来比较差异,然后使用压缩字符串时生成的索引将压缩字符串中的索引转换为真实文档中的索引.这种情况很好用,其中差异是空格和标点符号,但只要一个字母不同就失败了.
该文档通常是几页到一百页,而子串从几个句子到几页.
Levenshtein距离为我们提供了一种根据无序个体字符计算两个相似字符串之间距离的方法:
quick brown fox quikc brown fax
Levenshtein距离= 3.
具有相似子序列的两个字符串之间距离的类似算法是什么?例如,在
quickbrownfox brownquickfox
Levenshtein距离是10,但这并没有考虑到弦有两个相似的子序列的事实,这使得它们比完全无序的词更像"相似"
quickbrownfox qburiocwknfox
然而,这个完全无序的版本的Levenshtein距离为8.
考虑到子序列的长度,存在哪些距离度量,而不假设子序列可以很容易地分成不同的词?
考虑一个记录问题答案的任意文本框,在你死之前你想做什么?
使用一组响应字符串(最大长度为240),我想以某种方式对它们进行排序和分组,并按想法计算它们(这可能只是字符串相似性,如本问题所述).
这里的想法是让人们一遍又一遍地在文本框中书写,我提供一个数字,一般来说,描述了802人写的大致相同的东西
我想评估两个字符串之间的相似性(包括大小写),并给出0到1之间的值.
我尝试了Levenshtein距离实现,但它只给出了整数,并没有比较内部字母.
例如,比较"ABCD"和"Abcd"给出距离3和"AOOO"也给出3的距离,但显然"Abcd"比"AOOO"更好地匹配.
因此,与"ABCD"相比,我希望"ABcd"与"Abcd"最相似,然后是"AOOO",然后是"AOOOO"
我也看过这里,但我不是在寻找可变长度算法.
谢谢
我做了一些研究,发现一些主题会检查一个字符串是否是字符串中的子字符串,并选择与指定字符串最接近的字符串,但是我如何检查一个字符串是否与另一个字符串相似并提供真/假反应?IE:
String 1: JAVA IS A PROGRAMMING LANGUAGE
String 2: JAVA IS A PROGRAMMING LANGUAG X
Run Code Online (Sandbox Code Playgroud)
这将返回一个“true”
String 1: JAVA IS A PROGRAMMING LANGUAGE
String 2: I ATE THE CAKE
Run Code Online (Sandbox Code Playgroud)
这将返回“假”
谢谢。
string ×5
algorithm ×3
.net ×2
c# ×2
comparison ×2
similarity ×2
filtering ×1
fuzzy-search ×1
java ×1
metric ×1
nlp ×1
probability ×1
python ×1
ranking ×1
ruby ×1