STC
智慧旅遊夥伴
Smart Travel Companion · 雄獅旅遊
1 · Pipeline 2 · LLM 雙引擎 3 · 分詞器優化 4 · Langfuse 5 · Roadmap 📄 簡介
🔍

ES 分詞器優化

用 Gemini 從團體商品名抽關鍵字,做成 jieba 字典 · 修正旅遊專名分詞

⚠️ 痛點 · prod ES 切不準業務專名(真實實測)
用戶 query 「北海道五日遊」
prod ES _analyze
北海 五日 五日遊
prod 字典已有 ~115 萬詞,但「北海道」仍被切成「北海」+「道」 → ES 拿「北海」當 token 撈出大量無關商品
資料來源:group-20260521/_analyze with group_import analyzer(2026-05-21 read-only 實測)
🛠️ 解法 · 兩階段抽取 + 合併
📦
ES 8,319 筆團體商品 snapshot
group-snapshot-prod-20260511 · 31 個抽取欄位
Stage A · 規則直抽
25,313 詞
結構化欄位「直接取值」,內容本身已是乾淨詞
AREA_SYNONYM_LIST
日本 霓虹國 ジャパン 日本国
KEYWORD_LIST / MATCH_TAG_LIST
5日遊 溫泉 遊船 中華航空
POI_INFO.POINAME
小樽運河 狸小路商店街 太宰府天滿宮
DESTINATION_LIST.CITY / COUNTRY
北海道 釜山廣域市 大阪府 日本國
TAG_LIST / TRIP_TYPE_LIST
自然生態 特色料理 早鳥 郵輪
Gemini 3.1 Flash Lite
Stage B · Gemini 抽詞分類
19,436 詞
「文案 / 半結構化」欄位 LLM 抽乾淨實體,過濾「敬請自理」「或同級」「機上簡餐」等噪音
PROD_NAME / SHORTEN_TOUR_NAME
北海道POI 定山溪POI 彩燈節ACTIVITY
ITINERARY_HOTEL.HOTEL
福岡蒙特艾瑪納HOTEL 地中海郵輪榮耀號SHIP 星野集團IP
ITINERARY_MEAL.*
巴西黑豆風味餐FOOD 中式六菜一湯FOOD 信州牛壽喜燒FOOD
GROUP_INFO.FLIGHT_INFO.*
長榮航空AIRLINE 星宇航空AIRLINE 成田機場AIRPORT
PROD_SUMMARY
富平罐頭夜市POI 海雲臺海濱POI 汗蒸幕ACTIVITY
38,947
jieba userdict 詞條
💰 生成成本
$0.59
Gemini 成本(USD)
~55 min
總耗時(含 retry)
38,947
字典詞條
gemini-3.1-flash-lite · 617 batches · ~6.5M tokens · structured output (JSON schema)
📊 對 prod 字典的補強效果(5000 詞抽樣實測)
53.7%
Gemini 抽出但 prod 字典沒有的比例
~17,468
補進 prod 的新業務詞
prod ES 真實 _analyze 實測 · 純中文 pool 32,528 詞 · 推算到全集約 17,468 個新詞 · prod 字典已含 ~115 萬詞
🔎 分類深挖 · prod 字典在哪一類最缺
9 類業務詞 · prod 字典漏收率
每類抽樣(POI/HOTEL/FOOD 各 500,其餘全測)→ 打 prod ES _analyze,若整詞沒被完整切出 = prod 沒收錄
FOOD
81.8%
HOTEL
76.0%
SHIP
73.8%
ACTIVITY
67.4%
OTHER
64.3%
AIRPORT
61.9%
IP
47.2%
POI
38.4%
AIRLINE
37.6%
prod 字典強項
POI 38.4%
AIRLINE 37.6%
products_dict 補強重點
FOOD 81.8%
HOTEL 76.0%
SHIP 73.8%
Before / After · 真實 prod 實測 14 case · 滑動看更多 📡 prod ES _analyze 2026-05-21
「北海道五日遊」通用旅遊詞
prod 北海 五日 五日遊
+dict 北海道 五日
「巴西黑豆風味餐」FOOD
prod 巴西 黑豆 風味 風味餐
+dict 巴西黑豆風味餐
「福岡蒙特艾瑪納」HOTEL
prod 福岡 蒙特 艾瑪納
+dict 福岡蒙特艾瑪納
「丹後鐵道紅松號」SHIP
prod 丹後 丹後鐵道 鐵道 紅松
+dict 丹後鐵道紅松號
「普吉老鎮」POI
prod 普吉 老鎮
+dict 普吉老鎮
「杭州寒山寺」POI
prod 杭州 寒山 寒山寺 山寺
+dict 杭州寒山寺
「樂天渡假村」HOTEL
prod 樂天 渡假 渡假村
+dict 樂天渡假村
「隆鑫玫瑰酒店」HOTEL
prod 隆鑫 玫瑰 酒店
+dict 隆鑫玫瑰酒店
「伊斯坦堡機場」AIRPORT
prod 伊斯 伊斯坦 伊斯坦堡 斯坦 機場
+dict 伊斯坦堡機場
「下龍灣雅典娜號」SHIP
prod 下龍灣 龍灣 雅典 雅典娜
+dict 下龍灣雅典娜號
「蒙古炒麵」FOOD
prod 蒙古 炒麵
+dict 蒙古炒麵
「賞螢火蟲」ACTIVITY
prod 螢火 螢火蟲
+dict 賞螢火蟲
「彩虹帆船遊艇」ACTIVITY
prod 彩虹 帆船 遊艇
+dict 彩虹帆船遊艇
「鳴日廚房」IP
prod 鳴日 廚房
+dict 鳴日廚房
📌 資料來源與誠實補充
  • 「prod」欄資料來源:prod ES group-20260521 group_import analyzer _analyze API 實測(2026-05-21,全程 read-only GET)
  • 「+dict」欄資料來源:本地 python jieba 0.42.1 + prod 字典副本 + products_dict.txt,jieba.cut() precise 模式模擬
    ⚠️ 預期 prod plugin 部署後同等效果,但 ES 端尚未實測;jieba 字典載入機制 prod 已配 jieba/synonyms + jieba/stopwords,部署可行性高
  • 53.7% gap 數字:從 products_dict 純中文 pool(32,528 詞)隨機抽 5000 詞,逐一打 prod _analyze 判定 covered/gap;95% CI ±1.4%
  • 9 類 gap 率:來自 ai_entities.jsonl 按 category 抽樣 2,948 詞實測(大類 500 / 小類全測)
  • 字典載入時間實測:jieba 內建 0.26s + prod 8 個 .dict 副本 0.75s + products_dict 0.09s = 共 1.10s(cold start,runtime 不受影響)
  • 目前洗的範圍:8,319 筆團體商品 × 31 個欄位 — 商品名 / SHORTEN_TOUR_NAME / 飯店 / 餐點 / 航空 / 機場 / POI / 目的地 / 區域同義詞 / 標籤 / 行程類型 / 商品短描述等(規則直抽 + Gemini 9 類抽詞,詳見上方 Stage A/B)
  • 未涵蓋:PROD_DESC / ITINERARY_DESC / DAILY_DESC 等長文案 — 每筆 ~1-3K 字,input 成本爆增 + Gemini structured output 在長輸入下易截斷,先擱置未來補進來覆蓋會更完整(可分段抽,譬如行程逐日 / POI 介紹獨立 batch)
  • Snapshot 時點:2026-05-11,後續商品更新需重跑 pipeline