DEIM Forum 2016 C5-1

野球実況ツイートを対象とした機械学習によるネタバレ検知の試み
齊藤

令†

寺田

実†

† 電気通信大学大学院 情報理工学研究科 情報・通信工学専攻 コンピュータサイエンスコース〒 182-8585 東京都調布市調布ヶ丘 1-5-1
E-mail: †saitoh-ryoh@uec.ac.jp , ††terada.minoru@uec.ac.jp
あらましTwitter の自分のタイムラインに現れるスポーツ等の試合状況・結果がわかるネタバレツイートを除去し,ユーザにネタバレを見せないようにしたい. ネタバレと非ネタバレを分類するために, Twitter 上の実況ツイートに着目した. これにはネタバレなツイートと非ネタバレなツイートが混在している. 実況ツイートを利用してネタバレ推定の分類器を作成し, ネタバレなツイートの推定ができないか考えた. 提案手法では, 実況ツイートを収集し, ネタバレか非ネタバレかのラベルをつける. 実況ツイートを Bag of Words モデルでベクトル化し, Latent Semantic Indexing
によって次元削減を行う. ベクトル化したツイートをサポートベクトルマシンによる機械学習を行い, 分類器を作成す
る. 本報告では, 提案手法によって実況ツイートをもとに作成した分類器でネタバレツイートを特定できるか検証する.
また, ツイートの投稿頻度やユーザの興奮度を特徴に加えたとき, 分類器に変化があるか検証する. 実験では, Twitter
上のプロ野球に関する実況ツイートを使用し, ネタバレツイートの推定を試み, 提案手法の有効性を検証した.
キーワード

Twitter, サポートベクトルマシン, ネタバレ.

1. は じ め にのような番組に関連するハッシュタグを付加してリアルタイムに投稿されたツイート (図 1) を「実況ツイート」と呼ぶ. 実

SNS は他ユーザとの交流や今話題の情報を入手するために日況ツイートは, 放送中に起こったこと, 放送を視聴してユーザ

夜利用されている. 利用者は非常に多く, 現代人にとって SNS は自身が思ったこと考えたこと等がほとんどである. 中には放送欠かせないものとなっている. その中でも Twitter（注 1）は, ユー

中のキャプチャ画像やニュース記事等を付加したツイートも存

ザが親しい他ユーザをフォローすることで他ユーザとコミュニ在する. このようにネタバレになりうるツイートが存在するたケーションを図ったり, 自分の興味のある情報を積極的に発信

め, 後続の放送で楽しむユーザは番組に関連するハッシュタグ

するユーザをフォローすることで興味のある情報を入手しやすをミュートにすることである程度ネタバレを防ぐことができる.

くする等といった使い方が一般的である. また, Twitter は即時しかし, 中にはハッシュタグを付けずに実況する人もいるため,性・速報性が高く, 今流行りの話題や情報を直ちに入手するこ

完全にネタバレを防ぐことはできない.

とができる.
しかし, 興味のある情報だからといって必ずしも今必要な情報とは限らない. 例えば, 楽しみにしていたコンテンツの結果を知ってしまう「ネタバレ」が挙げられる. ネタバレ情報は結果やそれに至る過程を知ってしまうとそのコンテンツの面白さを減衰させてしまうことがあり, これからそのコンテンツを楽しむユーザにとって大きなストレスとなりうる.
また, Twitter を利用するユーザの増加により, 情報が氾濫
し, ネタバレ情報が目に入りやすい環境になっている. 特に, ス
ポーツ等の試合経過・結果や将棋, 囲碁などのゲームの対戦経
過・結果は, 多くの人にとってその速報性が重要であるので, 公式サイトやニュースサイトでも積極的に発信されている. そして, ユーザもその経過や結果から様々な感想や考察等を発信するので, 積極的にネタバレ情報が発信されている.
ユーザが今放送している番組についてツイートする「実況」というものがある. Twitter では, 番組に関連するハッシュタ
グをツイートに付加して「実況」を行うのが一般的である. こ

図1

ハッシュタグを用いた実況ツイートの例

そこで本研究では, 実況ツイートに着目した. 前述の通り実況ツイートにはその話題のネタバレなツイートと非ネタバレな（注 1）：https://twitter.com/

ツイートが混在している. 実況ツイートを利用して, 分類器を作

表 1 関連研究 [2] の結果成すれば, 放送外のコンテンツに関係したツイートやハッシュ

Step Entered feature Recall Precision F-score

タグが付加されてない実況ツイートのフィルタリングにも応用

1

頻出名詞

0.30840.82910.4496できるのではないかと考えた.

2+動詞

0.56530.86110.6826

本研究の目的は, Twitter を対象として, スポーツやゲームの

3

+URL

0.76990.79570.7825

試合結果などのような積極的に発信されるネタバレ情報につい4+時制

