泰语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 后,您可以在定义Collection Schema时将该分析器应用于VARCHAR 字段。有关详细信息,请参阅使用示例。
示例
在将分析器配置应用于Collection Schema之前,请使用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', '๑๒๓']