IntentChat Logo
← Back to 中文(台灣) Blog
Language: 中文(台灣)

提升 Telegram 中的中文訊息搜尋能力

2025-06-24

提升 Telegram 中的中文訊息搜尋能力

結論

要改善 Telegram 中中文訊息的搜尋效果,可以透過手動插入不可見分隔符號或開發自訂的 Tokenizer 來達成。此外,利用 AI 技術進行語意搜尋也能顯著提升搜尋準確性。

關鍵點

  • Telegram 資料庫:Telegram 使用 SQLite 作為其資料庫。
  • 全文搜尋機制:Telegram 的全文搜尋功能透過 Tokenizer 將字串切割成詞彙,並產生雜湊值,搜尋時與雜湊表進行比對。
  • 標記產生器:標記產生器仰賴分離器和分隔符號來切割字串。
  • 標記定義:分離器和分隔符號之外的內容被視為「標記」,包括大寫字母(*)、數字(N)和其他字元(Co)三種類型。
  • CJK 字元處理:中日韓字元屬於 Unicode CJK 大多被辨識為標記。

由於漢字之間沒有分隔符號,Telegram 會將整串漢字進行雜湊處理,導致搜尋效果不佳。本文從程式碼角度深入探討了 Telegram 中文訊息搜尋的局限性。

改進建議

  1. 手動插入分隔符號:在漢字之間手動添加不可見分隔符號,以提升搜尋效果。
  2. 自訂 Tokenizer:開發一個自訂的 Tokenizer,修改 Telegram 用戶端以強化搜尋功能

AI 語意搜尋

除了傳統搜尋方法,AI 的導入為語意搜尋提供了更好的解決方案。專案 telegram-search 使用了嵌入模型,使得即使沒有精確匹配的關鍵字,使用者也能找到所需內容。例如,輸入「昨晚吃飯的那個人」也能搜尋到「昨天晚上和我們一起吃飯的男的」。

透過以上方法,可以顯著提升 Telegram 中中文訊息的搜尋體驗