AI
2023/07/20
與田 龍人

商品レビューデータから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ベクトル化の設定も、具体的なタスクやデータセットに応じて調整することができます。

New call-to-action