[Shinji-devel 11] Re: 真字 0.1.5

Back to archive index

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

-- 
山本将也



Shinji-devel メーリングリストの案内
Back to archive index