Unicodeを用いたN-gram索引の 一実現方式とその評価

Unicodeを用いたN-gram索引の
一実現方式とその評価
原田昌紀・風間一洋・佐藤進也
日本電信電話(株)
未来ねっと研究所
2000/Mar/22
第136回自然言語処理研究会
1
発表内容
研究の背景と目的
 N-gram方式の選定理由
 UnicodeベースのN-gram索引実現方式

–
–
Unicode文字シーケンスの正規化
N-gram長を可変とする分割アルゴリズム
WWWサーチエンジンへの適用例
 言語に依存した検索処理
 まとめ

2000/Mar/22
第136回自然言語処理研究会
2
研究の背景

Unicode
–

世界中の文字を16bit単位のUnicode文字で表現
するマルチスクリプト文字集合
Unicodeベースの全文検索実現方式の検討
–
–
2000/Mar/22
HTML,XMLなどの規格に対応するため
多言語対応の情報検索システムへの第一歩
第136回自然言語処理研究会
3
全文検索モジュールJerkyの開
発方針

言語に依存した処理の分離
–
–

スケーラビリティの確保
–

Unicodeベースの索引
辞書を必要としない索引づけ方式の採用
分散情報探索システムのノードでの利用から,
大規模なロボット型サーチエンジンまで
マルチプラットフォーム
–
2000/Mar/22
Javaによる実装
第136回自然言語処理研究会
4
索引づけ方式の検討(1)

転置索引(単語単位・形態素単位)
○ 検索精度が高い
× 辞書のメンテナンスが必要
× 言語ごとに形態素解析システムが必要

Suffix Array(文字単位)
○ 高速な文字列検索を実現できる
× 索引サイズが大きい
× 検索時に検索対象テキストにアクセスする必要
がある
2000/Mar/22
第136回自然言語処理研究会
5
索引づけ方式の検討(2)

転置索引(N-gram単位)
○ 言語に依存した辞書が不要
○ 日本語・中国語・韓国語などでの実績
○ 単語・形態素単位とのハイブリッド方式も可能
△ 検索速度・索引サイズは中程度
 大規模システムではチューニングが必要
× 検索ノイズの発生
 京都→東京都,ルパン→ダブルパンチ
 N-gram単位では不可避の問題,言語ごとに対応
2000/Mar/22
第136回自然言語処理研究会
6
N-gram転置索引の構成
imode
…
アルゴリ
…
生起位置情報
検索
…
報検
語彙ファイル
参照ファイル
報検索
文書
2000/Mar/22
...
検索エン
検索シス
第136回自然言語処理研究会
7
N-gram方式のUnicodeベースでの
実現

課題1:同じ文字が異なるUnicode文字シー
ケンスで表されることがある
→1.分割前に文字シーケンスの正規化

課題2:性質の異なる多様な文字の存在
→2.文字プロパティに基づいて記号類を判定
→3.文字ブロックごとに異なる単位で分割
2000/Mar/22
第136回自然言語処理研究会
8
文字シーケンスの正規化(1)

“Canonical Decomposition/Composition”
–
文字をそれと本質的に同一な文字シーケンスに分解
する/合成する
ö ⇔ o +¨
 “Compatibility Decomposition”
–
( Canonical Decomposition に加えて)
互換性のために定義されている文字を標準的な文字
シーケンスに分解する
ヤ⇒ヤ
2000/Mar/22
G ⇒G
℃⇒ °+ C
第136回自然言語処理研究会
9
文字シーケンスの正規化(2)

N-gramで索引づけする場合
→Compatibility Decompositionで分解した
後に,Canonical Compositionで合成する
コード⇒コート゛ ⇒コード

文字プロパティによる不要文字の判別
–
2000/Mar/22
例:文字プロパティがLetterあるいはDigit以外の
文字は空白に置換
第136回自然言語処理研究会
10
Unicode文字ブロックごとに分割
単位を設定
Basic Latin
Latin1 Supplement
:
Cyrillic
Thai
:
Arrows
:
Hiragana
Katakana
CJK Unified Ideographs
Hangul Syllables
:
U+0000~U+007F
U+0080~U+00FF
単語(空白区切り)
単語(空白区切り)
U+0400~U+04FF
U+0E00~U+0E7F
単語(空白区切り)
4-gram
U+2190~U+21FF
無視(索引づけしない)
U+3040~U+309F
U+30A0~U+30FF
U+4E00~U+9FFF
U+AC00~U+D7A3
3-gram
4-gram
2-gram
3-gram
表:Unicode2.1の文字ブロック(抜粋)
2000/Mar/22
第136回自然言語処理研究会
11
N-gramへの分割アルゴリズム
文字ブロックごとにN-gram長を設定
 異なる文字ブロックが隣接する部分は2-gram