0.76970.79870.7839て着目し, 実況ツイートを利用してネタバレ判別分類器を作成し, 実況ツイートの中にあるネタバレ情報を含んだツイート (以下「ネタバレツイート」と呼ぶ) の推定を試み, 提案手法の有効性を検証する.

2. 関 連 研 究

ユーザの属性 (応援しているチーム) に応じた試合の要約 [4] な
どといった Twitter の実況ツイートに関する研究も行われている. どちらもツイートが急激に増えた時間帯を利用して要約を生成している. このことからツイートが急激に増えたところで試合展開に変化があったと推定でき, ネタバレツイートが集中

ネタバレを遮断することを目的をした研究は過去にも幾つか行われている.
中村の研究 [1] は, ブラウザベースでフィルタリングを行いネ
タバレ情報を遮断する研究である. ネタバレ情報の抽出は, オ
ブジェクト名リストと正規表現辞書を利用している. オブジェ
クト名リストには, 主に固有名詞が入っておりチーム名及び選手名 (正式名称やニックネームなど) から構成されている. 正規
表現辞書には, スポーツ等の試合に関する汎用性の高い単語や英数字, オブジェクト名リストのオブジェクトをマッチさせる
正規表現が格納されている. このことからネタバレ情報の検出はルールベースによるもので比較的シンプルなものとなっている. 本研究では, ルールベースではなく機械学習により分類器を作成し, ネタバレツイートの推定を行う. 機械学習により作成した分類器の性能評価が本研究の目的である.
実況ツイートを利用した研究も幾つか行われている. Sungho

Jeon らの研究 [2] は, Twitter 上でネタバレ情報を検出するにあたって重要な 4 つの要素「頻出人名」「頻出動詞」「URL つきツイート」「ツイートの時制」を提唱し, これらの要素を元にSVM で機械学習したモデルを使い, 既存の機械学習モデルと比べた研究と比較した研究である. この研究ではデータセットとして, リアリティ番組 12 回分のツイート合計 176426 件を使用している. このツイートを手動でネタバレと非ネタバレのラベ
リングを行い, ネタバレと判断されたツイートは 5618 件であった. 結果は以下の表 1 の通りである. 結果を見ると, 動詞を追加したときと URL の有無を追加したときの F 値が大幅に良化している. これらはネタバレ検知において有効であることが言える. この研究と本研究は, 実況ツイートを用いて SVM で学習を行う点で共通している. 本研究では, スポーツやゲームに関する実況ツイートを対象にし, 対象言語は日本語である. 上記の 4 つの要素を元に SVM で機械学習した結果, F 値が良化したため, これらの要素はネタバレ検知で重要であると考えられる. しかし, この研究では英語のツイートのみを扱っているた
め, 日本語では別の要素が重要になる可能性がある. また, 日本すると考えられる. 本研究でも, ツイートがバーストしたこと
を分類器に学習させたいと考えている. ツイートの分速を計測
し, パラメータに加えることで分類器の良化を図る.
田島らの研究 [5] では, アニメやドラマといった TV 番組は地域間の放送時間差があるためネタバレを防ぐ必要があると主張している. スポーツでも録画放送やスポーツ番組等の映像で観たい人もいるため, それまでネタバレを防ぐ必要がある. この研究では, アニメやドラマの「勝敗」に関するネタバレ検出に「！
！
！
！
！」「ｗｗｗｗｗ」のような連続した文字を 1 文字に置換すると良い結果が得られた. 実況ツイートはこのような記述を使ったツイートが頻繁に現れるので, 正規化する手法は表記揺れを防ぐという意味で有効だと思われる. 本研究ではスポーツ
等の試合を扱う. スポーツはスコアや勝敗の結果がひと目でわ
かりやすいため, 勝敗に関するネタバレが大多数になると思われる. 本研究でも, 連続した記述を単一文字に変換し, 表記揺れをできるだけ防ぐことで分類器の良化に繋がると考えられる.
白鳥らの研究 [6] では, 実況ツイートを試合の結果やスコアがわかってしまう直接的ネタバレと, 試合の展開が読めてしまう, または試合で起きたことが予想できてしまう間接的なネタ
バレの 2 種類に人力で分けて, 双方の特徴や傾向を分析している. ネタバレとされたツイートを形態素解析を行い, 品詞別に傾向を示している. 本研究では, サポートベクトルマシンを用
いて分類器を作成しネタバレを分類する. 分類器が分類したツイートを解析し, その特徴を探る.

Samuel Brody らの研究 [7] は, マイクロブログにおいて単語内に同じ文字が連続しているものを利用して投稿者の強い感情を表す単語を抽出する研究である. 実況ツイートでは,「ホーーームラン！
！
！」「きたああああああああ」等といった書
き込みはよく見るので, 連続した文字を検知し, 元の言葉に直す必要がある. 本研究では, 連続した記述を単一文字に置換し, できるだけ元の言葉に近づけている. またこのような連続した記述の量をスコアリングし, 機械学習の際にパラメータとして加えている.

