NISHIO Hirokazu[日本語][English]

人生の選択肢を知ったきっかけデータセット

image

Talk to the Cityを試すために日本語のサンプルデータが欲しいという声がある

  • 一方で最近X APIで取得したデータに関してはAPIの契約条件で取得したデータ自体の扱いに制限があり、オープンデータ化はやりにくい
  • この「人生の選択肢を知ったきっかけデータセット」は西尾が2021-05-07にTwitterで募集して、247件の投稿が集まった。当時Twitter APIを使わずに手動で収集したものなのでX APIの契約に縛られない。
  • 手動で収集した元データはここにある: 人生の選択肢をどうやって知ったか?

データセット

https://gist.github.com/nishio/116708c1f65d21d224f2a5fe40bc962d

  • 250件

データセットを作るプロセス

これを書き記しておくと今後自前のデータでTalk to the Cityをする人の助けになるだろう

元データは空行区切り

そこで空行で区切ってCSVにするコードを書いた

まずは最初の25件を入れてみてextraction stepだけ走らせてみる

  • $ python main.py configs/choice.json -o extraction
  • これで結果を見て、プロンプトを修正したりfew shotの例(末尾の入力と出力の例示のこと)を追加したりする
  • TTTCは何回か試してもうまく抽出できない場合は元データを無視する(Silently giving up on trying to generate valid list.)
  • 例 :
JSON error: Expecting value: line 1 column 1 (char 0)
Input was: [https://gyazo.com/eb0af52aab8f22c0e91035bb2c106165]
Response was: 申し訳ありませんが、画像やリンクの内容を直接確認することはできません。画像の内容をテキストで説明していただければ、その情報をもとにお手伝いできるかもしれません。
Silently giving up on trying to generate valid list.
  • この例は入れたテキストの中に画像リンクだけの段落があったことが原因
    • image
    • こういうものは数が多くないなら元データから取り除くのが楽
    • 多い場合
      • Pythonで簡単にルールベースのフィルタが書けるならそれで弾く
      • 簡単でないならプロンプトで弾く
      • もしくは「プロンプトで弾くフィルタリングのステップ」を前に追加する

うまく行きそうならデータを増やしてみる

  • この時データを変えてるのにnothing changedと表示される(これはバグかも)

  • プロンプトを変更すれば再実行が必要だと認識する

  • 強制的に再実行することもできる

    • $ python main.py configs/choice.json -f
  • only指定した場合も強制的に再実行する

    • $ python main.py configs/choice.json -o extraction
    • データを増やしつつある実験ならこっちの方がいいな
    • 問題がないことを確認したら普通に実行すると抽出済みのデータを再利用してつづきから実行する
      • $ python main.py configs/choice.json
  • configでextractionのlimitを増やすの忘れがち

    • これはデータCSV自体は既にあるケースで少ないデータ量でプロンプトの試行錯誤をするためのパラメータ
  • とりあえず100件で可視化してみる

    • image
    • 方向性は問題なさそう

configの"name", "question", "intro"を修正する

  • 見た目の説明文の更新なのでvisualizationだけ更新したらいいかと思いきや、configから表示用のデータをとって可視化用のデータのかたまりをつくるのはaggregation
  • $ python main.py configs/choice.json -o aggregation
  • $ python main.py configs/choice.json -o visualization
  • (これaggregation以降を再実行する方法があるべきな気がするな)
  • image
  • "分析対象となったデータの件数は"〜に関してはaggregation.pyの中に記述されている、データの量は自動記述
  • image

最終的なconfigとprompt


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]