D502iを買いました
↓
文字ブロックごとに分割
D502i,を,買,いました
↓
Basic Latinは単語単位に,
Hiraganaは3-gram単位に分割
D502i,を,買,いまし,ました,した,た
↓
1-gramは2-gramに展開
D502i,iを,を買,買い,いまし,ました,した,た
2000/Mar/22
第136回自然言語処理研究会
12
N-gram長パラメータの設定
トレードオフの存在→目的に応じて決める
1.N-gram長と検索速度

–
–
N-gram長が大きいほど,位置情報のI/Oが減少
N-gram長より短い文字列の検索には時間がか
かる
2.N-gram長と転置索引のサイズ
–
–
2000/Mar/22
語彙ファイルの大きさは指数関数的に増大
参照ファイルの大きさは一定
第136回自然言語処理研究会
13
N-gram転置索引の構成(再掲)
imode
…
アルゴリ
…
生起位置情報
検索
…
報検
語彙ファイル
参照ファイル
報検索
文書
2000/Mar/22
...
検索エン
検索シス
第136回自然言語処理研究会
14
実データに基づくN-gram長の推定

サーチエンジンODINへの適用結果
–
約597万URLのHTMLファイルを索引づけ
–
1999年10月1日~10月31日に使用された検索
語85,697語における字種の分布
N-gramの頻度と索引ファイルにおける占有率
–
–
2000/Mar/22
Hiragana, Katakana, CJK Unified Ideographsに
適したパラメータ
第136回自然言語処理研究会
15
検索語における漢字連続長

字種が多いため,3-gram以上は非現実的
→CJK Unified Ideographsは2-gram単位
20000
18000
16000
14000
12000
10000
8000
6000
4000
2000
0
全体
字種混在
1
2000/Mar/22
2
3
4
5
6
7
8
第136回自然言語処理研究会
9
10
11
12
16
検索語におけるひらがな連続長

漢字やカタカナと混在することが多い
→Hiraganaは3-gram単位
6000
全体
字種混在
5000
4000
3000
2000
1000
0
1
2000/Mar/22
2
3
4
5
6
7
8
第136回自然言語処理研究会
9
10 11 12
17
検索語におけるカタカナ連続長

カタカナは3文字以上連続することが多い
→平均的にはKatakanaは4-gram程度が高速
7000
全体
字種混在
6000
5000
4000
3000
2000
1000
0
1
2000/Mar/22
2
3
4
5
6
7
8
第136回自然言語処理研究会
9
10 11 12
18
転置索引(参照ファイル)の占有率


対象テキストにおけ
る字種の頻度を反映
片4 片‐漢 漢1
片3
片2
片1
平‐片
漢2
漢-平,平-漢がなけれ
ば,ひらがな1文字
を含んだ語の検索は
困難
平‐3
漢‐平
平2
平1
2000/Mar/22
第136回自然言語処理研究会
平‐漢
19
言語に依存した検索処理の追加

文書と検索語の言語情報が一致する場合
には検索処理を拡張可能
–
–

ステミング,正規化,辞書の利用など
同じ文字シーケンスでも,特定の言語にのみ
マッチ
言語情報を付加した索引づけ
–
可変長N-gramによる分割+転置索引という構
成をベースに実現可能
 語彙ファイルにN-gramと言語情報と格納
2000/Mar/22
第136回自然言語処理研究会
20
おわりに

まとめ
–
–

字種によってN-gramの長さを可変とする索引
づけ方式をUnicodeベースで実現した
日本語WWWサーチエンジンを例に,その適
用方法を示した
課題・今後の予定
–
–
2000/Mar/22
日本語以外、CJK以外への適用と評価
N-gramと形態素解析を併用した分割
第136回自然言語処理研究会
21