octgridに対する属性グラフ文法による矩形数え上げ

octgridに対する属性グラフ文法に
よる矩形数え上げ
◎金澤 佑治 (東洋大学)
切島 忠昭 (東洋大学)
塩野 康徳 (東洋大学)
夜久 竹夫 (日本大学)
土田 賢省 (東洋大学)
2008/03/19
電子情報通信学会 2008年総合大会
1
発表内容
1 はじめに
1. 1 背景
1. 2 目的
2 準備
2. 1 octgrid
2. 2 Graph Grammar for Tessellation Graphs
3 本研究
3. 1 処理概要
3. 2 文脈依存グラフ文法における導出グラフの提案
3. 3 矩形数え上げのための属性定義
4 実装
5 まとめ
2008/03/19
電子情報通信学会 2008年総合大会
2
1. 1 背景
1. 2 目的
1 はじめに
2008/03/19
電子情報通信学会 2008年総合大会
3
1. 1 背景(1/2)
• ユーザインターフェースの中で情報を表示するため
に,表は重要な役割を果たしている
• 我々のプロジェクト
– 汎用な表のモデル化 → octgrid
– 汎用な表に対するグラフ文法の定義 → GGTG
– octgridに基づく効率的な表処理系やアプリケーションの
開発
– 表処理系には,GGTGに基づくパーザも組み込んだ
2008/03/19
電子情報通信学会 2008年総合大会
4
1. 1 背景(2/2)
• 関連研究
– 表形式文書解析と合成システム
• A. Amano, N. Asada, T. Motoyama, T. Sumihoshi, and K.
Suzuki,
“Table Form Document Synthesis by Grammar-Based
Structure Analysis,”
6th ICDAR, pp. 533-537, 2001.
• 文脈自由文法に基づく表構造を解析し,合成
された文書を生成する
– スライス構造を持つ表のみを扱っており,
表編集操作を考慮したものではない
2008/03/19
電子情報通信学会 2008年総合大会
5
1. 3 目的
• グラフ文法の応用
– 表が適正な矩形分割図形であるかどうかの判定
– 表に存在する各サイズの矩形の個数を種類ごと
に数え上げる形式的な方式の提案
• それらの表処理系への実装
2008/03/19
電子情報通信学会 2008年総合大会
6
2. 1 octgrid
2. 2 Graph Grammar for Tessellation Graphs
2 準備
2008/03/19
電子情報通信学会 2008年総合大会
7
2. 1 octgrid
• 表のグラフ表現
–
–
–
–
セルをノードで表現
表の周囲に,基準となる周辺セルを持つ
辺の位置が等しいセルとの関係をエッジで定義
ノードの最大次数は8
図1 表の罫線図(左)とそれに対応するoctgrid
2008/03/19
電子情報通信学会 2008年総合大会
8
2. 2 Graph Grammar for Tessellation
Graphs (1/3)
• 文脈依存グラフ文法
[8]
a-l-h-nwe
a-r-h-swe
a-l-h-swe
Ed1
[4]
L4-d-v-ewe
L4-d-v-wwe
L4-u-v-wwe
a-l-h-nwe
[5]
D1
[9]
n-r-h-nwe
Er2
[6]
El2
[2]
n-l-h-nwe
L2-r-h-swe
a-r-h-swe
L2-l-h-swe
a-l-h-swe
Ed1
[4]
図 2 文法GGTGの生成規則の例
2008/03/19
電子情報通信学会 2008年総合大会
Er1
n-l-h-swe
L1-u-v-ewe
M2
a-r-h-nwe
n-r-h-swe
L1-d-v-ewe
L1-d-v-wwe
L2-l-h-swe
[1]
L3-l-h-nwe
L1-u-v-wwe
L2-l-h-nwe
L2-r-h-swe
[5]
El1
a-r-h-nwe
L1-d-v-ewe
[2]
L3-r-h-nwe
Er1
a-d-v-ewe
a-u-v-ewe
a-d-v-wwe
a-u-v-wwe
El2
a-l-h-nwe
a-r-h-swe
a-l-h-swe
L3-l-h-swe
L2-r-h-nwe
a-r-h-nwe
L1-d-v-wwe
[7]
L4-u-v-ewe
L4-d-v-ewe
M1
L1-u-v-ewe
[1]
L3-l-h-nwe
L3-r-h-swe
L4-u-v-wwe
L4-d-v-wwe
L3-r-h-nwe
El1
L4-u-v-ewe
[3]
[3]
L1-u-v-wwe
– パーザの開発を想定し
て構成
– 非スライス構造を含む
任意の表構造を定義
– 生成規則数:18,437個
Eu1
Eu1
9
Er2
[6]
2. 2 Graph Grammar for Tessellation
Graphs (2/3)
Eu1
Eu1
L4-d-v-ewe
L4-u-v-wwe
L4-d-v-wwe
a-r-h-nwe
a-l-h-nwe
L3-l-h-nwe
n-r-h-swe
Er1
[5]
n-l-h-swe
D1
[9]
a-l-h-swe
Er2
[6]
El2
[2]
n-l-h-nwe
L2-r-h-swe
a-r-h-swe
L2-l-h-swe
a-l-h-swe
Ed1
Er2
[6]
L1-u-v-ewe
a-l-h-nwe
a-r-h-swe
n-r-h-nwe
L1-d-v-ewe
[8]
L1-d-v-ewe
L1-d-v-wwe
L2-l-h-swe
[1]
a-r-h-nwe
M2
L1-u-v-wwe
[2]
L2-l-h-nwe
L2-r-h-swe
[5]
El1
a-d-v-ewe
a-u-v-ewe
a-d-v-wwe
a-u-v-wwe
El2
Er1
a-l-h-swe
L3-l-h-swe
L2-r-h-nwe
a-l-h-nwe
a-r-h-swe
L1-u-v-wwe
[7]
L4-u-v-ewe
L4-d-v-ewe
M1
L3-r-h-nwe
L1-d-v-wwe
[1]
L3-l-h-nwe
L3-r-h-swe
a-r-h-nwe
L1-u-v-ewe
El1
L4-u-v-wwe
L4-d-v-wwe
L3-r-h-nwe
L4-u-v-ewe
[3]
[3]
Ed1
[4]
[4]
図 2 文法GGTGの生成規則の例
2008/03/19
電子情報通信学会 2008年総合大会
10
2. 2 Graph Grammar for Tessellation
Graphs (3/3)
• 特徴
– あいまい性がない
– 無用なルールはできるだけ排除している
– 導出過程で,ホストグラフにおいて,生成規則が
適用できる箇所は1ヶ所しかない
2008/03/19
電子情報通信学会 2008年総合大会
11
3. 1 処理概要
3. 2 文脈依存グラフ文法における導出グラフの提案
3. 3 矩形数え上げのための属性定義
3 本研究
2008/03/19
電子情報通信学会 2008年総合大会
12
3. 1 処理概要 (1/3)
• 矩形数え上げ
– 表に存在する各サイズの矩形の個数を種類ごと
に数え上げる形式的な方式
– GGTGに基づく属性グラフ文法を用いる
2008/03/19
電子情報通信学会 2008年総合大会
13
3. 1 処理概要 (2/3)
1. GGTGに基づく構文解析
– 入力グラフがoctgridであるかどうかの判定
入力:グラフ
構文解析
GGTG
導出グラフ
属性評価
意味規則
出力:存在する矩形の種類と
その種類ごとの個数
図 3 矩形数え上げの処理の流れ
2008/03/19
電子情報通信学会 2008年総合大会
14
3. 1 処理概要 (3/3)
2. 意味規則を用いた属性評価
– 属性評価の結果(矩形数え上げの結果)を出力
入力:グラフ
構文解析
GGTG
導出グラフ
属性評価
意味規則
出力:存在する矩形の種類と
その種類ごとの個数
図 3 矩形数え上げの処理の流れ
2008/03/19
電子情報通信学会 2008年総合大会
15
3. 2 文脈依存グラフ文法における
導出グラフの提案 (1/6)
• 概要
– 導出におけるノードの置換過程を表す
– 生成されるグラフに含まれるノード情報は持つが,
ノード間のエッジに関する情報は持たない
2008/03/19
電子情報通信学会 2008年総合大会
16
3. 2 文脈依存グラフ文法における
導出グラフの提案 (2/6)
• 例
– 文法GGTGの導出グラフ中の,生成規則P1-3-T02-0001
を適用する部分
P
P
C1
B
B
P1-3-T02-0001
P1-3-T02-0001
I
C2
図 4 導出グラフの例
2008/03/19
電子情報通信学会 2008年総合大会
17
3. 2 文脈依存グラフ文法における
導出グラフの提案 (3/6)
生成規則名
P
ノード
P
C1
B
B
P1-3-T02-0001
P1-3-T02-0001
I
C2
図 4 導出グラフの例
2008/03/19
電子情報通信学会 2008年総合大会
18
3. 2 文脈依存グラフ文法における
導出グラフの提案 (4/6)
• 実線枠と実線矢印
– マザーノード,ドーターノードと,その置換の流れを表現
– マザーノードは,エッジラベルの生成規則を適用すること
で,ドーターノードへと置換
マザーノード
P
C1
ドーターノード
P
B
B
P1-3-T02-0001
P1-3-T02-0001
I
C2
図 4 導出グラフの例
2008/03/19
電子情報通信学会 2008年総合大会
19
3. 2 文脈依存グラフ文法における
導出グラフの提案 (5/6)
• 点線枠と点線矢印
– 枠内は近傍ノード
– エッジは,その近傍ノードがどの生成規則中のドーター
ノードに隣接しているかを表現
近傍ノード
P
P
C1
B
B
P1-3-T02-0001
P1-3-T02-0001
I
C2
図 4 導出グラフの例
2008/03/19
電子情報通信学会 2008年総合大会
20
3. 2 文脈依存グラフ文法における
導出グラフの提案 (6/6)
S
P1-1-T01-0001
A1
A2
生成規則 適用順序
P1-1-T02-0001
P1-1-T02-0001
A2
A3
P1-1-T03-0001
P1-1-T03-0001
1 : P1-1-T01-0001
2 : P1-1-T02-0001
3 : P1-1-T03-0001
4 : P1-1-T04-0001
...
...
A
P1-1-T04-0001
P1-1-T04-0001
A
P1-1-T04-0001
図A 1×1の表を導出する導出グラフの始めの部分
2008/03/19
電子情報通信学会 2008年総合大会
21
3. 3 矩形数え上げのための属性定義 (1/3)
• GGTGを基に,矩形数え上げのための属性
グラフ文法を定義した
2008/03/19
電子情報通信学会 2008年総合大会
22
3. 3 矩形数え上げのための属性定義 (2/3)
• 属性
表 1 矩形数え上げで用いられる属性
row
矩形の行数
column
矩形の列数
count
表に存在する各矩形の行・列数を連ねた文字列
– 属性countは,count自身の他,属性row,columnおよび
連接演算子‘・’により定義
2008/03/19
電子情報通信学会 2008年総合大会
23
3. 3 矩形数え上げのための属性定義 (3/3)
• 意味規則
– 本文法では,マザーノードとドーターノードのラベルに付
随する属性のみ使用
– 意味規則の種類:10種類
Eu1
El1
m1
M1
Eu1
Er1
Er1
El1
D1
El2
m2
M2
Ed1
Er2
El2
Er2
row(M1) = row(D1)+1
row(M2) = 0
column(M1) = column(D1)
column(M2) = 0
Ed1
図 5 生成規則(左)に付随する意味規則(右)
2008/03/19
電子情報通信学会 2008年総合大会
24
4 実装
2008/03/19
電子情報通信学会 2008年総合大会
25
4 実装
• 定義した矩形数え上げ文法とその属性評価
機構を表処理系に実装した
– Javaで実装
– ステップ数
• 処理系全体:約510,000ステップ
• 属性評価:約1,000ステップ
2008/03/19
電子情報通信学会 2008年総合大会
26
デモ
• 矩形数え上げ
– octgridである複雑な表
– octgridでない表
2008/03/19
電子情報通信学会 2008年総合大会
27
5. 1 まとめ
5. 2 今後の課題
5 まとめ
2008/03/19
電子情報通信学会 2008年総合大会
28
5. 1 まとめ
• 矩形数え上げ文法の定義,実装
– 表に存在する各矩形の大きさを算出し,サイズ
ごとに矩形の個数を数え上げる文法の定義
– 文脈依存グラフ文法における導出グラフの提案
– 矩形数え上げ文法の表処理系への実装
2008/03/19
電子情報通信学会 2008年総合大会
29
5. 2 今後の課題
• 今回定義した文法や手法を応用した,様々な
表に対する意味処理の実現
2008/03/19
電子情報通信学会 2008年総合大会
30
2008/03/19
電子情報通信学会 2008年総合大会
31
スライス構造と非スライス構造の例
図B スライス構造
2008/03/19
図C 非スライス構造
電子情報通信学会 2008年総合大会
32
2. 2 Graph Grammar for Tessellation
Graphs (補足)
• GGTGによるパーズの計算量
– O(n)
• nは,パーズを行なうグラフに含まれるノードの個数
2008/03/19
電子情報通信学会 2008年総合大会
33
矩形数え上げ
• パーズをすることで,処理対象のグラフが
octgridであることを保証
2008/03/19
電子情報通信学会 2008年総合大会
34
属性評価の例(1/5)
図D 対象の表
2008/03/19
電子情報通信学会 2008年総合大会
35
属性評価の例(2/5)
P-ul
P-U
P
P-UR
P-ul
P-l
I3
I2
P-r
P-l
P-U
P
P-UR
I2
P-r
I2
P-r
P-d
P-lr
I3
P3-3-T01-0003
P-l
I2
I2
P-r
P-l
P-ll
P-d
P-d
P-lr
P-ll
P-d
図E セルを結合するための生成規則の適用の様子
2008/03/19
電子情報通信学会 2008年総合大会
36
属性評価の例(3/5)
P3-3-T01-0003
P-ul
P-U
P
P-UR
P3-3-T01-0003
P-l
I3
I2
P-r
I3
P-l
I2
I2
P-r
P3-3-T01-0003
P-ll
P-d
P-d
P-lr
P3-3-T01-0003
図F 対応する導出グラフ
2008/03/19
電子情報通信学会 2008年総合大会
37
属性評価の例(4/5)
P3-3-T01-0003
表A ノードラベルと属性
P-ul
P-U
P
P-UR
P3-3-T01-0003
P-l
I3
I2
P-r
ノードラベル
付加される属性
I2
row, column
I3
row, column
I3
P-l
I2
I2
P-r
P3-3-T01-0003
P-ll
P-d
P-d
P-lr
P3-3-T01-0003
2008/03/19
電子情報通信学会 2008年総合大会
38
属性評価の例(5/5)
row(I3m) = row(I3d)+1
row(I2) = 0
column(I3m) = column(I3d)
column(I2) = 0
P3-3-T01-0003
P-ul
P-U
P
P-UR
P3-3-T01-0003
P-l
I3
I2
図G 意味規則
P-r
I3
P-l
I2
I2
表B 属性値
P-r
マザーノード ドーターノード
P3-3-T01-0003
P-ll
P-d
P-d
P-lr
P3-3-T01-0003
2008/03/19
属性
I3
I2
I3
row
2
0
1
column
1
0
1
電子情報通信学会 2008年総合大会
39
2008/03/19
電子情報通信学会 2008年総合大会
40
型の説明(1/6) グラフの形
NODE
LABEL
ewe
NODE
LABEL
nwe
wwe
NODE
LABEL
swe
NODE
LABEL
2008/03/19
電子情報通信学会 2008年総合大会
41
型の説明(2/6) 型α(横増加)
Mother Graph
Daughter Graph
nwe
m1
d1
d2
swe
2008/03/19
電子情報通信学会 2008年総合大会
42
型の説明(3/6) 型β(縦増加)
Daughter Graph
m1
d1
ewe
wwe
Mother Graph
d2
2008/03/19
電子情報通信学会 2008年総合大会
43
型の説明(4/6) 型γ(横結合)
Mother Graph
Daughter Graph
nwe
m1
m2
d1
swe
2008/03/19
電子情報通信学会 2008年総合大会
44
型の説明(5/6) 型δ(縦結合)
Mother Graph
Daughter Graph
ewe
wwe
m1
d1
m2
2008/03/19
電子情報通信学会 2008年総合大会
45
型の説明(6/6) 型ω(縦横維持)
Mother Graph
Daughter Graph
m1
d1
2008/03/19
電子情報通信学会 2008年総合大会
46
3. 3 矩形数え上げのための属性定義
(補足1/3)
表C 矩形数え上げに用いる属性
属性名
説明
row
付加されたラベルを持つノードに対応するセルの行数.
整数値が代入される.
column
付加されたラベルを持つノードに対応するセルの列数.
整数値が代入される.
count
グラフに対応する表中に存在する各矩形の行数と列数を連ね
た文字列.
矩形一つは「[r,c]」(rはその矩形の行数,cは列数を表す整数
値)と記述する.各矩形情報間はカンマ記号(,)で区切られる.
例:表中に4個の矩形が存在していた場合,
「[r1,c1], [r2,c2], [r3,c3],[r4,c4]」
2008/03/19
電子情報通信学会 2008年総合大会
47
3. 3 矩形数え上げのための属性定義
(補足2/3)
表D 数え上げに使用する意味規則
型
α
β
γ
意味規則
説明
count(m1) = count(d1)“,”count(d2)
countの結合
count(m1) = count(d2)
countの受け渡しのみ
count(m1) = count(d2)
countの受け渡しのみ
count(m1) =
count(d1)“,[“row(d1)“,”column(d1)“]”
countに矩形情報を1つ追加
row(m1) = row(d1)
row(m2) = 0
column(m1) = column(d1)+1
column(m2) = 0
横結合の解除.
row,columnは解除後の左側
のセルに受け渡す.
columnの値を1増やす
2008/03/19
電子情報通信学会 2008年総合大会
48
3. 3 矩形数え上げのための属性定義
(補足3/3)
表D 数え上げに使用する意味規則(続き)
型
δ
意味規則
row(m1) = row(d1)+1
row(m2) = 0
column(m1) = column(d1)
column(m2) = 0
ω row(m1) = 1
column(m1) = 1
説明
縦結合の解除.
row,columnは解除後の上側
のセルに受け渡す.
rowの値を1増やす
内部セルに使用.
rowおよびcolumnの初期化
row(m1) = row(d1)
column(m1) = column(d1)
内部セルに使用.
row,columnの受け渡しのみ
count(m1) = “”
countの初期化
count(m1) = count(d1)
countの受け渡しのみ
2008/03/19
電子情報通信学会 2008年総合大会
49
2008/03/19
電子情報通信学会 2008年総合大会
50
1. 1 背景(3/3)
• 文献[8]では,グラフ文法に基づく構造解析を提示し
ている.また,構造とレイアウト情報を含む,XMLに
基にしたTFML[8]の提案も行なっている.
– TFMLの基本構造は,文書の表示パターンを反映してい
る.
• これらのシステムは,スライス構造を持つ表のみを
扱っており,表編集操作を考慮したものではない.
• [8]のグラフ表現の次数は制限無く増加する.
• TFMLは,表示構造を持つ非スライス構造の表を表
現することができない.
2008/03/19
電子情報通信学会 2008年総合大会
51
3. 1 処理概要 (1/3)
1. GGTGに基づく構文解析
– 入力グラフがoctgridであるかどうかの判定
2. 意味規則を用いた属性評価
– 矩形数え上げの結果を出力
2008/03/19
電子情報通信学会 2008年総合大会
52
3. 2 文脈依存グラフ文法における導出グラフ
の提案 (1/7)
• 属性評価を行なうためには,導出グラフが必
要
• 文脈依存グラフの導出過程を表す導出グラフ
は存在しない?
→導出グラフの提案
2008/03/19
電子情報通信学会 2008年総合大会
53
3. 2 文脈依存グラフ文法における導出グラフ
の提案 (補足)
近傍ノード
P
P
C1
マザーノード
2008/03/19
B
B
P1-3-T02-0001
P1-3-T02-0001
図 4 導出グラフの例
電子情報通信学会 2008年総合大会
I
C2
ドーターノード
54
2008/03/19
電子情報通信学会 2008年総合大会
55
3. 2 文脈依存グラフ文法における導出グラフ
の提案 (6/6)
• 導出木と異なり,グラフ
単体では生成規則の適
用順序は分からない?
S
P1-1-T01-0001
A1
A2
P1-1-T02-0001
P1-1-T02-0001
A2
A3
P1-1-T03-0001
– 導出グラフと共に,生成規
則の適用順序をまとめて
おく必要がある
P1-1-T03-0001
A
P1-1-T04-0001
P1-1-T04-0001
A
P1-1-T04-0001
生成規則 適用順序
1 : P1-1-T01-0001
2 : P1-1-T02-0001
3 : P1-1-T03-0001
4 : P1-1-T04-0001
...
...
図A 1×1の表を導出する導出グラフの始めの部分
2008/03/19
電子情報通信学会 2008年総合大会
56
属性評価の例
P-ul
P-U
P
P-UR
P-l
I3
I2
P-r
P-l
I2
I2
P-r
P-ll
P-d
P-d
P-lr
2008/03/19
電子情報通信学会 2008年総合大会
57