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 中文訊息的搜尋體驗