DEIM Forum 2019 C3-5

共起語を用いた同綴異義語を含む tweet の分類手法
菊川 峻輔†

湯沢 昭夫††

小林亜樹†††† 工学院大学工学部情報通信工学科 〒 163–8677 東京都新宿区西新宿 1–24–2†† 工学院大学大学院工学研究科電気・電子工学専攻 〒 163–8677 東京都新宿区西新宿 1–24–2††† 工学院大学情報学部情報通信工学科 〒 163–8677 東京都新宿区西新宿 1–24–2
E-mail: †c515029@ns.kogakuin.ac.jp , ††cm17051@ns.kogakuin.ac.jp, †††aki@cc.kogakuin.ac.jp
あらましTwitter では，検索する語が同綴異義語による tweet の検索だった場合，目的としない意味の語を含んだ検索結果も返ってきてしまうため，目的とする意味の語による検索結果のみを得ることが求められる．文書分類の研究報告は数多くあげられているが，tweet のような短文での分類の事例はあまり見られない．本研究では同綴異義語が含まれた tweet を共起語を用いて分類する．提案する分類手法は名詞のみを用いた BoW ベクトルのコサイン類似度による分類，Doc2vec を用いたコサイン類似度による分類，SVM を用いた分類の手法を提案する．実際に投稿された tweet を各分類手法にて分類し，各手法の分類結果を示し，比較をした．
キーワード Twitter, SNS, 分類, 同綴異義語

1. は じ め に
Twitter は tweet と呼ばれる全角 140 文字，半角 280 文字以

章にて，まとめと今後の課題について述べる．

2. 関 連 研 究内のメッセージが世界中で多数投稿されており，その投稿数は文書分類や語義曖昧性の解消を目的とした研究は多数存在す

2018 年 6 月 24 日時点で 1 日あたりおよそ 5 億件とされている [3–8]．例えば，城光ら [3] は学習対象となる単語の周辺単る [1]．Twitter には検索機能が提供されており，任意の単語を語を，特定の品詞を持つものや特定の位置に存在するものに用いて検索することで，Twitter ユーザの tweet を取得するこ限定し，同義語の獲得を目的とする手法を提案した．単語の意とができる．この大量の tweet の中には，「同綴異義語」と呼ば味を求めるという点では本研究と似ているが，同義語を獲得れる，表記が同じでありながら単語の意味が異なる単語が存在するという点が本研究とは異なる．浦田ら [4] は tweet 中に，する．人物の例で言えば，「羽生」という単語があり，この単語語義曖昧性のある単語に正しい Wikipedia の記事を抽出できには将棋棋士の「羽生善治」や，フィギュアスケート選手の「羽るエンティティリンキングを行っていた．語義曖昧性の含んだ生結弦」などが主に挙げられる．地名の例では，「日本橋」といtweet を対象にしている点は本研究と似ているが，本研究はエう単語が挙げられ，東京都の「にほんばし」や大阪府の「にっンティティリンキングではなく tweet の分類のため，この点でぽんばし」などを含む．

先行研究と異なる．Harada ら [5] は「アップル」という単語

これら同綴異義語を検索対象として tweet の検索を行った場

を多国籍企業である「Apple.inc」と，果物の「りんご」の意

合，この文字が含まれた tweet が検索結果として得られる．し味毎に tweet を分類する手法を提案している．
「アップル」といかし，「羽生」という単語で検索を行った場合，将棋棋士の「羽う同綴異義語が含まれた tweet を分類するという点では本研究生善治」についての tweet を検索結果として求めていても，「羽と似ているが，この研究では分類をする際に Latent Dirichlet

生結弦」についての検索結果も得られてしまうといった例が見Allocation(LDA) を用いて分類をしていた．Twitter–LDA モ

られる．この問題を回避するための利用者側の行動例として

デルでは，各ユーザ毎のトピック分布というユーザ固有パラ

は，検索クエリを増やす方法が挙げられる．将棋棋士の「羽生メータを含むため，1tweet を 1 文書として扱うとは言うもの善治」について検索したい場合，「羽生」という単語に「将棋」の，モデル構築のためには tweet 元ユーザによる十分な分量のを追加すれば，スケート選手の「羽生結弦」についての tweet

tweet を必要とする．これに対し，検索はアドホックに行われはほぼ除外できる．しかし，「羽生善治」に関する tweet が必ずることが多く，検索結果の各 tweet の分類を行うためにそれぞしも「将棋」という単語を含んでいるとは限らない．検索クエ

れの投稿主の投稿トピック分布を得なければならず，過剰な処

リを増やした場合，目的とする tweet を得られやすくなるが，理といえる．荒木ら [6] は文書中の多義語を，相互情報量を用

検索対象を狭めてしまうことにつながる [2]．

いた場合に，多義語を分類を行う上での危険因子的素性と考え，そこで，本研究では短文である tweet であっても，同綴異義

危険因子と判断された素性を除去することで多義性を解消する

