2007年技術レポート

 

関連語辞書

 

知識工学部 多田将志

2007823

 

 

 

 

目次

1.    要旨... 2

2.    背景... 2

3.    関連語辞書作成... 3

a.    コーパス選び... 3

b.    形態素解析による単語抽出(トークン化、品詞判定) 4

c.     ゴミ単語除去... 5

d.    関連度の計算... 5

4.    関連語サンプル... 5

5.    単語追加機能、チューニング機能... 8

6.    ポータルサイトにおける関連語辞書の主な使用方法... 9

7.    関連語辞書のコンパクト化... 9

8.    間接的関連を考慮した関連度... 12

9.    まとめと課題... 17

 

1.        要旨

本レポートでは、独立行政法人 物質・材料研究機構(NIMShttp://www.nims.go.jp/jpn/)の物質・材料に特化したポータルサイト開発プロジェクト(現在、ポータルサイトはhttp://e-materials.org/homeにて公開中) において独自作成した関連語辞書について述べる。関連語辞書は英語や日本語のテキストから抽出した単語間の関連度情報を保持する辞書である。関連度の定義にはさまざまなものが考案されているが、現在は同一文書で共起した文書数に補正のファクターをつけたものを用いている。ポータルサイトで構築した関連語辞書は、連想検索機能やダイジェスト機能などで使用している。

 

2章から6章までで現在の関連語辞書について述べ、7章と8章では関連語辞書の改良を目指して調査した事柄について述べる。9章でまとめと課題を述べる。

 

 

2.        背景

現在、インターネット上には多数の検索サイトが存在している。現在の検索サイトは、キーワード検索が主である。一般にキーワード検索の場合、検索サイトにはあらかじめ検索対象となる文書などを解析して、どのキーワードがどの検索対象に含まれているかという情報を蓄えておく(インデクシング)。ユーザが検索サイトにアクセスし、テキストボックスにキーワードを入力して検索ボタンを押すと、検索エンジンはユーザから入力されたキーワードをもとにインデクシング結果を参照し、そのキーワードを含む文書などを検索結果として返す。ユーザは自分が欲しいような検索結果が得られなかった場合、キーワードを再度指定し直して検索することになる。ユーザが知りたい内容に適していそうなキーワードを想像できる場合、こういったキーワード検索は適している。しかし、ユーザにとってほとんど未知の分野では。自分が欲しいような検索結果につながりそうなキーワードを想像することは難しい。ユーザにとってほとんど未知の分野を調査する場合、まずはおおまかなキーワードからさまざまな情報を集めるという事が考えられる。そういったケースにおいて、もし検索エンジン側に関連語辞書があれば、検索エンジン側はユーザが入力したおおまかな検索キーワードに関連しているキーワード(関連語)を提示することができる。それによりユーザは自分が知らなかった、想像できなかったキーワードの存在を知り、それらのキーワードを利用して検索してさまざまな情報を集めるということが可能になる。このようにユーザによる検索を補助するという点で、関連語辞書は大きく注目されている。

 

現在、関連語の情報を含んだ電子化されている辞書としては、EDR電子化辞書(http://www.iijnet.or.jp/edr/J_index.html) などがあるが、扱っている単語は一般的なものでNIMSのポータルサイトで扱うような物質・材料の分野には強くない。その他、市販されているものにも適当なものが見当たらなかったため、このポータルサイトで独自に物質・材料に特化した関連語辞書を用意することになった。

 

 

3.        関連語辞書作成

本章では関連語辞書作成の具体的な流れについて述べる。

まず関連語辞書作成にあたって以下を前提とした。

 

l         対象は日本語、英語のみ

NIMSのプロジェクトにおいては、日本語と英語の単語のみを対象とした。そのため、関連語辞書作成に使用する文書の集まり(コーパス)は日本語、英語の文書だけとした。

l         単語は名詞のみを扱う

ユーザが一般的に検索に利用するのは名詞なので、まずは辞書に登録する単語は名詞のみとした。

 

関連語辞書はおおまかに以下の流れで作成される。

 

l         コーパス選び

l         形態素解析による単語抽出(トークン化、品詞判定)

l         ゴミ単語除去

l         単語間の関連度の計算

 

以下で順に述べる。

 

a.        コーパス選び

関連語辞書作成に使用する文書群(コーパス)は、物質・材料に特化したものにするためにその分野の文書群を選ぶべきである。そこで英語については、物質・材料に特化した以下の英論文サイトを利用した。これらの英論文サイトでアクセスできるアブストラクトと、利用可能であれば本文も利用した。

 

l         Nature Material  http://www.nature.com/nmat/archive/index.html

l         Advanced Materials http://www3.interscience.wiley.com/cgi-bin/jtoc/10008336/?CRETRY=1&SRETRY=0

l         Science Direct  http://www.sciencedirect.com/science?_ob=JournalURL&_cdi=6602&_auth=y&_acct=C000050221&_version=1&_urlVersion=0&_userid=10&md5=3f5513e1e9a7d1e3e35801c621f77d80

l         Acta Materialia http://www.sciencedirect.com/science?_ob=JournalURL&_cdi=5556&_auth=y&_acct=C000050221&_version=1&_urlVersion=0&_userid=10&md5=4f938653b7ac1c68a8bc8e2ff956cb19

l         Scripta Materialia  http://www.sciencedirect.com/science?_ob=JournalURL&_cdi=5606&_auth=y&_acct=C000050221&_version=1&_urlVersion=0&_userid=10&md5=7c77d7ae2cef6f4072096839437bc941

 

日本語については適当なサイトが見当たらなかったため特許文書を用いた。NIMSから提供された数十万の特許文書の中から、IPC(国際特許分類)を用いて、A分野以外の分野から網羅的に1000程度の特許文書を選んだ。IPC分類については、以下の特許庁のサイトを参照。http://www.jpo.go.jp/cgi/link.cgi?url=/shiryou/s_sonota/kokusai_t/ipc8wk.htm

 

b.        形態素解析による単語抽出(トークン化、品詞判定)

辞書に登録する単語を抽出するため、まずコーパス文書のテキストに含まれる文章を形態素解析する。日本語形態素解析エンジンには幾つか種類があるが、ポータルサイトではフリーで最もポピュラーなものとして知られている奈良先端科学技術大学院大学の松本研究室で開発されたchasen(バージョン2.3.3)を使用した。日本語テキストをchasenで形態素に分け(トークン化)、そのトークンの品詞を判定して名詞を抽出した。その際、chasenのデフォルト定義の品詞に加えて、ポータルサイト独自の品詞を加えた。chasenでは設定ファイル(chasen-rcファイル)に独自の品詞を追加するように記述することが可能である。物質・材料の分野では、記号と数字で物質を表記するケースが多く、英語アルファベット、記号、数字が連続した場合は、連結して「複合アルファベット」という独自の品詞に解釈するようにchasen設定ファイルに記述した。例えば、炭素クラスターの一種で炭素がサッカーボール型に結合した分子であるフラーレンはC60と表記される。初期設定のままのchasenの場合、Cをアルファベット、6を数字、0を数字と分解するためC60で一つの意味のある単語として抽出することができなかった。そこで、前述のような複合アルファベットという新しい品詞を定義することで、C60という塊で抽出できるように拡張した。このように拡張すると、move, appleなどの英単語もchasenから複合アルファベットとして塊で抽出できる。そのため、英語テキスト、日本語テキストによらず、まずはchasenで品詞判定をして、その結果、複合アルファベットであった場合、langutilsという英語の形態素解析エンジンにかけて品詞判定して、名詞と判定されたものだけを抽出するようにした。langutilsMITが開発した英語の形態素解析エンジンでCommon Lispで書かれている。langutilsではC60のような記号と数字の並びは名詞と判定される。複合アルファベット以外の場合は、chasenの品詞判定結果をそのまま用いた。つまり、英語テキスト、日本語テキストによらず、最初はchasenで品詞判定し、もし英単語のようならば、さらにlangutilsで品詞判定するという流れになっている。英語テキストか日本語テキストかをシステムが自動的に正しく判別するのは容易ではないので、テキストの言語を判断してchasenあるいはlangutilsのどちらを使うか切り替えるのは難しい。そのため、このような流れにしている。

 

 

langutilschasenについては以下のURLを参照。

l         langutilsライブラリ http://web.media.mit.edu/~eslick/langutils/

l         chasenライブラリ http://chasen.naist.jp/hiki/ChaSen/

 

c.         ゴミ単語除去

品詞判定の結果、名詞と判定されたものだけを辞書に登録する単語の候補としたが、名詞の中でも明らかに不要なゴミ単語(一般的すぎる語なども含む)を除去するようにした。ゴミ単語除去のメカニズムは単純で、noisewordsというファイルに除去したい単語を列記しておき、そのファイルに含まれている単語は除去される仕組みになっている。

 

d.        関連度の計算

辞書に登録する単語を決定した後、それらの単語どうしの関連度を計算する。現在のポータルサイトにおいては関連度の概念は単純で、「同一文書に出て来た単語どうしは関連がある」としている。

具体的には単語Aから見た単語Bの関連度は、

 

(ABが同時に出現した文書数) ×(単語BIDF)

 

で定義した。

ここでIDF(Inverse Document Frequency)は、

 

log(全文書数/その単語が出現した文書数)

 

で定義され、どの文書にも出てくるようなありふれた単語ほど小さい値になる。

関連度の定義式からわかるように、共に出現した文書数が多かった単語どうしほど関連度が大きくなる一方、どの文書にも出てくるような単語はさほど重要ではないので、その分をIDFを掛けて補正している。

 

関連度を共起文書数から計算している例として、以下のような論文などがある。

http://magazine.fujitsu.com/vol56-4/paper17.pdf

http://adv.yomiuri.co.jp/ojo/02number/199910/10toku2_4.html

http://www-kasm.nii.ac.jp/jsai2003/programs/PDF/000204.PDF

 

 

4.        関連語サンプル

ここでは、ポータルサイトで作成した関連語辞書をひいた結果を載せる。現在のポータルサイトの関連語辞書には59192の単語が登録されている。関連語辞書をひくと結果は(“単語” . 関連度)のリストで返って来る。ここでは関連度上位30語だけ載せた。まずまず関連している単語がヒットしていることが見て取れる。

 

元単語::C60

関連語リスト::

(("fullerene" . 2.472421) ("molecule" . 1.9377214) ("fullerenes" . 1.7955543)

 ("cage" . 1.6491792) ("c70" . 1.4258758) ("carbon" . 1.4163475)

 ("chemical" . 1.4040655) ("structure" . 1.3072811) ("atom" . 1.293028)

 ("ring" . 1.2777947) ("vacuum" . 1.260423) ("nature" . 1.2105218)

 ("device" . 1.2050914) ("material" . 1.1971312) ("metal" . 1.1930203)

 ("surface" . 1.1670201) ("formation" . 1.1359434) ("unit" . 1.1336042)

 ("position" . 1.1304826) ("van" . 1.1202402) ("synthesis" . 1.1198026)

 ("space" . 1.1097487) ("cluster" . 1.1009712) ("nanotubes" . 1.0783718)

 ("interaction" . 1.0738763) ("distance" . 1.0722344) ("level" . 1.0714458)

 ("field" . 1.0569013) ("feature" . 1.0359572) ("cell" . 1.0354717))

 

元単語:: carbon

関連語リスト::

(("nanotubes" . 1.0709282) ("steel" . 0.80117816) ("material" . 0.75915)

 ("nanotube" . 0.7565974) ("structure" . 0.73958224)

 ("temperature" . 0.72338146) ("electron" . 0.72172725)

 ("chemical" . 0.7019296) ("atom" . 0.70145196) ("energy" . 0.69706327)

 ("process" . 0.6829111) ("surface" . 0.67212063) ("time" . 0.6535923)

 ("effect" . 0.6390136) ("range" . 0.6386948) ("nature" . 0.61912274)

 ("increase" . 0.6158258) ("order" . 0.611431) ("molecule" . 0.59327453)

 ("formation" . 0.59091085) ("sample" . 0.5795472) ("experiment" . 0.5779618)

 ("metal" . 0.57416224) ("report" . 0.5702331) ("layer" . 0.5660746)

 ("interaction" . 0.56331813) ("measurement" . 0.5578023) ("area" . 0.5542707)

 ("type" . 0.55416673) ("system" . 0.55402404))

 

元単語:: laser

関連語リスト::

(("light" . 1.194258) ("device" . 1.0597715) ("material" . 1.0197784)

 ("technique" . 1.0090868) ("surface" . 0.9941282) ("process" . 0.97749835)

 ("wavelength" . 0.9620263) ("substrate" . 0.95499897)

 ("structure" . 0.9537529) ("beam" . 0.94280905) ("electron" . 0.9354045)

 ("semiconductor" . 0.93391204) ("film" . 0.93305767) ("time" . 0.93210584)

 ("figure" . 0.9018119) ("report" . 0.89801353) ("experiment" . 0.8808445)

 ("crystal" . 0.8642915) ("control" . 0.85938) ("system" . 0.8579832)

 ("condition" . 0.8543335) ("field" . 0.8387223) ("type" . 0.8337515)

 ("case" . 0.82966506) ("image" . 0.8275658) ("component" . 0.8245667)

 ("range" . 0.80104023) ("region" . 0.7990737) ("point" . 0.7973557)

 ("order" . 0.77768993))

 

元単語:: フラーレン

関連語リスト::

(("ナノ" . 4.0516787) ("チューブ" . 3.865791) ("炭素" . 2.9156003) ("製造" . 2.888123)

 ("金属" . 2.8861809) ("酸素" . 2.875016) ("電子" . 2.874288) ("化学" . 2.84353)

 ("材料" . 2.8031917) ("触媒" . 2.789631) ("加熱" . 2.7523303) ("供給" . 2.7456422)

 ("カーボン" . 2.739951) ("ガス" . 2.7179017) ("印加" . 2.7128596) ("粒子" . 2.681276)

 ("構成" . 2.6264074) ("反応" . 2.5898335) ("生成" . 2.5474377) ("物質" . 2.517203)

 ("装置" . 2.517018) ("含有" . 2.4512608) ("混合" . 2.4477007) ("分子" . 2.4317465)

 ("真空" . 2.4235024) ("" . 2.4196978) ("温度" . 2.4028282) ("応用" . 2.3986022)

 ("導入" . 2.3953717) ("アーク" . 2.3526583))

 

元単語:: 分子

関連語リスト::

(("製造" . 2.838499) ("反応" . 2.8023157) ("有機" . 2.761096) ("温度" . 2.73621)

 ("混合" . 2.7033324) ("化合" . 2.6833186) ("金属" . 2.6300805) ("" . 2.5568914)

 ("条件" . 2.5319684) ("添加" . 2.5130017) ("測定" . 2.5100994) ("化学" . 2.5023062)

 ("活性" . 2.495512) ("含有" . 2.4638963) ("酸化" . 2.422963) ("形成" . 2.419901)

 ("組成" . 2.3869526) ("" . 2.3866584) ("存在" . 2.3717463) ("処理" . 2.355806)

 ("加熱" . 2.352904) ("原子" . 2.331577) ("水素" . 2.3247378) ("成分" . 2.3107102)

 ("構造" . 2.3083577) ("生成" . 2.2985172) ("材料" . 2.2958558) ("時間" . 2.290769)

 ("溶液" . 2.2813451) ("結合" . 2.2687616))

 

元単語:: カーボン

関連語リスト::

(("製造" . 2.868319) ("温度" . 2.6808696) ("表面" . 2.6529686) ("金属" . 2.5851936)

 ("電子" . 2.5582807) ("材料" . 2.5255423) ("酸化" . 2.523238) ("反応" . 2.523238)

 ("加熱" . 2.4952443) ("炭素" . 2.4053705) ("混合" . 2.3881047) ("装置" . 2.3731885)

 ("形成" . 2.3516588) ("化学" . 2.337869) ("条件" . 2.312701) ("構成" . 2.3055456)

 ("ガス" . 2.2960832) ("構造" . 2.2732685) ("含有" . 2.2691672) ("時間" . 2.2509038)

 ("特性" . 2.2316267) ("測定" . 2.2085392) ("" . 2.197892) ("処理" . 2.1868808)

 ("ナノ" . 2.186709) ("状態" . 2.1531668) ("水素" . 2.1351287) ("添加" . 2.1324615)

 ("効果" . 2.126931) ("有機" . 2.0908775))

 

元単語:: ベンゼン

関連語リスト::

(("芳香" . 3.7878723) ("トルエン" . 3.7238948) ("水素" . 3.7146244)

 ("ヘキサ" . 3.6189315) ("メチル" . 3.6137598) ("エチル" . 3.6045544)

 ("化合" . 3.5626347) ("" . 3.5101385) ("溶媒" . 3.5039487) ("アミ" . 3.4739976)

 ("炭化" . 3.4648633) ("炭素" . 3.3779123) ("" . 3.3590121) ("有機" . 3.353068)

 ("アルキル" . 3.323494) ("クロ" . 3.3076038) ("ブチル" . 3.294139) ("キシ" . 3.2749248)

 ("ハロゲン" . 3.2532992) ("エーテル" . 3.237378) ("反応" . 3.2312973) ("原子" . 3.216843)

 ("置換" . 3.2166443) ("" . 3.2133563) ("エステル" . 3.193555) ("混合" . 3.186741)

 ("添加" . 3.1412523) ("窒素" . 3.1326604) ("分子" . 3.0835896) ("トリ" . 3.0611129))

 

元単語:: コンピュータ

関連語リスト::

(("処理" . 2.8984606) ("機能" . 2.8924532) ("制御" . 2.8857527) ("構成" . 2.795853)

 ("情報" . 2.7781432) ("参照" . 2.7605424) ("装置" . 2.7290251) ("形態" . 2.6971939)

 ("データ" . 2.6807227) ("対応" . 2.6633813) ("表示" . 2.6487525) ("実行" . 2.5874226)

 ("符号" . 2.5737941) ("入力" . 2.5483797) ("状態" . 2.5405889) ("時間" . 2.4979012)

 ("複数" . 2.4501674) ("出力" . 2.4465263) ("接続" . 2.4446204)

 ("プログラム" . 2.3804407) ("効果" . 2.3289185) ("発生" . 2.3061352)

 ("記憶" . 2.2936342) ("操作" . 2.1992104) ("設定" . 2.194274) ("位置" . 2.1280699)

 ("ブロック" . 2.1066728) ("変化" . 2.1045895) ("動作" . 2.0781379) ("開始" . 2.0722206))

 

物質・材料の分野の単語に関連している単語をきちんと拾えているか、また関連度の順位は妥当かどうかを一概に評価することは難しいが、ここであげたサンプルだけ見てもC60fullerenecarbonnanotube、コンピュータという単語に対しては、処理、情報、データ、プログラム、ブロックなどが関連しており、印象としてまずまず関連語を拾えていることが窺える。

 

 

5.        単語追加機能、チューニング機能

4章で機械的に作成された辞書で、ある程度関連語を拾えていることが見てとれたが、さらに手動で関連度をチューニングしたり、新しい単語を追加したりできた方が関連語辞書の使い勝手が良い。そのためポータルサイトの関連語辞書では、単語追加機能、チューニング機能を実装している。ポータルサイトのユーザは辞書に登録したい単語が含まれている文書をアップロードできる。辞書管理者は、ユーザによってアップロードされた文書の内容やその文書から抽出された単語を精査して、関連語辞書に追加するのにふさわしいと判断した場合、新単語を選択的に追加することができるようになっている。また、ポータルサイトのユーザは関連度のチューニング要望などのコメントをBBSに投稿することができる。例えば、ある単語Aに対し、単語Bの方の関連を単語Cより強くして欲しいといった要望を管理者に出すことができる。これらのコメントなどを参照した辞書管理者が妥当と判断した場合は、関連度をチューニングする処理を施すことが可能になっている。

 

 

6.        ポータルサイトにおける関連語辞書の主な使用方法

ポータルサイトの大きな機能の一つとして物質・材料に関連した外部の検索サイトを串刺しで検索する機能がある。ユーザは検索語を入力して検索するだけでなく、関連語辞書から関連語リストを取得して、それらの単語を追加して絞込み検索する(連想検索)ことができる。また、検索結果のアブストラクトの文書から重要な文書を抽出して要約する機能(ダイジェスト機能)についても関連語辞書が利用されている。ダイジェストにおいては、まずアブストラクトの各文章についてスコア付けするが、検索語が直接含まれている文章を+10点、検索語に関連している単語が含まれている文章は+2点というようにスコア付けしている。スコアの高い文章を重要な文章と判断し、ダイジェスト結果を作成している。

 

 

7.        関連語辞書のコンパクト化

現在、ポータルサイトで使用している関連語辞書は、59192単語が登録されていて、サイズは約3.7Gと巨大である。現在の関連度の定義は、「同じ文書に出てきた単語どうしはすべて関連がある」となっている。特許文書などはサイズが大きいため、特許文書に出てきた一つの単語の関連語が数千個程度、多いものでは万のオーダーにも達することになる。それらの関連度情報を全て保存しているため、辞書のサイズが大きくなってしまっている。辞書をダンプするとコーパスの中でほとんど登場しなかった単語が多数含まれていた。これらの単語には明らかにゴミ単語のようなものが多数存在したが、これを逐一stopwordsで取り除くのは手間が大きいので、機械的に登録する単語を絞りこむ方法を考えた。辞書に登録する単語を絞り込むため、TF-IDF(Term Frequency-Inverse Document Frequency)という単語の重要度の指標を試した。TF-IDFは何度も出てきた単語(TFが大きい)は重要であるが、どの文書にも出てくるような単語(IDFが小さい)は重要ではないという考え方であるが、定義式には論文などによって微妙に異なる。ここでは、ある文書に出てきた単語について以下のようにTF-IDFを定義した。

 

TF(Term Frequency):: ある単語がその文書に出てきた回数

IDF(Inverse Document Frequency)::  log(全文書数/その単語が出現した文書数)

TF-IDF = TF * IDF

 

各文書ごとにTF-IDFが上位になっている単語だけしか登録しないといった処理をすることで、辞書をコンパクトにできるか試した。各文書ごとにTF-IDF上位15%のものだけを辞書に登録する対象とすることで、関連語辞書は単語数20010個でサイズは約1GB程度となった。以下に掲載するように各文書についてTF-IDFの上位15%だけに絞ったが、関連語情報は4章の結果とさほど変化がなかった。他の単語とよく関連している単語はTF-IDFも大きいと推測される。

 

元単語::C60

関連語リスト::

(("fullerene" . 2.472421) ("molecule" . 1.9377214) ("fullerenes" . 1.7955543)

 ("cage" . 1.6491792) ("c70" . 1.4258758) ("carbon" . 1.4163475)

 ("chemical" . 1.4040655) ("structure" . 1.3072811) ("atom" . 1.293028)

 ("ring" . 1.2777947) ("vacuum" . 1.260423) ("nature" . 1.2105218)

 ("device" . 1.2050914) ("material" . 1.1971312) ("metal" . 1.1930203)

 ("surface" . 1.1670201) ("formation" . 1.1359434) ("unit" . 1.1336042)

 ("position" . 1.1304826) ("van" . 1.1202402) ("synthesis" . 1.1198026)

 ("space" . 1.1097487) ("cluster" . 1.1009712) ("nanotubes" . 1.0783718)

 ("interaction" . 1.0738763) ("distance" . 1.0722344) ("level" . 1.0714458)

 ("field" . 1.0569013) ("feature" . 1.0359572) ("cell" . 1.0354717))

 

元単語:: carbon

関連語リスト::

(("nanotubes" . 1.0709282) ("steel" . 0.80117816) ("material" . 0.75915)

 ("nanotube" . 0.7565974) ("structure" . 0.73958224)

 ("temperature" . 0.72338146) ("electron" . 0.72172725)

 ("chemical" . 0.7019296) ("atom" . 0.70145196) ("energy" . 0.69706327)

 ("process" . 0.6829111) ("surface" . 0.67212063) ("time" . 0.6535923)

 ("effect" . 0.6390136) ("range" . 0.6386948) ("nature" . 0.61912274)

 ("increase" . 0.6158258) ("order" . 0.611431) ("molecule" . 0.59327453)

 ("formation" . 0.59091085) ("sample" . 0.5795472) ("experiment" . 0.5779618)

 ("metal" . 0.57416224) ("report" . 0.5702331) ("layer" . 0.5660746)

 ("interaction" . 0.56331813) ("measurement" . 0.5578023) ("area" . 0.5542707)

 ("type" . 0.55416673) ("system" . 0.55402404))

 

元単語:: laser

関連語リスト::

(("light" . 1.194258) ("device" . 1.0597715) ("material" . 1.0197784)

 ("technique" . 1.0090868) ("surface" . 0.9941282) ("process" . 0.97749835)

 ("wavelength" . 0.9620263) ("substrate" . 0.95499897)

 ("structure" . 0.9537529) ("beam" . 0.94280905) ("electron" . 0.9354045)

 ("semiconductor" . 0.93391204) ("film" . 0.93305767) ("time" . 0.93210584)

 ("figure" . 0.9018119) ("report" . 0.89801353) ("experiment" . 0.8808445)

 ("crystal" . 0.8642915) ("control" . 0.85938) ("system" . 0.8579832)

 ("condition" . 0.8543335) ("field" . 0.8387223) ("type" . 0.8337515)

 ("case" . 0.82966506) ("image" . 0.8275658) ("component" . 0.8245667)

 ("range" . 0.80104023) ("region" . 0.7990737) ("point" . 0.7973557)

 ("order" . 0.77768993))

 

元単語:: カーボン

関連語リスト::

(("製造" . 2.868319) ("温度" . 2.6808696) ("表面" . 2.6529686) ("金属" . 2.5851936)

 ("電子" . 2.5582807) ("材料" . 2.5255423) ("反応" . 2.523238) ("酸化" . 2.523238)

 ("加熱" . 2.4952443) ("炭素" . 2.4053705) ("混合" . 2.3881047) ("装置" . 2.3731885)

 ("形成" . 2.3516588) ("化学" . 2.337869) ("条件" . 2.312701) ("構成" . 2.3055456)

 ("ガス" . 2.2960832) ("構造" . 2.2732685) ("含有" . 2.2691672) ("特性" . 2.2316267)

 ("測定" . 2.2085392) ("" . 2.197892) ("処理" . 2.1868808) ("ナノ" . 2.186709)

 ("状態" . 2.1531668) ("水素" . 2.1351287) ("添加" . 2.1324615) ("効果" . 2.126931)

 ("有機" . 2.0908775) ("生成" . 2.0885825))

 

元単語:: フラーレン

関連語リスト::

(("ナノ" . 4.0516787) ("チューブ" . 3.865791) ("炭素" . 2.9156003) ("製造" . 2.888123)

 ("金属" . 2.8861809) ("酸素" . 2.875016) ("電子" . 2.874288) ("化学" . 2.84353)

 ("材料" . 2.8031917) ("触媒" . 2.789631) ("加熱" . 2.7523303) ("供給" . 2.7456422)

 ("カーボン" . 2.739951) ("ガス" . 2.7179017) ("印加" . 2.7128596) ("粒子" . 2.681276)

 ("構成" . 2.6264074) ("反応" . 2.5898335) ("生成" . 2.5474377) ("物質" . 2.517203)

 ("装置" . 2.517018) ("含有" . 2.4512608) ("混合" . 2.4477007) ("分子" . 2.4317465)

 ("真空" . 2.4235024) ("" . 2.4196978) ("温度" . 2.4028282) ("応用" . 2.3986022)

 ("導入" . 2.3953717) ("アーク" . 2.3526583))

 

元単語:: 分子

関連語リスト::

(("製造" . 2.838499) ("反応" . 2.8023157) ("有機" . 2.761096) ("温度" . 2.73621)

 ("混合" . 2.7033324) ("化合" . 2.6833186) ("金属" . 2.6300805) ("" . 2.5568914)

 ("条件" . 2.5319684) ("添加" . 2.5130017) ("測定" . 2.5100994) ("化学" . 2.5023062)

 ("活性" . 2.495512) ("含有" . 2.4638963) ("酸化" . 2.422963) ("形成" . 2.419901)

 ("組成" . 2.3869526) ("" . 2.3866584) ("存在" . 2.3717463) ("処理" . 2.355806)

 ("加熱" . 2.352904) ("原子" . 2.331577) ("水素" . 2.3247378) ("成分" . 2.3107102)

 ("構造" . 2.3083577) ("生成" . 2.2985172) ("材料" . 2.2958558) ("溶液" . 2.2813451)

 ("結合" . 2.2687616) ("効果" . 2.260447))

 

元単語:: ベンゼン

関連語リスト::

(("芳香" . 3.7878723) ("トルエン" . 3.7238948) ("水素" . 3.7146244)

 ("ヘキサ" . 3.6189315) ("メチル" . 3.6137598) ("エチル" . 3.6045544)

 ("化合" . 3.5626347) ("" . 3.5101385) ("溶媒" . 3.5039487) ("アミ" . 3.4739976)

 ("炭化" . 3.4648633) ("炭素" . 3.3779123) ("" . 3.3590121) ("有機" . 3.353068)

 ("アルキル" . 3.323494) ("クロ" . 3.3076038) ("ブチル" . 3.294139) ("キシ" . 3.2749248)

 ("ハロゲン" . 3.2532992) ("エーテル" . 3.237378) ("反応" . 3.2312973) ("原子" . 3.216843)

 ("置換" . 3.2166443) ("" . 3.2133563) ("エステル" . 3.193555) ("混合" . 3.186741)

 ("添加" . 3.1412523) ("窒素" . 3.1326604) ("分子" . 3.0835896) ("トリ" . 3.0611129))

 

元単語:: コンピュータ

関連語リスト::

(("処理" . 2.8984606) ("機能" . 2.8924532) ("制御" . 2.8857527) ("構成" . 2.795853)

 ("情報" . 2.7781432) ("参照" . 2.7605424) ("装置" . 2.7290251) ("形態" . 2.6971939)

 ("データ" . 2.6807227) ("対応" . 2.6633813) ("表示" . 2.6487525) ("実行" . 2.5874226)

 ("入力" . 2.5483797) ("状態" . 2.5405889) ("複数" . 2.4501674) ("出力" . 2.4465263)

 ("接続" . 2.4446204) ("プログラム" . 2.3804407) ("効果" . 2.3289185)

 ("発生" . 2.3061352) ("記憶" . 2.2936342) ("操作" . 2.1992104) ("設定" . 2.194274)

 ("位置" . 2.1280699) ("ブロック" . 2.1066728) ("変化" . 2.1045895) ("動作" . 2.0781379)

 ("開始" . 2.0722206) ("システム" . 2.056866) ("存在" . 2.0551212))

 

 

8.        間接的関連を考慮した関連度

7章で辞書のサイズを小さくするために、TF-IDFが上位の単語だけに着目するだけでも、精度を落とさないで関連語を拾えることがわかった。しかし、現在の関連語辞書にはまだまだ改良の余地がある。大きなテーマである単語どうしの関連度の計算方法についてはさまざまなアイディア・研究があり、それぞれで試行錯誤してみるとより良い結果を得られる可能性がある。現在のポータルサイトの関連語辞書で用いている「同一の文書に出てきた単語どうしに関連がある」という関連度の定義は、いわば直接的な関連を考慮している。直接的な関連だけでなく間接的な関連も考慮する方法もある。例えば、ある文書で「コーラを飲む」という文があり、別の文書で「オレンジジュースを飲む」という文があったとする。こういった場合、「コーラ」と「飲む」という単語は直接的に関連し、「オレンジジュース」と「飲む」という単語も直接的に関連している。「コーラ」と「オレンジジュース」は同時に出現していないので直接的には関連していないが、「飲む」という単語を介して間接的に関連していると言える。このような間接的な関連を考慮するため、まずは単語出現確率ベクトルを求める。単語出現確率ベクトルの次元は辞書に登録されている単語数であり、その要素値は直接的関連度である。ここでは直接的関連度は単純に同時出現した回数(simple frequency)とし、ベクトルの成分を足して1になるように規格化したものとする。前例では「オレンジジュース」や「コーラ」という単語は「飲む」という単語と一緒に使われるため、単語の出現確率ベクトルのうち「飲む」という単語の成分が大きくなる。「飲む」という成分の方向に単語の出現確率ベクトルが引っ張られ、「オレンジジュース」の単語出現確率ベクトルと「コーラ」の単語出現確率ベクトルは類似したベクトルとなる。つまり、単語の出現確率ベクトルの類似度を測ることで相対的関連を考慮した関連度を評価することができる。単語出現確率ベクトルの類似度を評価する方法として、出現確率ベクトルから以下のような定義のCosine Kullback-Leibler divergence (KL)Jensen-Shannon divergence (JS) Jaccard係数 などを用いる方法が考案されている。

 

=

KL=

JS=KL+KL

Jaccard

 

Jaccard係数は、二つのベクトルがともに0より大きくなっている成分の個数をどちらかのベクトルが0より大きくなっている成分の個数で割ったものである。

以下にC60、フラーレン、コンピュータという単語に対する間接的関連度を考慮した関連語リスト上位30語をのせる。ここでは、Cosine JS Jaccardそれぞれで関連度を計算した。Cosine Jaccardは関連があるものほど1に近く、JSは関連があるものほど0に近い値になる。

 

元単語::C60

方法::Cosine

関連語リスト::

(("fullerene" . 0.9158298) ("ring" . 0.9059683)

 ("van" . 0.90129334) ("cage" . 0.9008575) ("synthesis" . 0.90004075)

 ("ion" . 0.8992894) ("specie" . 0.8982608) ("group" . 0.89804846)

 ("chemical" . 0.8967898) ("fullerenes" . 0.89605206) ("nature" . 0.895864)

 ("catalyst" . 0.8935121) ("gap" . 0.8917914) ("report" . 0.89143914)

 ("charge" . 0.89112824) ("preparation" . 0.8898611) ("bond" . 0.8882839)

 ("possibility" . 0.8876983) ("chemistry" . 0.88727033)

 ("principle" . 0.8867651) ("semiconductor" . 0.88669115)

 ("shell" . 0.88667107) ("novel" . 0.8864669) ("table" . 0.88639176)

 ("variety" . 0.8863156) ("inter" . 0.8860911) ("graphite" . 0.88569057)

 ("vapour" . 0.88557667) ("arrangement" . 0.8854178) ("spectrum" . 0.88516194))

 

元単語::C60

方法::JS

関連語リスト::

(("van" . 0.16765556) ("physic" . 0.17131224)

 ("fullerene" . 0.18196774) ("500" . 0.18253791) ("waals" . 0.1848354)

 ("sp3" . 0.18666932) ("nature" . 0.18998277) ("synthesis" . 0.1930497)

 ("chemical" . 0.19398734) ("afm" . 0.19517493) ("min" . 0.19618057)

 ("characterization" . 0.19743347) ("carbon" . 0.19859457)

 ("deposition" . 0.19941175) ("science" . 0.20024672) ("800" . 0.2009916)

 ("ion" . 0.2022115) ("technology" . 0.20646618) ("nanotubes" . 0.20678434)

 ("molecular" . 0.20760038) ("research" . 0.20911701) ("cage" . 0.21102086)

 ("fabrication" . 0.21288294) ("chemistry" . 0.21297678) ("ring" . 0.2130021)

 ("emission" . 0.21379507) ("laboratory" . 0.21449745) ("600" . 0.21566492)

 ("cm2" . 0.21579951) ("shell" . 0.21608403))

 

元単語::C60

方法::Jaccard

関連語リスト::

(("waals" . 0.75983435) ("world" . 0.75504917)

 ("novel" . 0.7427873) ("phenomenon" . 0.74270165) ("inclusion" . 0.74227846)

 ("machine" . 0.72703546) ("550" . 0.72557175) ("motor" . 0.7188964)

 ("sp3" . 0.71718836) ("fuel" . 0.694085) ("van" . 0.6936819)

 ("characterization" . 0.69250757) ("afm" . 0.6806867) ("sp2" . 0.6785714)

 ("meta" . 0.665215) ("london" . 0.6561562) ("physic" . 0.6561417)

 ("moore" . 0.6388744) ("900" . 0.61717284) ("ch3" . 0.61361545)

 ("material" . 0.6132996) ("800" . 0.610868) ("fcc" . 0.6106992)

 ("von" . 0.60862786) ("fullerene" . 0.60589683) ("spring" . 0.6056452)

 ("iso" . 0.60272765) ("nano" . 0.60235393) ("mem" . 0.6003992)

 ("min" . 0.59892666))

 

元単語::フラーレン

方法::Cosine

関連語リスト::

(("チューブ" . 0.9387384) ("ナノ" . 0.93221945) ("アーク" . 0.9278658)

 ("グラファイト" . 0.92786527) ("放出" . 0.91775846) ("エネルギー" . 0.9160153)

 ("カーボン" . 0.9153026) ("電池" . 0.9144425) ("内包" . 0.91295296)

 ("成長" . 0.9118103) ("放電" . 0.9110182) ("アルゴン" . 0.9105417) ("応用" . 0.9104684)

 ("微粒子" . 0.909979) ("直径" . 0.909485) ("真空" . 0.9089242) ("顕微鏡" . 0.9088939)

 ("蒸気" . 0.90879667) ("期待" . 0.908511) ("写真" . 0.90772927) ("" . 0.9074455)

 ("自己" . 0.90726656) ("元素" . 0.9069482) ("電子" . 0.90646255) ("陰極" . 0.9063701)

 ("貴金属" . 0.90627116) ("スケール" . 0.90626216) ("蒸発" . 0.9059328)

 ("合金" . 0.9053018) ("走査" . 0.90487623))

 

元単語::フラーレン

方法::JS

関連語リスト::

(("ナノ" . 0.10163033) ("チューブ" . 0.10401197)

 ("グラファイト" . 0.121041626) ("放出" . 0.13053444) ("エネルギー" . 0.13158295)

 ("成長" . 0.13209513) ("真空" . 0.13244668) ("走査" . 0.13280046)

 ("応用" . 0.13284841) ("カーボン" . 0.13328777) ("直径" . 0.13396923)

 ("スケール" . 0.13401918) ("電池" . 0.13468572) ("自己" . 0.13579524)

 ("顕微鏡" . 0.13625835) ("破壊" . 0.1367504) ("" . 0.13729614) ("電子" . 0.1377007)

 ("依存" . 0.13883784) ("イオン" . 0.13975185) ("物理" . 0.13984111)

 ("元素" . 0.13995393) ("粒子" . 0.14005218) ("理由" . 0.14070973)

 ("アーク" . 0.14086413) ("作製" . 0.14088954) ("期待" . 0.1414143)

 ("合金" . 0.1415318) ("蒸気" . 0.14204201) ("典型" . 0.14232187))

 

元単語::フラーレン

方法::Jaccard

関連語リスト::

(("言及" . 0.7351885) ("グラファイト" . 0.7235537) ("修飾" . 0.71446645)

 ("ミクロ" . 0.7120134) ("教示" . 0.7117783) ("最低" . 0.70986545) ("最高" . 0.7058584)

 ("マルチ" . 0.7032258) ("高性能" . 0.70111614) ("剛性" . 0.70102686)

 ("アセチレン" . 0.6993243) ("プローブ" . 0.6987076) ("貴金属" . 0.698268)

 ("精密" . 0.6958382) ("タングステン" . 0.694192) ("スター" . 0.69362235)

 ("振幅" . 0.6933962) ("カン" . 0.69310343) ("正方形" . 0.69295657)

 ("メータ" . 0.6921388) ("親水" . 0.69098884) ("含浸" . 0.6903336)

 ("バイアス" . 0.6899634) ("クロム" . 0.6897767) ("閉鎖" . 0.6893453)

 ("廃液" . 0.6891834) ("磁性" . 0.68915665) ("電位" . 0.6882114)

 ("モーター" . 0.6878307) ("多様" . 0.68701094))

 

元単語::コンピュータ

方法::Cosine

関連語リスト::

(("情報" . 0.965383) ("実行" . 0.9590996)

 ("ステップ" . 0.95807093) ("データ" . 0.9576588) ("メモリ" . 0.9553319)

 ("記憶" . 0.9547867) ("指示" . 0.95373195) ("表示" . 0.951871) ("格納" . 0.95032656)

 ("通信" . 0.9486478) ("判断" . 0.94863397) ("システム" . 0.94626576)

 ("検出" . 0.94463515) ("出力" . 0.9433421) ("デジタル" . 0.9427312)

 ("信号" . 0.94219387) ("検知" . 0.94162494) ("ネットワーク" . 0.9410632)

 ("取得" . 0.940442) ("パルス" . 0.9378716) ("プログラム" . 0.93740207)

 ("記録" . 0.93692684) ("ブロック" . 0.9366114) ("フローチャート" . 0.93609804)

 ("入力" . 0.9357622) ("テーブル" . 0.9337281) ("状況" . 0.93361515)

 ("監視" . 0.93309224) ("管理" . 0.9325312) ("一致" . 0.9324832))

 

元単語::コンピュータ

方法::JS

関連語リスト::

(("情報" . 0.06103695) ("データ" . 0.06684174)

 ("表示" . 0.070784606) ("実行" . 0.07421714) ("システム" . 0.07842289)

 ("出力" . 0.078674346) ("検出" . 0.07903735) ("ステップ" . 0.08165793)

 ("信号" . 0.082206674) ("記憶" . 0.08370987) ("記録" . 0.08494434)

 ("判断" . 0.08615804) ("パルス" . 0.08621535) ("機能" . 0.08629993)

 ("対応" . 0.086792156) ("ブロック" . 0.0884024) ("接続" . 0.08863616)

 ("画像" . 0.08885864) ("実現" . 0.08891094) ("関係" . 0.089451745)

 ("制御" . 0.08945266) ("場所" . 0.08999884) ("回路" . 0.09048967)

 ("状況" . 0.09062881) ("変更" . 0.09065813) ("デジタル" . 0.09088566)

 ("距離" . 0.09302124) ("一致" . 0.09317324) ("指示" . 0.09383164)

 ("設定" . 0.09392139))

 

元単語::コンピュータ

方法::Jaccard

関連語リスト::

(("におい" . 0.82046676) ("最良" . 0.819242) ("表示" . 0.8148405)

 ("媒体" . 0.81357116) ("液晶" . 0.8063212) ("消費" . 0.8058595) ("完了" . 0.80557543)

 ("再生" . 0.80438757) ("画像" . 0.80422) ("記録" . 0.8039832) ("実行" . 0.8035842)

 ("駆動" . 0.8030875) ("分割" . 0.80285615) ("ディスク" . 0.8019505)

 ("計測" . 0.8011507) ("追加" . 0.80104166) ("" . 0.8005115) ("大型" . 0.8000727)

 ("圧縮" . 0.7987999) ("放電" . 0.7987717) ("パルス" . 0.7986624) ("継続" . 0.7986014)

 ("場所" . 0.7985562) ("ディスプレイ" . 0.79838425) ("周辺" . 0.7983281)

 ("デジタル" . 0.7979215) ("信号" . 0.7975249) ("製品" . 0.7968804) ("作業" . 0.7966976)

 ("経過" . 0.7958097))

 

一概に評価するのは難しいが、相対的関連を考慮したCosine JSの方が、直接的関連だけ(4章に掲載)の方法より良さそうに見える。方法ごとに向き不向きというものがあり、調査を進めると物質・材料の分野のテキストに特に性能を発揮する方法というのもあるかもしれない。各方法を評価する際にはもっと多くの単語に注目する必要があるが、相対的関連も考慮した方がより良い関連語辞書を生成できる可能性があると言える。

 

9.        まとめと課題

NIMSの物質・材料に特化したポータルサイトのプロジェクトで独自の関連語辞書を作成した。関連語辞書には物質・材料に関係した英語テキスト、日本語テキストから抽出した単語間の関連度の情報が格納されている。現在のポータルサイトでは、関連度は共起出現文書数にもとづいている。現在の関連語辞書は59192単語が登録されていて、サイズは約3.7GBである。関連語辞書はポータルサイトの連想検索やダイジェスト機能などに利用されている。また、関連語辞書には、新単語を追加する枠組み、関連度をチューニングする枠組みも備わっている。その後の調査で、関連語のリストを得るという観点では辞書に登録する単語はTF-IDFの高い単語だけでもあまり影響がないことがわかった。現在のポータルサイトで使用したものと同じコーパスで各文書のTF-IDF上位15%だけを扱えようにしたところ、20010単語でサイズは約1GBに小さくすることができた。また、直接的な関連だけでなく間接的な関連を考慮する方法も調査した。間接的関連度を考慮した関連度を求めるため、単語の出現確率ベクトルを求め、Cosine JS Jaccardで評価したところ、直接的な関連だけものよりもより良い関連語リストを得ることができる可能性が見てとれた。直接的関連度だけを用いる方法でも、他にもMI(相互情報量)Dice係数で計算する方法などが考案されており、関連的関連度を考慮した方法についてもここで調査した方法以外にもさまざまな方法が考案されている。対象としている物質・材料の分野において、方法ごとに向き・不向きは当然あると考えられ、各方法の調査・評価をさらに進めるのが今後の課題として挙げられる。また、辞書の生成元であるコーパスをより良いものを使用することも辞書に登録する単語の質の向上や関連語の精度の向上には必要不可欠である。よって、より良いコーパスを選ぶという事も大きな課題である。