データベース テスト
以前書いた発音記号を含んだ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クライアントソフトが欲しい…
Project Phonethica
Combining scientific technology and art, Phonethica is an interdisciplinary project which explores the diversity of the world, through the phonetics of its 6,000 languages.
Search
Archives
- November 2007
- September 2007
- August 2007
- April 2007
- March 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
No Responses to “データベース テスト”
Please Wait
Leave a Reply