メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

Jieba

jieba トークナイザーは中国語のテキストを構成単語に分割して処理します。

📘注意

jieba トークナイザーは、句読点を出力では個別のトークンとして保持します。たとえば、"你好!世界。"["你好", "!", "世界", "。"] になります。これらの独立した句読点トークンを削除するには、removepunct フィルターを使用してください。

設定

Milvus は jieba トークナイザーに2つの設定方法をサポートしています:簡易設定とカスタム設定です。

簡易設定

簡易設定では、トークナイザーを "jieba" に設定するだけで済みます。たとえば:

# 簡易設定: トークナイザー名のみを指定
analyzer_params = {
"tokenizer": "jieba", # デフォルト設定を使用: dict=["_default_"], mode="search", hmm=True
}

この簡易設定は、以下のカスタム設定と同等です:

# 上記の簡易設定と同等のカスタム設定
analyzer_params = {
"type": "jieba", # トークナイザーの種類、"jieba" に固定
"dict": ["_default_"], # デフォルト辞書を使用
"mode": "search", # 検索モードを使用して検索性を向上 (下記のモード詳細を参照)
"hmm": True # 確率的セグメンテーション用に HMM を有効化
}

パラメータの詳細については、カスタム設定を参照してください。

カスタム設定

より細かい制御のために、カスタム辞書を指定し、セグメンテーションモードを選択し、隠れマルコフモデル (HMM) を有効化または無効化できるカスタム設定を提供できます。たとえば:

# ユーザー定義設定のカスタム設定
analyzer_params = {
"tokenizer": {
"type": "jieba", # 固定のトークナイザー種類
"dict": ["customDictionary"], # カスタム辞書リスト; 自分の用語に置き換えてください
"mode": "exact", # exact モードを使用 (重複しないトークン)
"hmm": False # HMM を無効化; 一致しないテキストは個別の文字に分割されます
}
}

パラメータ

説明

デフォルト値

type

トークナイザーの種類。これは "jieba" に固定されています。

"jieba"

dict

アナライザーが語彙源として読み込む辞書のリスト。組み込みオプション:

  • "default": エンジンの組み込み中国語簡体字辞書を読み込みます。詳細については、dict.txt を参照してください。

  • "extend_default": "default" のすべてに加えて、中国語繁体字補足辞書を追加で読み込みます。詳細については、dict.txt.big を参照してください。

    組み込み辞書と任意の数のカスタム辞書を組み合わせることもできます。例:["default", "结巴分词器"]

["default"]

mode

セグメンテーションモード。指定可能な値:

  • "exact": 文を最も正確な方法でセグメント化しようと試み、テキスト分析に最適です。

  • "search": exact モードを基盤として、検索性向上のために長単語をさらに分解し、検索エンジンのトークナイズに適しています。

    詳細については、Jieba GitHub Project を参照してください。

"search"

hmm

辞書にない単語の確率的セグメンテーション用に隠れマルコフモデル (HMM) を有効にするかどうかを示すブールフラグ。

true

analyzer_params を定義した後、コレクションスキーマを定義する際に VARCHAR フィールドに適用できます。これにより、Zilliz Cloud は指定されたアナライザーを使用して、そのフィールド内のテキストを効率的なトークナイズおよびフィルタリングのために処理できます。詳細については、使用例を参照してください。

アナライザー設定をコレクションスキーマに適用する前に、run_analyzer メソッドを使用してその動作を確認してください。

アナライザー設定

analyzer_params = {
"tokenizer": {
"type": "jieba",
"dict": ["结巴分词器"],
"mode": "exact",
"hmm": False
}
}

run_analyzer を使用した検証

from pymilvus import (
MilvusClient,
)

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

# アナライズするサンプルテキスト
sample_text = "milvus结巴分词器中文测试"

# 定義された設定で標準アナライザーを実行
result = client.run_analyzer(sample_text, analyzer_params)
print("Standard analyzer output:", result)

期待される出力

['milvus', '结巴分词器', '中', '文', '测', '试']