[掲示板へもどる]
一括表示

  [No.327] タグ@linux 投稿者:なかの  投稿日:2007/09/04(Tue) 16:19:54

なかのと申します。
linux版のkh-coderを利用しようとしています。
khcoder-2b10.tar.gz,chasen-2.4.0.tar.gzです。

とりあえず、起動および前処理、その他の分析も動くようになっています。

問題は、タグ(<h1></h1>)を認識しないということです。データファイル中にタグを挿入しているのですが、前処理後の「文書の単純集計」にその結果が反映されません。同じデータをwindows版で分析すると、きちんと<h1>が集計単位としてあらわれます。

前処理のどこかでタグの抽出に失敗しているものと思われますが、原因や対策で思い付くことはあるでしょうか?


  [No.328] Re: タグ@linux 投稿者:HIGUCHI Koichi  投稿日:2007/09/04(Tue) 16:50:17

こんにちは、樋口です。書き込みありがとうございます。

# 私の知っている限りでは、Linux上でKH Coderを動かして
# いらっしゃる方というのは、なかのさんがはじめてです!

メニューの「前処理」「語の抽出結果を確認」とたどり、
「h1」を検索してみていただけますでしょうか。検索結果
をダブルクリックして詳細画面を出すと、Windows版では
「<H1>」がタグとして取り出されていることが分かると
思うのですが、Linuxではどうでしょうか。

KH Coderは、<>で括られている部分を強制的に1つの語と
して取り出し、「タグ」という品詞名を与えるように茶
筌を設定します。お使いの茶筌のバージョンが新しいの
で、もしかするとこの設定に失敗しているのかもしれま
せん。その場合は、手動で茶筌を設定していただければ
なんとかなるかもしれません。
(なお、KH Coderから茶筌を起動する際は、KH Coderに
登録したchasenrcファイルが使われますのでご注意くだ
さい。kh_lib/kh_morpho/linux/chasen.pmの12行目あた
りです)

あるいは、古い茶筌でも良い場合には、2.2.0以前の茶筌
をお試しいただくのも手かと思います。

それでは、どうぞよろしくお願いいたします。


  [No.329] Re: タグ@linux 投稿者:なかの  投稿日:2007/09/04(Tue) 21:30:49

なかのです。
樋口さん、早速のお返事ありがとうございます。

> メニューの「前処理」「語の抽出結果を確認」とたどり、
> 「h1」を検索してみていただけますでしょうか。検索結果
> をダブルクリックして詳細画面を出すと、Windows版では
> 「<H1>」がタグとして取り出されていることが分かると
> 思うのですが、Linuxではどうでしょうか。

試してみましたが、<h1>を検索しても無反応でした。


> KH Coderは、<>で括られている部分を強制的に1つの語と
> して取り出し、「タグ」という品詞名を与えるように茶
> 筌を設定します。お使いの茶筌のバージョンが新しいの
> で、もしかするとこの設定に失敗しているのかもしれま
> せん。その場合は、手動で茶筌を設定していただければ
> なんとかなるかもしれません。
> (なお、KH Coderから茶筌を起動する際は、KH Coderに
> 登録したchasenrcファイルが使われますのでご注意くだ
> さい。kh_lib/kh_morpho/linux/chasen.pmの12行目あた
> りです)
>
> あるいは、古い茶筌でも良い場合には、2.2.0以前の茶筌
> をお試しいただくのも手かと思います。

2.4.0、2.3.3を手動でやってみました。いずれのバージョンでも、*_ch.txtには<h1>がタグとして抽出されています。また、手動でやらなくとも(kh_coder.plから前処理をしても)*_ch.txtには<h1>がタグとして抽出されていることも確認しました。

したがって、chasenの出力結果をmysqlに渡すところで、何か不具合が生じているものと予想されますがいかがでしょう?

ちなみに、同じ端末でwineというエミュレーターを使ってwindows版のkh_coderを実行し、mysqlを(windows版のそれではなく)linux上のmysqlサーバに接続するようにしたところ、問題なく動作し、<h1>もきちんと抽出・認識されています。




> # 私の知っている限りでは、Linux上でKH Coderを動かして
> # いらっしゃる方というのは、なかのさんがはじめてです!

普通にwindows版を使えば話がはやいのでしょうけど、手元のwindows機は処理能力があまりよくないので、できればlinuxで分析できる環境を整えたいと考えております。


  [No.330] 新しいバージョンの茶筌への対応 投稿者:HIGUCHI Koichi  投稿日:2007/09/04(Tue) 22:53:39

樋口です。

種々の確認を行っていただき、大変ありがとうございます。

> chasenの出力結果をmysqlに渡すところで、何か不具合が生じているものと予想されますがいかがでしょう?

お手数をおかけしました。おっしゃるとおり、茶筌の設定の問題ではなく、出力ファイルの扱いにまずい点があったためでした。

2.3.3以降の茶筌では、仕様の変更があったようで、<H1>のような語の基本型が出力されず、ブランクになっています。これに対応できていませんでした。(Windows版パッケージに同梱の茶筌は古いものなので、Windows上では問題が生じなかったのです)

