27
FSNLPを読む - 1. Introduction #tokyotextmining @nokuno

FSNLPを読む - 1. Introduction #TokyoTextMining

Embed Size (px)

Citation preview

Page 1: FSNLPを読む - 1. Introduction #TokyoTextMining

FSNLPを読む - 1. Introduction

#tokyotextmining

@nokuno

Page 2: FSNLPを読む - 1. Introduction #TokyoTextMining

Twitter: @nokuno

はてな:id:nokuno

Social IME開発者

自然言語処理とか

RとかPRMLとか

Web業界でプログラマをやってます

自己紹介 2

Page 3: FSNLPを読む - 1. Introduction #TokyoTextMining

この本では理論と実践のバランスを取ろうと試みた

ひとつの基準は、この本をまともなサイズに収めることである(これには若干失敗した!)

確率論の全てをカバーしない(訳注:PRML読んでね)

音声認識をカバーしない。ただし言語モデルは共通する

統計的とそうでない自然言語処理の境界は曖昧である

データに基づく統計的自然言語処理が流行っている

(ので本を書きましたテヘッ)

はじめに(Preface) 3

Page 4: FSNLPを読む - 1. Introduction #TokyoTextMining

準備編:導入、数学、言語学、コーパス

単語編:共起、n-gram、語義曖昧性、語彙獲得

文法編:マルコフモデル、POSタギング、確率的CFG、構文解析

応用編:機械翻訳、クラスタリング、情報検索、テキスト分類

必ずしも前から順に読む必要はない

準備編、単語編、文法編、応用編の4つで構成

この本の構成(Road Map) 4

Page 5: FSNLPを読む - 1. Introduction #TokyoTextMining

ルールベース

ルールは天下り的に定める

ルールに沿わない例外が存在する

統計的手法

言語が使われた中で共通するパターンを見つける

主要な道具は頻度カウントと確率論

ルールベースには限界があるので統計的手法を採用

導入(1. Introduction) 5

Page 6: FSNLPを読む - 1. Introduction #TokyoTextMining

合理主義者「人間は生まれつき言語能力を持つ」

経験主義者「言語は成長の過程で学習される」

経験主義(1920-1960)→合理主義(1960-1985)→コーパスを得て経験主義が復活(現在)

合理主義者は「言語能力」に、経験主義者は「言語表現」に着目している

チョムスキー滅びろ 合理主義より経験主義の方が

コンピュータでの処理には向いている

合理主義者 V.S. 経験主義者(1.1) 6

Page 7: FSNLPを読む - 1. Introduction #TokyoTextMining

言語学が答えるべき2つの質問 どんな種類のことを言っているのか?実世界の何について言っているのか?

従来の言語学ルールにより文法的に正しいかを2値判別する文法的に正しくても意味をなさない文は?

統計的手法文法的に正しい文と正しくない文の境界を和らげる文法的に正しい文をさらに詳しく解析できる

統計的手法は単なる技術ではなく、

言語を科学的に理解するための道具になりうる

科学的な価値(1.2) 7

Page 8: FSNLPを読む - 1. Introduction #TokyoTextMining

曖昧な言語現象

複数の品詞を持つ単語の曖昧さ

言語自体の使われ方の段階的な変化

確率的現象としての言語と認知

人間は確率的なのでは?

我々は不確実性と不完全な情報の世界に生きている

直感的な疑問

チョムスキー「統計とってもデータに現れないパターンは扱えないんじゃね?」→スムージングでおk

統計的手法は意味を扱えない?→そんなことはない

科学的な価値(1.2.2-1.2.3) 8

Page 9: FSNLPを読む - 1. Introduction #TokyoTextMining

テキストを単語のリストと見なして頻度を集計

ワードカウント(1.4.2) 9

この章ではトム・ソーヤのテキストを用いる

選んだテキストによって結果が異なる

その言語の「代表的な」テキストを選ぶのは難しい

大規模で多様なテキストを用いるのが望ましい

Page 10: FSNLPを読む - 1. Introduction #TokyoTextMining

日本語Wikipediaから単語カウントした上位10件

頻度表 10

単語 品詞 頻度

の 助詞 13077330、 記号 12466161。 記号 9253307に 助詞 8296232は 助詞 7891955を 助詞 6668753た 助動詞 6316055が 助詞 5812245て 助詞 4210311と 助詞 4144209

Page 11: FSNLPを読む - 1. Introduction #TokyoTextMining

頻度表 11

Table 1.1 トム・ソーヤに出現する高頻度の単語

