9. コンピューターを用いた演習(情報検索1)

[表紙に戻る]

論理検索や部分一致検索について説明し、その考えに基づいてコンピュータソフトを使用してデータベースの操作を行う。 また、検索結果を評価するための指標について説明する。


9.1 情報検索

 情報検索とは、「あらかじめ蓄積されている大量のデータ」の中から必要とする情報を探し出すことである。このとき、この大量のデータをコンピュータを用いて検索できるようにしたものを「データベース」という。データベースは、収録されているデータの形態によって、3つに分類できる。  

表1
リファレンスデータベース 文献の書誌事項や抄録などを収録したもの。
ファクトデータベース 図書や雑誌などの資料の全文を含んでいる。
マルチメディアデータベース 文字、音声、画像などの情報を統合的に扱う。

 データベース上での情報検索は、検索語を使用して行われる。検索語が複数の場合は、論理演算や部分一致検索などを用いて検索式を作成し、その検索式に基づいてデータベースからデータを抽出する。

9.1.1 論理演算
 論理演算とは、集合に対して行われる演算である。ここでの集合とは、何らかの方法で分類された多くの本の集まりを想像してもらえればよい。本の分類は検索語で行うことができ、複数の検索語がある場合には、複数の集合ができる。この複数の集合に対して論理演算を行うことができる。
 今、{情報論、情報伝送、情報メディア、ニューメディア情報、デジタルメディア、メディア用語、倫理学、音響学辞典}の8冊の本があったとする。このとき、次のような本の集合を考える。

A = {情報という言葉を含む集合}
B = {メディアという言葉を含む集合}

このとき、
A = {情報論、情報伝送、情報メディア、ニューメディア情報}
B = {デジタルメディア、メディア用語、情報メディア、ニューメディア情報}

となる。この、AとBという集合に対して、以下のような論理演算を行ってみる。

表2
演算 意味 用例
and(論理積) AとBのどちらにも含まれる A and B = {情報メディア、ニューメディア情報}
or(論理和) AとBのどちらか一方にでも含まれればよい A or B = {情報論、情報伝送、情報メディア、ニューメディア情報、デジタルメディア、メディア用語}
not(論理差) Aの中からBに含まれるものを除く A not B = {情報論、情報伝送}

 また、論理演算では、次のような法則(ド・モルガンの法則) が成り立つ。

(A and B)c = Ac or Bc
(A or B)c = Ac and Bc

ここで、cは否定を表す。例えばAc = {デジタルメディア、メディア用語、倫理学、音響学辞典}である。
論理演算の概念図図1

9.1.2 部分一致検索
 例えば、本のタイトルの一部が分かっているような場合、部分一致検索を行う。部分一致検索は、次のように幾つかのパターンに分類される。

前方一致
雪*   (雪だるま、 雪山、 ..............)

後方一致
*雪   (大雪、 ぼたん雪、 .............)

中間一致
*雪*  (前方一致、 後方一致、 除雪車、 白雪姫、 .............)

両端一致
情報*入門  (情報処理入門、 情報科学入門、 ...............) 

9.1.3 近接演算
 検索する言葉の位置関係も指定できる。検索語のすぐ右隣にもう1つの検索語が出現するなどの指定ができる。
information media for learning の4つの検索語で調べてみる。

9.1.4 検索結果の評価
NA : 検索された適合文献数
NB : 検索されなかった適合文献数
NC : 検索された不適合文献数
ND : 検索されなかった不適合文献数

NA+NB : 適合文献数 NA+NC : 検索された文献数

・再現率
 NA / (NA + NB) で計算される。検索された文献に含まれている適合文献の数を全適合文献数で割ることによって、どれだけ適合文献を再現できたかを表しており、もれの少なさを表している。
・適合率(精度)
 NA / (NA +NC) 検索された文献に含まれている適合文献の数を検索された文献数で割ることによって、いかに精度よく適合文献を検索できたかを表しており、ノイズの少なさを表す。

 適合率を大きくようとすると検索式を複雑にする必要があるが、そうすると逆に再現率が小さくなる。つまり適合率と再現率はトレードオフの関係にある。
再現率と精度図2

課題.9
(1)ド・モルガンの法則を、8冊の本の例を使って確かめる。
 全体の集合={情報論、情報伝送、情報メディア、ニューメディア情報、デジタルメディア、メディア用語、倫理学、音響学辞典}
A = {情報という言葉を含む集合}, B = {メディアという言葉を含む集合} 
について、以下の式の左辺と右辺を計算し、等しいことを確かめること。
 (A and B)c = Ac or Bc

