泰语Compatible with Milvus 3.0.0+

thai 分词器在不依赖空格的情况下,将泰语文本分割为单词词元。当您需要为泰语或泰语/英语混合文本构建自定义分析器管道时,请使用此分词器。

配置

对于泰语文本,在大多数情况下请使用内置的 thai 分析器。该内置分析器集成了此分词器,并包含小写转换、小数位规范化以及泰语停用词过滤功能。仅当需要构建自定义分析器管道时,才应直接使用thai 分词器。

若要使用thai 分词器配置分析器,请在analyzer_params 中将tokenizer 设置为thai

analyzer_params = {
    "tokenizer": "thai",
}

thai 分词器没有可配置的参数。

该分词器可与一个或多个过滤器配合使用。例如,以下配置使用thai 分词器配合 lowercasedecimaldigit 过滤器:

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', '๑๒๓']

翻译自DeepL

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?