LINE_intern_task
LINEインターンシップ課題プログラム
task2/
課題2回答用プログラム・データ
このプログラムはTwitter APIを利用してツイートをクロールし,NEologdに含まれる単語のセットを収集します. 収集したツイートは,そのツイートの発言者が男性か女性のどちらであるかを人力で入力することで, ツイートに関連したNEologdの各単語に対してその単語がどれだけ「男性らしい」「女性らしい」かのメタ情報を付与します.
収集したメタ情報のデータは task2/dump.tsv
にあります.
実行方法
プログラムの実行にはjava,sbt(scala),redisが必要です.
環境構築後,プログラムがNEologdの単語を取り出すために mecab-user-dict-seed.csv
ファイルを用意します.
これは ./init.sh
を実行することで自動的に neologd-seed/
ディレクトリに保存されます.
次にプログラムがTwitter APIにアクセスするために https://apps.twitter.com/ でアプリケーションを作成します. 作成が完了したら,各トークンを環境変数に設定します.
$ export twitter4j.oauth.consumerKey=*********************
$ export twitter4j.oauth.consumerSecret=******************************************
$ export twitter4j.oauth.accessToken=**************************************************
$ export twitter4j.oauth.accessTokenSecret=******************************************
その後 task2
ディレクトリに行き sbt run
を実行すると,コンパイル後プログラムが起動します.
プログラムは,開始後入力するコマンドにより動作が変わります.
init
: NEologdの単語情報をデータベースに保存する.crawl
: Twitterから標本となるツイート・単語を取得する.supervise
: データベースからツイートを取り出し,男性と女性どちらのツイートかを入力させる.export
: 各単語の情報をdump.tsv
に出力する.
実際にデータを収集する際は,初回に init
を行った後 crawl
で標本ツイートを収集し,
ツイートがたまった時点で supervise
でデータを与えるという流れになります.
ただし, supervise
については課題3にてより簡単に行えるシステムを作成しました.
dump.tsv 詳細
dump.tsv には各行3カラムのデータがあり,それぞれ
- 単語
- 単語の男女メタ情報 (1に近いほど男性寄り,0に近いほど女性寄り)
- 単語出現回数
の情報が書かれています.
task3/
課題3回答用プログラム
課題3では,課題2で収集したデータを用いて,あるTwitterユーザーのスクリーンネームを与えて
そのユーザーが男性か女性かを判定するWebサービスを作成しました.
また,課題2の supervise
が行えるページも用意しました.
作成したWebサービスは,現在 http://line-intern.harusamex.com/ で稼働しています.
実行方法
サーバーの起動にはNode.js,redis(課題2で生成されたデータベース)が必要です.
環境構築後, task3
ディレクトリに行き ./node_modules/.bin/webpack
を実行して
クライアント用のJavaScriptファイルを生成します.
また,課題2と同様にTwitter API用のトークンを生成します. トークンは以下のように環境変数に設定します.
$ export TWITTER_CONSUMER_KEY=*********************
$ export TWITTER_CONSUMER_SECRET=******************************************
設定後 node main.js
を実行することでサーバーが起動し, http://localhost:3000/ にてアクセスできるようになります.