Twitter を用いたプログラミング言語の有益な情報の提供 Provides a useful information of programming language using the Twitter 認知支援システム学講座 0312011128 晴山裕治 指導教官:David Ramamonjisoa 1. はじめに 近年, SNS などの Consumer Generated Media(CGM) 徴(ネットスラングの有無,具体的な数値,文のはじめに@ユ ーザ名など)を用いて分類している.本研究もツイート本文 の発達により情報発信の場が増えている. これにより 以外の特徴を用いて分類を行う.具体的には URL の有無を CGM の情報から有益な情報を発見する需要が増加してい 1つのパラメータとして実験を進める. ると[1]で述べている. 本研究では SNS の一種である 3. Twitter からプログラミング言語の情報を収集する. 蓄積 Twitter について 数ある SNS から Twitter を使用する理由について 2 点 したデータを予め設定したクラスに分類し, ユーザに提供 挙げられる. 日本における主要な SNS は mixi, Twitter, する. 提供するデータをうまく整理することができれば思 Facebook である[4]. 3 つの中で一番利用者が多いのが わぬ発見ができ, 流行を知ることができる. また, 教育機 Twitter で, 2011 年 11 月時点で 1600 万人が利用している. 関での演習内容の決定補助に役立つと考える. 本研究では, Twitter の利用目的が他2 つのSNS と違うのが情報収集に Python というプログラミング言語に関する情報を収集す 使われる割合が高いということだ(30. 6%)[4]. 上記の理由 る. 理由は著者が普段, Python を使用していて, 実験の評 から Twitter を用いてプログラミング言語 Python の情報 価を行いやすいという観点からである. Python は機械学 収集を行うこととした. 習に関する情報が盛んなので, クラスの一つとして, 機械 4. 学習を設定する. 想定するユーザは 1. プログラミング初 学習データ Twitter のデータ(ツイート)を収集する際, Tweepy[5]と 心者, 2. ライブラリを使う経験者, 3. 機械学習を学ぶ者の いう python のライブラリを使用した. 検索ワード 3 種類とし, データの分類を機械学習のアルゴリズムを用 を”python”とし, リツイート(他人のツイートの引用)やボ いて行う. 分類後のデータを Twitter のパラメータの一種 ット(機械による自動投稿)を削除した. 取得した件数は であるfavoriteで降順ソートを行い, 上位20件をユーザに 7765 件, その中のツイートで URL が付与されているもの 提示する. を学習データとみなし, 人手でラベル付けを行った. デー タの日時は 2015/11/29 5:23 ~2015/12/08 7:02, データ数 は 2251 件となった. ラベル付けを行った結果以下のよう なデータの概要となった. 表1:学習データのラベルと件数とツイート例 ラベル名 入門 件数 418 ツイート例 今すぐはじめる python… Python のリスト内包表記… 応用 655 ・Raspberry pi の GPU で行列… ・Slack 代替チャット Zulip… 図1:データ取得から情報提供までの流れ 2. 機械学習 149 先行研究 ・Python と遺伝的アルゴリズムで [2]の研究では, 学術論文を K-NN 法で分類を行ってい る. Title や abstract 等の比較的短い文章でも, 分類精度が 平均 0. 825 を示している. 本研究では 140 文字という投稿 ・Heroku+OpenCV で簡易顔検出 作る FX 自動売買 その他 1025 ・アシックスの安全靴あった... ・Python にマスコット伽羅… 制限が課せられている Twitter を使用する. この研究を参 上記のデータの全ての単語を用いた特徴とバイグラムの 考に様々な機械学習アルゴリズムを用いて, 分類を行う. 特徴の 2 つを用意し, それぞれ TF-IDF の行列に変換した. [3]の研究では Twitter のデータを本文だけでなく様々な特 特徴ベクトルに変換する際, URL とユーザ名を削除した本 文だけのツイートを使用した. この 2 つのデータで文書の ・TensorFlow による Deep Learning… 応用 ・python - ニューラルネット… 分類を行っていく. 5. 文書分類手法 機械学習 ・Python – 声優の声を分類してみた 文書分類を行うアルゴリズムを決定する際, ナイーブベ イズ(NB), K-NN, 決定木(DT), Random Forest (RF)の 4 8. つで 5 分割検定を行い, 分類精度を比較した. 以下の表は 分類精度を示している. ・Rstudio Clone for Python… 考察 入門に関するツイートは概ね良好な結果を得ることが できた. 応用の部分に機械学習についての情報が多数混在 1 0.8 0.6 0.4 0.2 0 NB K-NN していた. 応用の定義が広すぎたのが原因だろう. 機械学 習のカテゴリに無駄な情報が多くあり, favorite 数でソー トすると有用な情報が埋もれてしまう結果となった. ナイ DT ーブベイズは入門,機械学習の情報の取得には適切だが,そ RF の他の分類精度が低い. 決定木やランダムフォレストを 使用してその他の分類精度を高める方法が考えられる. ま た, 不要な情報を機械学習以外の手法でフィルタリングす る手段を考える必要がある. 図 2:特徴全ての単語時の分類精度 9. 終わりに Twitter は 140 文字の投稿制限上,プログラミングの解説 1 0.5 0 NB をするのは困難である.学習データを作成する際,有益な情 K-NN 報のほとんどが学習サイトの URL が存在するツイートで DT あることが分かった.Twitter 社はツイートの投稿文字数を RF 1 万字まで引き上げることを検討している.Twitter 内のみ で学習が可能になる環境が今後,到来すると予想する.実験 結果としては,python 入門者に推薦できるレベルの学習サ イトや最適な開発環境を取得し,機械学習についても具体 図 3:特徴バイグラム時の分類精度 的な研究や流行を概ね把握することができた.また, 本研 この結果から入門, 機械学習について知りたい場合は特徴 究では Twitter API の制限上, 10日分のデータしか用意 がバイグラムのナイーブベイズを, 応用について知りたい できなかった. 仮に Twitter のサービス開始時からツイー 場合は全ての単語を特徴にしたランダムフォレストの精 トを取得できたなら時系列順に情報を取り出し, プログラ 度が高いことが判明した. 1 章で述べた通り演習内容の補 ミング言語の変遷を認知できると考える. 助決定の観点から入門, 機械学習について分類精度が高か 参考文献 った, バイグラムのナイーブベイズを使用して実験を進め [1]村上 力: トピックモデルを用いたユーザーコメントか ていく. らのキーコメント抽出 6. [2]福田 悟志, 難波 英嗣, 竹澤 寿幸: 要素技術とその効 テストデータ 学習データ同様, Tweepy を使用して収集を行った. デー 果を用いた学術論文の自動分類, DEIM Forum 2015 タの日時は 2015/12/12 2:47 ~2015/12/21 8:00, データ数 F3-4 は 1873 件となった. このデータをバイグラムの TF-IDF [3]Bharath Sriram, David, Fuhry, Engin Demir, Hakan に変換して分類を行う. Ferhatosmanoglu, Murat Demirbas: Short Text 7. Classification in Twitter to improve information 実験結果 テストデータに対して, バイグラムの TF-IDF に変換後, Filtering, Proceedings of the 33rd international ACM ナイーブベイズによる分類を行い, データを 4 つに分類し SIGIR conference on Research and development in た. 以下がデータの件数である. information retrieval , pp.841-842, 2010 分類後のデータについてお気に入り数, 上位 20 件の中か [4]樋口 雄太郎, 河野 義広: 主要 SNS mixi, Twitter, ら有用な情報を以下の表に示す. Facebook の利用調査に基づく性質の相違点, 社会情報学 表 3:分類後のツイート ラベル名 入門 ツイート ・python で学ぶ基礎からのプログラミング入 門… ・GUI を備えた Python 実行… 会(SSI)学会大会研究発表論文集 2012,pp. 97-100, 2012-09-14 [5] http://www.tweepy.org/ (閲覧日:2016/10/12)
© Copyright 2024 Paperzz