語を適切に分類できるかを試みる．本論文の構成として，第 2手法を提案している．この研究は文書中に多義性のある単語が章で関連研究について述べる．第 3 章で分類方法について紹介

含まれていた場合のテキスト分類をしている点が本研究と似てする．第 4 章では各分類方法での分類及び結果について述べる．

いるが，文書の対象が tweet ではない点が本研究とは異なる．

第 5 章では各分類手法における結果に対する考察を行い，第 6

那須川 [7] は文章の位置，文中の各語の依存関係などから単語

の係り受けに着目して，語義曖昧性を解消する手法を提案して方法によって tweet の分類を行う．Bag–of–Words ベクトルのいる．こちらも，単語の曖昧性を解消するという点では本研究

コサイン類似度から tweet のクラス分類をする理由として，コと似ているが，この研究は長文を対象にしていたのに対し，本サイン類似度という基礎的な考えでどの程度 tweet を分類で研究は tweet という短文を扱っていることが本研究と異なってきるかを測定する．SVM はクラス分類の研究に使われてお2いる．藤井ら [8] は単語出現頻度と分類カテゴリとの間の χり，本研究の目的である同綴異義語を含む tweet 分類において，統計による重み付け結果に対して，複数のカテゴリにて重要度

tweet という短文においてはどの程度の分類が可能かを測定すが高い単語を分類多義語と定義し，これを用いて文書の自動分る．Doc2Vec は長文であるテキストデータにおいて多く利用さ類をする研究を行っていた．この研究では分類対象とする文書

れ，ユーザが設定する次元数のベクトルに変換することができに新聞記事を用いており，こちらの研究に関しても本研究ではる．本研究においては，1tweet のみをベクトル化し，それらのtweet という短文を扱っていることから対象としている文書がベクトル同士の類似度から tweet が分類が可能かどうかを確認

異なり，先行研究との違いを示すことができる．

する．

3. 分 類 方 法

3. 1 準備

各分類方法において必要な段階を述べる．最初に，Twitter

本研究では，100 文字程度の短文で 1 文書が構成されている社が提供している Streaming API [9] を用いて tweet を取得す

tweet の分類を行うことを目的とした場合に，分類対象となるる．なお，Streaming API を用いて取得される tweet は，つぶtweet 集合以外の追加の情報収集を行わない条件下で，代表的やかれた tweet 全体の 1% となっている．取得された tweet 中

な教師あり分類手法がどの程度の分類精度を実現するのかを測のリツイート，引用ツイート，文章が完全に一致した tweet(bot定する．この目的は，このような条件下における分類手法間の等) は除外し，70 文字以上の tweet を使用した．70 文字以上の比較を行い，特性を明らかにすると共に，今後の分類手法開発

tweet を使用した理由として，あまりにも文章が短い tweet はのための知見を得ることである．

単語数が少ないことから同綴異義語の意味を判別できず，tweet

2 章で述べた通り，文書長の短い tweet などの分類では，分を分類することが困難だと考えたためである．これらの tweet

類に必要な情報を得るために，複数の tweet を連結するようなから，学習 tweet 集合とテスト tweet 集合を考える．学習 tweet

手法がみられ，代表的な手法 [3–8] では，投稿アカウント毎に集合はあらかじめ人手で分類した tweet である．学習 tweet 集

前後の tweet を連結することで，文書長を確保する処理が行わ

合を Ttrain ，c を各 tweet がどの単語に属しているかのクラス，れている．これは，アカウントは（少なくとも局所時間的には）

n を tweet の件数とし，式 (1) のように定義する．

一定の話題について投稿を続けるという仮定に基づいており，一定の妥当性は認められるが，当然成立しない場合も相当ある

Ttrain := {tci | i ∈ {n}}と考えられる．また，アカウント毎の投稿データの収集には，

テスト tweet 集合は Ttrain を基に分類する tweet である．テス(1)

利用サービスの提供している API に基づく制約などもあり，実ト tweet 集合を Ttest ，tweet の件数を k とし，式 (2) のように用的なアカウント数に関するデータの収集には分単位の時間が定義する．

かかるため，外部サービスとして実現しようとすることは困難
である．
同綴異義語が混在することが問題となる場面の多くは，同単語を含む検索文脈下であると考えられ，これは，現在の検索利用形態を考えると，利用者の思いつきに対応してアドホックに行われていることがほとんどである．統計的分析などのためであれば，時間を掛けた分類処理であっても差し支えないが，このようなアドホックな利用時に適切な同綴異義語の分類を提供
できれば，検索機能性の向上につながる．語義に基づく分類は，
オントロジーなどを用いた意味解析の研究も進んではきているが，新語略語の類いも多いマイクロブログにどこまで適用でき

Ttest := {tcn+i | i ∈ {k}}Ttrain 及び Ttest を対象に形態素解析を行う．形態素解析器として MeCab [10] を用い，システム辞書には mecab–ipadic–

