ネット時代の情報センス - 情報知識ネットワーク研究室
Download
Report
Transcript ネット時代の情報センス - 情報知識ネットワーク研究室
ネット時代の情報センス
基礎情報科学のトピックス
(平成15年度版)
喜田拓也
(http://kushida.cc.kyushu-u.ac.jp/~kida/)
警視庁創設記念日
1
はじめに
コンピュータができること
デジタル・データとは?
データ圧縮技術
情報検索技術
喜田のこれまでの研究
さいごに
2/33
コンピュータができること
きれいに整形した文書をプリンタ
を使って印字できる
3D CGをグリグリ動かして動画を
作ることができる
美しい音楽を奏でることができる
本を読むことができる
メールを遠くの友人に送ることが
できる
ある決まった手順にしたがって,
こんなことしかできません・・・
計算ができる
計算手順 → アルゴリズム
3/33
コンピュータの動作
計算結果を表示
//======================================
// Pattern matching program with ACmachine
//
#include "main.h"
プログラムと
データを入力
//-------------------------------------//
メインルーチン
//
void main(int argc, char *argv[])
{
if(argc < 2) {
fputs("Usage: ac pattern1[,pattern2,..] [text1
text2 ...] \n", stderr);
exit(EXIT_FAILURE);
}
CACmachine ac;
// パターンの分別処理
string patterns(argv[1]);
コンピュータ
プログラムに
従って計算
プログラム
計算手順(アルゴリズム)を
コンピュータが分かる形式
で書いたもの
4/33
計算とは?
A. Church and S. C. Kleene
λ定義可能
Church の提唱(1936)
「アルゴリズム(計算手順)が
存在する関数と帰納的関数とを
同一視しよう」
K. Godel
帰納的関数
A. M. Turing
万能Turing機械と
計算可能な関数族
5/33
計算可能性
いっぱい
コンピュータには(原理的に)計算できない問題がある
(関数)
(プログラムの)停止問題 (1936, Turing)
「あるプログラムがきちんと計算を終了して停止するかどうかを
決定するようなプログラムは存在しない」
Postの対応問題 (1946, Post)
「任意に与えた = x1, x2,・・・, xk, = y1, y2,・・・, yk,に対して,
xi1 xi2・・・ xi k = yi1 y2・・・ yi k
となる添え字の列が存在するかどうかを決定する問題は非可
解である」
ENIAC(1946) > 世界最初のコンピュータ ABC(1942) > 計算可能性
6/33
計算量による限界
コンピュータが計算できる問題
それを解決するアルゴリズム(計算手順)がある問題
NP問題
答えが与えられとき、それが正しいかどうかは
入力長の多項式程度の時間で検算できる
(整数の素因数分解、カーナビの行き先検索など)
P問題
入力長の多項式倍の時間で計算できる
(整数の四則演算、文字列探索など)
7/33
デジタルデータ
「全ての情報(文字、画像、動画、音声)は数値
の集まりである」
村井 純(「インターネット:SFC(俺たち)が世界を創る」)
コンピュータ内部での
文字や絵や音声の表現
コンピュータはONとOFF(0と1)の区別しかない
すべての情報は 0 と 1の列(つまり整数)を使って表現される
画像
音楽・音声
この世には不思議なことな
ど何もないのだよ、関口君
・・・
文字列
01011101001010100
1010010101001010
00000011111110101
01010101111011100
00101111010…
2進表現の単位
1 bit : 0か1ひとつ
1 byte: 8bit
16進数は?
9/33
文字列の表現について
文字コード
ASCIIコードと ISO646
ASCIIは文字コードの基本.1963年に誕生.アメリカの文字コード
1byteで一つの文字を表す
ISO646は国際規格.ASCIIを基本に各国独自で12文字を変更可能.
日本の文字コード
符号化文字集合: JIS X 0208 (94×94文字の表.2byteで一文字)
コンピュータは内部で文字を数値として認識している
例: (ASCIIコードの場合)「Kyushu」は「4B 79 75 73 68 75」のbyte列
符号化方法: JIS(ISO-2022-JP), Shift-JIS, EUC
Unicode と ISO10646
世界中の文字を一つの文字コードで表現しよう!
Unicode:2byteで一文字 ISO10646:4byteで一文字
UTF-8: 無理やり ASCII の上位互換にしたコード
漢字の種類
は約5万
西洋文化圏の
人にとっては
無駄が多い
参考文献:「文字コードの世界」安岡孝一,安岡素子,ISBN4-501-53060-X
:「パソコンにおける日本語処理/文字コードハンドブック」川俣晶
10/33
データ圧縮技術
大量のデータを効率よく保存するため,あるいは
ネットワーク上での転送時間を短縮するためには,
データ圧縮技術が不可欠である
符号化とデータ圧縮
符号化
情報(記号列)をデジタル化すること
→ 本質的に無駄な部分が含まれている!
データ圧縮
データ中の冗長な情報を取り除くことで、データのサイズを小さく
すること
データ圧縮 = モデル化+符号化
「abacabad」を符号化すると何ビット必要?
→ ASCIIコードだと 8byte (64bit)
→ 日本語の全角文字だと 16byte (128bit)
→ ISO10646だと 32byte (256bit)
12/33
情報量と効率のよい符号化
情報量
本質的に必要なbit数 = log2(出現確率)
「abacabad」を符号化すると何ビット必要?
a: 1/2, b: 1/4, c: 1/8, d: 1/8 だから,
必要なビット数 = 1×4 + 2×2 + 3×1 + 3×1 = 14 ビット
a: 0, b: 10, c: 110, d: 111
abacabad:= 0 10 0 110 0 10 0 111
効率のよい符号化
全部で23bit
(3byte弱)
ベル研のC. ShannonとMITのR. M. Fanoによる符号化
よりよい手法:Huffman符号化(最小冗長符号)
13/33
データ圧縮法あれこれ
データ圧縮法
適応的Huffman符号化
算術符号化
LZ77, LZ78, LZW(辞書ベース圧縮)
Burrows Wheeler 変換を用いた圧縮
データ圧縮プログラム
compress
gzip
LHArc
bzip2
14/33
情報検索技術
氾濫する情報の渦から必要な情報をすばやく
取り出すには情報検索の技術が不可欠である
文字列照合アルゴリズム
文字列照合問題とは
パターン: オトコ
テキスト: オモイコンダラシレンノミチヲイクガオトコノ
普通に探すと…
O( テキストの長さ×パターンの長さ )
文字列照合問題を解決するアルゴリズム
Knuth-Morris-Pratt 法 (1974)
Boyer-Moore 法 (1977)
Bit-parallel手法 (1987)
O( テキストの長さ + パターンの長さ )
速い!
16/33
文字列照合の応用
キーワード検索
テキスト・データベース処理
データ整形
データ・マイニング
スペル・チェッカー
ゲノム情報処理
etc…
17/33
実際の応用例
富士通株式会社「瞬索」
http://software.fujitsu.com/jp/shunsaku/index.html
索引構造を用いた検索
索
引
構
造
作
成
エ
ン
ジ
ン
テ
キ
ス
ト
デ
ー
タ
索引
項目検索用DB
索引
全文検索用DB
エ項
ン目
ジ検
ン索
用
エ全
ン文
ジ検
ン索
用
検
索
ア
プ
リ
文字列照合を用いた検索
テ
キ
ス
ト
デ
ー
タ
全文検索用DB
全 項
エ文エ目
ン検ン検
ジ ジ
ン索ン索
用 用
検
索
ア
プ
リ
18/33
「瞬索」の事例
官民雇用情報検索システム
「しごと情報ネット」
(http://www.job-net.jp/)
大学情報検索システム
「大学入試センターハートシステム」
(http://www.heart.dnc.ac.jp/)
19/33
喜田のこれまでの研究
データ圧縮技術と文字列照合技術の融合
研究目的
文書ファイル群
「この世には不思議なことなど何もないのだよ、関口君」 京極
堂を変わり者の東の横綱とすると、榎木津は西の横綱だ。何
だか酷く男が羨ましくなつてしまつた。 「楠本君。せいぜい月
の光を浴びるがいいよ」「世界中の不幸と苦悩を纏めて背負っ
たような顔をして、そんなもの誰だって背負っているぞ!ちっと
も偉くない。心の暗闇だか何だか知らないが、心に光度(カン
デラ)や照度(ルクス)があるか。明るい暗いで善し悪しが決ま
るのは電灯くらいだ」「僕が落すのは憑物。犯人(ホシ)を落す
のは警察。原稿を落すのは関口君だ」「あなたが―蜘蛛だった
のですね。」「それが―絡新婦の理ですもの」
圧縮文書ファイル群
adoghqu3850pcxps;
afdjaeqw09bjzpafq
05z90
rwDEVcx083nk;pzp
99OeDfja
21/33
圧縮されたデータに対する文字列照合
普通の
文字列照合機械
展開
圧縮テキスト
圧縮テキスト
原テキスト
圧縮テキストに対する
文字列照合機械
22/33
この問題に対する3つの手法
「展開しながら」法
「展開してから」法
事情により差し替えてます・・・
目標1: これらより速い!
「展開しないで」法
23/33
研究の成果(その1)
CPU時間(秒)
1.4
1.2
AlphaStation XP1000
(Alpha21264: 667MHz)
Tru64 UNIX V4.0F
1.0
Genbank(DNA塩基配列)
17.1Mbyte
0.8
「展開しながら」法
0.6
compress(LZW)+KMP
gunzip(LZ77)+KMP
0.4
「展開しないで」法
0.2
T. Kidaら[1998]
0
ビットパラレルによる高速化[1999]
5
10
15 20 25
パタンの長さ
30
24/33
ディスク容量は
十分あるったい!
25/33
圧縮文字列照合する理由は?
容量は十分あるのに、テキストを
圧縮して保存しますか?
×
×
×
×
26/33
圧縮文字列照合する理由は?
当初の目標
新目標
展開時間
+
原テキスト上
の照合時間
>
圧縮テキスト上
の照合時間
27/33
研究の(凄い)成果
CPU時間(秒)
0.8
AlphaStation XP1000
(Alpha21264: 667MHz)
Tru64 UNIX V4.0F
0.7
Medline(英文テキスト)
60.3Mbyte
0.6
非圧縮テキストをKMPで照合
0.5
「展開しないで」法
0.4
BPE圧縮テキストに対する照合(KMP)
0.3
非圧縮テキストをAgrepで照合
0.2
「展開しないで」法
0.1
0.0
BPE圧縮テキストに対する照合(BM)
Shibata, et al. (2000)
5
10 15 20 25
パタンの長さ
30
28/33
余談:論文の衝突
第一次ショック (at CPM’99)
T. Kida, et al., Shift-And Approach to Pattern Matching in LZW
Compressed Text
G. Navarro and M. Raffinot, A General Practical Approach to
Pattern Matching over Ziv-Liempel Compressed Text
第二次ショック (at CPM2000)
Y. Shibata, et al., A Boyer-Moore type algorithm for compressed
pattern matching
G. Navarro and J. Tarhio, Boyer-Moore string matching over
Ziv-Lempel compressed text
G. Navarro とその家族
29/33
さいごに
現在取り組んでいること
データ圧縮による文字列近似度(編集距離)の計算の
高速化
二つのDNA配列の近似度をすばやく測ることができる!
半構造化データに対する文字列照合に関する研究
大量のXMLデータに対し,タグ構造を見ながら検索できる.
これまでの研究から,データ圧縮を用いて高速化できないか?
半構造化データを高速に照合できるデータ圧縮法の開発.
XMLデータ例
<作家>
<名前>京極夏彦</名前>
<ジャンル>ミステリー、妖怪</ジャンル>
<著作>
<タイトル>姑獲鳥の夏</タイトル>
<出版年>1994</出版年>
<出版社>講談社ノベルス</出版社>
</著作>
</作家>
31/33
いま興味のあること etc.
電子図書館 (Digital library)
eラーニング (e-Learning)
情報リテラシー (Information literacy)
ユニバーサル・デザイン (Universal design)
ヒューメイン・インタフェース (Humane interface)
32/33