語には時制がないため, この研究のようにツイートの時制をパラメータに加えることができない. 言語上の違いにより結果が異なる可能性がある.
試合の内容が鮮明にわかるツイートをするユーザに着目し,そのユーザのツイートを用いて試合の要約を行う研究 [3] や,

3. 提 案 手 法
3. 1 概要

ネタバレツイートを分類するためのサポートベクトルマシン

(SVM) による分類器を作成し, 分類器を用いてネタバレツイー
トの推定を行う.

英文字の統一
英文字は全て半角小文字に統一する. 英文字の表記揺れを改

実況ツイートを検索し収集する. 実況ツイートをネタバレと善するための処理である.

非ネタバレに人力でラベリングを行う. 次に, 実況ツイートを日本語やその他文字の統一

形態素に分解し, Bag of Words モデルで単語ベクトルを作る.

数字, カタカナ, 感嘆符, 疑問符は全て全角大文字に統一する.

得られた単語ベクトルは高次元ベクトルであるため, 後述の次

英文字の時と同じく表記揺れを改善するための処理である.

元削減を行い, 簡略化する. そこに, 後述の追加要素をパラメー連続した記述の正規化

タとして加える. このようにベクトル化された実況ツイートを単語内に同じ文字が連続した記述を単一文字に置換する. こ

SVM で機械学習を行う. 得られた分類器は K 分割交差検証

れは [5] で提案されている手法である. 実況ツイートでは, 単語(K-fold cross-validation) を用いて評価を行う.

内, 単語の最後の文字の母音, 感嘆符, 「ｗ」を連続して記述す

3. 2 データセット

ることが非常に多い. これらを単一の表現にするため連続した2015 年 7 月に開催されたプロ野球オールスターゲーム第 2

記述について正規化を行う.

戦の Twitter 上の実況ツイートをハッシュタグ検索により, お

次に, 上記の前処理により変換されたツイートをベクトルによそ 5500 件を自分で収集し, データセットとして扱った. こ

変換する. 以下のような処理を行う.

れらを自分の手でネタバレと非ネタバレとにラベル付けを行っ

単語の出現頻度

た. ラベル付けの判断基準は, 得失点に関すること, 勝敗, スコ

単語の出現頻度が高すぎる単語と低すぎる単語は除去する.

ア速報, この試合に関係のあるニュース記事はネタバレ扱いと出現頻度が高すぎる単語はほとんどのツイートに現れる単語でした. チャンスを潰す, ヒットが出る, 凡退シーン, 誰が何をしあり, ツイート間の特徴の違いを表現できず, ネタバレと非ネ

たのかわからないツイート, 応援ツイート, 選手交代, 関係のな

タバレに分類する上で双方の特徴が出にくいと考えた. ここでいニュース記事やツイート等は非ネタバレとした. その結果,の出現頻度が高すぎる単語というのは, 主に検索に用いたハッネタバレと非ネタバレの比率は 1:10 であった. Yuxin Peng ら

シュタグのことである. ハッシュタグは収集したツイートすべの研究 [8] では, 不均衡データを SVM で学習させるとうまく 2てに付加されており, メインのハッシュタグは除去するべきでクラス分類できないので, データ数をサンプリングし各クラスある. 単語の出現頻度が低すぎる単語も出現頻度が高すぎる単同じ量になるようにする必要があると述べている. 本研究では,語と同じくツイート間の特徴の違いを表せないので, ネタバレ

非ネタバレ側のデータを全て教師用データまたは検証用データと非ネタバレに分類する上で双方の特徴が出にくいと考えた.

として扱いたいため, ネタバレ側のデータ数を 10 倍に増やして出現頻度が高すぎる単語と同じく除去した. 本研究では, 単語の実験を行った.

出現頻度が 1.0%以下, 80%以上の単語を除去することにする.

3. 3 ツイートのベクトル化
本研究では, SVM で分類器の作成を行うため, 各ツイートをこの処理で残った単語を特徴語として扱う. 後述の Bag ofWords ベクトル (BoW ベクトル) では, 残った特徴語の種類のベクトルに変換する必要がある. ツイートのテキストをベクト個数の次元ベクトルが生成される.

ル化するため, 後述の前処理を行った. テキストの前処理につBag of Words によるベクトル化

いては以下の通りである. 主に不要な文字列の削除と表記揺れ

テキスト中に存在する特徴語の頻度をカウントして, ベクトを改善するための処理を行っている.

ルを生成する.

不要文字の除去

次元の削減

URL やリプライ, 非公式リツイート, ハッシュタグの「#」はBag of Words モデルで単語ベクトルを作ると非常に高次元除去する. URL はツイートに付随する URL である. 「http://」のベクトル（注 2）が生成されてしまう. このままでは学習時間や「https://」から始まる文字列を正規表現で検索し, 除去する.

計算領域が多くなり, 高性能なマシンでしか分類器を作成でき

