商品レビューデータからTF-IDFベクトルを抽出し、JSONファイルに書き出す方法
Vertex AI Matching Engine使用における前処理の一つとして、商品レビューデータからTF-IDFベクトルを抽出し、JSONファイルに書き出す方法について解説しています。
はじめに
この記事では、Amazonの商品レビューデータからTF-IDFベクトルを抽出し、それらをJSONファイルに書き出す方法を紹介します。この方法は、レビューデータを特徴ベクトルとして表現し、それをVertex AI Matching Engineで使用するための一例です。
必要なライブラリのインポート
まずは必要なライブラリをインポートします。
import json
from sklearn.feature_extraction.text import TfidfVectorizer
レビューデータの読み込み
次に、kaggleで公開されているAmazon Products Sales Dataset 2023から、任意のデータセットを取得し、amazon.jsonとしてレビューデータを読み込みます。このファイルは各レビューの情報を含むJSONオブジェクトのリストです。
with open("amazon.json", "r") as f:
amazon_records = [json.loads(line) for line in f]
埋め込みの抽出
読み込んだデータから各レビューの埋め込み(特徴ベクトル)を抽出します。
embeddings = [record[0]["embedding"] for record in amazon_records]
TF-IDFベクトルの計算
TF-IDFベクトル化器を初期化し、埋め込みからTF-IDFベクトルを計算します。
vectorizer = TfidfVectorizer()
tfidf_vectors = vectorizer.fit_transform(embeddings)
新しいJSONファイルの作成
最後に、生成したTF-IDFベクトルとそれに対応するレビューのIDを含む新しいJSONファイルを作成します。
with open("amazon_embeddings.json", "w") as f:
for i, vector in enumerate(tfidf_vectors.toarray()):
json_record = {"id": str(i), "embedding": vector.tolist()}
f.write(json.dumps(json_record))
f.write("\\n")
“amazon_embeddings.json”ファイルが生成されます。このファイルは各レビューのTF-IDFベクトルを含み、Vertex AI Matching Engineで使用できます。
{"id": "0", "embedding": [0.9437977967287928, 0.5667641899240523,,,,,,,,,
最後に
この手順はjsonデータ形式に基づいています。他のデータセットで使用する場合、データ形式に合わせてコードを調整する必要があります。また、TF-IDFベクトル化の設定も、具体的なタスクやデータセットに応じて調整することができます。