NEologd [11] を使用する．
各分類手法において，形態素解析された Ttrain 及び Ttest のBag–of–Words(BoW) を用いる．本研究での BoW ベクトルは，
文章中に現れた名詞の出現数をベクトルの成分に持つ．名詞総数を m としたとき，名詞の BoW を {w1 , · · · , wm } とする．任意の tweet tci のベクトルは式 (3) のように考えることができる [12]．

るかについてはさらなる研究を待つ必要がある．そこで，本研

tci = (vi1 , · · · , vij , · · · , vim )究では，逐次的な人による分類を行うことで，漸進的に分類教

vij : tci に含まれる wj の個数

師データが得られるであろう場面を想定し，小規模の教師デー
タを用いた，教師あり学習で同綴異義語が含まれた tweet を分

(2)

(3)

1 <
=i<
= n, 1 <=j<=m

類することを目的とする．tweet の分類が各分類方法にてどの

これら tci の BoW ベクトル tci の集合を Ttrain ，Ttest とする．

程度の精度で分類できるかを測る．

また，教師データとして，Yahoo!ニュースのニュース記事を用いる手法は Bag–of–Words ベクトルのコサイン類似度に用いた．Yahoo!ニュースのニュース記事を使用した理由として，

よる分類 (3. 2 節)，Support Vector Machine(SVM) を用いた

Twitter のような主に口語的な表現が使われるテキストではな

分類 (3. 4 節)，Doc2Vec を用いた分類 (3. 3 節) の 3 つの分類

く，ニュース記事のような文語的な表現で表されているテキス

tweet𝑡1 ,…, 𝑡𝑛

コサイン類似度算出
cos(𝑻, 𝑻𝒕𝒆𝒔𝒕 )𝑊 : 任意の単語(名詞)
𝑊’ : Wとの同綴異義語
S𝑊 : 𝑊に関するtweetのコサイン類似度の合計
SW′ : 𝑊′に関するtweetのコサイン類似度の合計

コサイン類似度算出

Yes
𝑆𝑊 > 𝑆𝑊 ′

No

人手で分類

Yes
𝑆𝑊 < 𝑆𝑊 ′Yes

Wに関するtweet
𝑡1 ,…, 𝑡𝑙

Wに関するテストtweet𝑡𝑛+1 , …, 𝑡𝑛+𝑘−3

𝑆𝑊 > 𝑆𝑊 ′テストtweet𝑡𝑛+1 ,…, 𝑡𝑛+𝑘

W’に関するtweet
𝑡𝑙+1 , …, 𝑡𝑛

NoW’に関する
テストtweet𝑡𝑛+2 ,…, 𝑡𝑛+𝑘−2

𝑆𝑊 < 𝑆𝑊 ′

形態素解析

No

BoWベクトル化

各テキストデータ(学習用)

Doc2Vecによるtweetのベクトル化

W’に関する
テストtweet𝑡𝑛+2 ,…, 𝑡𝑛+𝑘−2

NoW,W’以外に関するテストtweet𝑡𝑛+3 ,…, 𝑡𝑛+𝑘

テストtweet集合
𝑡𝑛+1 …𝑡𝑛+𝑘

Yes

Wに関する
テストtweet𝑡𝑛+1 , …, 𝑡𝑛+𝑘−3

図 2 Doc2Vec を用いた類似度による分類①学習フェーズ

W,W’以外に関するテストtweet𝑡𝑛+3 ,…, 𝑡𝑛+𝑘

tweet集合 , テストtweet集合
𝑻{𝒕𝟏 , …, 𝒕𝒏 },𝑻𝒕𝒆𝒔𝒕 {𝒕𝒏+𝟏 , …, 𝒕𝒏+𝒌 }テキストデータ

ラベル付けされた
テキストデータ

図 1 BoW ベクトルのコサイン類似度による分類②分類フェーズ

配信日時，関連記事などは含まず記事本文のみとした．また，記事のページ数が 2 ページ以上のものは 1 ページ目のみを使用

分類された
BoWベクトル化
テストtweet𝑡𝑚 0,0, … , 0 〇,…,𝑡𝑚+𝑘−1 0,0, … , 1 〇SVMの分類
モデル作成

トデータを教師データとした場合での分類結果を比較するために使用する．Yahoo!ニュースのニュース記事は記事タイトルやラベル付けされた
BoWベクトル化
テキストデータ

テストtweet𝑡𝑚 ,…,𝑡𝑚+𝑘

BoWベクトル化
テストtweet𝑡𝑚 0,1, … , 0 ,…,𝑡𝑚+𝑘 1,1, … , 1

作成された
SVM
による分類

分類された
BoWベクトル化
テストtweet𝑡𝑚+1 0,1, … , 0 ×,…,
𝑡𝑚+𝑘 0,1, … , 1 ×

した．取得した Yahoo!ニュースのニュース記事の件数を p 件
図 3 SVM による分類とするとき，ニュース記事集合 A を式 (4) のように定義する．

A := {ai | i ∈ {p}}(4)

取得されたニュース記事は形態素解析をし，BoW ベクトルを作成する．

