トップ «前の日記(■2006-02-28) 最新 次の日記(■2006-03-06)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2006-03-02

* [近況] またあいたB!

 もう3月。まだ一段落つきません。ふぅ。引き続き正社員、契約社員、バイト募集中です。興味のある方はご一報を。

* [Perl][メモ] Inline::CでMeCabのXSモジュールB!

  Advanced Perl Programming (2nd ed)を読んでInline::C経由でXSモジュールをつくるのを試してみたくなりました。で、MeCabをWindowsでSWIGなしで動かすのにXSモジュールをつくってみることにしました。まずはText::MeCabにInline::Cを使ってガリガリコードを書いて、コンパイルが通ったらnocleanオプションで削除されずに残ったXSファイルをほぼそのまま利用します(Inline.hを移したりMODULE名とかは書き換えたり)。
  できたのがこちらText-MeCab-0.03.tar.gz Text-MeCab-0.04.tar.gz(追記:2006-05-02 CPANに牧さんがちゃんとしたText::MeCabをアップしてくれましたので、公開を停止します)。完全にwindows用です。あしからず。MeCab Windows用バイナリをインストールしたときについてくるsdk/mecab.h、sdk/libmecab.lib、それとbin/libmecab.dllを利用します。mecab-0.90rc9&Visual C++ toolkit 2003でのみ確認しています。ついでにblibに生成されたファイルも用意しておきましたので、こちらはあとblib/arch/auto/Text/MeCabにlibmecab.dll(mecab-0.90rc9)を置けばそのまま動くでしょう。

 # 使い方はswig版とだいたい同じ感じ  
 my $mecab  = new Text::MeCab "-l1", "-Ochasen";
 
 print $mecab->parse($text);
 
 my $node = $mecab->parseToNode($text);
 # 次のnodeを得るにはメソッドnextを使います。

  追記:Win32用ならppmにしてくれればいいのに やり方知らないので。きっと誰かがやってくれるんじゃないかしらと…… 折をみてやってみるかもしれません。

本日のツッコミ(全2件) [ツッコミを入れる]
_ asakura-t (■2006-03-03 19:04)

 基本的にはnmakeしたあとにblibの中身を.tar.gzに固めて、nmake ppdとかすればいいだけみたいです。<br> あと、.ppdの中のCODEBASEに.tar.gzのファイル名を書いて、.tar.gzと.ppdを.zipに固めればいいっぽい気がします。<br><br>http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/faq/ActivePerl-faq2.html#how_to_make_ppm_distribution<br><br>#間違ってたらすみません。。。

_ まかまか (■2006-03-05 22:42)

なんとか出来ました。<br>ありがとうございます。

本日のTrackBacks(全1件) []
_ 404 Blog Not Found:perl - mecab-perl vs. Text::MeCab (■2006-05-02 01:09)

これ見て先を越された! D-5 出張版・・・ということと、なんかMeCabのインターフェースが気に入らないので書きました、Text::MeCab。XSです。SWIGいりません(まぁ、最近はすでにSWIGで展開してあるバージョンが配布されてるけど)。変なtie()インターフェース使いません。....