문서 유사도와 비슷한 정도의 비율 처리 방법
솔루션을 사용하지 않고 적은 양의 문서는 비슷한 효과를 낼 수 있는 PHP 내장 함수 입니다.
보통 70% 이상이면 유사하다고 봐도 됩니다. 이 부분은 문서마다 다를 수 있으니 직접 확인하여 유의미한 통계값을 찾는것이 중요 합니다.
AWS에 솔루션이 있기는 하던데 API 익혀야 하고 가입도 해야 하고 ... 그리고 돈도 내야 합니다.
검색엔진 처럼 무료로 사용할만한 좀 더 좋은 유사문서 검색 할 수 있는 솔루션 있으면 알려 주세요~
function similarity($str1, $str2) {
$len1 = strlen($str1);
$len2 = strlen($str2);
$max = max($len1, $len2);
$similarity = $i = $j = 0;
while (($i < $len1) && isset($str2[$j])) {
if ($str1[$i] == $str2[$j]) {
$similarity++;
$i++;
$j++;
}
elseif ($len1 < $len2) {
$len1++;
$j++;
}
elseif ($len1 > $len2) {
$i++;
$len1--;
}
else {
$i++;
$j++;
}
}
return round($similarity / $max, 2);
}
$str1 = '검색 하려면 여기에 입력 하세요.';
$str2 = '여기에 검색 하려면 클릭 하세요.';
// $str2 = '검색 하려면 여기에 클릭 하세요.';
// $str2 = '검색 하려면 여기에 입력 하세요.';
$sim = similar_text($str1, $str2, $perc);
echo 'Similarity: ' . $sim . ' : ' . $perc . '%' . "\n";
echo 'Similarity: ' . (similarity($str1, $str2) * 100) . '%' . "\n";
exit;