3. 2 Bag–of–Words ベクトルのコサイン類似度による分類
本手法は 2 ベクトル間のコサイン類似度を用いて分類する手法である．この分類方法の流れを図 1 に示す．
コサイン類似度は，2 つのベクトルがどの程度近いかを表す．
本稿ではコサイン類似度を cos(x, y) と表し，式 (5) のように計算する．ただし，xi ，yi は各ベクトルの第 i 成分を表している．
∑m
xi yi
x·y
cos(x, y) == √∑m i=1√∑m(5)
22∥x∥∥y∥xi=1 i
i=1 yi
ここで，分類のためコサイン類似度に閾値 α(0 < α < 1) をの合計値 SW と SW ′ を求め，合計値の高い単語の方が tweet tのクラスになる．
本手法において，SW = SW ′ となった場合は，tweet のクラスの分類は不可能とした．

3. 3 Doc2Vec を用いた類似度による分類
Doc2Vec を用いた類似度による分類方法は図 2 のようになる．本手法は gensim の Doc2Vec [15] を用いて教師データのテキストデータとテストデータである tweet をベクトル化し，ベクトル化されたテキストデータと Ttest の各 tweet 同士の類似度を求める方法である．ここで言う類似度とはコサイン類
似度のことであり，3. 2 節の式 (5) のように計算される．また，

tweet のクラス判定については，閾値 α を設けた上で，3. 2 節の式 (6) 及び式 (7) のように計算する．これらの計算結果より

tweet の分類を行う．

導入する．閾値を導入する理由として，一定の閾値を超える類

3. 4 Support Vector Machine による分類

似度を持つ場合，同じ単語に関する tweet であると判断するた

Support Vector Machine(SVM) [13] による分類の流れを図めである．任意の単語 W を含む tweet および W の同綴異義3 に示す．

語である W’ を含む tweet と，学習 tweet 集合 Ttrain の tweet

本手法はテスト tweet 集合 Ttest を，SVM を用いて分類すとのコサイン類似度を算出する．このとき，分類したい tweet

る手法である．本手法では 3. 2 節で教師データとして利用した
学習 tweet 集合 Ttrain に加え，Yahoo!ニュースから Beautiful-t(∈ Ttest ) に対してSoup [14] を使用して取得されたニュース記事を教師データとb(c) := {tci ∈ Ttrain | cos(t, tci ) >
= α}

(6)

を考える．b(c) は，分類したい tweet t と各単語に関する tweet

tci のコサイン類似度が α 以上となる tweet の集合である．次に，Ttest に含まれる tweet t のクラスを

c(ti ) :=∑1
arg maxcos(t, tci )|b(c)|
cc

して用いた．図 3 における学習フェーズ，分類フェーズの説明を以下で説明していく．

3. 4. 1 学習フェーズ
学習フェーズとは，tweet を分類する際に必要とする教師デー
タを SVM に学習させ，分類モデルを作成する段階である．本(7)

ti ∈b(c)として判定する．各単語において α 以上となるコサイン類似度

手法では学習フェーズで，教師データが学習 tweet 集合 Ttrainの場合，ニュース記事集合 A の場合，ニュース記事集合 A の中から著者が選択したニュース記事集合の計 3 通りについて測

定した．

40000

100.00%
36026

35000

分類フェーズは，分類したい tweet 集合を学習フェーズで作

30000

90.00%

成した SVM を用いて分類する段階である．ここで，分類したい tweet に BoW ベクトル化されたテスト tweet 集合 Ttest 内の各 tweet を用いる．

4. 評 価 実 験

各値におけるコサイン類似度の個数

80.00%
29006

25000

60.00%

20000

50.00%

40.00%

15000

30.00%
10000

8678
8224

20.00%
5000

4. 1 実 験 目 的

70.00%

26546

3447

10.00%

2670
1994

1218
404

455

66

0.2~0.3

0.3~0.4

506 1120 132 160

0.4~0.5

0.5~0.6

0.6~0.7

6

32 10

0

8

2

0

8

16

0

0

16

0 202 200

0

0.00%

0~0.1

0.1~0.2

本研究の目的であった tweet の分類が，各分類方法においてどの程度の分類精度が得られるかを確認する．

各値におけるコサイン類似度の個数の割合

3. 4. 2 分類フェーズ

0.7~0.8

0.8~0.9

0.9~0.999 0.999~1.0

コサイン類似度
羽生善治と羽生結弦

羽生善治同士

羽生結弦同士羽生善治と羽生結弦

羽生善治同士

羽生結弦同士図 4 予備実験結果図4. 2 実 験 条 件
同綴異議語を「羽生」「日本橋」「クラウド」とし，これらの語を含む tweet を各分類手法での Ttrain ，Ttest とした．Ttrain
及び Ttest についての投稿時期や使用した tweet の件数を表 1に記載する．投稿時期は tweet が投稿された時期を表している．
単語はどのような同綴異義語が含まれた tweet を用いたかを表している．件数は各単語において何件の tweet を用いたかを表している．

