🚀

RecBoleを使ってみよう2 データの用意

2023/08/29に公開

概要

前回は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.interanime.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