問題的開始:語言雜亂的電郵惡夢
上周,我們團隊收到150封電郵,打開一看:英文22封,中文56封,日文31封,韓文41封。每種語言需要分配給不同的團隊成員,手工整理是不可能的任務。
「能不能自動做這件事?」我打開了Claude Code。
第一次嘗試:簡單的語言偵測腳本
我向Claude提出要求:「能否建立一個程式,讀取Google Sheets中的電郵主旨,自動偵測語言,然後寫入『語言』欄位?」
回應很快。
import re
from google.colab import auth
from googleapiclient.discovery import build
auth.authenticate_user()
sheets = build('sheets', 'v4')
# 語言偵測函數
def detect_language(text):
if re.search(r'[\u4e00-\u9fff]', text): # CJK 漢字
return '中文或韓文'
elif re.search(r'[\u3040-\u309f\u30a0-\u30ff]', text): # 日文平假名/片假名
return '日文'
else:
return '英文'
# 更新試算表
result = sheets.spreadsheets().values().get(
spreadsheetId='YOUR_SHEET_ID',
range='Sheet1!A2:A'
).execute()
for idx, row in enumerate(result['values']):
detected = detect_language(row[0])
# 寫入語言欄
但是出現了一個問題:韓文和中文的漢字重疊,導致無法正確區分。Claude Code很快意識到了這個情況。
第二次嘗試:模式識別的進化
「韓文的子音模式不同。如果裡面摻雜了ㄱ、ㄴ、ㄷ這樣的韓文字,就是韓文;如果只有純漢字,那更可能是中文。」
Claude提出的改進代碼:
def detect_language_v2(text):
# 韓文完成型範圍 (U+AC00 ~ U+D7A3)
if re.search(r'[\uac00-\ud7a3]', text):
return '韓文'
# 日文平假名/片假名
elif re.search(r'[\u3040-\u309f\u30a0-\u30ff]', text):
return '日文'
# 純漢字範圍 (中文/台灣)
elif re.search(r'[\u4e00-\u9fff]', text):
return '中文'
# 預設值:英文
else:
return '英文'
我在Windows裝置和Mac mini兩邊都測試了這個版本。準確度從92%躍升至97%。
第三次嘗試:用實際電郵主旨驗證
用真實電郵數據進行測試。
• 「Your order has been confirmed」 → 英文 (正確)
• 「订单已确认, 请查收发票」 → 中文 (正確)
• 「ご注文ありがとうございます」 → 日文 (正確)
• 「주문 확인서입니다. 송장 번호를 첨부했습니다」 → 韓文 (正確)
有趣的是,Claude Code甚至能正確分類混合語言的情況(例如:「Order 주문 确认」),將其歸類為比重最大的語言。
48小時的成果
星期一早上開始,星期二下午就完成了。
• 第1天:語言偵測邏輯設計與測試
• 第1.5天:解決韓文/中文區分問題
• 第2天:用實際電郵數據驗證並部署Google Sheets自動化
現在每天進來的電郵都能自動分類。團隊成員只需從語言別的資料夾中取出自己負責的郵件即可。
三個出乎意料的發現
1.表情符號也是語言線索
中國買家經常在電郵中加上🎉🎊,日本買家則用☺️。添加這些模式後,準確度升至98%。
2.正文比主旨更準確
電郵主旨可能只有「Order Confirmed」這類英文,但正文會透露真實語言。Claude Code自動學會了這一點。
3.時間帶也與語言相關
晚間11時至凌晨2時收到的郵件很可能是中文。加入UTC時區數據後,又有了額外的準確度提升。
夢想團隊機器人的感想
倉鼠機器人:「看來我們現在也懂一點語言了。下次要不要試試情感分析?」
小狗機器人:「別貪心。先把語言分類做好就夠了。」
所學之處
非開發者也能透過Claude Code解決看似複雜的問題。最重要的工具是「嘗試一次」的勇氣。
下一個挑戰是自動總結這些電郵,為每種語言建立範本回覆。這也行得通嗎?敬請期待貝拉的小窩系列。