⾃然⾔語処理によるテキストの理解に向けて
森 信介
京都大学

⾃⼰紹介
⽇本語 Englis.,
⽇本語,Englis França..,França Itali...,Itali
Esp
Esp....,
PoPo.......

2

研究経歴
• 京都⼤学 学⼠ → 修⼠ → 博⼠
– ⾃然⾔語処理• ⽇本アイ・ビー・エム
⽇本アイ ビエム– ⾳声認識・合成• 京都⼤学学術情報メディアセンター 准教授– メディア融合!?

3統計的仮名漢字変換• 確率的モデルによる仮名漢字変換– 森 信介, ⼟屋 雅稔, ⼭地 治, ⻑尾 真
– 情報処理学会論⽂誌,情報処理学会論⽂誌 Vol.40,
l 0 No.7, 1999.
999• ⾃作仮名漢字変換を使っている!!
⾃作仮名漢字変換を使
4

現在の⾃然⾔語処理
形態素解析

1

⽤語認識

2

構⽂解析

3

共参照解析

1. 彼/名詞 と/助詞 清⽔/名詞 寺/名詞 に/助詞 ⾏く/動詞
2 彼/名詞 と/助詞 清⽔/名詞 寺/名詞 に/助詞 ⾏く/動詞
2.
3 彼/名詞 と/助詞 清⽔/名詞 寺/名詞 に/助詞 ⾏く/動詞
3.

4. 彼/名詞 と/助詞 清⽔/名詞 寺/名詞 に/助詞 ⾏く/動詞= ⼩浜バラク= ⾳⽻⼭清⽔寺
54

形態素解析とは• 形態素解析
1. 単語分割
2 品詞推定2.
3. その他タグ (読み, 原型, 正規表記, …)

隠れセミマルコフモデルに基づく教師なし完全形態素解析
内海 慶, 塚原 裕史, 持橋 ⼤地, NLP20156固有表現認識とは•固有表現: 単語列とその種類
種

種類: ⼈名, 地名, 組織名, ⾦額, ⽇付, 時間, 割合, ⼈⼯物• 実世界に対応するのは単語列 (単語の定義の問題)• 拡張固有表現: 約200種
彼/名詞と/助詞清⽔/名詞寺/名詞に/助詞⾏く/動詞

•

Other
Oth
Other
Loc-BeginLoc Intermediate
Loc-Intermediate
OtherOther

種類の定義は課題依存
7

⾃前のツール
形態素解析
KyTea (きゅーてぃー): 単語分割・品詞推定・読み推定
短単位 (国⽴国語研究所)
究所

⽤語認識
PWNER: 学習コーパスが必要 (⼀般的固有表現以外の場合)

構⽂解析
EDA Parser: 単語単位の係り受け (≠ ⽂節)共参照解析
Wikification (後述) を開発中

8

将棋の⾃動解説
⼊⼒: 将棋の局⾯

出⼒ 解説
出⼒:

戦型 はSt/横歩取りに な っ た。

9

局⾯と⽤語の⾃動対応
St: 相振り⾶⾞
St: ⾓換わり
St: 横歩取りReal WorldExpressionp• Three layer perceptron• commentaries
About 300,000
Ab300 000 positionsii
withih(with lots of noisy commentaries ...)

10

A Framework forP
Proceduraldl Text
TUnderstanding
U ddiHirokuni Maeta (Cybozu,(Cybozu Inc.)Inc )Tetsuro Sasada (Kyoto Univ.)
Shi
Shinsukek Mori
M i (Kyoto(K t Univ.)
U i )Special thanks to
Prof. Yoko Yamakata
and Kakenhi Grant

Overview
Procedural text

Flow ggraphp[[Mori+,, LREC14]]

1. 両⼿鍋で油を熱する。
Today’s
セロリと⻘ねぎとニンニクを加え、Talk
１分ほど炒める
１分ほど炒める。
2. ブイヨンと⽔とマカロニと胡椒を加えて、パスタが柔らかくなるまで煮る。
3. 刻んだセージをまぶす。

