タイムラインでポジろう! 2015年シーズン結果報告編 - #bpstudy 100
- 2. 自己紹介
❖ 職業 : フリーランスのWeb系何でも屋やってます。
❖ 好きなチームとか
❖ 今は亡き「東京ドームの日ハム」ファン
❖ あまり特定のチームには肩入れせずに、色々な球場、試合に足を運んでいます
❖ 甲子園、マツダ、ヤフドの3球場に足を運べば12球団制覇
❖ 好きな選手
❖ 1人あげるならガッツこと小笠原道大(現中日二軍監督)。日ハムファンになったのもガッツがきっかけ
❖ 20世紀のベストナインをオール助っ人で投票する程度の助っ人好き
❖ 色んな意味で惜しい選手も好物です。荒木(選球眼があれば…)、糸井(頭が…)、實松(当たれば…)、多村
(健康なら…)などなど
❖ 数少ない同年代の選手を見守っています
❖ 1977年(昭和52年)度生まれ。同い年の現役は か4人
❖ 現役 : 荒木雅博(中), 福留孝介(阪), 安藤優也(阪), 鶴岡一成(阪)
- 4. 使ったもの
❖ 言語: Python (2.7.11)
❖ BPStudyっぽく
❖ DB : MySQL (5.6.27)
❖ 抽出したツイート、ポジネガ判定結果等の格納
❖ 日本語解析 : Mecab (0.996)
❖ ポジネガ判定の下処理に必要な、品詞毎の語句分解を行うために利用
❖ http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html
❖ 日本語辞書 : mecab-ipadic-neologd (0.0.4)
❖ Mecabの動作に必要
❖ 前回はIPA辞書(2.7.0)を利用していましたが、新しい語句に対応していないためIPA辞書を元に拡張したこちらを採用
❖ http://diary.overlasting.net/2015-03-13-1.html
❖ ポジネガ判定 : 単語感情極性対応表 (以降、感情表と記載)
❖ http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html
❖ Mecabで分解された語句毎にこの感情表と照合を行い、スコアを取得
❖ ※語彙数約5万5千。ポジティブ系の単語が5千程度で残りはほぼ全てネガティブ系の判定。
❖ 普通に使うと超ネガティブな結果になるため、実際にはかなり大規模な調整を入れています。詳しくは後述
- 5. 対象データ
❖ 1日毎に、1チームあたり200件のツイートをランダムに抽出
❖ どのチームのツイートかは下記ハッシュタグで判断。
❖ 該当ハッシュタグが複数あるツイートは抽出対象外
❖ 主な対象期間
❖ シーズンの開幕から全日程終了まで
❖ 2015/3/27(金)∼2015/10/09(金) ※全日程終了は10/7(水)
チーム名 ハッシュタグ チーム名 ハッシュタグ
オリックス #bs2015 DeNA #baystars
日本ハム #lovefighters 中日 #dragons
楽天 #rakuteneagle
s
ヤクルト #swallows
西武 #seibulions 巨人 #kyojin
ロッテ #chibalotte 阪神 #hanshin
ソフトバンク #sbhawks 広島 #carp
※期間中の平均ツイート数/日
試合が無い日 20,000∼25,000
試合がある日 60,000∼70,000
程度
- 6. ポジネガ判定の例
❖ 例1
❖ ツイート
❖ 抜けた!サヨナラ!4連勝!#dragons
❖ Mecabで品詞毎に分解
❖ 抜け / た / ! / サヨナラ / ! / 4 / 連勝 /!/ # / dragons
❖ ※実際には、分解した単位毎に品詞の取得等も行っています。詳しくは後述
❖ 分解結果を1つずつ単語感情極性対応表(を元にしたデータ)と照合し、スコアを取得。
❖ 抜け, -0.1 / サヨナラ, 0.2 / 連勝, 0.5
❖ ※照合できない単語は無視
❖ スコア :0.6 (-0.1 + 0.2 + 0.5)
❖ ※単語毎のスコアは1∼-1の間
- 7. ポジネガ判定の例
❖ 例2
❖ ツイート
❖ \横浜優勝/ 神様仏様山 様! #baystars
❖ 品詞毎に分解
❖ \ / 横浜 / 優勝 / / / 神様 / 仏様 / 山 / 様 / !/ # / baystars
❖ ※山 様の分解に失敗しています
❖ スコアを取得。
❖ 優勝, 0.3 / 神様, 0.988
❖ ※優勝は \横浜優勝/ で頻出するため抑えめに調整
❖ スコア :1.288 (0.3 + 0.988)
- 9. テーマ1. 全体の結果
貯金推移 - セ
-18
-14
-11
-7
-4
0
4
7
11
14
03/27
04/03
04/10
04/17
04/24
05/01
05/08
05/15
05/22
05/29
06/05
06/12
06/19
06/26
07/03
07/10
07/17
07/24
07/31
08/07
08/14
08/21
08/28
09/04
09/11
09/18
09/25
10/02
10/09
ヤクルト 巨人 阪神 広島 中日 DeNA
※貯金推移の元データは「プロ野球ヌルデータ置き場」様より http://lcom.sakura.ne.jp/NulData/
簡略化のため金曜毎の順位比較をしており、その他の曜日の変動は無視
- 10. テーマ1. 全体の結果
ポジネガ推移 - セ
-0.042
-0.028
-0.014
0.000
0.014
0.028
0.042
0.056
0.070
03/27
04/03
04/10
04/17
04/24
05/01
05/08
05/15
05/22
05/29
06/05
06/12
06/19
06/26
07/03
07/10
07/17
07/24
07/31
08/07
08/14
08/21
08/28
09/04
09/11
09/18
09/25
10/02
10/09
ヤクルト 巨人 阪神 広島 中日 DeNA
※セパあわせたポジネガ期間中の平均は 0.034点。 極力0に うように調整
こちらも金曜毎の比較。前6日分のスコアを含めた移動平均で算出
- 11. テーマ1. 全体の結果
貯金推移 - パ
-30
-20
-10
0
10
20
30
40
50
03/27
04/03
04/10
04/17
04/24
05/01
05/08
05/15
05/22
05/29
06/05
06/12
06/19
06/26
07/03
07/10
07/17
07/24
07/31
08/07
08/14
08/21
08/28
09/04
09/11
09/18
09/25
10/02
10/09
ソフトバンク ハム ロッテ 西武 オリックス 楽天
- 12. テーマ1. 全体の結果
ポジネガ推移 - パ
-0.064
-0.048
-0.032
-0.016
0.000
0.016
0.032
0.048
0.064
0.080
03/27
04/03
04/10
04/17
04/24
05/01
05/08
05/15
05/22
05/29
06/05
06/12
06/19
06/26
07/03
07/10
07/17
07/24
07/31
08/07
08/14
08/21
08/28
09/04
09/11
09/18
09/25
10/02
10/09
ソフトバンク 日本ハム ロッテ 西武 オリックス 楽天
- 22. テーマ3. 優勝候補オリックス
❖ 期間中のポジネガスコア変動
❖ 平均 : 0.009 (12球団の平均 0.034)
❖ 最大 : 0.046 (6/12) ※福良体制初の3連勝を記録した時期
❖ 直後に心折れてるとか言わない
❖ かつて近鉄吸収が報じられたのは2004/6/13。前後でそれなりに言及がされているため、スコ
アに何らかの影響を与えていた可能性あり
❖ 最小 : -0.054 (7/3) ※ 復帰した金子がKOされていた時期
❖ 一貫して他チームの底値と同程度。底値安定。
❖ ただし、7/3を除くとそこまで他チームとの乖離が無い
❖ 最下位脱出が視野に入るタイミングで多少ポジティブ方面に良化
- 23. テーマ3. 優勝候補オリックス
❖ 考察
❖ DeNAと違い順位変動が殆ど無いこともあるが、あまり急激には
変動していない。徐々にネガティブに傾いている傾向
❖ そもそも古参ファンは慣れていると思われる
❖ 21世紀以降連続Aクラスになっていない
❖ 2008年(2位)の翌年も優勝候補に挙げられていた関わらず、
怪我人続出で最下位
❖ DeNA同様今年の観客動員はかなり増えていたが、新規よりも出
戻りの方が多かったのかも? (未確認)
- 36. 前回からの改善点
❖ 精度の向上
❖ 品詞分解精度の向上
❖ mecab-ipadic-neologdのおかげでかなり精度が向上
❖ ただし、mecab-ipadic-neologdの問題ではない問題も
❖ IPA辞書で判断不能な語句がサ変の名詞扱いになってお
り、そのままだとノイズの除外に難儀したため辞書の調
整を行った
❖ ポジネガ判定の調整
❖ ひたすら感情表のチューニングを行い対処
- 39. 積み残しの課題
❖ 日本語処理
❖ さらなる辞書の充実 (野球語の辞書は自分で作る必要がありそう)
❖ ひらがなの語句を感情表とぶつけているが、誤判定を誘発しがち。
❖ 全角半角対応及び、それに伴う副作用
❖ 概ね、IPA辞書/mecab-ipadic-neologd に登録されている単語は日本語は全角、英数は半角の模様
❖ ツイート上の全角英数、半角カナ等はそのままだと辞書と照合できないため、unicode正規化(英
数/記号は半角、それ以外は全角、その他、一部丸数字の丸を除去等)を通して解決
❖ 副作用
❖ 全角半角が混在している顔文字(AA)の類は、辞書側でも混在した状態で登録されている
❖ つまり、顔文字についてはunicode正規化を通すとヒット率が下がる
❖ 一見ノイズとして無視してよさそうに見えるが、顔文字こそがもっとも強い感情表現。よっ
て、ポジネガ判断というテーマである以上は無視できない問題。今回は時間切れのため無視
- 41. 参考にさせて頂いた資料、サイトなど
❖ 抽出したツイート : タイムラインの皆様
❖ 貯金推移データ : 「プロ野球ヌルデータ置き場」様より
❖ http://lcom.sakura.ne.jp/NulData/
❖ 感情表
❖ 自然言語処理研究室
❖ http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html
❖ Mecabがサ変と誤判定する問題
❖ MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する
❖ http://qiita.com/K-1/items/5cb3601341f6fa4fdd95