我想找到兩個文本PHP - 查找兩段文本之間的匹配詞的數量?
例
$str1=the cat is on the roof
$str2=the mouse is on the roof
之間的類似的詞數,就是對的,屋頂話是$ str1和$ str2的類似
因此輸出將是5號或百分比86%
我嘗試了similar_text()函數,但是這個函數不能像我想要的那樣工作。
我想找到兩個文本PHP - 查找兩段文本之間的匹配詞的數量?
例
$str1=the cat is on the roof
$str2=the mouse is on the roof
之間的類似的詞數,就是對的,屋頂話是$ str1和$ str2的類似
因此輸出將是5號或百分比86%
我嘗試了similar_text()函數,但是這個函數不能像我想要的那樣工作。
簡單,爆炸它們,然後使用和array_diff:
$totalWords = count($array_1);
$array_1 = explode(" ", $str1);
$array_2 = explode(" ", $str2);
$differenceCount = count(array_diff($array_1, $array_2));
$differentPercent = $differenceCount/($totalWords/100);
@Edit:
編輯上面的代碼來顯示百分比。但是請記住,如果數組1和數組2的字數不相同,您可能會得到錯誤的結果。
$arr1 = explode(" ",$str1)
$arr2 = explode(" ",$str2)
$arr3 = array_diff($arr1, $arr2);
echo(count($arr1)-count($arr3));
我會處理這個問題的方法是爆炸每個字符串,然後用array_diff
給他們這樣的比較:
$arr1 = explode(' ', $str1);
$arr2 = explode(' ', $str2);
$diff = array_diff($arr1, $arr2);
echo (count($arr1) - count($diff));
這將回聲出類似的單詞的數量。
$arr1 = explode(" ",$str1)
$arr2 = explode(" ",$str2)
$arr3 = array_diff($arr1, $arr2);
我用array_intesect檢查多少匹配,, i的搜索 一個陣列到其他
以及用於與輔助的動詞和介詞(所述,於,是等) 防止使用該使用 -
$arr1 = str_replace(array("to", "the","a","an","in","by","but","are","is","had","have","has"),'',$arr1);
嘿,代碼跑掉了,去拿吧,快點! –
你是怎麼得到86%的?總共有12個字,有10個是匹配的,並且有83% - 額外的3%來自哪裏? – newfurniturey
''similar_text'也提供了83%以及肯定看起來對我 – jszobody