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は文節の周りの文脈は見ないのでしょうか。 -- 山本将也