(2)全体の集合を、{情報論、情報伝送、情報メディア、ニューメディア情報、デジタルメディア、メディア用語、倫理学、音響学辞典}とする。
 (I) 「情報」という言葉を含む本を探すときに、部分一致検索の前方一致の「情報*」で検索したときの再現率を求めてみること。
 (II) 次に「情報メディア」という言葉を含む本を探すときに、部分一致検索の中間一致の「*メディア*」で検索したときの適合率(精度)を求めてみること。

9.2 コンピュータソフトを使った情報検索

9.2.1 表計算ソフトの場合
 表計算ソフトExcelは、簡単なデータベース機能がある。
(1) リボンの「データ」タブの「並べ替えとフィルタ」グループの 「フィルタ」ボタンをクリックする。
(2) 列タイトルに矢印が表示されるので、その矢印をクリックし、データがテキストの場合は「テキストフィルター」、数値の場合は「数値フィルター」を選択し、表示されるメニューから行いたい処理をクリックする。

 また、Excelには幾つかのデータベース関数が用意されており、それを使用すると色々な検索条件を設定することが可能である。例えば、出版年が「1990以上」で、書名に「コンピュータ」という言葉を含む本の冊数を調べる場合、以下ように条件 (criteria)を設定し、DCOUNT関数を使用する。

書名 著者名 出版社 出版年
*コンピュータ*

>=1990

出版年が「1990以上」で書名に「情報」という言葉を含む本、または、書名に「コンピュータ」という言葉を含む本の冊数を調べる場合は、以下のように引数を作成する。 「かつ(AND)」の場合は同じ行で、「または(OR)」の場合は行を変える。

書名 著者名 出版社 出版年
*情報*

>=1990
*コンピュータ*


出版年が「1990以上」で書名に「情報」という言葉を含む本で、 出版社が「近代科学社」以外の本の冊数を調べる場合は、以下のように引数を作成する。 等しくないとする場合は「<>」を使用する。

書名 著者名 出版社 出版年
*情報*
<>近代科学社
>=1990


Excelのテストデータ

9.2.2 データベースソフトの場合
 また、データベースソフトを利用すると、さらに色々な処理が可能となる。ここではAccessを例として演習を行う。
(1)「Microsoft Access」を起動する。
(2)Accessが起動するので、「他のファイルを開く」を選択し、さきほどダウンロードした「test.xlsx」を選ぶ。(このときファイルの種類を「すべてのファイル」に変更しないと、「test.xlsx」が表示されない。)
(3)ワークシートリンクウィザードが表示されるので、図3〜図4の通り設定する。
access_2図3 access_3図4

(4)リボンの「作成」タブの「クエリ」グループの「クエリデザイン」ボタンをクリックする。
(5)テーブルの表示の窓(図5)が表示されるので、「追加」をクリックし、最後に「閉じる」をクリックする。
access_5図5 

(6)「クエリ」の窓(図6)が表示されるので、例えば出版年が「1990以上」で、書名に「コンピュータ」という言葉を含むデータを表示したい場合には、図6のように検索条件を設定する。
access_6図6

(7)検索結果を表示したい場合には、図7のデザインの「実行」ボタンをクリックする。すると図8のように検索結果が表示される。
access_7図7
access_8図8
また、図9のように「クエリ1」というタブで右クリックし、「SQLビュー」をクリックすると、検索に用いられたSQL文を見ることができる。
access_9図9

(8)検索結果を保存したい場合には、「ファイル」、「名前を付けて保存」をクリックし、その中の「オブジェクトに名前を付けて保存」をクリックし、さらに「名前を付けて保存」ボタンをクリックすると、図10のような「名前を付けて保存」の窓が表示される。
access_10図10

(9) (8)で「クエリ1」とファイル名を付けた場合には、図11のように「クエリ1」が表示されるので、そこで右ボタンを押すと、メニューが表示されるので、「エクスポート」、「Excel」をクリックする。
access_11図11

(10)「エクスポート」の窓が表示されるので、「ファイル名」を適当に付け保存すると、検索結果がExcel形式で保存される。

9.2.3 SQL文
(a)SELECT文

SELECTは、表からデータを抽出するためのSQLの命令であり、以下のように用いる。

「SELECT フィールド名 FROM テーブル名 WHERE 条件」

すべてのフィールドを表示するときは
「SELECT * FROM テーブル名 WHERE 条件」
とする。

[表紙に戻る]