字串相似度
使用 Levenshtein、Jaro-Winkler、餘弦、傑卡德、漢明和 Dice 等多種演算法對比兩段文字的相似度,即時出結果,100% 隱私保護。
什麼是字串相似度?
字串相似度衡量兩段文字的匹配程度,廣泛應用於拼字檢查、DNA 分析、抄襲偵測和資料除錯等領域。
什麼是 Levenshtein 距離?
Levenshtein 距離(編輯距離)衡量將一個字串變為另一個字串所需的最少單字元編輯次數(插入、刪除或替換)。例如 "cat" 和 "bat" 的距離為 1。
什麼是 Jaro-Winkler 相似度?
Jaro-Winkler 對具有相同前綴的字串給予更高分數,常用於資料庫中的姓名、地址匹配,能有效處理拼寫錯誤。
餘弦相似度是如何運作的?
餘弦相似度將字串拆分為字元 n-gram,轉換為向量後計算兩向量間夾角的餘弦值。適用於較長文字,常用於資訊檢索。
餘弦相似度和傑卡德相似度有什麼區別?
餘弦相似度使用 n-gram 頻率向量並計算夾角,傑卡德相似度則使用 n-gram 集合的交集與聯集之比。傑卡德忽略重複項,餘弦不忽略。
什麼是漢明距離?
漢明距離統計兩個等長字串在相同位置上不同字元的個數,僅適用於等長字串,常見於糾錯編碼。
什麼是 Sørensen-Dice 係數?
Sørensen-Dice 係數基於兩個字串共有的 bigram 數量與總 bigram 數量的比例來衡量相似度,對共有元素賦予更高權重。
應該選擇哪種演算法?
短文字(姓名、編碼)有拼寫錯誤時選 Levenshtein 或 Jaro-Winkler;長文字選餘弦相似度;快速集合比較選傑卡德;等長字串選漢明距離。
什麼是 n-gram 分析?
n-gram 是字串中連續 n 個字元的序列。例如 "hello" 的 bigram 為 "he"、"el"、"ll"、"lo"。n-gram 是許多相似度演算法的基礎。
什麼是模糊匹配?
模糊匹配查找與目標模式近似(而非完全)匹配的字串,常用於搜尋引擎、拼字檢查和資料清洗中處理拼寫錯誤和變體。
我的資料會傳送到伺服器嗎?
不會,所有計算都在您的瀏覽器本地完成,文字不會離開您的裝置,沒有伺服器端處理或資料儲存。
可以比較不同語言的文字嗎?
可以,演算法支援任意 Unicode 字元。但由於不同語言的字元結構和分詞方式不同,結果可能會有差異。
如何使用字串相似度
比較兩個字串並以 Levenshtein、Jaro-Winkler、Jaccard、Dice 等演算法給出相似度評分,全部在瀏覽器本機計算。
- 把第一個字串貼到上方輸入框,第二個貼到下方輸入框。
- 編輯任一側文字時,相似度評分會即時更新,範圍從 0(完全不同)到 1(完全相同)。
- 看 Levenshtein 了解兩字串間需要的單字元編輯次數,比較姓名等前綴敏感情境可用 Jaro-Winkler。
- 用 Jaccard 或 Dice 衡量共享字元集合,用 Cosine 看向量式重疊,Hamming 只適用於等長字串。
各演算法的標準本來就不同:建議同時對照兩三個,Levenshtein 算的是編輯次數,Jaccard 算的是共同片段。
相關工具
- 行排序 按字母、數字或長度對文字行排序。一鍵去重和反轉順序。
- 數字轉大寫 將數字轉換為英文單詞、中文大寫、羅馬數字和科學計數法。
- 大小寫轉換器 在大寫、小寫、標題格式、駝峰格式、蛇形格式、短橫線格式等之間即時轉換文字
- 隨機大小寫轉換器 將文字字母隨機轉換為大寫或小寫。在瀏覽器中立即建立海綿寶寶大小寫文字。
- 建立回文 透過追加反轉字串從任意文字建立回文。免費線上工具,瀏覽器即時執行,支援多行模式。
- 迴文檢測 即時檢測任意文字、單字或句子是否為迴文。免費線上工具,100% 在瀏覽器中運行,資料不會傳送到任何伺服器。
- 字串旋轉 線上字串旋轉工具,支援向左或向右循環移位字元,即時預覽,無需安裝。
- 文字重複工具 按指定次數重複文字,支援自訂分隔符號。免費、快速,完全在瀏覽器中執行。