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

8
DEIM Forum 2016 C5-1 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み 齊藤 寺田 電気通信大学大学院 情報理工学研究科 情報・通信工学専攻 コンピュータサイエンスコース 182-8585 東京都調布市調布ヶ丘 1-5-1 E-mail: [email protected] , ††[email protected] あらまし Twitter の自分のタイムラインに現れるスポーツ等の試合状況・結果がわかるネタバレツイートを除去し, ユーザにネタバレを見せないようにしたい. ネタバレと非ネタバレを分類するために, Twitter 上の実況ツイートに着 目した. これにはネタバレなツイートと非ネタバレなツイートが混在している. 実況ツイートを利用してネタバレ推定 の分類器を作成し, ネタバレなツイートの推定ができないか考えた. 提案手法では, 実況ツイートを収集し, ネタバレ か非ネタバレかのラベルをつける. 実況ツイートを Bag of Words モデルでベクトル化し, Latent Semantic Indexing によって次元削減を行う. ベクトル化したツイートをサポートベクトルマシンによる機械学習を行い, 分類器を作成す . 本報告では, 提案手法によって実況ツイートをもとに作成した分類器でネタバレツイートを特定できるか検証する. また, ツイートの投稿頻度やユーザの興奮度を特徴に加えたとき, 分類器に変化があるか検証する. 実験では, Twitter 上のプロ野球に関する実況ツイートを使用し, ネタバレツイートの推定を試み, 提案手法の有効性を検証した. キーワード Twitter, サポートベクトルマシン, ネタバレ. 1. はじめに SNS は他ユーザとの交流や今話題の情報を入手するために日 夜利用されている. 利用者は非常に多く, 現代人にとって SNS 欠かせないものとなっている. その中でも Twitter (注1, ユー ザが親しい他ユーザをフォローすることで他ユーザとコミュニ ケーションを図ったり, 自分の興味のある情報を積極的に発信 するユーザをフォローすることで興味のある情報を入手しやす くする等といった使い方が一般的である. また, Twitter は即時 性・速報性が高く, 今流行りの話題や情報を直ちに入手するこ とができる. しかし, 興味のある情報だからといって必ずしも今必要な情 報とは限らない. 例えば, 楽しみにしていたコンテンツの結果 を知ってしまう「ネタバレ」が挙げられる. ネタバレ情報は結 果やそれに至る過程を知ってしまうとそのコンテンツの面白さ を減衰させてしまうことがあり, これからそのコンテンツを楽 しむユーザにとって大きなストレスとなりうる. また, Twitter を利用するユーザの増加により, 情報が氾濫 , ネタバレ情報が目に入りやすい環境になっている. 特に, ポーツ等の試合経過・結果や将棋, 囲碁などのゲームの対戦経 過・結果は, 多くの人にとってその速報性が重要であるので, 式サイトやニュースサイトでも積極的に発信されている. そし , ユーザもその経過や結果から様々な感想や考察等を発信す るので, 積極的にネタバレ情報が発信されている. ユーザが今放送している番組についてツイートする「実況」 というものがある. Twitter では, 番組に関連するハッシュタ グをツイートに付加して「実況」を行うのが一般的である. (注1):https://twitter.com/ のような番組に関連するハッシュタグを付加してリアルタイム に投稿されたツイート (1) を「実況ツイート」と呼ぶ. 況ツイートは, 放送中に起こったこと, 放送を視聴してユーザ 自身が思ったこと考えたこと等がほとんどである. 中には放送 中のキャプチャ画像やニュース記事等を付加したツイートも存 在する. このようにネタバレになりうるツイートが存在するた , 後続の放送で楽しむユーザは番組に関連するハッシュタグ をミュートにすることである程度ネタバレを防ぐことができる. しかし, 中にはハッシュタグを付けずに実況する人もいるため, 完全にネタバレを防ぐことはできない. 1 ハッシュタグを用いた実況ツイートの例 そこで本研究では, 実況ツイートに着目した. 前述の通り実 況ツイートにはその話題のネタバレなツイートと非ネタバレな

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

Page 1: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

DEIM Forum 2016 C5-1

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

齊藤 令† 寺田 実†

† 電気通信大学大学院 情報理工学研究科 情報・通信工学専攻 コンピュータサイエンスコース〒 182-8585 東京都調布市調布ヶ丘 1-5-1

E-mail: †[email protected] , ††[email protected]

あらまし Twitterの自分のタイムラインに現れるスポーツ等の試合状況・結果がわかるネタバレツイートを除去し,

ユーザにネタバレを見せないようにしたい. ネタバレと非ネタバレを分類するために, Twitter上の実況ツイートに着

目した. これにはネタバレなツイートと非ネタバレなツイートが混在している. 実況ツイートを利用してネタバレ推定

の分類器を作成し, ネタバレなツイートの推定ができないか考えた. 提案手法では, 実況ツイートを収集し, ネタバレ

か非ネタバレかのラベルをつける. 実況ツイートを Bag of Wordsモデルでベクトル化し, Latent Semantic Indexing

によって次元削減を行う. ベクトル化したツイートをサポートベクトルマシンによる機械学習を行い, 分類器を作成す

る. 本報告では, 提案手法によって実況ツイートをもとに作成した分類器でネタバレツイートを特定できるか検証する.

また, ツイートの投稿頻度やユーザの興奮度を特徴に加えたとき, 分類器に変化があるか検証する. 実験では, Twitter

上のプロ野球に関する実況ツイートを使用し, ネタバレツイートの推定を試み, 提案手法の有効性を検証した.

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

1. は じ め に

SNSは他ユーザとの交流や今話題の情報を入手するために日

夜利用されている. 利用者は非常に多く,現代人にとって SNSは

欠かせないものとなっている. その中でも Twitter(注1)は, ユー

ザが親しい他ユーザをフォローすることで他ユーザとコミュニ

ケーションを図ったり, 自分の興味のある情報を積極的に発信

するユーザをフォローすることで興味のある情報を入手しやす

くする等といった使い方が一般的である. また, Twitterは即時

性・速報性が高く, 今流行りの話題や情報を直ちに入手するこ

とができる.

しかし, 興味のある情報だからといって必ずしも今必要な情

報とは限らない. 例えば, 楽しみにしていたコンテンツの結果

を知ってしまう「ネタバレ」が挙げられる. ネタバレ情報は結

果やそれに至る過程を知ってしまうとそのコンテンツの面白さ

を減衰させてしまうことがあり, これからそのコンテンツを楽

しむユーザにとって大きなストレスとなりうる.

また, Twitter を利用するユーザの増加により, 情報が氾濫

し, ネタバレ情報が目に入りやすい環境になっている. 特に, ス

ポーツ等の試合経過・結果や将棋, 囲碁などのゲームの対戦経

過・結果は, 多くの人にとってその速報性が重要であるので, 公

式サイトやニュースサイトでも積極的に発信されている. そし

て, ユーザもその経過や結果から様々な感想や考察等を発信す

るので, 積極的にネタバレ情報が発信されている.

ユーザが今放送している番組についてツイートする「実況」

というものがある. Twitter では, 番組に関連するハッシュタ

グをツイートに付加して「実況」を行うのが一般的である. こ

(注1):https://twitter.com/

のような番組に関連するハッシュタグを付加してリアルタイム

に投稿されたツイート (図 1) を「実況ツイート」と呼ぶ. 実

況ツイートは, 放送中に起こったこと, 放送を視聴してユーザ

自身が思ったこと考えたこと等がほとんどである. 中には放送

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

在する. このようにネタバレになりうるツイートが存在するた

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

をミュートにすることである程度ネタバレを防ぐことができる.

しかし, 中にはハッシュタグを付けずに実況する人もいるため,

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

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

そこで本研究では, 実況ツイートに着目した. 前述の通り実

況ツイートにはその話題のネタバレなツイートと非ネタバレな

Page 2: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

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

成すれば, 放送外のコンテンツに関係したツイートやハッシュ

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

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

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

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

て着目し, 実況ツイートを利用してネタバレ判別分類器を作成

し, 実況ツイートの中にあるネタバレ情報を含んだツイート (以

下「ネタバレツイート」と呼ぶ)の推定を試み, 提案手法の有効

性を検証する.

2. 関 連 研 究

ネタバレを遮断することを目的をした研究は過去にも幾つか

行われている.

中村の研究 [1]は, ブラウザベースでフィルタリングを行いネ

タバレ情報を遮断する研究である. ネタバレ情報の抽出は, オ

ブジェクト名リストと正規表現辞書を利用している. オブジェ

クト名リストには, 主に固有名詞が入っておりチーム名及び選

手名 (正式名称やニックネームなど)から構成されている. 正規

表現辞書には, スポーツ等の試合に関する汎用性の高い単語や

英数字, オブジェクト名リストのオブジェクトをマッチさせる

正規表現が格納されている. このことからネタバレ情報の検出

はルールベースによるもので比較的シンプルなものとなってい

る. 本研究では, ルールベースではなく機械学習により分類器

を作成し, ネタバレツイートの推定を行う. 機械学習により作

成した分類器の性能評価が本研究の目的である.

実況ツイートを利用した研究も幾つか行われている. Sungho

Jeon らの研究 [2] は, Twitter 上でネタバレ情報を検出するに

あたって重要な 4つの要素「頻出人名」「頻出動詞」「URLつ

きツイート」「ツイートの時制」を提唱し, これらの要素を元に

SVMで機械学習したモデルを使い, 既存の機械学習モデルと比

べた研究と比較した研究である. この研究ではデータセットと

して, リアリティ番組 12回分のツイート合計 176426件を使用

している. このツイートを手動でネタバレと非ネタバレのラベ

リングを行い, ネタバレと判断されたツイートは 5618件であっ

た. 結果は以下の表 1の通りである. 結果を見ると, 動詞を追加

したときと URLの有無を追加したときの F値が大幅に良化し

ている. これらはネタバレ検知において有効であることが言え

る. この研究と本研究は, 実況ツイートを用いて SVM で学習

を行う点で共通している. 本研究では, スポーツやゲームに関

する実況ツイートを対象にし, 対象言語は日本語である. 上記

の 4つの要素を元に SVMで機械学習した結果, F値が良化し

たため, これらの要素はネタバレ検知で重要であると考えられ

る. しかし, この研究では英語のツイートのみを扱っているた

め, 日本語では別の要素が重要になる可能性がある. また, 日本

語には時制がないため, この研究のようにツイートの時制をパ

ラメータに加えることができない. 言語上の違いにより結果が

異なる可能性がある.

試合の内容が鮮明にわかるツイートをするユーザに着目し,

そのユーザのツイートを用いて試合の要約を行う研究 [3] や,

表 1 関連研究 [2] の結果

Step Entered feature Recall Precision F-score

1 頻出名詞 0.3084 0.8291 0.4496

2 +動詞 0.5653 0.8611 0.6826

3 +URL 0.7699 0.7957 0.7825

4 +時制 0.7697 0.7987 0.7839

ユーザの属性 (応援しているチーム)に応じた試合の要約 [4]な

どといった Twitterの実況ツイートに関する研究も行われてい

る. どちらもツイートが急激に増えた時間帯を利用して要約を

生成している. このことからツイートが急激に増えたところで

試合展開に変化があったと推定でき, ネタバレツイートが集中

すると考えられる. 本研究でも, ツイートがバーストしたこと

を分類器に学習させたいと考えている. ツイートの分速を計測

し, パラメータに加えることで分類器の良化を図る.

田島らの研究 [5]では, アニメやドラマといった TV番組は地

域間の放送時間差があるためネタバレを防ぐ必要があると主張

している. スポーツでも録画放送やスポーツ番組等の映像で観

たい人もいるため, それまでネタバレを防ぐ必要がある. この

研究では, アニメやドラマの「勝敗」に関するネタバレ検出に

「!!!!!」「wwwww」のような連続した文字を 1文字に置換

すると良い結果が得られた. 実況ツイートはこのような記述を

使ったツイートが頻繁に現れるので, 正規化する手法は表記揺

れを防ぐという意味で有効だと思われる. 本研究ではスポーツ

等の試合を扱う. スポーツはスコアや勝敗の結果がひと目でわ

かりやすいため, 勝敗に関するネタバレが大多数になると思わ

れる. 本研究でも, 連続した記述を単一文字に変換し, 表記揺れ

をできるだけ防ぐことで分類器の良化に繋がると考えられる.

白鳥らの研究 [6] では, 実況ツイートを試合の結果やスコア

がわかってしまう直接的ネタバレと, 試合の展開が読めてしま

う,または試合で起きたことが予想できてしまう間接的なネタ

バレの 2種類に人力で分けて, 双方の特徴や傾向を分析してい

る. ネタバレとされたツイートを形態素解析を行い, 品詞別に

傾向を示している. 本研究では, サポートベクトルマシンを用

いて分類器を作成しネタバレを分類する. 分類器が分類したツ

イートを解析し, その特徴を探る.

Samuel Brody らの研究 [7] は, マイクロブログにおいて単

語内に同じ文字が連続しているものを利用して投稿者の強い

感情を表す単語を抽出する研究である. 実況ツイートでは,

「ホーーームラン!!!」「きたああああああああ」等といった書

き込みはよく見るので, 連続した文字を検知し, 元の言葉に直す

必要がある. 本研究では, 連続した記述を単一文字に置換し, で

きるだけ元の言葉に近づけている. またこのような連続した記

述の量をスコアリングし, 機械学習の際にパラメータとして加

えている.

3. 提 案 手 法

3. 1 概 要

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

Page 3: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

(SVM)による分類器を作成し, 分類器を用いてネタバレツイー

トの推定を行う.

実況ツイートを検索し収集する. 実況ツイートをネタバレと

非ネタバレに人力でラベリングを行う. 次に, 実況ツイートを

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

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

元削減を行い, 簡略化する. そこに, 後述の追加要素をパラメー

タとして加える. このようにベクトル化された実況ツイートを

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

(K-fold cross-validation)を用いて評価を行う.

3. 2 データセット

2015 年 7 月に開催されたプロ野球オールスターゲーム第 2

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

よそ 5500 件を自分で収集し, データセットとして扱った. こ

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

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

ア速報, この試合に関係のあるニュース記事はネタバレ扱いと

した. チャンスを潰す, ヒットが出る, 凡退シーン, 誰が何をし

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

いニュース記事やツイート等は非ネタバレとした. その結果,

ネタバレと非ネタバレの比率は 1:10であった. Yuxin Pengら

の研究 [8]では, 不均衡データを SVMで学習させるとうまく 2

クラス分類できないので, データ数をサンプリングし各クラス

同じ量になるようにする必要があると述べている. 本研究では,

非ネタバレ側のデータを全て教師用データまたは検証用データ

として扱いたいため, ネタバレ側のデータ数を 10倍に増やして

実験を行った.

3. 3 ツイートのベクトル化

本研究では, SVMで分類器の作成を行うため, 各ツイートを

ベクトルに変換する必要がある. ツイートのテキストをベクト

ル化するため, 後述の前処理を行った. テキストの前処理につ

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

を改善するための処理を行っている.

不要文字の除去

 URLやリプライ, 非公式リツイート, ハッシュタグの「#」は

除去する. URLはツイートに付随するURLである. 「http://」

「https://」から始まる文字列を正規表現で検索し, 除去する.

リプライとは, 他ユーザへの返信を表すもので, @から始まる

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

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

非公式リツイートとは, 他のツイートを引用して自分のコメ

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

@… (本文)」といった形で使われる. 「RT」の 2文字は不要な

ので, 除去する.

ハッシュタグを用いるには, 頭に「#」をつけてツイートを行

う. ハッシュタグの先頭についた「#」の 1文字は不要なので除

去する.

品詞の原形を使用

 名詞以外の品詞は全て原型に修正する. MeCab を用いて名

詞以外の品詞の基本形を取得している.

英文字の統一

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

善するための処理である.

日本語やその他文字の統一

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

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

連続した記述の正規化

 単語内に同じ文字が連続した記述を単一文字に置換する. こ

れは [5]で提案されている手法である. 実況ツイートでは, 単語

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

ることが非常に多い. これらを単一の表現にするため連続した

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

次に, 上記の前処理により変換されたツイートをベクトルに

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

単語の出現頻度

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

出現頻度が高すぎる単語はほとんどのツイートに現れる単語で

あり, ツイート間の特徴の違いを表現できず, ネタバレと非ネ

タバレに分類する上で双方の特徴が出にくいと考えた. ここで

の出現頻度が高すぎる単語というのは, 主に検索に用いたハッ

シュタグのことである. ハッシュタグは収集したツイートすべ

てに付加されており, メインのハッシュタグは除去するべきで

ある. 単語の出現頻度が低すぎる単語も出現頻度が高すぎる単

語と同じくツイート間の特徴の違いを表せないので, ネタバレ

と非ネタバレに分類する上で双方の特徴が出にくいと考えた.

出現頻度が高すぎる単語と同じく除去した. 本研究では, 単語の

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

この処理で残った単語を特徴語として扱う. 後述の Bag of

Wordsベクトル (BoWベクトル)では, 残った特徴語の種類の

個数の次元ベクトルが生成される.

Bag of Wordsによるベクトル化

 テキスト中に存在する特徴語の頻度をカウントして, ベクト

ルを生成する.

次元の削減

  Bag of Wordsモデルで単語ベクトルを作ると非常に高次元

のベクトル(注2)が生成されてしまう. このままでは学習時間や

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

ない恐れがある. そこで, Latent Semantic Indexing(LSI)(注3)

(注4)により単語ベクトルの次元の削減を行う. 本研究では 1~

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

追加要素

 後述の URLの有無, ユーザの興奮度, ツイートの勢いの 3つ

のパラメータを, LSIにより得られた単語ベクトルに追加する.

3. 4 追 加 要 素

上記のベクトルに以下の要素を追加し, SVMによる機械学習

を行った.

(注2):本研究で使用した 3. 2 節のデータセットでは約 2100 次元の BoW ベ

クトルになる.

(注3):Latent Semantic Analysis(LSA) とも呼ばれている.

(注4):http://lsa.colorado.edu/

Page 4: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

3. 4. 1 URLの有無

2. 節の [2] にもあるように, ニュースサイトのアカウントが

発信する速報やユーザが読んだニュース記事のツイートには記

事の URL が付随するため, ネタバレである可能性が高い. ま

た, Twitterでは, ツイートの付随した画像や動画も URLの外

部リンクで表される. 番組のキャプチャ画像をツイートに付加

して実況するユーザも少数だが存在する. このように URLは

ネタバレ要素を含んでいるため, 分類器のパラメータとして付

加する.

3. 4. 2 ユーザの興奮度

2.節の [7]では, マイクロブログにおいて単語内に同じ文字が

連続したものがあると述べている. 実況ツイートでも, 単語内

に同じ文字が連続したものがよく見られる. このような文字を

検知し, 連続した文字をカウントしたものをユーザの「興奮度」

として扱う. 例えば, 「タイムリーーー!!!」の連続した文字を

単一に置換すると「タイムリー!」となる. このとき削除され

た文字数をカウントすると 4となる. これをユーザの興奮度と

する.

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

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

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

した.

ツイートの勢い =一定時間内のツイート数

一定時間 (分)

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

にした結果が図 2である.

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

この図からツイートの勢いが上がったとき, 全体のツイート

数が急激に増え, それと同時にネタバレツイートの数も急激に

増加している. 勢いが上がると何かイベントが起きたと予想す

ることができるので, ツイートの勢いを計測してパラメータと

して加えると分類器を良くすることができるのではないかと考

えた.

上記で説明した提案手法の概略図を図 3に示す.

図 3 システムの概略図

3. 5 評 価 方 法

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

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

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

ものである. データセットを K個に分割し, 教師用データと検

証用データを K-1:1で機械学習するため, K通りの組ができ

る. すべての組について機械学習し, 各評価指標の平均を取り,

評価する. 本研究では, データセットを 10個の組に分割し, 評

価した.

評価指標は, Accuracy(正答率), Precision(適合率), Recall(再

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

した.

4. 実 験 結 果

4. 1 LSIによる次元の削減

LSIにより単語ベクトルを 1~128次元に削減し, それぞれ機

械学習を行った. ここでは, 追加要素は追加せず単語ベクトル

のみを使って実験を行った. 追加要素は後述の実験で追加する.

結果は表 2と図 4に示した.

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

結果から, Accuracyでは単語ベクトルが 32次元以上だと良

Page 5: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

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

次元 Accuracy AUC Precision Recall f1score

1 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値

では 32次元が一番良い結果が得られた.

総合的に見ると, 単語ベクトルを 32次元に落としたときが一

番良い結果が得られた.

4. 2 URLの有無

1~128次元に落とした単語ベクトルに URLの有無の情報を

追加して実験を行った. 結果は表 3と図 5に示した.

結果を見ると, 4. 1節のときより全体的に数値が良化した. ま

た, 傾向は 4. 1節のときとほぼ変化はなく, 32次元のときが一

番良いという結果が得られた.

図 5 実験結果 (+URL)

4. 3 ユーザの興奮度

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

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

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

Accuracyと F値では 8次元, AUCでは 32次元が一番大きい

数値を出し, 4. 1節と 4. 2節とは違う傾向が得られた.

興奮度には低次元ベクトルの評価値を大きく良化させる効果

があることがわかる.

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

4. 4 ツイートの勢い

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

報を追加して実験を行った. 結果は表 5と図 7に示した.

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

た, 4. 3節と同じく 1~16次元の評価値を大きく引き上げてい

る. Accuracy, AUC, F値で 32次元が一番大きい値を出してい

るので, 4. 1節と 4. 2節と同じく 32次元が一番良いという結果

になった.

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

4. 5 全ての追加要素

1~128 次元に落とした単語ベクトルに全ての追加要素を追

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

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

に低次元での評価値が大きく良化した. これまでの結果とは違

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

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

Page 6: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

表 3 実験結果 (+URL)

次元 Accuracy AUC Precision Recall f1score

1 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)

表 4 実験結果 (+興奮度)

次元 Accuracy AUC Precision Recall f1score

1 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 Recall f1score

1 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 Recall f1score

1 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による単語ベクトルの削減

BoWモデルでツイートをベクトル化したものを, そのまま機

械学習するには高性能なマシンを用いる必要がある. そこで本

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

ベクトルを作成した.

1~128次元で実験したところ, 次元を落とせば評価値が下が

ることがわかった. ネタバレと非ネタバレを分類する上で必要

な情報が次元を落とすごとに失われているということがわか

Page 7: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

図 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 付きツイートはネタバレである可能性が高く, 危険

であることがわかる.

ニュース記事は試合で何か起きてから記事が作られ, ユーザ

がその記事を読むときには試合で起きたイベントよりかなり

時間が経過しているので, ツイートの勢いの情報ではニュース

記事に関するツイートは検知しづらい. また, ニュース記事サ

イトのアカウントが投稿するツイートでは「wwwww」や

「!!!!!」と言った同じ文字が連続した記述は使われない. また,

ユーザがニュース記事に関するツイートをするときは字数制限

から同じ文字が連続した記述が使われることは少ない. このた

め, ユーザの興奮度ではニュース記事に関するツイートは検知

しづらい. ニュース記事に関するツイートを検知するためには

URLの有無で検知するのが最適であると考えられる.

5. 4 ユーザの興奮度

ユーザの興奮度の情報を付加して学習すると, 全体的に評価

値が良化し, 特に低次元での評価値が大きく良化した. ユーザ

の興奮度はネタバレと非ネタバレの分類に有効であることがわ

かる.

同じ文字が連続した記述が使われるツイートは使われてる単

語や品詞の種類が非常に少ない. 例えば, 「(選手名)ホームラ

ンwwwwww」や「(選手名)サヨナラタイムリーきたあああ

あああ!!!!!」というようなツイートである. ツイートテキスト

の情報量が元々非常に少ないため, 低次元に落とした単語ベク

トルでもうまく分類できたのではないかと考えられる.

5. 5 ツイートの勢い

ツイートの勢いの情報を付加して学習すると, ユーザの興奮

度のときと同じく, 全体的に評価値が良化し, 特に低次元での評

価値が大きく良化した. ツイートの勢いはネタバレと非ネタバ

レの分類に有効であることがわかる.

ツイートの勢いが高くなると試合の展開に何か変化があり,

今起きている状況を伝えようとするツイートが増えるため, ネ

タバレツイートが増える. このようなツイートを検知するため

にツイートの勢いは必要である.

ユーザの興奮度と組み合わせることで低次元ベクトルでも高

い評価値を得ることができた. 試合の展開に何か変化があった

ときはツイートに使われる単語の数が少なく, ユーザの興奮度

が高いツイートが多いためだったと思われる. なぜ, このよう

なツイートが多くなるのかというと, 今起きていることをユー

ザがより素早く他ユーザへ伝えようとするためではないかと考

えられる. そのため, 「(選手名)(名詞){例:新井ホームラン}」

「(選手名)(名詞)(動詞){例:新井ホームランきた}」のような単

語数が少ないツイートに入力が簡単な「wwwww」や「!!!!!」

と言った同じ文字が連続した記述が付加した, ある種の定型文

のようなツイートが多くなる. なので, ツイートの勢いとユー

ザの興奮度を組み合わせると低次元ベクトルでうまく分類でき

たのではないかと考えた. 今後はさらにツイートの勢いやユー

ザの興奮度, 単語との共起関係を詳しく調べる必要がある.

5. 6 分類器の誤判定の解析

5. 6. 1 ネタバレを非ネタバレと誤答した場合

作成した分類器がネタバレを非ネタバレと誤答した例として

スコア速報が挙げられる. 野球のスコア速報は「セ 0-0 パ」,

「セ 0 (1表) 0パ」等, いろいろな表現がある. チーム名も「パ」,

「全パ」, 「パリーグ」等といろいろな表現ができる. なので,

表記揺れが激しいため, 正しく検知できなかったとのではない

かと推察される. ネタバレと推定できたスコア速報に関する例

もあるので, 改善するには何らかの手法で表現を統一する必要

があると思われる.

他にも, 「新井タイムリー!」のように端的に試合展開を説

明したツイートも非ネタバレと誤答したことがあった. ユーザ

の興奮度をネタバレ分類のためのパラメータとして加えたため,

「追加点きたああああああ」や「新井タイムリー!!!!!1111

1」のようなツイートをネタバレと判断することができたが,

逆に端的表されたツイートをネタバレとして判別できなかった

ものと思われる.

5. 6. 2 非ネタバレをネタバレと誤答した場合

作成した分類器が非ネタバレをネタバレと誤答した例として,

選手の応援, 選手への賞賛または罵倒, 今後の試合展開の予想

または願望等が挙げられる. また, 選手のファインプレー, ヒッ

ト, 凡退, 盗塁等の得失点に関わらない出来事はネタバレとして

私は扱わなかったが, 分類器はネタバレとして判断した. 非ネ

タバレをネタバレと誤答したものの中には, ネタバレ扱いにし

ても良いツイートがいくつか存在する. 人によってネタバレと

非ネタバレの境界は曖昧なため, このような誤答はあっても良

い. ツイートにネタバレ度を表すスコアをつけることができれ

ば, 人によって曖昧なネタバレの境界を移動させることができ,

このような誤答をネタバレと判断したり, 非ネタバレと判断し

たりすることができるのではないかと考えられる.

Page 8: 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み › deim2016 › papers › 178.pdf · 野球実況ツイートを対象とした機械学習によるネタバレ検知の試み

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 Pro-

gram 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. Coooooooooooooool-

lllllllllllll!!!!!!!!!!!!!!: using word lengthening to detect senti-

ment 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.