MeCab のシステム辞書である mecab–ipadic–NEolodg は2018 年 12 月 26 日 18 時 30 分に更新した辞書を使用する．
BoW には名詞のみを利用した．
SVM の実装には，scikit–learn の LinearSVC [16] を使用した．カーネルは線形カーネルとし，パラメータは C = 1.0 とした．Yahoo!ニュース記事は 2018 年 11 月 19 日時点で「羽生善治」，「羽生結弦」と検索した際の新規 100 件を使用した．また，この中から人手で選択したニュース記事は羽生善治が 67 件，羽生結弦が 64 件となっている．ニュース記事を人手で選択した
理由として，各人物の単語が含まれていても，その人物に関する記事ではないものも含まれていたためである．

Doc2Vec を用いて作成されたベクトルの次元数は N = 300とした．対象となる単語 (本研究における同綴異義語) から何個分単語が離れているかを示すウィンドウサイズは window=8とした．

3 つの分類手法で使用した tweet の統計情報を表 2 に載せる．
tweet 数は Ttrain と Ttest の合計を表している．BoW ベクトル
次元数は各単語を含む tweet の BoW ベクトルが何次元になっているかを表している．平均単語数は，各単語を含む tweet において何個の単語を含むかを表している．各分類手法では名詞のみを用いていることから，平均単語数は tweet に含まれる名
詞数を表している．平均文字数は 1tweet あたりの文字数を表している．ここでの文字数は，名詞以外の品詞も全て含んだ文字数である．

4. 3 予 備 実 験
予備実験として，Ttrain を用いて羽生善治に関する tweet 同士，羽生結弦に関する tweet 同士，羽生善治と羽生結弦に関す
る tweet 同士のコサイン類似度の値が，各閾値以上でどの程度現れるかを算出した．この予備実験の目的は，閾値 α をどの程度の値に設けるかを決定するためである．
この予備実験における実験結果を図 4 に載せる．左の縦軸は，各コサイン類似度の値の範囲における各単語同士の tweetのコサイン類似度の個数とした．右の縦軸は，コサイン類似度の値の範囲における各単語同士の tweet のコサイン類似度の個数の割合を表している．横軸はコサイン類似度の範囲とした．
棒グラフは各値における各単語同士の tweet のコサイン類似度の個数を表しており，折れ線グラフは各値における各単語同士の tweet のコサイン類似度の割合を表している．
コサイン類似度が 0∼0.1 では違う単語同士の tweet の組み合わせの方が数が多い結果となったが，0.1∼0.2 以降では，同じ単語に関する tweet 同士の組み合わせの方が数が多くなったた
め，本研究で用いる閾値 α の値を，0.1 以上 0.2 未満と設定した．この予備実験は単語が「羽生」においてのみの結果であるが，本実験では他の単語においても同等の結果が見込まれると仮定し，各々の単語においても閾値は 0.1 以上 0.2 未満とする．

4. 4 実 験 結 果
各分類手法において得られた分類結果を以下に載せていく．

4. 4. 1 BoW ベクトルのコサイン類似度による分類
図 5 は「羽生」という単語が含まれたテスト tweet 集合 Ttest
を分類する際に要した時間を右の縦軸に秒単位で表し，各閾値における分類精度を左の縦軸に表した図である．横軸はコサイン類似度の閾値を 0.01 刻みで表している．棒グラフは tweetの分類精度を表しており，折れ線グラフは分類をする際に要した時間を表している．また，図 6 は「日本橋」という単語が含まれた tweet をテスト tweet 集合 Ttest とした場合の結果であり，図 7 は「クラウド」という単語が含まれた tweet をテスト

tweet 集合 Ttest とした場合での結果である．
4. 4. 2 Doc2Vec による類似度を用いた分類
Doc2Vec による分類結果を表 3∼ 表 7 に載せる．この実験における類似度の閾値を，α=0.1 の場合のみで分類を行い，分類精度を算出した．

4. 4. 3 SVM による分類
SVM を用いて分類を行った際の分類結果を表 8∼12 に示す．
正解に対する予測の値をそれぞれ算出した．
「羽生」を用いた分類では，Ttrain ，A，A から人手で選択したニュース記事をそれ
ぞれ教師データとし，「日本橋」，「クラウド」を用いた分類ではTtrain を教師データとした分類精度の結果をまとめた．テスト
データは各単語ともに各単語に関するテスト tweet 集合 Ttest表 1 分類にて使用した Ttrain 及び Ttest の条件

Ttrain
投稿時期

10 月 1 日 ∼10 月 31 日

単語

羽生

件数

Ttest
12 月 1 日 ∼12 月 31 日

11 月 1 日 ∼11 月 30 日

1 月 1 日 ∼1 月 31 日

日本橋

クラウド

羽生

日本橋

クラウド

善治 200 件

東京 200 件

キャラ 180 件

善治 50 件

東京 50 件キャラ 50 件

結弦 200 件

大阪 200 件

用語 180 件

結弦 50 件

大阪 50 件用語 50 件

表 2 分類で使用した tweet の統計情報
単語
羽生

日本橋