この問題についての修正を行いましたので、新しいバージョンをcvsからダウンロードしていただけますでしょうか。以下の2つのコマンドを実行し、カレント・ディレクトリにダウンロードされた「core/kh_lib」「core/dummy_lib」の2つを、既にお使いのKH Coderのディレクトリに上書きしていただけばOKです。

cvs -z3 -d:pserver:anonymous@khc.cvs.sourceforge.net:/cvsroot/khc export -r HEAD core/kh_lib
cvs -z3 -d:pserver:anonymous@khc.cvs.sourceforge.net:/cvsroot/khc export -r HEAD core/dummy_lib

なお、以上の操作によって、新しいバージョンの茶筌への対応の他、以下のような変更が加えられます。

>■データ中に半角「\」「"」「'」が含まれている場合、エラー回避のために、処理の前にこれらを全角に変換するように修正
>■「前処理効率化のためにデータをRAMに読み出す」という設定がオンになっていても、RAM(メモリ)におさまらないくらい大きなデータを扱う際には、データのRAMへの読み出しを避けるように修正した。(これまでは問答無用でRAMへの読み出しを試み、RAMにおさまらずに失敗すると、エラー表示が出て前処理が止まっていた)
>■各種データ出力の際に、kh_coder.exeと同じ場所に「temp.txt」という名称のファイルを保存しようとすると失敗するバグの修正
>■「『抽出語x文脈ベクトル』表の出力」コマンド実行時に、エラー表示が出て処理が止まってしまう場合があるバグを修正

# なにはともあれ、Linux上で使ってくださる方がいらっしゃるとは、嬉しいおどろきでした。


  [No.331] Re: 新しいバージョンの茶筌への対応 投稿者:なかの  投稿日:2007/09/05(Wed) 00:43:25


なかのです。
本当に素早い対応、ありがとうございます。

いただいたファイルで<h1>タグが認識されるようになりました。先達はあらまほしきことなり、ですね。ソースを読んで原因を究明するか、あきらめてwindows版で仕事をするか、悩んでおりましたが、思い切って質問してよかったです。

一点だけ、こちらの手元で加えた修正点を報告しておきます。私の環境では、mysql_exec.pm の30行目と31行目の間に

$dbh->do("SET NAMES ujis");

という一行を加えてやる必要がありました。





> 樋口です。
>
> 種々の確認を行っていただき、大変ありがとうございます。
>
> > chasenの出力結果をmysqlに渡すところで、何か不具合が生じているものと予想されますがいかがでしょう?
>
> お手数をおかけしました。おっしゃるとおり、茶筌の設定の問題ではなく、出力ファイルの扱いにまずい点があったためでした。
>
> 2.3.3以降の茶筌では、仕様の変更があったようで、<H1>のような語の基本型が出力されず、ブランクになっています。これに対応できていませんでした。(Windows版パッケージに同梱の茶筌は古いものなので、Windows上では問題が生じなかったのです)
>
> この問題についての修正を行いましたので、新しいバージョンをcvsからダウンロードしていただけますでしょうか。以下の2つのコマンドを実行し、カレント・ディレクトリにダウンロードされた「core/kh_lib」「core/dummy_lib」の2つを、既にお使いのKH Coderのディレクトリに上書きしていただけばOKです。
>
> cvs -z3 -d:pserver:anonymous@khc.cvs.sourceforge.net:/cvsroot/khc export -r HEAD core/kh_lib
> cvs -z3 -d:pserver:anonymous@khc.cvs.sourceforge.net:/cvsroot/khc export -r HEAD core/dummy_lib
>
> なお、以上の操作によって、新しいバージョンの茶筌への対応の他、以下のような変更が加えられます。
>
> >■データ中に半角「\」「"」「'」が含まれている場合、エラー回避のために、処理の前にこれらを全角に変換するように修正
> >■「前処理効率化のためにデータをRAMに読み出す」という設定がオンになっていても、RAM(メモリ)におさまらないくらい大きなデータを扱う際には、データのRAMへの読み出しを避けるように修正した。(これまでは問答無用でRAMへの読み出しを試み、RAMにおさまらずに失敗すると、エラー表示が出て前処理が止まっていた)
> >■各種データ出力の際に、kh_coder.exeと同じ場所に「temp.txt」という名称のファイルを保存しようとすると失敗するバグの修正
> >■「『抽出語x文脈ベクトル』表の出力」コマンド実行時に、エラー表示が出て処理が止まってしまう場合があるバグを修正
>
> # なにはともあれ、Linux上で使ってくださる方がいらっしゃるとは、嬉しいおどろきでした。


  [No.332] Re: 新しいバージョンの茶筌への対応 投稿者:HIGUCHI Koichi  投稿日:2007/09/05(Wed) 13:53:21

樋口です。

こちらこそ各種の確認&レポートをいただき、ありがとうございました。

>私の環境では、mysql_exec.pm の30行目と31行目の間に
> $dbh->do("SET NAMES ujis");
> という一行を加えてやる必要がありました。

これは近いうちに取り入れさせていただきます。

# 今回は「ソースを公開していて良かった」と思える数少ない機会でした。
# 重ね重ねお礼申し上げます。

また何かございましたらお気軽に書き込みしていただけますよう、よろしくお願いいたします。