スライド 1: 6. テキストデータベース
スライド 2: テキスト検索の技術
スライド 3: テキスト検索を行う局面
スライド 4: テキスト検索
スライド 5: テキストのベクトル表現例
スライド 6: テキストのベクトル表現
スライド 7: content word とは
スライド 8: テキストのベクトル表現例
スライド 9: document frequency
スライド 10: document frequency
スライド 11: inverse document frequency (idf)
スライド 12: log (m/d) のグラフ
スライド 13: term occurrence frequency(tf)
スライド 14: tf/idf
スライド 15: テキストのベクトル表現例
スライド 16: Retrieval
スライド 17: ベクトルの距離
スライド 18: dot product を使用しない理由
スライド 19: Cosine距離
スライド 20: テキスト検索における課題
スライド 21: Performance
スライド 22: Relevance Feedback(1/3)
スライド 23: Relevance Feedback(2/3)
スライド 24: Relevance Feedback(3/3)
スライド 25: Relevance Feedback
スライド 26: Relevance Feedback
スライド 27: インデックス
スライド 28: inverted file
スライド 29: inverted file
スライド 30: inverted file
スライド 31: ベクトル表現での課題
スライド 32: ベクトル表現の限界
6.
テキストデータベース
(マルチメディアデータベース序論,全6回)
1
金子邦彦
https://www
.kkaneko.jp/de/multimediadb/index
.html
テキスト検索の技術
•
テキストデータのベクトル表現
•
検索
2
テキスト検索を行う局面
•
図書館で本を探す
•
特許出願で,関連の特許を探す
•
論文執筆で,関連研究を探す
•
新聞等から株価情報を抜き出す
•
WWW
を使って,興味のある情報を探す
•
判例を探す
3
テキスト検索
テキスト1
テキスト4
テキスト3
テキスト2
テキスト6
テキスト5
検索条件
条件に合致するテキスト
(検索の単位はテキスト)
4
テキストのベクトル表現例
テキ
スト
1
テキ
スト
2
テキ
スト
3
テキ
スト
4
テキ
スト
5
term
1
term
2
term
3
term
4
term
5
term
6
term
7
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
あり
これで1ベクトル
5
テキストのベクトル表現
•
term
の有無や登場回数を使って,ベクトル表
現
•
非常に長いベクトルで表現(理由:
キーワードの数
が多い)
•
「検索条件」も,キーワードによるベクトル表現
•
類似検索を,ベクトルマッチングで行う
•
検索時には,「
term
ごとに重要度を変えたい」ことも
ある
6
conten
t word
とは
•
content word
•
検索に使う単語
•
テキスト中の有無/登場回数を使って,検索を行う
•
non
-content wor
d
•
検索に使わない単語
•
of, a,
「の」,「が」
など
7
テキストのベクトル表現例
•
テキスト
[f1 ... fi ...
fn
]
n : term
の総数
fi : i
番目の
term
の有無/登場回数
•
問い合わせ
[d1, ..., di, ...,
dn
]
di : i
番目の
ter
m
の重要度
8
docume
nt
frequen
cy
•
term (X
とする)について,
X
が登場する文章の数
を
document fre
quency
という
•
document frequency
は
term
ごとに定まる値
9
docume
nt
frequen
cy
•
document
frequen
cy
が低い
•
あまり多くの文章に登場する
•
「文章を区別するのに役に立つ
term
だ」と考える
•
document
frequen
cy
が高い
•
たくさんの文章に登場する
10
inverse
do
cument
frequ
ency
(idf)
•
log (m/d)
m: document
の総数
d: term
の
doc
ument frequenc
y
d=m
ならば
log(m/d)
= 0
d=1
ならば
log(m/d)
= log m
11
log (m/
d)
のグラフ
0
0.2
0.4
0.6
0.8
1
1.2
0
2
4
6
8
10
12
m=10
のとき
d (document frequency)
log (m/d)
(inverse document frequency)
12
term
occurrence
frequen
cy(tf)
•
ある
term
が,文章中に登場する回数のこと
•
term occu
rrence fr
equenc
y
が高いと
•
その
term
が何度も使われている
•
筆者は,意図して何度も使っているはず
•
その文章において
,
その
term
は
,
「重要度が高い」と考
える
13
tf/idf
f
・
log (m/d)
m: document
の総数
d: term
の
doc
ument frequenc
y
f: term
の
term oc
curren
ce freque
ncy
単語ごと
,
文章ごとに定まる値
14
テキストのベクトル表現例
テキスト
[x1 ... xi ...
xn]
n : term
の総数
xi : i
番目の
term
の
「
tf
/idf
」値
15
Retrieval
テキスト1
テキスト3
テキスト2
検索条件
ベクトル表現
ベクトル表現
ベクトル表現
ベクトル表現
各々,ベクトルマッチングを行い,
ベクトル空間中での「距離」が近いもの同士を
類似度が高いとみなす(
→
解とする)
16
ベクトルの距離
•
dot pro
duct
による距離
x1y1 + x2y2 +
・・・
+
xnyn
(
x1, x2, ...,
xn
)
(
y1, y2, ...,
yn
)
17
dot p
roduct
を使用しない理由
•
各
xi
値は,
tf
/idf
値
•
長い文章と短い文章では,長い文章の方が
tf
/idf
値が大
きくなって,マッチしやすくなる
→
dot pro
duct
による距離に代わる何かが必要
18
Cosine
距離
•
Cosineθ
のこと(2つのベクトルのなす角:
θ
)
•
Cosine(X,
Y) = Cosine(
cX,
Y) = Cosin
e(X, cY)
Cosine
(
X
,
Y
)=
X
・
Y
√
(
X
・
X)
・(
Y
・
Y
)
(
x1, x2, ...,
xn
)
(
y1, y2, ...,
yn
)
原点
θ
19
テキスト検索における課題
•
Relevanc
e Feedba
ck
•
インデックス
•
tf
/idf
以外のベクトル表現法
など
20
Perform
ance
問い合わせの解
真の正解
間違い
もれ
もれ
21
Relevance
Feedba
ck(1/3)
Q
の解
Q
22
Relevance
Feedba
ck(2/3)
Q
ユーザは,どれが正しくて,どれが正しくないか分かる
Q
の解
23
Relevance
Feedba
ck(3/3)
Q
システムは,新しい
Q’
を自動的に求め,再度問い合わせを実行
Q’
24
Relevance
Feedba
ck
Q
Q`
=
Q
+
C
1・f(
RR)
-
C2
・f(
RI)
Q’
RR
RI
25
Relevance
Feedba
ck
User
Query
Q
Similarity
Retrieval
Retrieved
Documents
R
Relevant
Documents
RR
Irrelevant
Documents
RI
Feedback
Query
Q’
26
インデックス
•
inverte
d file
•
signature fil
e ←
ハッシュを利用
•
Clusterin
g
27
inverted
file
t1
(D1, 3), (D3, 3), (D5, 1
)
t2
(D2, 2), (D5,2)
t3
(D4, 1), (D5, 3)
term t3
は,
D4, D5
にのみ登場し,
それぞれの
tf/idf
値は
1, 3
28
inverted
file
t1
(D1, 3), (D3, 3), (D5, 1
)
t2
(D2, 2), (D5,2)
t3
(D4, 1), (D5, 3)
Q( 0, 2,
1 )
に対して
「
D2, D4, D5
のみ処理の対象とすべき」
ことが分かる
29
inverted
file
t1
t2
t3
tn
この部分は普通
B+
-tr
ee
30
ベクトル表現での課題
•
単語は違うが(ほぼ)同じ意味
•
「おいしい」,「美味しい」
•
「不思議」
,
「謎」
•
2単語で無く,1単語とみなすべき
•
「オペレーティング」,「システム」
•
→
「オペレーティングシステム」
31
ベクトル表現の限界
•
文章の意味には立ち入らない
•
人が魚を食べた
•
魚が人を食べた
•
登場する
ter
m
は同じだが,意味は違う
32