tweet 数

500 件

500 件

460 件

BoW ベクトル次元数

3741 次元

4893 次元

3358 次元

22.8 語23.7 語

平均単語数 (名詞のみ)
平均文字数

106.0 文字 101.6 文字

クラウド

16.0 語83.7 文字

図 5 BoW ベクトルのコサイン類似度による分類方法の結果図 (羽生)図 7 BoW ベクトルのコサイン類似度による分類方法の結果図 (クラウド)

図 6 BoW ベクトルのコサイン類似度による分類方法の結果図 (日本橋)

表 3 教師データが Ttrain における Doc2Vec による分類精度結果
予測
正解

羽生善治

羽生結弦

羽生善治

50

0

羽生結弦

46

4

分類精度

0.54

表 4 教師データが A における Doc2Vec による分類精度結果

表 10 教師データが A の中から人手で選択したニュース記事におけ

予測
正解

る SVM による分類精度結果

羽生善治

羽生結弦

羽生善治

29

21

羽生結弦

13

37

分類精度

予測
羽生善治
正解

0.66

羽生結弦

羽生善治

50

0

羽生結弦

32

18

分類精度

0.68

表 5 教師データが A の中から人手で選択したニュース記事ににおける Doc2Vec による分類精度結果

表 11 教師データが Ttrain における SVM による分類精度結果
予測

正解

予測

羽生善治

羽生結弦

羽生善治

48

2

羽生結弦

49

1

分類精度

正解

にほんばし

にっぽんばし

にほんばし

38

12

にっぽんばし

26

24

分類精度

0.49

表 6 教師データが Ttrain における Doc2Vec による分類精度結果

0.62

表 12 教師データが Ttrain における SVM による分類精度結果

予測
正解

予測

にほんばし

にっぽんばし

にほんばし

37

13

にっぽんばし

45

5

分類精度

正解

予測

50

0

クラウド (用語)

46

4
054

棋」
「竜王」
「スケート」「選手」など，各人物を判別できる単語

クラウド (キャラ)クラウド (用語)が tweet された時期に関わらず一定数出現していた．分類対象

クラウド (キャラ)2327となる各単語との共起語に明確な違いが表れていたため分類精クラウド (用語)2228

度が 9 割という高い分類結果になったと考えられる．

分類精度
表8

クラウド (用語)クラウド (キャラ)
分類精度

0.42

表 7 教師データが Ttrain における Doc2Vec による分類精度結果

正解

クラウド (キャラ)0.51

教師データが Ttrain における SVM による分類精度結果
予測
正解

一方，
「日本橋」という単語に関して，「にっぽんばし」に関す
る tweet は比較的高い精度で分類できたが，「にほんばし」に関する tweet はあまり高い分類精度を得られることができなかった．これに関して，「にっぽんばし」は主にアニメやゲーム関

羽生善治

羽生結弦

羽生善治

28

22

連の tweet が多くみられた．アニメやゲームに関連する単語は

羽生結弦

2

48

「にほんばし」に関する tweet 中にはあまり含まれていなかっ分類精度たために比較的高い精度で tweet を分類できたと考えられる．

0.76

しかし，
「にほんばし」に関しては 1 つの tweet 文中に地名や店
表9

教師データが A における SVM による分類精度結果
予測
正解

名などの固有名詞が含まれていたが，一般名詞がより多く含まれていたため，人間では「にほんばし」とわかる tweet でも正

羽生善治

羽生結弦

羽生善治

50

0

しい単語の意味に分類できなかったと考えられる．この問題に

羽生結弦

44

6

関して，単語の重みや単語の出現頻度を考慮することで分類精

分類精度

0.56

度が大きく変わっていくのではないかと考えられる．
「クラウド」という単語に関しても，ゲームキャラクターでとなっている．予測は SVM にて分類した際の結果を表しておある「クラウド」に関する tweet は 9 割を超える精度で分類でり，正解は事前にラベル付けした結果を表している．分類精度

きたが，インターネット用語である「クラウド」に関する tweet

は各単語において予測と正解が一致した数の合計値を Ttest のは高い分類精度を得ることができなかった．この結果が得られ数で割った値となっている．

た要因としては，2018 年 12 月 7 日に「大乱闘スマッシュブラ

5. 考

察

ザーズ SPECIAL」というゲームソフトが発売され，このゲー
ム内に登場する「クラウド」というキャラクターに関する tweet

5. 1 BoW ベクトルのコサイン類似度による分類方法においては，ゲームに登場する別のキャラクターや「クラウド」

BoW ベクトルのコサイン類似度による分類方法が，3 通りが使う技の名前などが多く共起し，ゲームキャラクターの「クの分類方法を通して一番分類精度が高い結果となった．単語がラウド」に関する tweet 同士では高いコサイン類似度を得るこ「羽生」の場合は「羽生善治」，「羽生結弦」ともに高い分類精度とができたと考えられる．インターネット用語である「クラウが得られたが，単語が「日本橋」の場合は分類精度が一番高くド」は主にオンラインストレージとしての意味合いで扱われてても 0.77 程度になった．
「羽生」が含まれた tweet の場合，「将