リプライとは, 他ユーザへの返信を表すもので, @から始まるない恐れがある. そこで, Latent Semantic Indexing(LSI)（注 3）

英数字のことである. @から始まる英数字で書かれた文字列を（注 4）

正規表現で検索し, 除去する.

128 次元の範囲に落として実験を行う.

非公式リツイートとは, 他のツイートを引用して自分のコメにより単語ベクトルの次元の削減を行う. 本研究では 1〜

追加要素

ントを載せる目的で使われるもので, 「(自分のコメント) RT

後述の URL の有無, ユーザの興奮度, ツイートの勢いの 3 つ@… (本文)」といった形で使われる. 「RT」の 2 文字は不要なのパラメータを, LSI により得られた単語ベクトルに追加する.

ので, 除去する.
ハッシュタグを用いるには, 頭に「#」をつけてツイートを行う. ハッシュタグの先頭についた「#」の 1 文字は不要なので除3. 4 追 加 要 素
上記のベクトルに以下の要素を追加し, SVM による機械学習
を行った.

去する.
品詞の原形を使用
名詞以外の品詞は全て原型に修正する. MeCab を用いて名詞以外の品詞の基本形を取得している.

（注 2）：本研究で使用した 3. 2 節のデータセットでは約 2100 次元の BoW ベ
クトルになる.
（注 3）：Latent Semantic Analysis(LSA) とも呼ばれている.
（注 4）：http://lsa.colorado.edu/

3. 4. 1 URL の有無
2. 節の [2] にもあるように, ニュースサイトのアカウントが発信する速報やユーザが読んだニュース記事のツイートには記事の URL が付随するため, ネタバレである可能性が高い. また, Twitter では, ツイートの付随した画像や動画も URL の外部リンクで表される. 番組のキャプチャ画像をツイートに付加
して実況するユーザも少数だが存在する. このように URL は
ネタバレ要素を含んでいるため, 分類器のパラメータとして付加する.

3. 4. 2 ユーザの興奮度
2. 節の [7] では, マイクロブログにおいて単語内に同じ文字が連続したものがあると述べている. 実況ツイートでも, 単語内に同じ文字が連続したものがよく見られる. このような文字を検知し, 連続した文字をカウントしたものをユーザの「興奮度」
として扱う. 例えば, 「タイムリーーー！
！
！」の連続した文字を
図 3 システムの概略図

単一に置換すると「タイムリー！」となる. このとき削除された文字数をカウントすると 4 となる. これをユーザの興奮度と3. 5 評 価 方 法

する.

3. 4. 3 ツイートの勢い

K 分割交差検証を用いて評価する. K 分割交差検証とは, デー

ある一定時間毎のツイート投稿頻度を計測したものである.

タセットを K 個に分割し, K-1 個を教師用データとして扱い,

計算式は以下の通りである. 本研究では 10 分毎に勢いを計測

残り 1 つを検証用データとして扱いモデルの正当性を検証するした.

ものである. データセットを K 個に分割し, 教師用データと検証用データを K-1：1 で機械学習するため, K 通りの組ができる. すべての組について機械学習し, 各評価指標の平均を取り,一定時間内のツイート数
ツイートの勢い =一定時間 (分)評価する. 本研究では, データセットを 10 個の組に分割し, 評

データセットの実況ツイートを時間毎のツイート数のグラフ

評価指標は, Accuracy(正答率), Precision(適合率), Recall(再にした結果が図 2 である.

価した.
現率), F1-score(F 値), Area Under the Curve(AUC) を使用
した.

4. 実 験 結 果
4. 1 LSI による次元の削減
LSI により単語ベクトルを 1〜128 次元に削減し, それぞれ機械学習を行った. ここでは, 追加要素は追加せず単語ベクトルのみを使って実験を行った. 追加要素は後述の実験で追加する.
結果は表 2 と図 4 に示した.

図 2 時間毎のツイート数と出来事

この図からツイートの勢いが上がったとき, 全体のツイート数が急激に増え, それと同時にネタバレツイートの数も急激に増加している. 勢いが上がると何かイベントが起きたと予想することができるので, ツイートの勢いを計測してパラメータとして加えると分類器を良くすることができるのではないかと考えた.

図 4 実験結果 (単語ベクトルのみ)

上記で説明した提案手法の概略図を図 3 に示す.
結果から, Accuracy では単語ベクトルが 32 次元以上だと良

表2

次元

Accuracy

実験結果 (単語ベクトルのみ)

AUC

Precision

