救助要請の抽出
提供:ANPI_NLP
@aidashin あいだしんさんのツイートの一部です。
私は「Twitter 救助要請通報支援サイト」( http://is.gd/THMebZ )開設者です。15日分より、救助要請情報ログを以下に蓄積しております
ログは空白区切りプレーンテキストです。ファイル名は “current.txt.日付.gz”, 各行は上から順に、(1行目)発言時刻, (2行目)TwitterID: ツィート文, (3行目)発信者情報、あるいはRT元URL, です。
一部、日付のないものもありますが、それはログバックアップしていなかった期間を補完するものです。現在は当サイトの情報に基づいて適宜通報しておりますが、さらに応用して「救命要請情報が通報が既報かどうか確認システム」の構築のお役立てにしたいと思っています。
「半日でシステム構築する」ことを最優先にしたため、TwitterAPIを用いず、「1500ったー( http://is.gd/8zDmh0 )」で得た救命要請関連HTML文書を処理し、現在も10分置きに獲得し続けています。
とりあえず、当システム稼働中はログファイルが10分置きに追加されます。ANPI NLP 活動に少しでもお役立ていただけたら幸いです。
どうやって
まずは動くものをつくる
以下のスクリプトを helpme.rb とします。
def helpme(tweet) return false if tweet =~ /マップ/e return false if tweet =~ /【被災者の方へ】/e return false if tweet =~ /【救助・支援が必要な方へ】/e tweet =~ /[救助願求食水届]/e && tweet =~ /[県市町村]/e end while line = gets puts line if helpme(line.chomp) end
次のコマンドを実行します。
gzip -dc www.selab.cs.tut.ac.jp/~aida/Log/*.gz | ruby helpme.rb | head -100
この出力を見る限り精度は高そうです。ログがEUC-JPなので上記スクリプトもEUC-JPです
内山がこれまでにやったのは以下の手順です。
1.あたりをつけるために、とりあえず,「助」という文字を含むツイートを出してみる。
2.これを眺めて規則をつくる。
精度は良いようですが、再現率に問題がある可能性があります。
疑似正例として上記スクリプトに一致するツイートを helpme.txt.gz として https://data.ecom.trans-aid.jp/ANPI_NLP/file/ の救助要請におきました。疑似負例としては、上記スクリプトに一致しない not-helpme.txt.gz を同じ場所におきました。これらを利用して、機械学習ができるかもしれません。
@masaoutiyama 2011年3月20日 (日) 17:28 (JST)
相田さんがご自分でキーワードを追加していくというご連絡がありました。 @masaoutiyama 2011年3月20日 (日) 23:21 (JST)