泰语 Analyzer
thai 分析器是一款用于处理泰语文本的内置分析器。当您需要 Zilliz Cloud 对泰语文本进行分词、规范化泰文数字、将混合文本中的拉丁字母转换为小写,以及移除泰语停用词时,可使用此分析器。
配置
内置分析器是由 Milvus 提供的分析器模板。要使用内置分析器,请在 analyzer_params 中将 type 设置为预定义的分析器名称。
要使用内置的泰语分析器,请将 type 设置为 thai:
python
analyzer_params = {
"type": "thai",
}
thai 分析器接受以下可选参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
stop_words | list[str] | _thai_ | 要在分词时额外移除的停用词列表。默认情况下,thai 分析器使用内置的 _thai_ 词典。要查看默认词典,请参阅 Zilliz Cloud 的泰语停用词列表。该列表来源于 Apache Lucene 的泰语停用词文件。 |
要添加自定义停用词,请添加 stop_words:
python
analyzer_params = {
"type": "thai",
"stop_words": ["มิลวัส"],
}
除内置的 _thai_ 词典外,Zilliz Cloud 还会应用自定义停用词。
内置的 thai 分析器等同于以下自定义分析器配置:
python
analyzer_params = {
"tokenizer": "thai",
"filter": [
"lowercase",
"decimaldigit",
{
"type": "stop",
"stop_words": ["_thai_"],
},
],
}
此分析器执行以下处理步骤:
-
分词:使用
thai分词器将泰语文本切分为词元,无需依赖空格。该分词器会过滤掉仅包含空白字符或标点符号的片段。有关详细信息,请参阅泰语 Analyzer。 -
大小写规范化:使用
lowercase过滤器,该过滤器会处理泰语和英语混合文本中的拉丁字母。 -
数字规范化:使用
decimaldigit过滤器,将泰文数字和其他 Unicode 十进制数字转换为 ASCII 数字。 -
移除停用词:使用
stop过滤器和内置的_thai_词典。 -
不进行词干提取:内置的
thai分析器不应用stemmer过滤器。
定义 analyzer_params 后,您可以在定义 Collection Schema 时,将该分析器应用于 VARCHAR 字段。有关详细信息,请参阅使用示例。
示例
将分析器配置应用于 Collection Schema 前,请使用 run_analyzer 方法验证其行为。
Analyzer 配置
python
analyzer_params = {
"type": "thai",
}
使用 run_analyzer 验证
python
from pymilvus import MilvusClient
client = MilvusClient(uri="YOUR_CLUSTER_ENDPOINT")
sample_text = "ฉันรักการค้นหาข้อความใน Milvus ๑๒๓"
result = client.run_analyzer(sample_text, analyzer_params)
print(result)
预期输出
plaintext
['ฉัน', 'รัก', 'ค้นหา', 'ข้อความ', 'milvus', '123']