Recallf1score1 0.571 (+/- 0.023) 0.593 (+/- 0.035) 0.596 (+/- 0.029) 0.572 (+/- 0.023) 0.543 (+/- 0.024)
2 0.572 (+/- 0.030) 0.573 (+/- 0.039) 0.595 (+/- 0.031) 0.574 (+/- 0.027) 0.547 (+/- 0.036)
4 0.589 (+/- 0.034) 0.581 (+/- 0.048) 0.609 (+/- 0.038) 0.591 (+/- 0.032) 0.571 (+/- 0.036)
8 0.600 (+/- 0.038) 0.610 (+/- 0.052) 0.622 (+/- 0.040) 0.601 (+/- 0.036) 0.583 (+/- 0.042)
16 0.595 (+/- 0.039) 0.649 (+/- 0.043) 0.627 (+/- 0.050) 0.597 (+/- 0.039) 0.570 (+/- 0.043)
32 0.639 (+/- 0.021) 0.688 (+/- 0.029) 0.661 (+/- 0.027) 0.640 (+/- 0.026) 0.626 (+/- 0.025)
64 0.633 (+/- 0.029) 0.706 (+/- 0.044) 0.701 (+/- 0.037) 0.635 (+/- 0.026) 0.601 (+/- 0.031)
128 0.631 (+/- 0.027) 0.726 (+/- 0.031) 0.698 (+/- 0.013) 0.633 (+/- 0.018) 0.598 (+/- 0.031)

い結果が得られた. 交差検証では 32 次元以上だとほぼ同じ値が得られているので, 32 次元頭打ちになっている. また標準偏差は 32 次元が一番小さいので Accuracy で見ると 32 次元が一番良いという結果が得られた.

AUC で見ると, 単語ベクトルの次元が増えるほど良くなる傾向になる結果が得られた. 標準偏差は Accuracy のときと同様に 32 次元が一番小さい.

F 値で見ると, 32 次元のとき一番大きい値が得られたが, それ以降は下降している. 標準偏差も 32 次元が一番小さく, F 値

図 6 実験結果 (+興奮度)

では 32 次元が一番良い結果が得られた.
総合的に見ると, 単語ベクトルを 32 次元に落としたときが一番良い結果が得られた.

1〜128 次元に落とした単語ベクトルにツイートの勢いの情

4. 2 URL の有無
1〜128 次元に落とした単語ベクトルに URL の有無の情報を追加して実験を行った. 結果は表 3 と図 5 に示した.
結果を見ると, 4. 1 節のときより全体的に数値が良化した. また, 傾向は 4. 1 節のときとほぼ変化はなく, 32 次元のときが一番良いという結果が得られた.

図5

4. 4 ツイートの勢い

実験結果 (+URL)

報を追加して実験を行った. 結果は表 5 と図 7 に示した.
結果から, 評価値が 4. 1 節のときより全体的に良化した. また, 4. 3 節と同じく 1〜16 次元の評価値を大きく引き上げている. Accuracy, AUC, F 値で 32 次元が一番大きい値を出しているので, 4. 1 節と 4. 2 節と同じく 32 次元が一番良いという結果になった.

図 7 実験結果 (+ツイートの勢い)

4. 3 ユーザの興奮度

4. 5 全ての追加要素

1〜128 次元に落とした単語ベクトルにユーザの興奮度の情

1〜128 次元に落とした単語ベクトルに全ての追加要素を追報を追加して実験を行った. 結果は表 4 と図 6 に示した.

加して実験を行った. 結果は表 6 と図 8 に示した.

結果を見ると, 4. 1 節と比べて 1〜16 次元の数値が良化した.

結果から, 全体的に評価値が 4. 1 節のときより良化した. 特

Accuracy と F 値では 8 次元, AUC では 32 次元が一番大きいに低次元での評価値が大きく良化した. これまでの結果とは違数値を出し, 4. 1 節と 4. 2 節とは違う傾向が得られた.

い低次元で一番大きい数値を出し, それ以降は下降する傾向に

興奮度には低次元ベクトルの評価値を大きく良化させる効果があることがわかる.

あることがわかった. ここでは, 4 次元が一番良い値が得られた.

表 3 実験結果 (+URL)

次元

Accuracy

AUC

Precision

Recallf1score1 0.605 (+/- 0.035) 0.628 (+/- 0.043) 0.626 (+/- 0.034) 0.606 (+/- 0.029) 0.588 (+/- 0.033)
2 0.602 (+/- 0.020) 0.590 (+/- 0.016) 0.630 (+/- 0.015) 0.603 (+/- 0.013) 0.581 (+/- 0.017)
4 0.618 (+/- 0.023) 0.633 (+/- 0.023) 0.638 (+/- 0.022) 0.619 (+/- 0.019) 0.604 (+/- 0.022)
8 0.621 (+/- 0.030) 0.640 (+/- 0.030) 0.638 (+/- 0.032) 0.622 (+/- 0.028) 0.610 (+/- 0.030)
16 0.620 (+/- 0.037) 0.663 (+/- 0.038) 0.644 (+/- 0.037) 0.621 (+/- 0.027) 0.605 (+/- 0.031)
32 0.652 (+/- 0.025) 0.697 (+/- 0.025) 0.668 (+/- 0.031) 0.653 (+/- 0.026) 0.645 (+/- 0.025)
64 0.649 (+/- 0.028) 0.715 (+/- 0.034) 0.695 (+/- 0.033) 0.651 (+/- 0.027) 0.628 (+/- 0.030)
128 0.646 (+/- 0.025) 0.733 (+/- 0.026) 0.694 (+/- 0.023) 0.648 (+/- 0.015) 0.624 (+/- 0.022)

