我需要计算2个字符串之间的相似度.那究竟是什么意思呢?让我用一个例子来解释一下:
hospitalhaspita现在我的目标是确定修改错误单词以获得真实单词所需的字符数.在这个例子中,我需要修改2个字母.那么百分比是多少?我总是把真正的词长度.因此它变为2/8 = 25%所以这两个给定的字符串DSM是75%.
如何以性能为关键考虑因素来实现这一目标?
我在哪里可以找到比levenshtein()和php similar_text()方法更准确地评估错位字符拼写的算法?
例:
similar_text('jonas', 'xxjon', $similar); echo $similar; // returns 60
similar_text('jonas', 'asjon', $similar); echo $similar; // returns 60 <- although more similar!
echo levenshtein('jonas', 'xxjon'); // returns 4
echo levenshtein('jonas', 'asjon'); // returns 4 <- although more similar!
Run Code Online (Sandbox Code Playgroud)
/乔纳斯
进一步解释一下
假设我有两个如下所示的字符串
我是一个会飞的超级男孩!真的 。
我是能打破墙壁的超级男孩!真的 。
所以有些字符是相似的I am super boy who can和Really .。是否有任何东西可以用来查找这两个字符串之间的百分比相似性/差异。
嘿伙计:)我想问一些解决方案.现在,我有字典words.txt,这里有一些例子:
happy
laugh
sad
Run Code Online (Sandbox Code Playgroud)
我有俚语字符串:
hppy
Run Code Online (Sandbox Code Playgroud)
我想搜索并匹配那个俚语字符串到我的字典,这意味着它会返回"happy",因为那些字符串在字典中引用"happy".
最近我一直在使用similar_text(),但对其有效性没有信心.你们能为我的问题推荐更好的解决方案吗?谢谢 :)
在这里我把我的代码:
function searchwords($tweet){
//echo $tweet;
$find = false;
$handle = @fopen("words.txt", "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
similar_text(trim($tweet),trim($buffer),$percent);
if ($percent == 100){ // this exact match
$find = true;
}else if ($percent >= 90){ //there is the possibility of errors
$find = true;
}
}
fclose($handle);
}
if ($find == true){
unset($tweet); …Run Code Online (Sandbox Code Playgroud)