Closed3
Pinecone Text Clientを試す
The Pinecone Text Client is a Python package that provides text utilities designed for seamless integration with Pinecone's sparse-dense (hybrid) semantic search.
This is a public preview ("Beta") version.
ハイブリッド検索のためのユーティリティらしい。Pinecone向けなのかもだけど、シンプルに書けそうでちょっと興味が出たので試してみる。
Pinecone Text Clientでsparse-vectorの生成にはBM25とSPLADEが使える。
BM25の場合、日本語でやるならばトークナイザーを置き換える必要があると思う。BM25Encoderのコードを見ると、トークナイザーを置き換えることはできなさそうだけども、初期化の際に言語を指定できる様子。
サンプルコードに従うとこうなる。
from pinecone_text.sparse import BM25Encoder
corpus = ["こんにちは、今日はいいお天気ですね。",
"おはようございます。今日の予定はなんでしょうか?",
"おやすみなさい。疲れを残さないように。"]
bm25 = BM25Encoder(language="japanese")
実行してみると
ValueError Traceback (most recent call last)
<ipython-input-9-87b5dd0786e0> in <cell line: 8>()
6
7 # Initialize BM25 and fit the corpus.
----> 8 bm25 = BM25Encoder(language="japanese")
9 bm25.fit(corpus)
2 frames
/usr/local/lib/python3.10/dist-packages/nltk/stem/snowball.py in __init__(self, language, ignore_stopwords)
104 def __init__(self, language, ignore_stopwords=False):
105 if language not in self.languages:
--> 106 raise ValueError(f"The language '{language}' is not supported.")
107 stemmerclass = globals()[language.capitalize() + "Stemmer"]
108 self.stemmer = stemmerclass(ignore_stopwords)
ValueError: The language 'japanese' is not supported.
ステミングにNLTKのSnowball Stemmerを使っているらしいのだが、これが日本語には対応していない模様。
SPLADEよくわかってない。日本語使えるのかもわからない。
このスクラップは2024/01/18にクローズされました