RecBoleを使ってみよう2 データの用意
概要
前回はPoetryを用いてRecboleの環境構築をし、テストコマンドが通るところまで進めました。
今回は、Recboleが用意しているデータセットリストの中からAnimeデータセットを取得し、RecBoleで使えるフォーマットに加工する方法を書きます。基本的には公式ドキュメント(Anime.md
)の通りに進めればよいのですが、ローカル環境に依存しない形で進めたいので、ここではPoetryを使った方法を紹介します。
データを用意する
データ加工リポジトリのクローン
mkdir ~/src
cd ~/src
git clone https://github.com/RUCAIBox/RecDatasets
cd RecDatasets/conversion_tools
poetry init
基本的にデフォルトのままでOK。
poetry init
poetry add
requirements.txt
を参考に、poetry add
コマンドを実行します。
poetry add \
"numpy@>=1.17.2" \
"pandas@>=1.0.0" \
"tqdm@>=4.40.0"
データダウンロード
kaggleのAnime Recommendations Database から archive.zip
をダウンロード(ダウンロードにはkaggleへの登録が必要です)。
unzip
コマンドで解凍してもダブルクリックで解凍してもどちらでもいいかと思います。
フォルダ名をanime-data
にリネームします。
データ加工
次を実行し、conversion_tools/output_data/anime/
に anime.inter
と anime.item
が生成されれば成功です。
python run.py --dataset anime \
--input_path anime-data --output_path output_data/anime \
--convert_inter --convert_item
↓
100%|████████████████████████| 7813737/7813737 [06:14<00:00, 20857.12it/s]
100%|█████████████████████████████| 12294/12294 [00:01<00:00, 9592.94it/s]
ちなみに、公式ドキュメント(Anime.md)のコマンドをそのまま実行すると、先頭行のバックスラッシュの後に半角スペースがあるせいでエラーになるので注意して下さい(2023年8月29日現在)。
データのコピー
こうして作った anime/
データセットを初回で作った recbole_sandbox
プロジェクト内にコピーします。コピー先は~/src/recbole_sandbox/data/processed/
とします(コマンドラインを用いていますが、手動で実行しても大丈夫です)。
mkdir -p ~/src/recbole_sandbox/data/processed/
cp -R output_data/anime/ ~/src/recbole_sandbox/data/processed/
終わりに
次回は、こうして得られたRecBole用ファイル(Atomicファイルと呼ばれます)の解説をします。ありがとうございました!
Discussion