次元

Accuracy

表4

実験結果 (+興奮度)

AUC

Precision

Recallf1score1 0.676 (+/- 0.029) 0.728 (+/- 0.023) 0.684 (+/- 0.029) 0.677 (+/- 0.030) 0.673 (+/- 0.031)
2 0.665 (+/- 0.034) 0.701 (+/- 0.029) 0.666 (+/- 0.035) 0.665 (+/- 0.034) 0.664 (+/- 0.034)
4 0.684 (+/- 0.030) 0.711 (+/- 0.043) 0.687 (+/- 0.030) 0.684 (+/- 0.030) 0.683 (+/- 0.030)
8 0.687 (+/- 0.027) 0.714 (+/- 0.038) 0.689 (+/- 0.029) 0.687 (+/- 0.028) 0.686 (+/- 0.027)
16 0.676 (+/- 0.029) 0.728 (+/- 0.023) 0.684 (+/- 0.029) 0.677 (+/- 0.030) 0.673 (+/- 0.031)
32 0.664 (+/- 0.026) 0.740 (+/- 0.032) 0.680 (+/- 0.032) 0.665 (+/- 0.027) 0.656 (+/- 0.025)
64 0.660 (+/- 0.019) 0.726 (+/- 0.011) 0.688 (+/- 0.023) 0.662 (+/- 0.018) 0.648 (+/- 0.021)
128 0.644 (+/- 0.033) 0.723 (+/- 0.028) 0.684 (+/- 0.030) 0.646 (+/- 0.027) 0.625 (+/- 0.036)
表 5 実験結果 (+勢い)次元

Accuracy

AUC

Precision

Recallf1score1 0.642 (+/- 0.028) 0.692 (+/- 0.023) 0.648 (+/- 0.026) 0.642 (+/- 0.026) 0.638 (+/- 0.028)
2 0.651 (+/- 0.033) 0.702 (+/- 0.036) 0.651 (+/- 0.034) 0.651 (+/- 0.034) 0.651 (+/- 0.034)
4 0.668 (+/- 0.034) 0.723 (+/- 0.046) 0.668 (+/- 0.034) 0.668 (+/- 0.033) 0.668 (+/- 0.034)
8 0.675 (+/- 0.030) 0.731 (+/- 0.031) 0.676 (+/- 0.030) 0.675 (+/- 0.029) 0.674 (+/- 0.029)
16 0.669 (+/- 0.022) 0.731 (+/- 0.023) 0.673 (+/- 0.022) 0.668 (+/- 0.021) 0.666 (+/- 0.021)
32 0.679 (+/- 0.033) 0.751 (+/- 0.037) 0.684 (+/- 0.032) 0.678 (+/- 0.032) 0.676 (+/- 0.034)
64 0.673 (+/- 0.032) 0.751 (+/- 0.038) 0.674 (+/- 0.032) 0.674 (+/- 0.032) 0.673 (+/- 0.032)
128 0.653 (+/- 0.024) 0.727 (+/- 0.021) 0.653 (+/- 0.024) 0.653 (+/- 0.024) 0.652 (+/- 0.024)
表 6 実験結果 (+all)

次元

Accuracy

AUC

Precision

Recallf1score1 0.723 (+/- 0.030) 0.793 (+/- 0.028) 0.728 (+/- 0.030) 0.723 (+/- 0.030) 0.722 (+/- 0.030)
2 0.738 (+/- 0.028) 0.809 (+/- 0.028) 0.739 (+/- 0.028) 0.738 (+/- 0.029) 0.738 (+/- 0.029)
4 0.742 (+/- 0.025) 0.813 (+/- 0.030) 0.743 (+/- 0.027) 0.742 (+/- 0.026) 0.742 (+/- 0.025)
8 0.736 (+/- 0.035) 0.809 (+/- 0.027) 0.738 (+/- 0.034) 0.736 (+/- 0.036) 0.735 (+/- 0.036)
16 0.718 (+/- 0.040) 0.797 (+/- 0.032) 0.724 (+/- 0.038) 0.718 (+/- 0.039) 0.716 (+/- 0.040)
32 0.705 (+/- 0.030) 0.789 (+/- 0.033) 0.706 (+/- 0.029) 0.705 (+/- 0.029) 0.704 (+/- 0.030)
64 0.692 (+/- 0.025) 0.775 (+/- 0.016) 0.692 (+/- 0.025) 0.692 (+/- 0.026) 0.692 (+/- 0.025)
128 0.673 (+/- 0.023) 0.747 (+/- 0.025) 0.673 (+/- 0.024) 0.674 (+/- 0.023) 0.673 (+/- 0.024)

