ChaSenを使った場合ペイジの読みが正しく得られない

  • ページ: BugTrack
  • 投稿者: よっちい?
  • 優先順位: 低
  • 状態: 着手
  • カテゴリー: 本体バグ
  • 投稿日: 2003-11-29 (土) 12:09:30
  • バージョン:

メッセージ

最近のChaSenはipadicに無い単語の読みを得ようとする(-F%y)と削除されてしまいます。そんなわけで読みが正しく得られず、索引ペイジの分類が正しく行われません。

--- func.php.orig       Sun Nov 16 21:17:22 2003
+++ func.php    Wed Nov 26 23:13:58 2003
@@ -314,7 +314,10 @@
                $str .= "</li>";
                
                if($pagereading_enable) {
-                       if(mb_ereg('^([A-Za-zァ-ヶ])',$readings[$page],$matches)) {
+                       if(mb_ereg('^([A-Za-z])',mb_convert_kana($page,"a"),$matches)) {
+                               $head = $matches[1];
+                       }
+                       elseif(mb_ereg('^([ァ-ヶ])',$readings[$page],$matches)) {
                               $head = $matches[1];
                       }
                       elseif (mb_ereg('^[ -~]|[^ぁ-ん亜-熙]',$page)) {

こんな感じでどうでしょう?


  • ありがとうございます。ChaSen-2.3.3で「辞書に読み,発音の情報がないとき,%y,%a などは空白を表示するよう変更.」されたあおりを食ったようですね。 -- ぱんだ 2003-11-30 (日) 02:05:07
  • cvsに投入しました。cvs:func.php(v1.4:r1.56) -- ぱんだ 2003-11-30 (日) 02:08:09
    • mb_convert_kanaを使っているので、extension_loaded('mbstring') === FALSEな環境では動きません。仕方ないかな… -- ぱんだ 2003-11-30 (日) 02:08:09
    • mb_convert_kana()はわたしの好みなので、気にしていただかなくても結構です(が、この方がいいですよね?)。 -- よっちい? 2003-11-30 (日) 22:26:35
  • 上記の修正では直ってないようです。
    大阪近鉄バファローズ オオサカキンテツ
    大阪近鉄バファローズ/順位表 オオサカキンテツジュンイヒョウ
    バファローズが出力されない
    おすすめの1冊/ガールズセックス オススメノイチサツ
    ガールズセックスが出力されない
    ウェブ作成 サクセイ
    ウェブが出力されない
    CSS2のプロパティの値と継承関係 シーエスエスニノノネトケイショウカンケイ
    プロパティが出力されない
    ぱんだ ンダ
    パが出力されない
    ぷらぷら競馬/2004-01-31 ララケイバニゼロゼロヨンゼロイチサンイチ
    やはり「ぱ行」がダメ
    れいみぃ レイミ
    ィが出力されない
    ふぇんにっくす フンニックス
    ェが出力されない
    備忘録/特殊フォルダでexplorerを開く ビボウロクトクシュデイーエックスピーエルオーアールイーアールヲヒラク
    フォルダが出力されない
    :RenameLog 
    background: 
    background-attachment: 
    Information
    InterWikiName
    RecentChanges
    ぷぅ
    ペーター
    読みが出力されない。しかし、background-image:やbackground-repeat:、Ikegamiはちゃんと読みが出力される。
    んーん ンン
    音引きが出力されない
  • あまりに多すぎて、手動で修正するのももう限界…。#norelatedが効かないのでよけいに厄介 -- reimy 2004-01-26 (月) 05:48:56
    • Chasen 2.2.9のときは「ぱ行」「ぁぃぅぇぉ」などが出力されない。英数文字は読みではなくそのまま英数文字が返った(menu1→menu1)。 -- reimy 2004-01-26 (月) 06:48:59
    • Chasen 2.3.3では「ぱ行」「ぁぃぅぇぉ」などだけでなく、上記のように出力されないものが増えた。英数文字は文字の読みが返るようになった(menu1→エムイーエヌユーイチ)。
    • 英数字の読みが出るのは使用する辞書が絡んでます。ipadic-2.7.0ではデフォルトで1byte文字も辞書に登録されているためこのようになってしまうのですが、Onebyte.dicを辞書から外すことで回避できます。 -- よっちい? 2004-01-26 (月) 14:30:07
      • ipadic-2.6.3を使用しています。β版の2.7.0を共用サーバーにインストールするよう要求するのはちょっと拙いと思ったので。
        なお、2.6.3にはOnebyte.dicは存在しませんが、上記のように英数字の読みが出力されます。-- reimy 2004-01-27 (火) 18:13:08
  • すみません。Kakasi/Chasen対応の元々の開発者です。去年の秋から今年の年初めにかけて、忙しくって、開発サイトをあまり見ていませんでした。いつのまにやら、正式採用されていたのですね‥‥ (^^; 対策、考えます。なんか、Chasennの挙動がバージョンによって結構ちがうみたいで、厄介そう‥‥。 -- 三浦克介 2004-01-26 (月) 10:16:44
    • 個人的に現在(?)のChaSenは品質(管理)的に疑問が多いので、ipadicと共に推奨バージョンを設けるのがよろしいと思います。 -- よっちい? 2004-01-26 (月) 14:39:10
    • 開発版やβ版は避けたほうがいいです。リリース版以外はレンタルサーバーなどでインストールを要求しづらいので。現在のリリース版のchasen 2.3.3+ipadic 2.6.3という組み合わせが無難。 -- reimy 2004-01-27 (火) 18:17:01
  • 漢字部分だけ抜き出してChaSenに渡すというのが、確実かなぁ? -- 三浦克介 2004-01-27 (火) 18:48:01
    漢字ChaSen/Kakasiへ → 全角カタカナ
    ひらがな全角カタカナへ変換
    全角カタカナそのまま
    全角英数字・記号ASCIIへ変換
    半角カタカナ全角カタカナへ変換
    ASCIIそのまま
    • それだと送りがなの部分がChasenに渡らないので、正しい読みが得られないと思いますが… -- reimy 2004-01-27 (火) 19:41:02
      • うむむぅ。やっぱり、各バージョンの挙動を調べて、推奨バージョンを示すなり、バージョンごとに対処しないとダメなのか・・・。 -- 三浦克介 2004-01-27 (火) 23:07:08
  • なお、kakasiでは正常に動作しています*1。やはりChaSen側の問題ですね。 -- reimy 2004-01-28 (水) 01:08:06
  • 類似品(失礼な言い方かも)にMeCabというものもあります(mecab -Oyomi)。ipadicを使うので精度は同等です。うまく使えば乗換え可能かと。 -- よっちい? 2004-01-28 (水) 18:27:19
    • MeCabのmakeに失敗… -- reimy 2004-01-29 (木) 01:17:29
      ./.libs/libmecab.so: undefined reference to `pthread_mutex_unlock'
      ./.libs/libmecab.so: undefined reference to `pthread_mutex_lock'
      ./.libs/libmecab.so: undefined reference to `pthread_mutex_init'
      *** Error code 1
      Stop in /hogehoge/bin/mecab-0.77/src.
      *** Error code 1
      Stop in /hogehoge/bin/mecab-0.77.
      *** Error code 1
      Stop in /hogehoge/bin/mecab-0.77.
      • pthread (Linux Threads Library http://pauillac.inria.fr/~xleroy/linuxthreads/ ) がインストールされていないせいですね。 -- 三浦克介 2004-01-29 (木) 08:51:52
      • libtoolをゴニョゴニョすると通るようになると思います。処理系に何をお使いかわからないので的を外しているかもしれませんけれども。 -- よっちい? 2004-02-02 (月) 20:41:31
                elif test "X$arg" = "X-lc_r"; then
                 case $host in
                *-*-openbsd* | *-*-freebsd*)
                   # Do not include libc_r directly, use -pthread flag.
                   continue
                   ;;
                 esac
        以前はpthreadを使えるようにするにはlibc_rをリンクするようにしてましたが、これはobsoleteになっている(で合ってる?)のにMeCabではlibc_rを使うようになっています。
    • MeCabの場合もipadicのどのバージョンを使うかで結果が変わりそうですね。正式サポートは2.5.1までみたいで、ちょっと古い。2.6.xや2.7.xを使ったとき、どういう結果になるか… -- reimy 2004-01-29 (木) 00:52:15
      • MeCabのメーリングリストに流れた情報によると、ipadic-2.6.2以降でNGとのことです(「連結表の仕様」が変わっているとか)。 -- よっちい? 2004-01-29 (木) 17:17:35
  • ちょっとだけ面識があったのでChaSen開発元に聞いてみました。 -- よっちい? 2004-06-07 (月) 20:46:54
    ぱんだ ンダ

    になるのは「ぱ」が未知語だからです。

    % echo 'ぱんだ' | chasen 
    ぱ                      未知語
    ん      ン      ん      名詞-非自立-一般
    だ      ダ      だ      助動詞  特殊・ダ        基本形
    EOS

    で、ChaSenはこれを「仕様」としています。なので、これを回避するための手っ取り早い手段は「ぱ」を辞書に登録してしまうことです(コストを最低にすれば他の辞書に影響は無いハズ)。こうすることで、

    % echo 'ぱんだ' | chasen -F %y
    パンダ

    こうなることも確認済です。もし辞書のカスタマイズが許容できる環境であれば、これにより完璧に回避可能と思います。ユーザー辞書を作ってみます。

    別手段としてMeCabについても調査中....

    • ユーザー辞書を作ってみました、作成キットも同梱してます(filechadic_puki.tar.gz)。pukiwiki.dicをChaSenのユーザー辞書に入れることで、カタカナやひらがなが削除されてしまうことはなくなります。 -- よっちい? 2004-06-10 (木) 21:12:34
  • MeCabの作者さんに相談してみたところ、MeCab-0.78で「未知語については入力そのままを出力する」という仕様にしてもらうことができました(多謝)。mb_convert_kana()を使って未知語の平仮名を片仮名に変換することで、KAKASIの出力に近くなったと思います。

    パッチを当てて、pukiwiki.ini.phpに

    $pagereading_kanji2kana_converter = 'mecab';
        :
    $pagereading_mecab_path = '/usr/local/bin/mecab';
    としてみてください(パッチfilemecab.patch.gz)。

    言い出しっぺのわたしとしてはChaSenをやめてMeCabを推奨するということで決着したいのですがどうでしょうか? -- よっちい? 2004-06-21 (月) 20:27:51

  • BugTrack2/58 MeCabに対応して欲しい -- 2005-04-21 (木) 22:02:05

*1 ChaSenに比べると多少精度は落ちますが。

添付ファイル: filemecab.patch.gz 848件 [詳細] filechadic_puki.tar.gz 823件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-04-21 (木) 22:02:05
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.363 sec.

OSDN