著者のサポートページより図表がダウンロード可能

Page 12: FSNLPを読む - 1. Introduction #TokyoTextMining

頻度の頻度 12

Table 1.2 単語タイプの「頻度の頻度」、トム・ソーヤより集計

単語タイプの頻度の平均は9.8!

頻度の高い機能語が多すぎる

Page 13: FSNLPを読む - 1. Introduction #TokyoTextMining

単語数:71,370個

単語タイプ:8,018種類

子供向けなので易しい語彙が中心

同じサイズのニュース記事には11,000種類

頻度の偏り

上位100種類の単語タイプがテキストの50.9%を占める

単語タイプの約半分(49.8%)が1回しか出現しない

単語タイプの90%は10回以下しか出現しない

3回以下の単語タイプがテキスト中で12%も現れる

頻度から分かること 13

Page 14: FSNLPを読む - 1. Introduction #TokyoTextMining

f: 単語の頻度

r: 頻度の順位

単語の頻度は頻度の順位に反比例する

Zipfの法則(1.4.3) 14

rf

1 krf

とすると

または (定数)

※ r は単語タイプを頻度順にソートして得られる順位

【参考】 Least Effort 原理: 人々は努力を最小化しようとする

Page 15: FSNLPを読む - 1. Introduction #TokyoTextMining

Zipfの法則:トム・ソーヤの例 15

Table 1.3 トム・ソーヤにおけるZipfの法則

Page 16: FSNLPを読む - 1. Introduction #TokyoTextMining

Zipfの法則(ブラウンコーパスの例) 16

Figure 1.1 Zipfの法則(横軸と縦軸は対数スケール、ブラウンコーパスより)

f×r = 100,000

Page 17: FSNLPを読む - 1. Introduction #TokyoTextMining

Mandelbrotの法則 17

または

そんなに精度が欲しければノンパラで(ry

Page 18: FSNLPを読む - 1. Introduction #TokyoTextMining

その他の法則 18

fm

単語の意味の数についての法則

m : 辞書中の意味の数

同じ単語が現れる間隔についての法則

F: 間隔Iでの出現頻度I: 同じ単語が現れる間隔p: 定数(1~1.3)

pIF

単語の長さについての法則 (参考: テキストデータの統計科学入門, 金明哲著)

P:ポアソン分布X: 単語の長さλ=1.3)!1(

)(1

xexXP

x

Page 19: FSNLPを読む - 1. Introduction #TokyoTextMining

bigramによる複合語(?)抽出 19

•New York Timesの高頻度なbigram

•一般語が高く評価されすぎている•前置詞+冠詞が多すぎる•「New York」のみがまともな複合語

Page 20: FSNLPを読む - 1. Introduction #TokyoTextMining

品詞による複合語抽出 20

パターン1:「形容詞+名詞」パターン2:「名詞+名詞」概ね複合語が抽出できてい9る「last year」などはノイズ

詳しくは5章で!

Page 21: FSNLPを読む - 1. Introduction #TokyoTextMining

用例検索(Tom Sowyerより)の表現方法

特定の単語の前後の文脈を表示する

KWIC (Key Word In Context) 21

Page 22: FSNLPを読む - 1. Introduction #TokyoTextMining

文脈を(人間が)見てパターン抽出できる

統語的な枠組み(syntactic frame)というらしい

KWICによるフレーム獲得 22

Page 23: FSNLPを読む - 1. Introduction #TokyoTextMining

ご清聴ありがとうございました

23

Page 24: FSNLPを読む - 1. Introduction #TokyoTextMining

品詞(Part-Of-Speech; POS)の英単語 24

noun verb adjective adverb preposition

名詞 動詞 形容詞 副詞 前置詞

determiner conjunction subject predicate

限定詞 接続詞 主語 述語

Page 25: FSNLPを読む - 1. Introduction #TokyoTextMining

Our company is training workers. - (1.10)

構文木についての曖昧さ

組み合わせが爆発する

"swallow"は主語に動物、目的語に物を取る

比喩表現を許さないルール

NLPがなぜ難しいか?

言語の曖昧さ 25

Page 26: FSNLPを読む - 1. Introduction #TokyoTextMining

コーパス

タグ付き

辞書

シソーラス

Brown Corpus便利

言語資源(1.4.1) 26

Page 27: FSNLPを読む - 1. Introduction #TokyoTextMining

0

500

1000

1500

2000

2500

3000

3500

4000

4500

1 2 3 4 5 6 7 8 9 10

頻度の頻度 27

単語の頻度

頻度の頻度

平均

ロングテール