IntentChat Logo
← Back to ไทย Blog
Language: ไทย

เพิ่มประสิทธิภาพการค้นหาข้อความภาษาจีนใน Telegram

2025-06-24

เพิ่มประสิทธิภาพการค้นหาข้อความภาษาจีนใน Telegram

สรุป

เพื่อปรับปรุงประสิทธิภาพการค้นหาข้อความภาษาจีนใน Telegram สามารถทำได้โดยการแทรกตัวคั่นที่มองไม่เห็นด้วยตนเอง หรือพัฒนา Tokenizer แบบกำหนดเอง นอกจากนี้ การใช้เทคโนโลยี AI เพื่อการค้นหาเชิงความหมาย (Semantic Search) ยังสามารถเพิ่มความแม่นยำในการค้นหาได้อย่างมาก

ประเด็นสำคัญ

  • ฐานข้อมูล Telegram: Telegram ใช้ SQLite เป็นฐานข้อมูล
  • กลไกการค้นหาแบบเต็มข้อความ (Full-text search): ฟังก์ชันการค้นหาแบบเต็มข้อความของ Telegram ใช้ Tokenizer ในการแยกสตริงออกเป็นวลี สร้างค่าแฮช และเปรียบเทียบกับตารางแฮชเมื่อทำการค้นหา
  • ตัวสร้างโทเค็น (Tokenizer): ตัวสร้างโทเค็นอาศัยตัวคั่นและตัวแบ่งในการตัดสตริง
  • การนิยามโทเค็น: เนื้อหาที่อยู่นอกเหนือจากตัวคั่นและตัวแบ่งจะถูกพิจารณาว่าเป็น "โทเค็น" ซึ่งรวมถึงอักษรตัวใหญ่ (*), ตัวเลข (N) และอักขระอื่นๆ (Co) สามประเภท
  • การประมวลผลอักขระ CJK: อักขระภาษาจีน ญี่ปุ่น และเกาหลี (CJK) ส่วนใหญ่ใน Unicode จะถูกระบุว่าเป็นโทเค็น

เนื่องจากไม่มีตัวคั่นระหว่างอักขระจีน (汉字) Telegram จึงทำการแฮชสตริงอักขระจีนทั้งหมด ทำให้ประสิทธิภาพการค้นหาไม่ดี บทความนี้ได้เจาะลึกถึงข้อจำกัดของการค้นหาข้อความภาษาจีนใน Telegram จากมุมมองของโค้ด

คำแนะนำในการปรับปรุง

  1. แทรกตัวคั่นด้วยตนเอง: เพิ่มตัวคั่นที่มองไม่เห็นด้วยตนเองระหว่างอักขระจีน เพื่อปรับปรุงประสิทธิภาพการค้นหา
  2. ปรับแต่ง Tokenizer: พัฒนา Tokenizer แบบกำหนดเอง และแก้ไขไคลเอนต์ Telegram เพื่อเพิ่มประสิทธิภาพการค้นหา

การค้นหาเชิงความหมายด้วย AI

นอกเหนือจากวิธีการค้นหาแบบดั้งเดิม การนำ AI มาใช้ยังเป็นทางออกที่ดีกว่าสำหรับการค้นหาเชิงความหมาย โปรเจกต์ telegram-search ใช้โมเดลการฝัง (embedding model) ซึ่งช่วยให้ผู้ใช้สามารถค้นหาเนื้อหาที่ต้องการได้ แม้ว่าจะไม่มีคำหลักที่ตรงกันเป๊ะ ตัวอย่างเช่น การป้อน "昨晚吃饭的那个人" (คนที่กินข้าวเมื่อคืน) สามารถค้นหา "昨天晚上和我们一起吃饭的男的" (ผู้ชายที่กินข้าวกับเราเมื่อคืน) ได้

ด้วยวิธีการข้างต้น สามารถปรับปรุงประสบการณ์การค้นหาข้อความภาษาจีนใน Telegram ได้อย่างมาก