Archive for May, 2005
Nao Tokui
Artist/DJ/Ph D of Engineering
http://www.naotokui.com
EDUCATION
2003
Completed Doctoral course in the School of Engineering the University of Tokyo
RESEARCH
2004 - 2005
SONY Computer Science Laboratory Paris. Visiting Researcher
AWARDS, FELLOWSHIPS and GRANTS
2003
IPA - Mitoh Youth
2004
Agency for cultural affairs of Japan - Media Arts category
IPA - Mitoh/Exploratory Software Project
SOFTWARE WORKS
2003
SONASPHERE
2004
Fluido
A dynamic text editor supporting the act of “reading,” “writing” and “thinking” seamlessly
EXHIBITIONS […]
データベース テスト
以前書いた発音記号を含んだ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クライアントソフトが欲しい…
Pythonについて
Pythonは1990年にGuido Van Rossumによって発表されたプログラミング言語。
インターネット上で手に入る入門書等を以下に挙げた。
Dive into Python - http://gurno.com/adam/ebooks/dip.rb
300ページ以上におよぶ本がPDFで公開されているのがうれしい。サンプルコードの解説も非常に丁寧で、わかりやすい。
お勧め!
Python Manual - http://www.network-theory.co.uk/python/manual/
How to think like a computer scientist - http://thinkpython.com/
Pythonをつかったコンピュータサイエンスへの入門
Text Processing in Python - http://gnosis.cx/TPiP/
テキスト処理 - やたらに長い本
A byte of Python - http://www.byteofpython.info/
Pythonでのデザインパターンについて。Python中上級者むけ
PythonとSQLite
辞書データを格納するデータベースとして、SQLiteを使うことにしたい。SQLiteは、SQLスタンダードに準拠したデータベースシステムのひとつだが、MySQLなどと違って、いわゆるサーバを必要としない点に特徴がある。Mac OS Xでは、Tigerから標準でSQLiteがインストールされているため、今後ますます利用が広がることが予想される。Tigerの新しいCore Dataの機能を利用することを視野に入れつつ、SQLiteをデータベースとして現時点では採用することにする。
辞書データの解析、データベースへの格納にはPythonを使う(pythonの勉強の意味も込めて…)。PythonからのSQLiteへのアクセスについては、Sams 社の本SQLite が詳しい。
PysonからSQLiteを使うには、pysqliteをインストールする必要がある。Mac OS X(多分、Panther以降)では、ソースをダウンロードして、 >python setup.py build
>sudo python setup.py install
で、ビルドとインストールが出来る。以降は、sqliteモジュールをインポートして使うとよい(>>> import sqlite)。
実際にSQLiteのコマンドを実行するには、
1. SQLiteのDBを開く/コネクトする
>>> db = sqlite.connect(”aDB”)
2. カーソルオブジェクトを作る (これがいまいちわからない)
>>> cu = db.cursor()
3. 2でつくったカーソルオブジェクトのexecute()を呼ぶ
>>> cu.execute(”SQL文”)
4. コミットする
>>> db.commit()
5. DBを閉じる
>>> db.close()
SELECT文を実行すると、カーソルオブジェクトのfetchone()関数で返値を行ごとに取り出せる。
row = cu.fetchone()
while row:
print row[0]
Pythonでの正規表現はここが詳しい。
DICT辞書データ
DICTサーバで使えるデータは専用のフォーマットに変換されたデータのみ。可読なデータに戻すために、dictunformatコマンド(shell script)がlinux環境用に用意されている(逆にフォーマットへの変換には dictfmtを使う)。dictunformat、dictfmtは、dictdのパッケージに含まれている(ftp://ftp.dict.org/pub/dict/ から、最新のdictdパッケージをダウンロードする.
パッケージ全体のインストールは通常の手順を踏めばなんなく行える。
./configure -> make -> sudo make install
各辞書データは、登録されている単語のインデックス .indexファイルと実際の単語の定義などが書かれた、.dictファイルからなる。以下、英独辞典の場合を例にとって、辞書データのアンフォーマットの方法を示す。
辞書データの解凍
dictzip -d eng-deu.dict.dz
アンフォーマット
dictunformat eng-deu.index < eng-deu.dict > eng-deu-dict.txt
dictunformatは indexファイルを引数としてstdinに 解凍したdictファイルを入力として受け、stdoutに結果を出力する(最後の出力先ファイル名は任意)。
実は、.dictデータの段階で可読なデータ? unformatしたものとの違いがよくわからない….
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