おり，複数サービスにおいて「クラウド」という単語が使われ表 13 A の中から関連すると判断した記事を用いて行った確認実験に

表 17 教師データが Ttrain における Doc2Vec による分類精度結果
予測よる分類精度結果にほんばし

にっぽんばし

にほんばし

21

29

20

予測
羽生善治
正解

正解

羽生結弦

羽生善治

63

1

にっぽんばし

羽生結弦

16

48

分類精度

分類精度

30
0.51

0.87
表 18 教師データが Ttrain における Doc2Vec による分類精度結果
予測表 14 教師データが Ttrain における Doc2Vec による分類精度結果
予測
正解

羽生結弦

クラウド (キャラ)

23

28

22

クラウド (用語)

26

羽生結弦

24

26

分類精度

24
0.47

0.54

予測

うことではなかった．次元数を変えても Doc2Vec による実験結果が低いことから，1tweet を 1 文書として類似度を測ること

羽生善治

羽生結弦

は分類にはあまり適さないと考えられる．だが，Doc2Vec の仕

羽生善治

35

15

組みについて未だ理解できていない部分はあるため，検討の余

羽生結弦

39

11

地はある．

分類精度

0.46

5. 3 SVM による分類

表 16 教師データが A の中から人手で選択したニュース記事ににおける Doc2Vec による分類精度結果
羽生善治
羽生善治

45

羽生結弦

47

分類精度

「羽生」に関する tweet の場合，学習 tweet 集合 Ttrain とニュース記事集合 A の場合で結果が大きく異なった．分類精度が一番高ったのは教師データが Ttrain となった．教師データが

予測
正解

27

羽生善治

表 15 教師データが A における Doc2Vec による分類精度結果

正解

クラウド (用語)

羽生善治

分類精度

正解

クラウド (キャラ)

羽生結弦

Ttrain の場合，羽生結弦のみに関する tweet は分類精度が 96%5と非常に高い分類精度となった．しかし，教師データが A の場

3

合は羽生善治に関する tweet の分類精度が 100% と異なる人物

0.48の方が分類精度が高くなった．このような結果になった原因は，各人物に対する tweet に使われている語彙の違いが原因ではなていたことから，インターネット用語の「クラウド」に関するtweet 同士でもあまり同じ単語が見られずコサイン類似度が低くなってしまったと考えられる．

いかと考えられる．
羽生結弦に関する tweet の場合，tweet 内で使われている表
現がニュース記事内で使われている表現に大きな差異があるこ

5. 2 Doc2Vec による類似度を用いた分類とから，教師データを変えた際に分類精度が大きく異なると考本研究において，各単語を通して最も分類結果が悪かったのえられる．羽生善治に関する tweet の場合，tweet とニュースがこの分類手法である．Doc2Vec が正しく分類できるかどうか

記事内での語彙が似ていることから分類精度が 100% になったの確認実験を，Ttrain ではなくニュース記事集合 A の中から各と考えられる．

人物に関連していると判断したニュース記事を各人物 64 件ず
つ用いて行った．確認実験の結果を表 13 に載せる．

この問題に関しては，tweet とニュース記事で扱われている
語彙の違いを調査することでわかると考えられるが，現段階で比較的長文なテキストデータであるニュース記事を教師デーは確認していない．また，「日本橋」や「クラウド」に関して，

タとし，さらにそのニュース記事をテストデータとして分類

教師データが Ttrain のみということから，判断できる内容が少した結果，分類精度は 0.87 という結果になった．長文によるないが，正しく分類できなかった tweet には，「日本橋」に関し

Doc2Vec の分類は概ね分類精度が高い結果となった．この確認ては東京や大阪を特定させるような単語があまり見られなかっ実験により，Doc2Vec による分類は長文データには有効である

たことが分類できなかった原因と考えられる．
「クラウド」に関と考えられるが，tweet という短文のテキストにはあまり有効してはインターネット用語における「クラウド」の分類精度が性がみられないということが，現段階での認識である．この結非常に悪かったが，ゲームキャラクターの「クラウド」は 100%

果に関して，今回表 3∼ 表 6 の分類で，テストデータに用いた分類できていたことから，目的となる単語の意味を特定できる

tweet のベクトルの次元数を 5 次元に設定し，再度調査を行っ

共起語が多くあることにより，SVM による分類ができるのでた．その結果を表 14∼18 に載せる．

はないかと考えられる．また，教師あり分類の枠組みであるた

tweet の次元数を 5 次元と小さくしたが，表 4 と表 15 の比較以外は分類精度の比較の差異が 0.01∼0.09 と大きくは変わらめ，教師データ数と精度の関係を明らかにする必要があると考える．

なかった．また，分類精度が高くなったものもあれば分類精度

5. 4 総括が低くなったものもあり，次元数を減らした方が良くなるとい

70 文字以上の tweet であった場合，表層的な共起語の出現で

1
0.9
0.8

