以前書いた発音記号を含んだDICTフォーマットの辞書を使って簡単なテスト用のデータベースを作ってみた。

使用した辞書は次の4つ: English - German(約93000語), French - English(約8000語), German -English(約81000語), Netherlandish - English (約22000語)

まず最初に「単語」と「言語」(それが何語の単語なのか)、「発音記号」の3つの項目を持ったSQLiteデータベースを作った。その上で、Pythonの正規表現を使って辞書ファイルからそれぞれのデータを取出し、データベースに格納した。

検索の方は以下の順序で行われる。

1. 入力された検索タームを含む単語をDB内の4カ国語の単語中から検索する

2. もし一致する単語がみつかれば、その発音記号をDBから取り出す。

3. 取り出した発音記号に「対応する」単語を検索して、結果を表示する

4. 2-3の繰り返し

このうち、実際にテストしてみた結果、3の「対応する」がやはり曲者であることがよくわかった。単純にSQLの=文(文字列が同じ)やLIKE文(あいまい検索)だと、おもったほど単語がヒットしない。発音の近さをどのように定義し、検索のアルゴリズムを作るかが、やはりキーになりそう。

ここでは、LIKE文を使って、まったく同じ発音記号から「始まる」単語を探した場合の結果を示す。

$ python sqlserch.py now

Nauru German nauːruː

nautisch German nautiʃ

nautische German nautiʃə

$ python sqlserch.py kiss

kies Netherlandish kis

kiesheid Netherlandish kishɛi˘t

kieskeurig Netherlandish kiskørəx

kist Netherlandish kist

(それぞれ単語、言語名、発音記号)

特に関係はないが、SQLiteのGUIクライアントソフトが欲しい…


No Responses to “データベース テスト”  

  1. No Comments

Leave a Reply