首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP similar_text() 計算字串相似度完整指南

     編輯:PHP 相關知識

函數原型

int similar_text(string $first, string $second, float &$percent = null)
  • 回傳:匹配字元數(整數)
  • 第三參數傳址參考,回傳相似百分比(浮點數)

基本用法

// 僅取得匹配字元數
echo similar_text('ly89cn', 'ly89'); // 輸出 4

// 取得百分比
similar_text('ly89cn', 'ly89', $percent);
echo $percent; // 輸出 80

中文字串處理

echo similar_text('王業樓的個人博客', '王業樓'); // 輸出 9 (位元組數)
similar_text('王業樓的個人博客', '王業樓', $p);
echo $p; // 輸出 54.545454545455

注意:similar_text() 以位元組計算,UTF-8 中文字佔 3 位元組,結果可能不符直覺。中文相似度建議改用 levenshtein() 或專門中文分詞演算法。

效能與替代方案

  • levenshtein():計算編輯距離,速度較快,適合長字串。
  • similar_text():精確度較高(演算法不同),但複雜度 O(N³),長字串效能較差。

實際應用:相關文章推薦

將文章標題與資料庫所有標題逐一 similar_text() 比對,按相似度降序排列,取前 N 筆作為相關推薦。注意效能優化:可先以關鍵字過濾候選集,再精確計算。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved