スポンサーリンク

国立国会図書館件名標目表(NDLSH)を使って蔵書検索をつくってみた。その3

スポンサーリンク

その1 | その2 | その3 | その4 | その5 | その6

前回のおさらい
【前回までのストーリー】

・国立国会図書館件名標目 タブ区切りテキストファイルをダウンロード
・エクセルで開けるようにする(場合によってはテキストファイルで分割)
・エクセルの関数を使って「同義語」を分割。
第3回は、上位語、下位語、関連語の分割について
 ダウンロードして、エクセルで開けるようにしたデータは、同義語、上位語、下位語、関連語が、それぞれ複数あってもひとつのセルに入っている。ひとまずちゃんとしたデータベースを作成するには、それらを分割する必要があります。ひとつふたつなら手作業でコピー、カット&ペーストで作業できるのですが、これがひとつのセルに30個以上の件名(単語)が入っていたり、全体が数万レコードあったりする…となると、ひとつひとつ手作業で行うわけにはいきません。そこでこんな風に要領よく、楽をするための努力は惜しまない…ということでやってみました。なお、上位語、下位語、関連語は同様の処理なので、ここでは下位語の作業を中心に書いておきます。
下位語の分割



ID: 00574809 人類学の[下位語]には4つの件名がありますが、それがひとつのセルの中に入っているので、このままでは操作ができません。まずはこの項目を分割します。

小さくてわかりにくいので
まずは、
  • E2: 区切り文字[;]の個数を数える =LEN(D2)-LEN(SUBSTITUTE(D2,”;”,””))
  • F2: 最初の区切り文字の位置 =IF(ISERROR(FIND(“;”,D2,1)),””,FIND(“;”,D2,1))
  • G2: 二番目の   〃   =IF(ISERROR(FIND(“;”,D2,F2+1)),””,FIND(“;”,D2,F2+1))
  • H2: 三番目の   〃   =IF(ISERROR(FIND(“;”,D2,G2+1)),””,FIND(“;”,D2,G2+1))
  • I2: 文字列全体の長さ(文字数) =LEN(D2)
これをもって
  • K2: 最初の下位語  =MID(D2,1,F2-1)
  • L2: 二番目の下位語  =MID(D2,F2+1,G2-F2-1)
  • M2: 三番目の下位語  =MID(D2,G2+1,H2-G2-1)
  • N2: 四番目の下位語  =MID(D2,H2+1,I2-H2)
を抽出します。これをコピーし、形式を選択してペースト…その際は◎数値を選択肢、□行列を入れ替えるにチェックをする。そしてこんな風になります。
 
次に、下位語を 下位語と下位語IDに分割
  • T2: 下位語のIDの区切り文字 [<]の位置 =IF(ISERROR(FIND(“<“,S2,1)),””,FIND(“<“,S2,1))
  • U2: 下位語のIDの区切り文字[>]の位置  =IF(ISERROR(FIND(“>”,S2,1)),””,FIND(“>”,S2,1))
  • V2: 下位語のみ =LEFT(S2,T2-1)
  • W2: 下位語ID(数字のみ) =MID(S2,T2+1,U2-T2-1)
以上の操作で、件名と下位語のリレーションテーブルのベースができあがります。

 

同様の操作(関数)によって、上位語および関連語を分割し正規化を行います。

 

 

未分類
スポンサーリンク
maru3をフォローする
スポンサーリンク
maru3.LIFE – 丸山高弘の日々是電網

コメント

タイトルとURLをコピーしました