0.7

分類精度

0.6
0.5
0.4
0.3
0.2
0.1
0

Bow-cos

SVM

Doc2Vec

分類方法及び教師データ

図 8 各分類方法と教師データによる分類精度比較グラフ

は，分類方法にもよるが，ある程度の分類精度を得ることができた．
各単語での実験を通して最も分類精度が良かったのは，BoW
ベクトルのコサイン類似度による分類であった．各分類手法及
び単語における分類結果の比較図を図 8 に載せる．各棒グラフ
は教師データにおける分類精度を表しており，青色の棒グラフ
は単語が「羽生」における各教師データの結果を表している．
緑の棒グラフは単語が「日本橋」を含む tweet を教師データとしたグラフであり，紫の棒グラフは単語が「クラウド」を含む

tweet を教師データとしたグラフである．比較するにあたって，
4. 4 節で載せた分類結果以外に教師データが tweet とニュース記事の場合と，tweet と人手で選択したニュース記事の場合の2 通りを追加し比較をした．
これらの分類を通して分類精度が最も良かったのは BoW ベ
クトルのコサイン類似度による分類手法であった．コサイン類
似度を計算することで，同綴異義語を含む tweet 間で使われている共起語が同じだった場合に，コサイン類似度が高くなることが要因だと考えられる．

SVM や Doc2Vec で分類する手法では，学習データが大きくない場合十分な分類精度を得ることができなかったり，結果が不安定であることが確認できた．教師データの数を増やすといった方法や，両分類手法におけるパラメータを変えることで分類精度は向上できるのではないかと考えられる．

6. お わ り に
本論文では，同綴異義語が含まれた tweet を，各分類方法によって分類し，どの程度の分類精度が得られるかを検討した．
今後の課題として，本論文で示した分類方法以外での分類や，

tweet の投稿時期による依存性，及び 70 文字以下という情報量の少ない tweet でも適切に分類できるかという問題，そして本実験で確認された分類精度をより高くするという課題があげら
れる．
文

献

[1] OMNICORE, “Twitter by the Numbers: Stats, Demographics & Fun Facts,” https://www.omnicoreagency.com/
twitter-statistics/, 参照 Jan. 2,2019.
[2] 赤部晃一，那須川哲哉，吉川克正，石井旬，“ノイズの海から評
判情報を集める，” 電子情報通信学会技術研究報告， 信学技報

NLC2015–46, pp. 13–17, 2016
[3] 城光英彰，松田源立，山口和紀，“文脈限定 Skip–gram による同義語獲得，” 自然言語処理，言語処理学会, Vol. 24, No. 2,
pp. 187–204, 2017[4] 浦田智昭，前田亮，“マイクロブログを対象にしたエンティティリ
ンキングにおける語義曖昧性解消，”DEIM Forum 2018 B3–2
[5] Tomohiko Harada, Kazuhiko Tsuda, “Classifying homographs in Japanese social media texts using a user interest
model,” Procedia Computer Science, Vol. 35, pp. 929–936,
2014[6] 荒木淳，中村文隆，中山雅哉，“多義性を軽減した素性セットによるテキスト分類方式，” 情報処理学会研究報告自然言語処理（NL），Vol. 2003, No. 23, pp. 85–92, Mar. 23, 2003
[7] 那須川哲哉，“文脈情報を利用した自然言語文における構造的曖昧性の解消，” 情報処理学会論文誌，Vol. 36, No. 10, pp.
2362–2370, Oct. 1995
[8] 藤井洋一，鈴木克志，辻秀一，“段落共起情報を利用した文書自動分類方式，” 情報処理学会論文誌, Vol. 42, No. 3, pp. 495–506,
Mar. 2001.
[9] “GET statuses/sample,” https://developer.twitter.com/
en/docs/tweets/sample-realtime/api-reference/
get-statuses-sample 参照 Jan. 9,2019[10] “MeCab: Yet Another Part–of–Speech and Morphological
Analyzer,” http://taku910.github.io/mecab/, 参 照 Jan.
9,2019[11] “mecab-ipadic-NEologd : Neologism dictionary for MeCab,”https://github.com/neologd/mecab-ipadic-neologd, 参
照 Jan. 9,2019[12] 湯浅夏樹，上田徹，外川文雄，“大量文書データ中の単語共起を利用した文書分類，” 情報通信学会論文誌, Vol. 36, No. 8, pp.
1819–1827, Aug., 1995
[13] “Support Vector Machines,” https://scikit-learn.org/
stable/modules/svm.html, 参照 Jan. 9,2019[14] “Beautiful Soup,” https://www.crummy.com/software/
BeautifulSoup/, 参照 Jan. 9,2019[15] “models.doc2vec - Doc2vec paragraph embeddings,” https://radimrehurek.com/gensim/models/doc2vec.html, 参 照Jan. 9,2019[16] “sklearn.svm.LinearSVC,” https://scikit-learn.org/stable/
modules/generated/sklearn.svm.LinearSVC.html, 参照 Jan.
9,2019