テキストマイニングのための 基礎技術(前編)
Post on 24-Feb-2016
45 Views
Preview:
DESCRIPTION
TRANSCRIPT
テキストマイニングのための基礎技術(前編)北陸先端科学技術大学院大学鶴岡 慶雅
スケジュール• 1日目
10:00 – 12:00 データ構造、辞書、索引付け12:00 – 13:00 昼食休憩13:00 – 14:45 実習(検索エンジンの作成)14:45 – 15:00 コーヒーブレイク15:00 – 16:30 ベクトル空間モデル資料
http://www.jaist.ac.jp/~tsuruoka/alaginseminar2010/
スケジュール• 2日目
10:00 – 12:00 データマイニング入門、機械学習12:00 – 13:00 昼食休憩13:00 – 14:45 実習(クラスタリング、機械学習)14:45 – 15:00 コーヒーブレイク15:00 – 16:30 機械学習(続き)資料
http://www.jaist.ac.jp/~tsuruoka/alaginseminar2010/
参考書• Introduction to Information Retrieval
– Manning, Raghavan and Schütze– Cambridge University Press. 2008. – http://nlp.stanford.edu/IR-book/information-retrieval
-book.html
• The Elements of Statistical Learning (2nd edition)– Hastie, Tibshirani and Friedman– Springer-Verlag. 2008– http://www-stat.stanford.edu/~tibs/ElemStatLearn/
自己紹介• 経歴
– 東京大学工学系研究科(工学博士)– 東京大学理学部
• 科学技術振興機構 研究員– University of Manchester
• National Centre for Text Mining (NaCTeM)– 北陸先端科学技術大学院大学
• 研究分野– 自然言語処理– テキストマイニング– ゲーム AI
激指(げきさし)
Windows XP/Vista/7PlayStation2PSPニンテンドー DS
• コンピュータ将棋プログラム• 2010 年世界コンピュータ将棋選手権優勝(4度目)• 機械学習を用いた探索制御、形勢判断• レーティング:約 3000 点(プロ棋士レベル)
デモ• FACTA+
– 医学・生物学文献用の情報検索システム– 1700 万文献– 概念間の直接・間接的な関係を検索
http://refine1-nactem.mc.man.ac.uk/facta/
デモ• GENIA tagger
– 英語用の言語処理ツール– Tokenization– 品詞タグ付け– 原型の出力– 浅い構文解析– 固有表現認識
http://www-tsujii.is.s.u-tokyo.ac.jp/GENIA/tagger/
テキスト処理のためのデータ構造• 文書⇒数値列• ハッシュテーブル• 辞書• N グラム• 転置インデックス• 接尾辞配列
文字列から数値列へ
• 文字列をそのまま扱うのは速度・メモリ効率が悪い• 文字列を数値列に変換
文書 ID 文書D0 Humpty Dumpty sat on a wallD1 Humpty Dumpty had a great fallD2 All the king's horses and all the king's menD3 Couldn't put Humpty together again
入力を単語に分割(英語)• Tokenization
Humpty Dumpy sat on a wall,
Humpty Dumpy sat on a wall ,
• ルールベースのスクリプト– カンマ、ピリオド、括弧などを切り離す– Tokenizer.sed
• http://www.cis.upenn.edu/~treebank/tokenizer.sed
入力を単語に分割(日本語)• 単語分割 すももももももももものうち
すもも も もも も もも の うち• 曖昧性が大きく英語よりもはるかに難しい
– 統計、機械学習を用いた手法が主流– MeCab http://mecab.sourceforge.net/
– JUMAN http://www-lab25.kuee.kyoto-u.ac.jp/nl-resource/juman.html
単語列から数値列へ入力単語列( tokenization 済)
数値列
文書 ID 文書D1 Humpty Dumpty sat on a wall
D2 Humpty Dumpty had a great fall
D3 All the king 's horses and all the king 's men
D4 Could n't put Humpty together again
文書 ID 文書D1 0 1 2 3 4 5
D2 0 1 6 4 7 8
D3 9 10 11 12 13 14 15 10 11 12 16
D4 17 18 19 0 20 21
単語と数値の対応表
• 出現した単語列の辞書をつくる必要• 単純に配列に格納すると、辞書引きのたびに O(n) の計算量( n は辞書中の単語数)
Humpty Dumpty sat on a wallHumpty Dumpty had a great fall…
Humpty 0Dumpty 1
sat 2on 3a 4
wall 5had 6
great 7fall 8
連想配列• 添え字に文字列を使える配列例( Python)
dictionary.has_key(’Humpty’) dictionary[’Humpty’] = 2
• 辞書引きの計算量– O(1): ハッシュテーブルによる実装– O(log n): 平衡 2 分探索木などによる実装
• 多くのプログラミング言語で標準装備
ハッシュテーブル( Hash Tables )
• 文字列をハッシュ関数を用いて適当な数値に変換• ハッシュテーブルのサイズで余りをとると、テーブル上での位置が一意に決まる• O(1) の計算量で辞書引きができる
0 空き: :
260 空き261 (Humpty, 0)262 空き
: :1033 空き
Humpty 261
int hash_function(string s) h = 0 for i = 0 to s.length h = h * 101 h = h + s[i] return h % hashtable.size
適当な素数
文字列 数値(ハッシュ値) ハッシュテーブル
ハッシュテーブル• 衝突( collision )
–違う文字列から同じハッシュ値が計算されてしまうことがある• チェイン法( chaining )
– エントリをリストへのポインターにして複数の要素を保持する• オープンアドレス法( open addressing )
– 空のエントリを探す
トライ木( Trie )
• 前方一致検索が効率的に実行できる• 実装: ダブル配列( double array )など
b ac
k
l
back
balll
tbat
cu t cut
索引付け( indexing )• 情報検索
– クエリーにマッチする文書を取得• 基本操作:ある単語が出現する文書すべてを取得
• 文書を頭から単純にスキャンするのは、文書量が増えると遅くなる
転置インデックス( inverted index )
• 単語ごとにそれが出現する文書 ID のリスト
文書ID
文書D1 Humpty Dumpty sat on a wall
D2 Humpty Dumpty had a great fall
D3 All the king 's horses and all the king 's men
D4 Could n't put Humpty together again
単語 文書 ID のリスト
Humpty 1, 2, 3
Dumpty 1, 2
sat 1
on 1
a 1, 2
wall 1
had 2
great 2
fall 2
: :
転置インデックス
全文検索• 転置インデックスなどの単語ベースの索引付けでは、全文検索ができない• 全文検索
– クエリーの文字列が出現している場所をすべて見つける– 単語区切りの境界は関係なし
接尾辞配列( suffix array )abracadabra
Index Suffix
0 abracadabra
1 bracadabra
2 racadabra
3 acadabra
4 cadabra
5 adabra
6 dabra
7 abra
8 bra
9 ra
10 a
文書Index Suffix
10 a
7 abra
0 abracadabra
3 acadabra
5 adabra
8 bra
1 bracadabra
4 cadabra
6 dabra
9 ra
2 racadabra
Suffix の辞書順にソート
Suffix Array
接尾辞配列( suffix array )abracadabra文書
Index Suffix
10 a
7 abra
0 abracadabra
3 acadabra
5 adabra
8 bra
1 bracadabra
4 cadabra
6 dabra
9 ra
2 racadabra
Suffix Array
文書中から ra が出現する位置をすべて知りたい場合
Suffix Array 上で 2 分探索O(log n) で検索できる!
1
23
実習1 検索エンジンの作成• ファイルから文書集合を読み込む• 文書を単語列に変換• 転置インデックスを作成• クエリー(単語)にマッチする文書を返す• 余裕があれば全文検索も
ベクトル空間モデル• ベクトル空間モデル• tf-idf• 類似度• 再現率・適合率
ベクトル空間モデル• 文書やクエリを高次元空間における点で表現
似てる文書
ベクトル空間モデル• 単語の出現回数でベクトルを作ると
0 Humpty1 Dumpty2 sat3 on4 a5 wall6 had7 great8 fall
d1 = (1, 1, 1, 1, 1, 1, 0, 0, 0)
d2 = (1, 1, 0, 0, 1, 0, 1, 1, 1)
次元
単語 “ Humpty” の出現回数
単語D1 Humpty Dumpty sat on a wall
D2 Humpty Dumpty had a great fall
文書の類似度• コサイン類似度( cosine similarity )
– ベクトルが同じ方向を向いていれば 1、直交してると 0
21
2121 cos,
dddd
DDsimilarity
(1, 1, 1, 1, 1, 1, 0, 0, 0)
(1, 1, 0, 0, 1, 0, 1, 1, 1)
5.066
3, 21 DDsimilarity
D1 Humpty Dumpty sat on a wall
D2 Humpty Dumpty had a great fall
例
167.0, 41 DDsimilarity参考
tf-idf
• 単語の重み付け手法–頻度を直接用いた場合、機能語( a, the, on,
to など)の頻度に大きく影響される–意味的に重要な単語の重みを大きくしたい
tIDFtdTFw td ,,
の長さ文書の頻度単語
d, ttdTF
を含む文書数単語総文書数t
tIDF log
Term Frequency (TF) Inverse Document Frequency (IDF)
重み
珍しい単語ほど重みが大きくなる
情報検索( information retrieval )
• クエリで取得したい情報を指定
文書集合
クエリ
性能評価• 適合率( precision )
– 検索ノイズがどれだけ少ないか• 再現率( recall )
– 検索漏れがどれだけ少ないか• f-score
–適合率と再現率の調和平均
性能評価• 適合率( precision )
• 再現率( recall )
• f-score
取得された文書数取得された関連文書数
P
関連文書数取得された関連文書数
R
RPPR
RP
F
2
112
データマイニング入門• クラスタリング
–階層クラスタリング– K-means クラスタリング– スペクトラルクラスタリング
• 類似度・相関の計算• 相関ルールの抽出
クラスタリング• 似たようなサンプルをまとめあげる
–階層的クラスタリング–非階層的クラスタリング
検索エンジン + クラスタリングhttp://clusty.com
階層的クラスタリング• サンプル間に距離を定義
–例 ベクトル空間モデルによるコサイン類似度• アルゴリズム1. すべてのサンプルを個別のクラスタとして開始2. もっとも近いクラスタ同士を統合し新たなクラスタとする3. すべてのクラスタが統合されるまで 2 に戻り繰り返す
階層的クラスタリング• 例 デンドログラム( Dendrogram)
1
2
3
4
5
1 2 3 4 5
クラスタ間の距離の定義
最短距離法( single link ) 最長距離法( complete link )
群平均法( group-average )重心法( centroid )
階層的クラスタリング• 計算量
–ナイーブに実装すると O(n3)– 効率的な実装 O(n2 log n )
• サンプル数が多くなると大変
k-means 法• クラスタの重心• 最小化• アルゴリズム
1. k個の代表点 c1,…ck をランダムに選択2. すべての点を代表点がもっとも近いクラスタに割り当て3. 各クラスタの重心を代表点にして2へ戻り繰り返す
k
i Cxi
i
cxd1
2,
ic
k-means 法• 実装が簡単• 計算量が小さい
• クラスタ数 k をあらかじめ決めておく必要• すべてのクラスタがほぼ同じサイズ• 初期値のランダムな配置に依存
スペクトラルクラスタリング
(Lee and Choi, 2004)
k-meansspectral clustering
スペクトラルクラスタリング• 準備
Ai i
n
j iji
ij
dAvol
A
dddiag
sd
s
,...,1D
S 類似度行列頂点 i の次数(接続しているエッジの類似度の和)
次数行列(サブ)グラフ A の頂点の数
グラフラプラシアン• グラフラプラシアン( graph Laplacian )
• 性質SDL SDIL 1~
正規化バージョン
N
i
N
iiiii
N
i
N
iiiii
N
iii
T
ffs
sfffd
1 1
2
1 11
2
21
Lff
スペクトラルクラスタリング• 入力:類似度行列 S, クラスタ数 k
1. グラフラプラシアンの固有ベクトルを固有値が小さいものから k 個求める (最初のは無視)2. それらの固有ベクトルを並べて行列 V を作成3. 行列 V の個々の行を、 k 次元空間上の位置とみなし、頂点を空間上の点として配置4. K-means アルゴリズムでそれらの点をクラスタリング
スペクトラルクラスタリング• グラフをサブグラフに分割
BvolAvolBAcutBANcut
BABAcutBARatioCut
11,,
11,,
関連する概念・単語の抽出文書 ID 糖尿病 狭心症 痛み 疲労感
D1 1 1 1 0
D2 0 0 1 0
D3 1 1 1 0
D4 1 1 1 1
D5 0 0 0 1
D6 1 0 1 1
D7 0 0 1 0
D8 0 0 1 0
共起頻度狭心症 3
痛み 4
疲労感 2
• 糖尿病と関係が深い症状は?「糖尿病」との共起頻度
単に「痛み」がありふれた単語だからでは?
Pointwise Mutual Information
• Pointwise Mutual Information (PMI)
• 偶然共起するよりもどれだけ多く共起したか– X と Y が独立なら PMI = 0
YfreqXfreq
YXfreqNYPXP
YXPPMI
,log
,log
2
2
Pointwise Mutual Information
文書 ID 糖尿病 狭心症 痛み 疲労感D1 1 1 1 0
D2 0 0 0 0
D3 1 0 1 1
D4 1 1 1 1
D5 0 0 1 1
PMI
狭心症 0.74
痛み 0.32
疲労感 0.15
• 糖尿病と関係が深い症状は?「糖尿病」との PMI
P(糖尿病 ) = 0.6P(狭心症 ) = 0.4P(痛み ) = 0.8P(疲労感 ) = 0.6
P(糖尿病 , 狭心症 ) = 0.4P(糖尿病 , 痛み ) = 0.6P(糖尿病 , 疲労感 ) = 0.4
Symmetric Conditional Probability
• Symmetric Conditional Probability (SCP)
• 両方向の条件付確率の積
XfreqYfreq
YXfreq
XfreqYXfreq
YfreqYXfreq
XYPYXPSCP
2,
,,||
Symmetric Conditional Probability
文書 ID 糖尿病 狭心症 痛み 疲労感D1 1 1 1 0
D2 0 0 0 0
D3 1 0 1 1
D4 1 1 1 1
D5 0 0 1 1
SCP
狭心症 0.67
痛み 0.75
疲労感 0.44
• 糖尿病と関係が深い症状は?「糖尿病」との SCP
P(狭心症 |糖尿病 ) = 0.67P(痛み |糖尿病 ) = 1P(疲労感 |糖尿病 ) = 0.67
P(糖尿病 | 狭心症 ) = 1P(糖尿病 |痛み ) = 0.75P(糖尿病 |疲労感 ) = 0.67
相関ルール( Association Rule ) の抽出• パンとはちみつを買う人はバターも買う Association Rule: {パン、はちみつ} ⇒ バター
履歴 ID パン はちみつ
バター
牛乳1 1 1 0 1
2 0 0 1 0
3 1 0 1 1
4 1 1 1 0
5 0 1 0 1
Association Rule の評価• 相関ルール(Association Rule)
• 支持度( support)
• 確信度( confidence)
• リフト( lift)
BA
N
BAfreqBAT ,
AfreqBAfreqBAC ,
BfreqAfreq
BAfreqNBT
BACBAL ,
テキスト処理のための機械学習• Naive Bayes モデル• 平均化パーセプトロン• 対数線形モデル、 L1正則化• 条件付確率場
教師付学習によるテキスト分類• 学習データ
–正解のラベルがついた事例(サンプル)の集合
• 未知の事例
文書 ID 文書 正解カテゴリD1 Humpty Dumpty sat on a wall 好き( like)D2 Humpty Dumpty had a great fall 好き( like )D3 All the king's horses and all the king's men 嫌い( dislike )D4 Couldn't put Humpty together again 嫌い( dislike )
文書 正解カテゴリHumpty Dumpty hit a wall ?
テキスト分類の応用• テキスト分類
– 文書をトピックごとに整理する– スパムメールのフィルタリング–製品レビューの自動判定(好意的かどうか)– 文書のランキング– etc.
Naive Bayes モデル• Naive Bayes モデル
– 単純な確率的生成モデルを利用した分類器Pros• 確率値を出力• 理論、実装が簡単• 問題によっては高い分類精度• 学習は非常に効率的• 分類も高速• 半教師付学習に簡単に拡張 可能
Cons• 属性間の条件付独立性 を仮定
• Thomas Bayes (1702 – 1761)
• 因果関係の順方向(確率的事象の生成方向)のモデルを利用して、逆方向の確率を計算することができる
Bayes の定理
BP
ABPAPBAP
Naive Bayes モデル• 属性 からなるサンプルの分類
ijij
c
jnjc
n
jnj
c
njc
NB
caPcP
caaaPcP
aaaP
caaaPcP
aaacPc
j
j
j
j
argmax
,...,,argmax
,...,,
,...,,argmax
,...,,argmax
21
21
21
21 ベイズの定理分母はクラスによらず一定属性の条件付独立性
naaa ,...,, 21
j
j
jjdislikelikec
ijij
dislikelikecNB
cwallaP
cDumptyaP
cHumptyaPcP
caPcPc
j
j
""
...
""
""argmax
argmax
5
2
1,
5
1,
Naive Bayes モデルによる分類文書 正解カテゴリ
Humpty Dumpty hit a wall ?
• データがスパースすぎて確率が推定できない
• 位置は無視• add-one スムージング
単語の条件付確率の推定 likeDumptyaP ""2
カテゴリ “ like” の文書において先頭から2番目の単語が “ Dumpty” である確率
Vocabularycwfreq
cwfreqcwfreq
cwfreqcwaP
kjk
jk
kjk
jkjki
,
1,1,
1,
学習文書 ID 文書 正解カテゴリ
D1 Humpty Dumpty sat on a wall 好き( like )D2 Humpty Dumpty had a great fall 好き( like )D3 All the king 's horses and all the king 's men 嫌い( dislike )D4 Could n't put Humpty together again 嫌い( dislike )
• 学習データから個々の確率値を推定
42
42
dislikeP
likeP
026.0221710|
088.0221212|
dislikeDumptyP
likeDumptyP
Naive Bayes モデルの問題点• 特徴間に条件付独立性を仮定している• 実際には依存関係がある特徴を利用したい場面が多い例) 単語の Unigram と Bigram
• 依存関係を気にせずに様々な特徴を使うことのできる機械学習モデルがほしい
N グラム( n-gram )• N個の単語(あるいは文字等)の並び
UnigramsHumptyDumpysatona:
BigramsHumpty DumptyDumpty satsat onon aa wall:
TrigramsHumpty Dumpty satDumpty sat onsat on a on a wall:
文書 ID 文書D1 Humpty Dumpty sat on a wall
D2 Humpty Dumpty had a great fall
D3 All the king's horses and all the king's men
D4 Couldn't put Humpty together again
パーセプトロン学習• 学習とは、学習データを利用して、正例・負例をうまく分離する平面を見つけること
パーセプトロン学習• 学習データが線形分離可能であれば、学習データを正しく分離する平面を見つけられる
• 線形モデルによる2値分類線形モデル
xwx Tfy
0,10,1
aa
af
wx
x
: サンプル: 特徴ベクトル: 重みベクトル
重みベクトルと特徴ベクトルの内積をとって、それがゼロ以上であれば +1 (正例と判定)、そうでなければ -1 (負例と判定)を返す関数
10 xバイアス要素
パーセプトロン学習アルゴリズム1. 重みベクトルを要素 0で初期化2. 学習データからランダムにサンプルを選択3. 分類が間違っていたら以下の式で重みベクトルを更新 正例の場合 負例の場合4. すべてのサンプルを正しく分類できるまで 2に戻り繰り返す
xww xww
学習例 OR の学習• 学習データ
1
001
1
1
t
x
1
101
2
2
t
x
1
011
3
3
t
x
1
111
4
4
t
x
負例 正例 正例 正例
• x1
Step 1
1
001
1
1
t
x
000
w
1
00000101
ffy x
不正解! 1xww
001
w
• x4
Step 2
001
w
1
11010113
ffy x
不正解! 4xww
110
w
1
111
4
4
t
x
• x2
Step 3
110
w
1
11101102
ffy x
正解! ww
110
w
1
101
2
2
t
x
• x3
Step 4
110
w
1
10111103
ffy x
正解! ww
110
w
1
011
3
3
t
x
• x1
Step 5
110
w
1
00101101
ffy x
111
w
1
001
1
1
t
x
不正解! 1xww
分離平面• 最終的な重みベクトル
111
w
0xw T
01 ts
入力(特徴ベクトルの 2番目、 3番目の要素)をそれぞれ s, t とすると
分離平面 s
t
1
1
なぜうまく学習できるのか?• 正例の分類に失敗した場合
xwx Tfy
この部分の値が小さすぎた
2xxwxxw TT
xww として重みベクトルを更新すると
もともとの値 必ず正少なくとも同じサンプルに関しては間違いにくくなっている
平均化パーセプトロン( Averaged Perceptron )• 学習データが線形分離可能であるとは限らない ⇒ 収束しないかもしれない• 過学習の危険性• 平均化パーセプトロン
–収束を待たない–重みベクトルは学習の開始から終了までの平均をとったものを最終結果として出力する
平均化された重みベクトルの計算• w の履歴をすべて保存しておく必要はない
11
334
223
112
1
:
0
TTT uww
uwwuwwuww
w
和を1つのベクトルで保持していけばよい
1
1
1
11
1
11
T
ttT
T
tt
T
tt
tT
w
tTTT
u
uw
求めたい平均
実習2 機械学習• Naive Bayes モデルによるテキスト分類器• (平均化)パーセプトロンによる分類器
対数線形モデル
• 例 品詞タグ付け
Verb
He opened it
単語が “ opened”最後の 2 文字が “ ed”最初の 2 文字が “ op” :
素性(特徴量)
判定のための手がかり
確率的に分類
• 品詞タグ: Noun もしくは Verb
VerbNoun
VerbVerb
VerbNounNounNoun
scorescorescoreP
scorescorescoreP
確率的に分類
• 確率が素性の重みの掛け算で表されるとする
28.03742
42
NounP
素性 重みsuffix=ed & tag=Noun 2suffix=ed & tag=Verb 7prefix=op & tag=Noun 4prefix=op & tag=Verb 3
72.03742
37
VerbP?
He opened it
尤度• 3個の事例からなる学習データの尤度
57.05685
85Noun
P
Features Weight: :
suffix=ed & tag=Noun 2
suffix=ed & tag=Verb 7
prefix=cl & tag=Noun 3
prefix=cl & tag=Verb 4
: :
43.05685
56Verb
P
Verb
She closed it
Noun Noun 18.0
473232Noun
P
82.04732
47Verb
P
69.02291
91Noun
P
31.02291
22Verb
P
32.0
69.082.057.0likelihood
尤度が大きくなるように素性の重みをチューニングしたい
• 対数線形モデル
• 素性関数– 入力を特徴付ける– 例
ちゃんと式で書くと
F
iii xf
Zxq
1
exp1
素性関数重み
y iii yxfwxZ ,exp
otherwise0Verbis &ed""isofsuffixif1
,1234
yxyxf
正規化
iiiw yxfw
xZxyp ,exp1|
対数線形モデルの学習
• 学習データの条件付対数尤度
jj
ijjii
j ijjii
j
jjjw
jjjw
xZyxfw
yxfwxZ
xyp
xypL
log,
,exp1log
|log
|loglog
• 勾配
j y ijiijk
y ijii
jjk
j y ijii
k
y ijii
jjk
j y ijii
kjjk
jj
kjjk
k
yxfwyxfyxfw
yxf
yxfwwyxfw
yxf
yxfww
yxf
xZw
yxfw
L
,exp,,exp
1,
,exp,exp
1,
,explog,
log,log
dxxdg
xdgxgdf
dxxgdf
対数線形モデルの最尤推定
• 勾配 (続き)
j yjjkjjk
j y
y ijii
ijii
jkjjkk
xypyxfyxf
yxfw
yxfwyxfyxf
wL
|,,
,exp
,exp,,log
現在のパラメータで確率的に分類したときの素性の出現回数の期待値
対数線形モデルの最尤推定
素性の実際の出現回数
対数線形モデルの学習
• 尤度を最大にするパラメータを求める– 勾配降下法– (擬似)ニュートン法– 確率的勾配降下法– など
• 確率的勾配降下法は実装が簡単、収束も速い
勾配法
1w
2w
objective
正則化( regularization )• 学習データに対するオーバーフィッティング
–素性の重みにペナルティをかける• L1 正則化
–ほとんどの素性の重みがゼロになる– モデルサイズが小さい– メモリ、ディスクスペースを節約
i
i
N
j
jj wCpL1
;|log wxyw
90
構造をもつ出力• カテゴリ例) テキスト分類
• 系列例) 品詞タグ付け、固有表現認識、浅い構文解析
• 木例) 構文解析、意味解析.
解析器
解析器
解析器
入力
入力
入力
raw(unstructured)
text
part-of-speechtagging
named entityrecognition
syntacticparsing
annotated(structured)
text
text processing
dictionary ontology
………………………....... Secretion of TNF was abolished by BHA in PMA-stimulated U937 cells. ……………………
Secretion of TNF was abolished by BHA in PMA-stimulated U937 cells .
NN IN NN VBZ VBN IN NN IN JJ NN NNS .
protein_molecule organic_compound cell_line
PP PP NP
PP
VP
VP
NP
NP
S
negative regulation
品詞タグ付け( Part-Of-Speech Tagging )
• 個々の単語の品詞を解析• 英語の品詞タグ例
NN: Noun IN: PrepositionNNP: Proper noun VBD: Verb, past tenseDT: Determiner VBN: Verb, past participle : :
Paul Krugman, a professor at Princeton University, wasNNP NNP , DT NN IN NNP NNP , VBDawarded the Nobel Prize in Economics on Monday. VBN DT NNP NNP IN NNP IN NNP
固有表現認識( Named entity recognition )We have shown that interleukin-1 (IL-1) and IL-2 control protein protein proteinIL-2 receptor alpha (IL-2R alpha) gene transcription in DNACD4-CD8-murine T lymphocyte precursors. cell_line
• 固有表現カテゴリ例• Gene• Protein• Disease• etc.
構文解析
Estimated volume was a light 2.4 million ounces .
VBN NN VBD DT JJ CD CD NNS .
QP
NP
VP
NP
S
条件付確率場( Conditional Random Fields )• 系列を予測するための対数線形モデル
• 基本的には、分類のための対数線形モデルと同じ• ただし、可能な出力の数が指数爆発するので少し工夫が必要
F
i
n
tttiin yytf
ZyyP
1 111 ,,,exp1)|...( xx
条件付確率場( Conditional Random Fields )• 解決策
– 素性の形を限定– 動的計画法( dynamic programming )を利用して計算量を小さく抑える
• 使用可能な特徴(1次のモデルの場合)– 品詞タグ– 連続する品詞タグ
特徴量• 特徴はノードとエッジ上に定義される
Noun
Verb
Noun
Verb
Noun
Verb
Noun
Verb
He has opened it
W0=He&
Tag = Noun
Tagleft = Noun&
Tagright = Noun
Z(x) を単純に計算するとNoun Noun Noun Noun
Noun Noun Noun Verb
Noun Noun Verb Noun
Noun Noun Verb Verb
Noun Verb Noun Noun
Noun Verb Noun Verb
Noun Verb Verb Noun
Noun Verb Verb Verb
Verb Noun Noun Noun
Verb Noun Noun Verb
Verb Noun Verb Noun
Verb Noun Verb Verb
Verb Verb Noun Noun
Verb Verb Noun Verb
Verb Verb Verb Noun
Verb Verb Verb Verb
動的計画法• 計算の途中結果を再利用
Noun
Verb
Noun
Verb
Noun
Verb
Noun
Verb
He has opened it
forward
動的計画法• 計算の途中結果を再利用
Noun
Verb
Noun
Verb
Noun
Verb
Noun
Verb
backward
He has opened it
動的計画法• 周辺分布の計算
Noun
Verb
Noun
Verb
Noun
Verb
Noun
Verb
He has opened it
top related