泰語Compatible with Milvus 3.0.0+
thai 詞元化器會將泰文分割成單詞詞元,且不依賴空格。當您需要為泰文或泰英混合文本建立自訂分析器管線時,請使用此詞元化器。
設定
對於泰文,在大多數情況下請使用內建的 thai 分析器。此內建分析器已整合此分詞器,並包含小寫轉換、十進位數字正規化及泰語停用詞移除功能。僅當您需要建立自訂分析器管線時,才應直接使用 `thai ` 分詞器。
若要使用 `thai ` 分詞器來配置分析器,請在 `analyzer_params` 中將 `tokenizer ` 設定為 `thai `。
analyzer_params = {
"tokenizer": "thai",
}
thai 分詞器沒有可設定的參數。
此分詞器可與一個或多個篩選器配合使用。例如,以下設定即採用thai 分詞器,並搭配 lowercase 以及 decimaldigit 過濾器:
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
],
}
此自訂管線不等同於內建的thai 分析器,因為它未包含內建的_thai_ 停用詞字典。如需完整的預定義管線,請使用{"type": "thai"} 。
此分詞器採用以下行為:
- 泰語分詞:將泰語文字分割為單詞詞元,且不依賴空白字元。
- 空白與標點符號過濾:過濾掉僅由空白或標點符號組成的片段。這與
icu分詞器,後者可將標點符號和空格保留為詞元。 - 混合文字:在泰語與英語混合的文字中,輸出拉丁字母單字標記。
- 僅使用分詞器:不會將詞元轉為小寫、正規化 Unicode 數字,也不會移除停用詞。請針對這些步驟新增篩選器或使用內建的
thai分析器來執行這些步驟。 - 位置語義:使用基於字元的詞元位置,其中包含被跳過的空白字元和標點符號,這可確保短語和鄰近匹配的行為與其他非拉丁語系詞元化器保持一致。
定義analyzer_params 後,您可在定義集合架構時,將此分析器套用至VARCHAR 欄位。詳細資訊請參閱「使用範例」。
範例
在將分析器設定套用至您的集合架構之前,請先使用 `run_analyzer ` 方法驗證其行為。
分析器設定
analyzer_params = {
"tokenizer": "thai",
}
使用run_analyzer
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
sample_text = "สวัสดี! ทดสอบ, ระบบ Milvus ๑๒๓"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
預期輸出
['สวัสดี', 'ทดสอบ', 'ระบบ', 'Milvus', '๑๒๓']