Cooking robot[B lli i ISER13][Bollini+,Smart kitchen[Hashimoto+ IPMU08][Hashimoto+,

Intelligent search[Yamakata+ SocInfo13][Yamakata+,Cut garlic
Then add it

www.denso.co.jp

12

設計思想
1. 現在の⾃然⾔語処理で⾃動推定可能

構⽂解析
形態素解析

⽤語認識識共参 解析
共参照解析

Text Parsing

2. アノテーターに明快な基準

3 世界史についても取り組み開始
3.
13

FLOW GRAPHSFOR PROCEDURAL TEXT

14

Flow Graphp• Direct acyclic graph (DAG) representing work flow

15

Vertices• Concepts = Important terms (word sequence)16

Vertex Labels
Tag Meaning

RemarksF

FoodEatables including intermediate products,

T

Tool

Knife,, container,, etc.

DDuration

Duration for cooking

QQ
QuantityiQ
Quantity
i off ffooddAc

Sf

Action bychef
Action byfood
Food state

Verbs representing chef’s actions (stemonly)
Verbs representing food’s actions (stemonly)
Food’s initial or intermediate states

St

Tool stateTool’s initial or intermediate states

Af

17

Arcs
• Relationships between two important terms

18

Arcs
• Relationships between two important terms

19

Arcs
• Relationships between two important terms

20Arc Labels
Label

Meaning

RemarkAgentAction agent

Relationship with actions (Ac or Af)

TargAction target

Dest

Action destination

T-compTool complement

Tool used in an action

F-compFood complement

Food used as a tool

F-eq

Food equality

Identical foodF-part-of

Food part-ofRefer to a part of a food

F t
F-set

F d sett
Food

R f toRefert a sett off foods
f dT-eq

Tool equality

Identical tool

T-part-ofTpart ofTool parf
parf-ofof

Refer to a part of a tool

A-eq

Action equality

Identical action (Ac, Af)

V-tm

Head verb for timing, etc.

other-mod

Other relationships
21

PROCEDURAL TEXTUNDERSTANDING22

Procedural Text Understandingg
1. 両⼿鍋で油を熱する。
(I a Dutch(InD t h oven, hheatt oil.)il )セロリと⻘ねぎとニンニクを加え、(Add celery, green onions, and garlic.)
１分ほど炒める。
１分ほど炒める(Cook for about 1 minute.)
2. ブイヨンと⽔とマカロニと胡椒を加えて、パスタが柔らかくなるまで煮る。
(Add broth, water, macaroni, and pepper,and simmer until the pasta is tender.)3. 刻んだセ
刻んだセージをまぶす。
ジをまぶす。
(Sprinkle the snipped sage.)

1. Word segmentationg
2. Concept identification
3. Flow graph estimation23

Procedural Text
1 両⼿鍋で油を熱する
1.
両⼿鍋で油を熱する。
(In a Dutch oven, heat oil.)
セロリと⻘ねぎとニンニクを加え、1分ほど炒める。
セロリと⻘ねぎとン クを加え 1分ほど炒める(Add celery, green onions, and garlic. Cook for about 1 minute.)
2. ブイヨンと⽔とマカロニと胡椒を加えて、(Add broth, water, macaroni, and pepper,パスタが柔らかくなるまで煮る。
and simmer until the pasta is tender.)3. 刻んだセージをまぶす。
(Sprinkle the snipped sage.)24

Stepp 1.

Word Segmentation
gResult:
1. 両⼿ 鍋 で 油 を 熱 する 。
((In a Dutch oven,, heat oil.))
セロリ と ⻘ ねぎ と ニンニク を 加え 、 1 分 ほど 炒め る 。
(Add celerycelery, green onions,onions and garlic.
garlic Cook for about 1 minuteminute.))
2. ブイヨン と ⽔ と マカロニ と 胡椒 を 加え て 、(Add broth
broth, waterwater, macaroni
macaroni, and pepper
pepper,
パスタ が 柔らか く な る まで 煮 る 。
andd simmeri
until
til ththe pastat iis ttender.)d )3. 刻 ん だ セージ を まぶ す 。
(Sprinkle the snipped sage.)
25

Step
p 1.

Word Segmentationg• Pointwise solution [[Neubig+,g , ACL11]]– Binary classification problem at each point– Trainable
T i bl fromfpartiallyti ll segmentedt d sentencest– KyTea: http://www.phontron.com/kytea/

両⼿鍋で油を熱する。
? ? ? ? ? ? ? ? ?
N Y Y Y YY Y N Y

両⼿ 鍋 で 油 を 熱 する 。

26

Step
p 1.

Word Segmentationg• 学習
学習コーパスと異なるテキストに弱い
ス 異なるテキスト 弱– 95%– 多くの⾔語処理応⽤の研究ではこのまま• 対象分野の学習コーパスを追加– 99%– How much?

27

Twittertte の場合
95.50

F-mesu
ure

95.00
94.50
94.00
93.50
93.00
0500

1000

1500

2000

2500

3000

#sentences• ベースラインはかなり低い低• やっぱり Twitter の形態素解析は難しい• 学習コーパス追加で普通に上がる• エラー分析しなくても⾔語資源追加で簡単に上がる

Step
p 2.

Conceptp Identification

Result:
1. /両⼿ 鍋/T で /油/F を /熱/Ac する 。
(Dutch oven)(oil)(heat)/セロリ/F(celery)と /⻘ ねぎ/F と(green onions)/ 1 分 ほど/D(about 1 minute)/ニンニク/F(garlic)を/加え/Ac(add)、/炒め/Ac る 。
(cook)

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Ac
2/加え/Aて 、(broth)(water)(macaroni)(pepper)(add)/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。
(pasta)(tender)(is)(simmer)
3. /刻/Ac ん だ /セージ/F を /まぶ/Acぶす 。
(snipped)(sage)(sprinkle)

29

Step 22.

Concept identification• Same as NER [Mori+, CwC12]
1. BIO2 tagging for each word with a score
2 Search2.
Sh forf ththe b
bestt sequence– PWNER: http://plata.ar.media.kyoto-u.ac.jp/tool/

prob.
T B
T-B
T-I
F-B
…
Other

両⼿鍋

で 油

0.9
09
0.1
00.2
02 0
0.8 0000 00 00.8 00000000000000001

を 熱 する 。

130Stepp 2.

Conceptp Identification• 固有表現認識
固有表現認識の場合
場合– ⼈名, 地名, 組織名, ⾦額, ⽇付, 時間, 割合, ⼈⼯物– 10,000⽂の学習データ
10 000⽂の学習デ タ– 90%• レシピの場合– 分野特有の定義– 3,000⽂の学習データ– 90%– Howo much?
uc31

Cf. 料理オントロジー構築プロジェクト• レシピ⽤語の階層関係
⽤語 階層関係• 難波先⽣ (広島市⽴⼤)• 単位が我々と共通

32

Step
p 3.

Flow Graphp Estimation

Parsingg of a document, not a sentence
Result:

Step
p 3.

Flow Graphp Estimation

1 Maximum Spanning Tree search
1.
–

Logistic regression (LR) scores–

1st order

2 Arc addition
2.
–

DAG constrains–LR score ≶ penalty(n)
34

Step
p 3-1.

Tree Estimation

MST using scores by Logistic Regression
2 /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Ac
2.て 、/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。

LR score + MST
Targ

Targ

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Ac て 、other-mod

Agent

V-tm

Targ

/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。
35

Stepp 3-2.

Arc Addition

Arc addition under some constraints
Targ

Targ

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/AcA
Agenttて 、V-tm

other-mod

Targ/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。

Penaltye a ty foro n-tht aarcc addition
add t oTarg

Targ

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Ac
Agentて 、F-eq
other-mod

V-tm

Targ

/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。

36

Features of a Labeled Arcu

… で /油/F を /熱/Ac する 。
(… heat oil.)
Destv… と /ニンニク/F を /加え/Ac 、 / 1 分 ほど/D /炒め/Ac る 。
(Add … and garlic. Cook for about 1 minute.)

Combination of the followings:- 3 surrounding words of u or v
- function words between u and v- arc label- word sequence, pronunciation, and concept tag of u or v
- whether u and v in the same sentence or not- whether u and v in the same step or not- whether an Ac exists between u and v or notNaïve MST Parser Applicationpp• Onlyy concepts
p are considered.
1. /両⼿ 鍋/T で /油/F を /熱/Ac する 。
(Dutch oven)(oil)(heat)/セロリ/F(celery)と /⻘ ねぎ/F と(green onions)/ 1 分 ほど/D(about 1 minute)/ニンニク/F(garlic)を/加え/Ac(add)、/炒め/Ac る 。
(cook)

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Acて 、(broth)(water)(macaroni)(pepper)(add)/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。
(pasta)(tender)(is)(simmer)
3. /刻/Ac ん だ /セージ/F を /まぶ/Ac す 。
(snipped)(sage)(sprinkle)

38

Procedural Text Understandingg• Words not covered byy concepts
p are clues.
1. /両⼿ 鍋/T で /油/F を /熱/Ac する 。
(Dutch oven)(oil)(heat)/セロリ/F(celery)と /⻘ ねぎ/F と(green onions)/ 1 分 ほど/D(about 1 minute)/ニンニク/F(garlic)を/加え/Ac(add)、/炒め/Ac る 。
(cook)

2. /ブイヨン/F と /⽔/F と /マカロニ/F と /胡椒/F を /加え/Acて 、(broth)(water)(macaroni)(pepper)(add)/パスタ/F が /柔らか/Sf く /な/Af る まで /煮/Ac る 。
(pasta)(tender)(is)(simmer)
3. /刻/Ac ん だ /セージ/F を /まぶ/Ac す 。
(snipped)(sage)(sprinkle)

39

EVALUATION

40

ExperimentalpSettingsg• Criterion: F-measure– Harmonic mean of precision and recall– Unit: labeled arcs

• Recipe flow graph corpus (r-FG corpus)– Randomly downloaded from CookPad– Manuallyy annotated with flow graphsg p– Available at http://plata.ar.media.kyoto-u.ac.jp/data/recipe/#Recipes
200#Sent.
#Sent
1,303#Vertices #Words
7,268
25,446→ 10-fold cross validation

41

Flow Graphp Estimation• Baseline: naïve application
ppof an MST p
parser– Input: a concept sequence (cf. word sequences)– MST + arc addition
dditi– Ignore words not covered by the concepts
MethodPrecision

RecallF-measure

Baseline
Bli
Proposed

65.1
65
1
73.5

61.5
615
69.1

63.2
63
2
71.2

• Words other than concepts are important forflow graph estimation.
estimation
42

Text Parsing
g on a Raw Text
Task

Word segmentation (WS)Concept Identification (CI)
Flow Graph Estimation (FGE)
WS + CI + FGE

Input

Raw Recipe Texts
Gold WS resultsGold WS/CI results
Raw Recipep Texts

F

98.6
90.7
72.1
51.6

• WS
• Enoughg highg and well solved• CI• Less accurate than WS• Needs
N d improvement
ior more resource• FGE• Least accurate,accurate most difficult• Needs more resource or more sophisticated techniques
43CONCLUDING REMARKS

44

Conclusion
Procedural text

Flow ggraphp[[Mori+,, LREC14]]

1. 両⼿鍋で油を熱する。
Today’s
セロリと⻘ねぎとニンニクを加え、Talk
１分ほど炒める
１分ほど炒める。
2. ブイヨンと⽔とマカロニと胡椒を加えて、パスタが柔らかくなるまで煮る。
3. 刻んだセージをまぶす。

• Framework forprocedural text understanding
1 Word segmentation (for Japanese or Chinese)
1.
2. Concept identification
3 Flow
3.
Flgraphh constructiontti((mostt diffidifficult)lt)•Referring to words other than concepts as clues

45

Applications
pp
Procedural text

Flow ggraphp[[Mori+,, LREC14]]

1. 両⼿鍋で油を熱する。
Today’s
セロリと⻘ねぎとニンニクを加え、Talk
１分ほど炒める
１分ほど炒める。
2. ブイヨンと⽔とマカロニと胡椒を加えて、パスタが柔らかくなるまで煮る。
3. 刻んだセージをまぶす。

Cooking robot[B lli i ISER13][Bollini+,

Smart kitchen[Hashimoto+ IPMU08][Hashimoto+,Intelligent search[Yamakata+ SocInfo13][Yamakata+,

Cut garlic
Then add it

www.denso.co.jp

46

FlowGraph2Text:p
Automatic
Sentence Skeleton Compilationf PforProceduraldlT
Textt GGenerationti
Shinsuke Mori (Kyoto Univ.)
Univ )
et al.

Overview
Procedural text

1. 両⼿鍋で油を熱する。
セロリと⻘ねぎとニンニクを加え、１分ほど炒める。
2 ブイヨンと⽔とマカロニと胡椒を加え2.て、パスタが柔らかくなるまで煮る。
3. 刻んだセージをまぶす。

Smart kitchen[Hashimoto+ IPMU08][Hashimoto+,

Flow ggraphp[[Mori+,, LREC14]]

Today’sTalk

Cooking vodeo

Intelligent search[Yamakata+ SocInfo13][Yamakata+,

Cut garlic
Then add it48

⽅針
• テンプレートで解決 (⽂法学習では先が⻑すぎ)– テンプレートを⾃動⽣成• 実際のレシピの重要語を変数化– 変数化する箇所を⾃動認識49

概要
1. 部分グラフを抽出
両⼿ 鍋

油熱セロリ⻘ ねぎ

ニンニク

加え

2 ⼤量の例⽂集(Skeleton
2.
⼤量の例⽂集(Sk l t PPool)の検索l)の検索でをする、、をる

3. 内容語を置き換え
両⼿ 鍋 で 油 を 熱 する セロリ、⻘ ねぎ、ニンニク を 加える
50

研究課題
1.

部分グ部分グラフをどう抽出するか？
をど 抽出す か2.

例⽂検索の⽅法は？

3.

置き換えの時の問題点は？

4.

どの程度のサイズの例⽂集が必要か？

5.

⽣成された⽂の質は？

51

1. 部分グラフの抽出⽅法• 調理者動作を含む部分グラフを深さ優先探索52

2. 例⽂検索の⽅法
1. ⼤量の例⽂を収集
2. レシピ⽤語を⾃動認識 (精度90%)
3 レシピ⽤語をクラス名で置き換え
3.

Sentence Skeleton Pool
723:

で212
212:

、するを、をる…

4. 部分グラフのクラス列を検索 (→半順序)
5. 最⼤頻度の最⼤頻度 Skeleton を選択 (→⾔語モデル参照)
語 デ 参照53

研究課題
部分グ部分グラフをどう抽出するか？
をど 抽出す か

例⽂検索の⽅法は



置き換えの時の問題点は？

4.

どの程度のサイズの例⽂集が必要か？

5.

⽣成された⽂の質は？

54

Skeleton Pool Size を変化させた
結果
40レシピ(約300部分⽊)から⽂⽣成

skeleton pool の作成に⽤いる⽂の数

2,769

11,07744,308177,235

708,940(1/256)(1/64)(1/16)

(1/4)

(1/1)

skeletonなし部分⽊

52

27

1794

平均 skeleton 数

37.4

124.3

450.2

1598.15483.3

BLEU

11.19

11.25

12.86

13.1213.76• Skeleton なしの部分⽊がある• 平均 skeleton
k l t
数は⼗分skeleton
k l t
選択を⼯夫

• BLEU: 元テキストに対する n 単語列のマッチ割合– n = 1, 2, 3, 4 の幾何平均

55

主観評価

•

Q1: ⽂法誤りの数, Q2: 意味が不明確な表現の数,Q3: 元レシピとの⽐較 (5段階)•

すべて BLEU と相関がある

機械的評価でOK

56

テキスト ⇔ グラフ
テキスト

フフローグラフグラフ

57

インターネット情報の分析•市井の声をタイムリーに分析
市井の声をタイムリ に分析•Citizen Sensor [Sheth, IEEE I’net Comp., 2009]•マイクロブログの分析
マイクロブログの分析 [新⽥+,[新⽥ DBSJ,DBSJ 2014]

清⽔の
舞台なう

単語分割
品詞推定

清⽔/名詞の/助詞
舞台 名詞
舞台/名詞
なう/感動詞

テキスト
マイニング

実世界
観測情報

58

実世界についての⾃然⾔語処理•⾔語表現と実世界の対応（固有名詞など）
⾔語表現と実世界の対応（固有名詞など）•実世界の対象間の関係（寺院／場所など）•テキストから Wikipedia のリンク
cat oWikification

59

Wikification•mentionti から Wikipedia
Wiki di entry
t への mappingi•表層ゆれ解消+曖昧性解消（多対多）清⽔の舞台なう
清⽔寺もいったし⼋坂さんもいったし、最⾼や⻄国三⼗三札所巡りもついに第25番清⽔寺
清⽔寺
⼋坂神社

清⽔寺 (加東市)
60

Wikification の利点
観光ガイド

写真位置61

にない表現の共参照解析•Wikipediaにない表現
Wiki di にない表現•最新の情報•エントリーを⽴てるほどでもない表現
ど表•クラスタリング

62