Masanari Yamamoto
h0131****@ice*****
2005年 9月 19日 (月) 03:58:40 JST
山本です。
On Sun, Sep 18, 2005 at 07:41:00PM +0200, Yoriyuki Yamagata wrote:
> > Dartsを$HOMEにインストールしているのですが、./configureやmakeのオプシ
> > ョンでCPPFLAGSを設定しても下のエラーが発生しました。
> >
> > darts.cpp:22:19: error: darts.h: そのようなファイルやディレクトリはありません
> >
> > そのため、mana/MakefileのINCDIRSにdarts.hがある場所を直接指定しました。
> >
>
> configureオプションで--with-darts=<dartsのあるディレクトリ>としたらどうなりますか。
--with-dartsオプションでコンパイルすることができました。ありがとうござ
います。
> > eggで使っていたところ、文節の長さを変えていると以下のように表
> > 示がおかしくなることがありました。
> >
> > |てすとです|
> >
> > ↓スペース
> >
> > |テスト です|
> >
> > ↓Ctrl-o
> >
> > |てすとで す|
> >
> > ↓Ctrl-f スペース
> >
> > |てすとで テストデス|
> >
> > *MANA*のバッファを調べてみたところ、下のようになっていましたが、
> > (mana-best-path "てすとです" 0 4 1)
> > (("す" 0 5 16 2770))
> >
> > この部分の出力はこのようになるのが正しいはずです。
> > (("す" 4 1 16 2770))
> この問題は気がついています。egg-mana.elのバグだと思いますが、まだ調べていません。
egg-mana.elのバグということは、
(mana-best-path "てすとです" 0 4 1)
(("す" 0 5 16 2770))
この出力は問題ないということですか?
READMEによると、"す"の文節の長さが5ということになっておかしい気がする
のですが。
>(mana-best-path <ひらがな表記文字列> <始状態> <解析開始位置> <長さ>)
> 与えられた文字列を解析し、最適な解析結果を返します。解析結果は
> (<形態素> <位置> <長さ> <連接後の状態> <コスト>)のリストとして
> 表されます。
> > インストールが成功し、manaを実行してみると、以下のエラーが発生しました。
> >
> > Fatal error: exception Dbm.Dbm_error("Can't open file /home/yamamoto/.manadic")
> >
> > 詳しいことはわかりませんが、以下のようにpersonalDict.mlを書き換え
> > るとエラーが発生しなくなりました。
> >
> > Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create] 0o600 in
> > ↓
> > Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create; Dbm.Dbm_rdwr] 0o600 in
>
> エラーの原因は、個人辞書がもしなければ生成するはずのところ、書き込み権限がないので生成できないためです。ファイルがなければ生成するコードを追加すれば解決します。
>
> 山本さんのように、常に書き込み権限を与えると、複数のmanaが実行できなくなります。
>
> > manaのプロセスを2つ起動すると以下のエラーが出るのですが、標準入出力以
> > 外の手段(UNIXドメインソケットなど)で、manaと通信できるようにする予定は
> > あるでしょうか。
> > Fatal error: exception Dbm.Dbm_error("Can't open file /home/yamamoto/.manadic")
>
> これは山本さんの修正が原因です。GDBMを書き込み権限つきで開けるのは1プロセスまでです。クライアント/サーバモデルを採用するつもりはありません。(無意味だと思っています。)
複数のmanaを起動できるようになるということですね。安心しました。
egg-manaで
|きどうする| → |起動 する|
と変換した後、M-sで候補一覧を表示すると、
0.機動 1.軌道 2.奇道 (以下略
と表示されるのですが、最初に変換された「起動」と候補一覧の最初の候補
(「機動」)が違っています。
*MANA*を見てみると以下のようになっています。
(mana-best-path "きどうする" 0 0 5)
(("起動" 0 3 252 4833) ("する" 3 2 4 5319))
(mana-list-candidates "きどう" 0 0 3 3)
(("機動" 241 3388) ("軌道" 241 3514) ("奇道" 241 4631) ("気道" 241 4631) ("奇童" 241 4631) ("起動" 252 4833) ("綺堂" 245 4976) ("毅堂" 245 4976)\
("きどう" 0 120369) ("キドウ" 0 240369) ("kidou" 0 360369))
manaの仕組みは全然知らないのですが、おそらくこの部分
(mana-list-candidates "きどう" 0 0 3 3)
で、mana-list-candidatesに文脈情報が渡っていないのが原因だろと思って、
下のように<ひらがな表記文字列>や<長さ>を変えて評価してみたのですが、結
果は全く同じでした。
(mana-list-candidates "きどうする" 0 0 3 3)
(mana-list-candidates "きどうする" 0 0 3 5)
mana-list-candidatesは文節の周りの文脈は見ないのでしょうか。
--
山本将也