5. 考

察

5. 1 LSI による単語ベクトルの削減

研究では LSI により単語ベクトルをある次元まで落として単語ベクトルを作成した.

1〜128 次元で実験したところ, 次元を落とせば評価値が下がBoW モデルでツイートをベクトル化したものを, そのまま機ることがわかった. ネタバレと非ネタバレを分類する上で必要械学習するには高性能なマシンを用いる必要がある. そこで本な情報が次元を落とすごとに失われているということがわかレの分類に有効であることがわかる.
ツイートの勢いが高くなると試合の展開に何か変化があり,今起きている状況を伝えようとするツイートが増えるため, ネ
タバレツイートが増える. このようなツイートを検知するためにツイートの勢いは必要である.
ユーザの興奮度と組み合わせることで低次元ベクトルでも高い評価値を得ることができた. 試合の展開に何か変化があった
図8

実験結果 (+all)

る. テキストのみでは次元が大きいほど良い結果が得ることができる.

5. 2 関連研究 [2] との比較
表 1 の全ての要素を追加したときの F 値と表 6 の 4 次元のF 値を比較すると, 0.04 ほど本研究で作成した分類器が下回った. 対象言語と対象にした話題が違うが, 重要な追加要素を与えれば F 値を 0.7 台まで引き上げることができ, 分類器の性能向上が可能だということがわかった.

5. 3 URL の有無
URL の有無の情報を付加して学習すると 1〜128 次元全てで各評価値が良化した. 2. 節にもある通り URL のついたツイー
トはネタバレの可能性が高い. 2. 節と結果から日本語でも英語でも URL 付きツイートはネタバレである可能性が高く, 危険であることがわかる.
ニュース記事は試合で何か起きてから記事が作られ, ユーザ
がその記事を読むときには試合で起きたイベントよりかなり時間が経過しているので, ツイートの勢いの情報ではニュース記事に関するツイートは検知しづらい. また, ニュース記事サイトのアカウントが投稿するツイートでは「ｗｗｗｗｗ」や「！
！
！
！
！」と言った同じ文字が連続した記述は使われない. また,ユーザがニュース記事に関するツイートをするときは字数制限から同じ文字が連続した記述が使われることは少ない. このため, ユーザの興奮度ではニュース記事に関するツイートは検知しづらい. ニュース記事に関するツイートを検知するためには

URL の有無で検知するのが最適であると考えられる.
5. 4 ユーザの興奮度
ユーザの興奮度の情報を付加して学習すると, 全体的に評価値が良化し, 特に低次元での評価値が大きく良化した. ユーザの興奮度はネタバレと非ネタバレの分類に有効であることがわ
かる.
同じ文字が連続した記述が使われるツイートは使われてる単語や品詞の種類が非常に少ない. 例えば, 「(選手名) ホームラ
ンｗｗｗｗｗｗ」や「(選手名) サヨナラタイムリーきたあああ
あああ！
！
！
！
！」というようなツイートである. ツイートテキストの情報量が元々非常に少ないため, 低次元に落とした単語ベク
トルでもうまく分類できたのではないかと考えられる.

5. 5 ツイートの勢い
ツイートの勢いの情報を付加して学習すると, ユーザの興奮度のときと同じく, 全体的に評価値が良化し, 特に低次元での評価値が大きく良化した. ツイートの勢いはネタバレと非ネタバ

ときはツイートに使われる単語の数が少なく, ユーザの興奮度が高いツイートが多いためだったと思われる. なぜ, このようなツイートが多くなるのかというと, 今起きていることをユー
ザがより素早く他ユーザへ伝えようとするためではないかと考えられる. そのため, 「(選手名)(名詞)｛例：新井ホームラン｝」「(選手名)(名詞)(動詞)｛例：新井ホームランきた｝」のような単語数が少ないツイートに入力が簡単な「ｗｗｗｗｗ」や「！
！
！
！
！」と言った同じ文字が連続した記述が付加した, ある種の定型文のようなツイートが多くなる. なので, ツイートの勢いとユー
ザの興奮度を組み合わせると低次元ベクトルでうまく分類できたのではないかと考えた. 今後はさらにツイートの勢いやユー
ザの興奮度, 単語との共起関係を詳しく調べる必要がある.

5. 6 分類器の誤判定の解析
5. 6. 1 ネタバレを非ネタバレと誤答した場合作成した分類器がネタバレを非ネタバレと誤答した例として
スコア速報が挙げられる. 野球のスコア速報は「セ 0-0 パ」,「セ 0 (1 表) 0 パ」等, いろいろな表現がある. チーム名も「パ」,「全パ」, 「パリーグ」等といろいろな表現ができる. なので,表記揺れが激しいため, 正しく検知できなかったとのではないかと推察される. ネタバレと推定できたスコア速報に関する例もあるので, 改善するには何らかの手法で表現を統一する必要があると思われる.
他にも, 「新井タイムリー！」のように端的に試合展開を説明したツイートも非ネタバレと誤答したことがあった. ユーザの興奮度をネタバレ分類のためのパラメータとして加えたため,「追加点きたああああああ」や「新井タイムリー！
！
！
！
！１１１１
１」のようなツイートをネタバレと判断することができたが,逆に端的表されたツイートをネタバレとして判別できなかったものと思われる.

