学習アルゴリズム

人工無脳を改良して、多く出てきた単語を会話に出すように改良する。

PostgresQL と時間

Postgres 9 からは、時間をしまえるようになった。

time 型, timestamp 型、date 型などが利用できる。

ちなみに時間を整数型で計算していた場合は、hour0:min0 から hour1:min1 までかかったとき、

hour1 * 60 + min1 - hour0 * 60 + min0

と計算できるが、時間型で timestamp 型は秒単位で計算する。

PostgresQL と画像

bytea 型で、1 GB まで直接データベースにしまうことができる。

ta05001=> create table qrcode (name text, image bytea);
CREATE TABLE
ta05001=> insert into qrcode values ('qr_email','qr_email.png');
INSERT 0 1
ta05001=> select * from qrcode;
   name   |           image            
----------+----------------------------
 qr_email | \x71725f656d61696c2e706e67
(1 row)

呼び出す dir にはこの画像がある。画像の呼び出しかたは以下のとおり。

ta05001=> select decode(name,'escape') from qrcode where name='qr_email';
       decode       
--------------------
 \x71725f656d61696c
(1 row)

地図情報は PostGIS をインストールし、利用することができる。

PostgresQL と XML

XML の 木構造は XPath を使って理解できる。 psql で XML データをしまうには、

CREATE TABLE testxml (
    id SERIAL PRIMARY KEY,
    xmldoc XML
);

として、XML データを適宜入れる。

NSERT INTO testxml (xmldoc)
VALUES ('

Test

テストです

終了

');
pgsql=> SELECT xpath(E'//h1/text()', xmldoc) FROM testxml;
 xpath  
--------
 {Test}
(1 行)

複数ある要素の場合は

pgsql=# SELECT xpath(E'//p/text()', xmldoc) FROM testxml;
          xpath          
-------------------------
 {テストです,終了}
(1 行)

となる。

Rubyで日本語解析

とりあえず日本語を全て分解させてみよう。 日本語形態素解析には mecab や chasen が知られている。

大学の環境にない場合は、自分で ruby-mecab / ruby-chasen をインストールしよう。 本学では chasen を roy で使用できる模様。

読み仮名を全て平仮名からローマ字にするには、Ruby/Romkan / Kakasi などが使える。

辞書を入れ替えたら

% cd /path/to/*.cha (文法定義ファイルのありか)
% makeda usename input1.dic input2.dic

chasen を使うと

%/opt/FESTIVAL/festival-pkgsrc/bin/chasen -e 
文字列

結果表示

結果を流し込むのも可能。

cat 'jp.txt' | /opt/FESTIVAL/festival-pkgsrc/bin/chasen -e  >& comp.txt

または kakasi を使って

/opt/FESTIVAL/festival-pkgsrc/bin/kakasi -Hj -Jj -C -w      [~]
東北公益文科大学のるびおです。
東北 公益 文科 大学 のるびおです 。

-w はわかち書き

/opt/FESTIVAL/festival-pkgsrc/bin/kakasi -Hj -Jj -C       [~]
東北公益文科大学のるびおです。
TouhokuKouekiBunkaDaigakunorubiodesu。


-C で、文節でアルファベットにしてくれる。

% cat jp.txt| /opt/FESTIVAL/festival-pkgsrc/bin/kakasi -Hj -Jj -C TouhokuKouekiBunkaDaigakunorubiodesu。>& result.txt

変換結果を流しこみ、これを 読ませるため festival を使ってみる。 --tts でファイルを読み込む。

 /opt/FESTIVAL/festival-pkgsrc/bin/festival --tts "result.txt"

何を言っているのかわかりにくいが、しゃべっている。 diphone にしなくてもしゃべるようになったりするので、current の場合には注意しよう。