そこのあなた、もしその単語が
使えなくなったらどうしますか?
中川裕志
(東京大学)
昔、ソシュールという偉い先生が
• 「言語が現れる以前は(現実の世界で)何一
つ判別できるものはなかった」と言った。
• 本当かと思って、試しに「月」(monthの意味)
という言葉がない世界を仮定してみた。
• すると、まず、「月の平均気温」とか「今月の
売り上げ」などが使えない。入学日時も2014
年100日みたいなことになって困ったことにな
る
誤解を解いておきましょう
• では、人々は「月」ではなく、新しい単語「き
つ」でも作って代用するからいいでしょ?とい
う反論が考えられますが
• ソシュールは「月」という単語によって、月の
概念が形成された、というような主旨ですから、
「月」という概念が無かった場合、と言い直し
ましょう。
本題に戻りますと
• 「月」という言葉(=概念)を消しただけで、おおよ
そ社会機能は麻痺しそうです。月給はなくなり、
みんな年俸か日給、時間給になるとか、冗談み
たいなことが起きます。
• つまり、文化は当然として、社会制度のほぼす
べての機能が単語から生成されてきています。
– だから、「月」のような重要な単語が消失すると社会
制度がダメージを受けたり、崩壊したりしそう。
• だが、「中川裕志」という人名がなくなっても社会に
はなんの影響もない。
つまり、単語には社会における必要度が付随し
ています
単語の社会における必要度の図
中心ほどコアで必要度高い
周辺部にいくほど個別領域の単語で必要度低い
年、月、日、
男、女、
食べる、寝る、
現金、借金、
VC次元
W杯
理研
ZARA
Google
CRM
中川裕志
L0正則化
マック100円セール
ナタリア・ポクロンスカヤ
言語学や自然言語処理
• 前ページのスライド「単語の社会における必要度の図」でお伝えしたいのは
– みんなが使う「月」が消失すると甚大な影響を及ぼす
– 専門用語「VC次元」くらいがなくなっても世界は大きく変わらないだろう
– 一般人の名前がひとつ消えても社会は何も変わらない
• というように、単語がカバーする社会現象の範囲の大きくなると「必要度」が大きく
なり、
• カバー範囲が専門分野や特定業界のように小さくなってくると、VC次元、CRM,ZARA
みたいに「必要度」が減少し
• 一般人の身の回りのようにカバー範囲がもっと狭まると「中川裕志」のように「必要度」
はほとんど無くなるということです。
• 言語学や自然言語処理の研究者の方で、ある単語を消去したら、世界や社会の
構造がどのくらい変わってしまうかという観点から 「単語の社会における必要度」
を、調べた人がいるんでしょうか?
• 対象分野をある程度、限定してみると、大量のコーパスから個別単語の「単語の社
会における必要度」を計算できそうです。
単語の必要度を計算するモデルとして
単語をノードとするグラフ=単語グラフ
• 単語の社会における必要度を計算するには
単語と社会の種々の概念の関係を使うのが
良さそう(今までの議論から)
• ところが、社会における種々の概念は単語で
表現されるので、結局、
単語間の関係をモデル化すればよいのです。
一般的なモデルは単語をノードとするグラフ
基本語彙(単単語)をノードとし、複合語として隣接す
ることはリンクにした場合の単語グラフのイメージ
個人
収集
同意
利用
委員会
特定
データ
法
保護
情報
ビッグ
パーソナル
単語がノードならリンクは何?
• 案1:係り受け関係
– 文法的な意味や重みをリンクに付けられる
– しかし、処理が重たいし、関係に曖昧さあり
• 案2:共起
– 文章内共起、1文内での共起、ある幅の窓内での共起、単なる共起
ではなく隣接共起もあります
– 簡単!
– 重みはコーパス中の全文書での共起回数
• 案3:複合語における関係
– 複合語における共起
– 複合語における隣接共起(前方隣接、後方接続)
 案X:その他いろいろな関係が考えられます。新規で役立つ関係を