5. 6. 2 非ネタバレをネタバレと誤答した場合作成した分類器が非ネタバレをネタバレと誤答した例として,
選手の応援, 選手への賞賛または罵倒, 今後の試合展開の予想
または願望等が挙げられる. また, 選手のファインプレー, ヒッ
ト, 凡退, 盗塁等の得失点に関わらない出来事はネタバレとして私は扱わなかったが, 分類器はネタバレとして判断した. 非ネ
タバレをネタバレと誤答したものの中には, ネタバレ扱いにしても良いツイートがいくつか存在する. 人によってネタバレと非ネタバレの境界は曖昧なため, このような誤答はあっても良い. ツイートにネタバレ度を表すスコアをつけることができれば, 人によって曖昧なネタバレの境界を移動させることができ,
このような誤答をネタバレと判断したり, 非ネタバレと判断したりすることができるのではないかと考えられる.

6. ま と め
提案手法を用いて作成した分類器から得られた分類結果を取得し, Accuracy, AUC(Area Under the Curve), Precision,

Recall, F 値の評価値を算出し, 分類器の性能評価を行った. 結果として URL の有無, ユーザの興奮度, ツイートの勢いはネタ
バレ分類において有効であり, 実況ツイートを利用してネタバ
レ分類器が作成可能であることを示した. また, この 3 つの要素を追加することで単語ベクトルを低次元にしたときでも分類できることがわかった. しかし, スコアやチーム名, 選手名等の表記揺れに対応できなかったり, ネタバレと非ネタバレの誤認識などがあるので改善点がある.
今後の課題として, 表記揺れの激しい言葉を何らかの手法で対応する必要がある. まずチーム名やスコアに関する表現を統一し検証したいと考えている. また, 本研究で追加した 3 つの要
素の他にも有効なパラメータが存在するか模索する必要がある.
今回はプロ野球の試合を対象にしたが, 他のスポーツでもツイートの勢いやユーザの興奮度といったパラメータは良い影響を与えるのか試す必要がある. 対象とするスポーツを増やし, ネ
タバレ判別においてスポーツごとの相違点を明らかにしていく必要がある. 今後は別のスポーツで取り組みネタバレの推定を行う予定である.
実際のタイムラインに偶発的に現れるネタバレツイートを除去することが最終的な目標である. 実況ツイートに含まれたネ
タバレツイートはおおよそ特定できたが, 様々な話題が混在したタイムラインである話題のネタバレツイートを特定できるか検証するべきである. 今後は作成した分類器を実際のユーザのタイムラインに適用し, ネタバレが除去できるか検証する予定
である.

文

献

[1] 中村聡史. ネタバレ防止ブラウザの実現. WISS2010, 41-46,
2010.
[2] Sungho Jeon, Sungchul Kim, and Hwanjo Yu. Don’t Be
Spoiled by Your Friends: Spoiler Detection in TV Program Tweets. Seventh International AAAI Conference on
Weblogs and Social Media, 2013.
[3] 久保光証, 笹野遼平, 高村大也, 奥村学. “良い実況者” に着目した Twitter からのスポーツ速報生成. 言語処理学会 第 19 回年次大会 発表論文集, 138-141, 2013.
[4] 小林尊志, 野田雅文, 出口大輔, 高橋友和, 井手一郎, 村瀬洋.
Twitter の実況書き込みを利用したスポーツ映像の要約. 電子情報通信学会技術研究報告. MVE, マルチメディア・仮想環境基礎
110(457), 165-169, 2011.
[5] 田島一樹, 中村聡史. ストーリーコンテンツに対するネタバレの基礎調査とその判定手法の検討. 第 96 回グループウェアとネッ
トワークサービス研究会 (GN), 2015.
[6] 白鳥裕士, 中村聡史. SNS 上でのサッカーの試合に対する直接的・間接的ネタバレの分析. 第 96 回グループウェアとネットワー
クサービス研究会 (GN), 2015.
[7] Samuel Brody, Nicholas Diakopoulos. Cooooooooooooooollllllllllllll!!!!!!!!!!!!!!: using word lengthening to detect sentiment in microblogs. Proceedings of the 2011 Conference on
Empirical Methods in Natural Language Processing, 562-

570, 2011.
[8] Yuxin Peng, Jia Yao. AdaOUBoost: adaptive over-sampling
and under-sampling to boost the concept learning in large
scale imbalanced data sets. Proceedings of the international
conference on Multimedia information retrieval. ACM,
2010.