見つければ、それだけで大業績!
このスライドの「単語の必要度」もリンクの定義によって変わってきま
す。いろいろなリンクの定義で計算した「単語の必要度」を意味づけし
たり比較検討したりするのは自然言語処理の研究テーマになりそう
です。
単語グラフにおけるグラフの処理
積み上げ型
• 従来の方法はグラフ上で近い位置になる単語の
間の関係から、単語の重要さや類似性を求める
もの。以下にいくつかの例を示します。
複合語抽出 その1
リンクは文における隣接関係 「情報処理」というの
は「情報」と「処理」が隣接
このとき、2単語が同一文内で隣接して出現する頻度
が統計的に有意に高ければ、その2単語は複合語と
みなせます
統計的有意さは、χ二乗検定、Dice係数など
詳細は付録1を参照
単語グラフにおけるグラフの処理
積み上げ型
複合語抽出 その2
リンクの定義は何でもよいです。
単語×単語の行列を作ります。行列の要素はリンク
の重み
リンクに方向性がない(単語×単語)行列の固有値
の大きさを単語の重要度にする方法:
GoogleのPageRankアルゴリズムを単語の重要度計算に応
用みたいな。
リンクに方向性を持たせ、1方向のリンクからなる行
列の固有値を求めるような動作を両方向に繰り返し
て計算する方法
HITSアルゴリズムを単語の重要度計算に応用みたいな
単語グラフにおけるグラフの処理
積み上げ型
複合語抽出 その3:言選Web (昔、私が提案しました)
リンクの定義は同一文内での隣接
前方隣接と後方隣接に分けます。
グラフの次数を使った単語重要度の計算
付録2参照
実働システム
はこちら
グラフの局所的性質
を使っているだけです
単語 3 2 統計
クラス 1 情報
文字 1 1 獲得
「単語情報」という表
現がコーパスに3回
出現=リンク重み
「情報統計」という表
現がコーパスに2回
出現=リンク重み
「文字情報」「クラス情報」
「情報統計」「情報獲得」とい
う表現がコーパスに1回ず
つ出現=リンク重み
単語グラフにおけるグラフの処理
引き算的なやり方
本題に戻りましょう。単語が消失したらときの大変さ
を使って単語の必要度を計算したかったので、積み
上げ型ではなく、引き算的な方法にしたいところです。
では、引き算的ってどうやって実現するのでしょう
か。。。
ある単語が消失したら、単語グラフの構造が変
わります。
それによって、消失前はリンクをたどっていけば
到達できた単語に行き着けなくなると消失した単
語は必要だったんだよな、という考え方。
{複合語,単単語}をノードとし、文内共起や文書内共
起をリンクにした場合の単語グラフのイメージ
政府
データ収集
同意
利活用
設置
パーソナルデータ
ビッグデータ
法改正
委員会
個人情報保護
インターネット
行動履歴 クリック
単語Zの消失による単語A,B間の
損失=
𝐿
𝑁
この損失を全部の単語ペアで
合計したものが単語の必要度
単語 Z
単語 B
単語 A 単語 D
単語 C
.
.
.
.
.
.
単語Aと単語B
をつなぐ経路数
=N
単語Aと単語Bをつなぐ
経路のうち、単語Zの消
失によって切れた数=L
総和総和
• 単語Zを含むリンクが少なければ「必要度」は
低いわけです。
• 単語Zがたくさんのリンクの要素なら、いろい
ろな単語(=概念)をつなぐ要素としてとても
重要です。
• グラフがある分野のコーパスなら、その分野
における単語Zの必要度が分かるということ
です。
• ふむふむ、直感にあっているね!
大規模グラフの処理としての問題
• 単語は一つの言語で105から106(語彙数)=
ノード数
• リンクはコーパスサイズによるが、およそ単語
数の2乗= 1010から1012
• 限定された分野でも語彙は103から104
• 大規模グラフなので、ノード間のリンク列を全
部数え上げるのはかなり大変。効率のよいア
ルゴリズムが欲しいところです。
Betweenness Centarlity
• 損失L/Nは大規模グラフではよく知られたBetweenness
Centarlityという概念の要素です。
• グラフにおいてノードiからノードjへの経路数をgijとしそれ
らの経路のうちノードkを通る経路の数をgikjとします。ノー
ドkのBetweenness Centarlity: BC(j)は次の式で定義されま
す。
• 𝐵𝐶 𝑘 =
𝑔 𝑖𝑘𝑗𝑗𝑖
𝑔 𝑖𝑗𝑗𝑖
• Betweenness Centarlityはネットワーク分野で応用されおり、
疫学などで役立っています。高速に計算するアルゴリズム
の研究も出てきています。
ERATOの大規模グラフプロジェクト(リーダはNII河原林教授)で
も高速計算のアルゴリズムの研究成果が出ています。
そういった成果のアルゴリズムを使って、「単語の必要度」とい
う言語処理分野で研究したら楽しいかもしれません。誰かやっ
てみませんか?
付録1 共起による複合語取り出し
Contingency Matix
二つの単語の連接しての共起の有意さによる
相互情報量
χ2乗検定
Log likelyhood ratio
W1 no W1
W2 a b
no W2 c d
dcbaN
caba
aN
wpwp
wwp
MI 

 ,
))((
log
)2()1(
)2,1(
log
))()()((
)( 2
2
dbcBcaba
bcad



Contingency Matix (相互情報量と例)
二つの単語の連接しての共起の有意さによる
相互情報量
大学 ¬大学
改革 a=10 b=5
¬改革 c=5 d=980
38.83.333log
)510()510(
100010
log
))((
log






caba
aN
MI
Contingency Matix (相互情報量と例-1)
二つの単語の連接しての共起の有意さによる
相互情報量
大学 ¬大学
改革 a=10 b=100
¬改革 c=90 d=800
18.309.9log
)10010()9010(
100010
log
))((
log






caba
aN
MI
相互情報量の問題点
二つの単語の連接しての共起の有意さによる
相互情報量
これでは過大評価dice係数(重み付き)
大学 ¬大学
改革 a=1 b=0
¬改革 c=0 d=999
96.9
)1()1(
10001
log
))((
log 





caba
aN
MI
74.27.6log)
1515
20
10log(
0)
11
2
1log()
)()(
2
log(








Dicepreviouscompare
caba
a
aDice
Contingency Matix (χ2乗検定と例)
二つの単語の連接しての共起の有意さによる
χ2乗検定
自由度1のχ2乗分布で棄却率は0.1%以
下有意に共起
大学 ¬大学
改革 a=10 b=5
¬改革 c=5 d=980
489
9859851515
1098001000 22
2







)(
))()()((
)(
dbdccaba
bcadN

Contingency Matix (χ2乗検定と例-1)
二つの単語の連接しての共起の有意さによる
χ2乗検定
自由度1のχ2乗分布で棄却率は75%以下
有意に共起
大学 ¬大学
改革 a=10 b=100
¬改革 c=90 d=800
11.0
900890100110
)90008000(1000
))()()((
)( 22
2







dbdccaba
bcadN

Likelihood ratio
仮説H1: p(w2|w1)=p(w2|¬w1)
仮説H2: p(w2|w1)>p(w2| ¬w1)
H1,H2のlikelihoodをL(H1),L(H2)とすると
 が閾値Cより小さければ
w1 w2は有意な連語
L(H1),L(H2) の計算はちょっと面倒
)(
)(
loglog
2
1
HL
HL

計算例
N
ba
pwwpwwpH

 )|()|(: 12121
)2,,()1,,()2(
),,(),,()1(
)1(),,(
2)1|2(
,1)1|2(:2
)(
pdbbbpcaabHL
pdbbbpcaabHL
xx
k
n
xnkb
caN
b
db
b
pwwp
ca
a
pwwpH
knk
















 二項分布
計算例
0150
1000
510
12121 .)|()|(: 

 pwwpwwpH
有意に共起
 二項分布





























53)
)2(
)1(
log(
1
1060.1
1039.1
)2(
)1(
)005.0,985,5()67,0,15,10()2,,()1,,()2(
)015.0,985,5()015.0,15,10(),,(),,()1(
)1(),,(
005.0
5980
5
2)1|2(
,67.0
510
10
1)1|2(:2
18
34
)(
HL
HL
HL
HL
bbpdbbbpcaabHL
bbpdbbbpcaabHL
xx
k
n
xnkb
caN
b
db
b
pwwp
ca
a
pwwpH
knk
計算例-1
1.0
1000
9010
)1|2()1|2(:1 

 pwwpwwpH
有意に共起ではない
 二項分布

























68.0)
)2(
)1(
log(
1
1010.4
1058.6
)2(
)1(
)11.0,900,90()1.0,100,10()2,,()1,,()2(
)1.0,900,90()1.0,100,10(),,(),,()1(
)1(),,(
11.0
900
100
2)1|2(
,1.0
100
10
1)1|2(:2
142
142
)(
HL
HL
HL
HL
bbpdbbbpcaabHL
bbpdbbbpcaabHL
xx
k
n
xnkb
caN
b
db
b
pwwp
ca
a
pwwpH
knk
付録2:言選Web
• Pre(N) はコーパスにおいて名詞N に前接し複合名
詞を作る名詞の種類数
• Post(N) はコーパスにおいて名詞N に後接し複合
名詞を作る名詞の種類数
 Pre-freq(N) はコーパスにおいて名詞N に前接し複
合名詞を作る名詞の頻度
 Post-freq(N) はコーパスにおいて名詞N に後接し
複合名詞を作る名詞の頻度
Pre と Post
Pre, Postの計算 作例
例:コーパスから次の出現回数が分かったとする。
 単語 トライグラム(3回)、 トライグラム 統計(2回)
クラス トライグラム(1回)、トライグラム 獲得(1回)
文字 トライグラム(1回)、
-----------------------------------------------------------------------
Pre(トライグラム)=3 Post(トライグラム)=2
Pre-freq(トライグラム)=5 Post-freq(トライグラム)=3
トライグラム(4回)
単名詞のスコア付け
Pre(トライグラム)=3 Post(トライグラム)=2
Pre-ferq(トライグラム)=5 Post-freq(トライグラム)=3
前方接続の頻度 N 後方接続の頻度
3 単語 統計 2
1 クラス 情報
1 文字 獲得 1
• 複合名詞: N1 N2 …Nk の スコアは次のように定義 ただし、
preはpre-freq, postはpost-freqでもよい。
• 作例では、pre,postの場合
• score1(トライグラム)=((3+1)(2+1))1/2=3.46
• pre-freq, post-freq だと
• score2(トライグラム)= ((5+1)(3+1))1/2=4.90
複合名詞に拡張しスコア を定義
k
i
k
i ik NPostPre(NNNorscore 2
1
11 )))1)(()1)((()..)(2(1  
• この方法では、まだ個々の複合名詞の独立した出現を考
慮していないので
• 作例では、トライグラムが4回独立して出現しているので
• score3=score1 ×4 =13.84
• score4= score2 ×4 =19.6
• 我々が日本語の国立情報学研究所提供の用語抽出テ
ストコレクションで実験したところ、score4が一番成績がよ
く、情報工学分野の用語1000語を選んだところ60%強
が人間の選んだ用語と一致した。
)..()))1)(()1)(((
)..(3
21
2
1
1
1
k
k
i
k
i i
k
NNNNPostPre(N
NNscore
独立出現頻度 

もしその単語がなかったら