〜Windows版 茶筅(ChaSen)をVBなどから呼び出すためのラッパーDLL
日本ラッド株式会社 オープンシステム事業部
by 川合孝典 (2001-12-28)
kawai@nippon-rad.co.jp
まず茶筅(ChaSen)とは、奈良先端科学技術大学院大学情報科学研究科自然言語処理学講座からリリースされている、日本語形態素解析ソフトウェアです。与えられた日本語を解析し、単語に分解し、その単語の種類などを返してくれます。詳しくは茶筅のホームページをご覧ください。
茶筅(ChaSen) Homepage(日本語):http://chasen.aist-nara.ac.jp/index.html.ja
茶筅は全文検索や読み仮名の付与、特定の品詞の抽出といったことに使うことができます。
UNIX系OSであれば、C言語から利用する、あるいはPerlからText::ChaSenモジュールを通して利用することができます。しかしWindows版の茶筅についてくる VBのスクリプトではコマンドラインから実行する形式ですし、DLLは そのままでは呼び出せないようでした。 また、そのまま呼び出せたとしても、PerlやVBからchar **argvを作って 渡すのは、ちょっと厳しいものがあるかと思います。
そこで今回VC++ Ver.6を使って、PerlやVBからも呼び出しやすい ようなインターフェースを持ったDLL(ChaDll)とchasen.dllを呼び出す COM(ComCha)を開発しました。
茶筅は全文検索やよみがなの付与、特定の品詞の抽出といったことに使うことができます。しかしWindows版に入っているDLLは、そのままの形式ではVisualBasicなどC++以外の言語から直接利用することはできません。
そこでComCha.dll、ChaDll.dllはVBなど違う言語からの利用を可能にするラッパーとして機能し、PerlやVBなどからから、茶筅を 簡単に利用できるようにします。
下記URLから取得することができます。
ComCha_001.lzh:
http://homepage3.nifty.com/hippo2000/ComCha_001.lzh (41.3KB)
LHA形式で固めています。この中にDLL本体(2つ)のほか、 PerlのほかExcel VBA、IE VBScriptで呼び出すサンプルも付いています。 インストールなど詳しくは同梱されているREADMEをご覧ください。 まずはうまく動いた、動かないという情報を募集中!
下記サンプルのように日本語を単語区切りに分割し、読みや品詞を取得することが 簡単にできます。区切り文字や出力する情報もパラメータでを変更することができます。 (この辺りは茶筅そのものの機能ですが)
さらにAccess2000による全文検索のサンプルも作成いたしました。
ダミーデータを削除していただければ、日記や用語集としても(?)使えるのではと考えています。
fulltext_001.lzh:
http://homepage3.nifty.com/hippo2000/fulltext_001.lzh (131KB)
ご意見、ご感想、ご質問など、お待ちしています。
[サンプル]
Sub OLE()
Dim oCha As Object
Set oCha = CreateObject("ComCha.Chasen")
Debug.Print oCha.Init("-j -r """ & CstRcFile & """ -F%M\t%y\t%H\n")
Debug.Print oCha.Analyze("茶筅は素晴らしいソフトウェアです")
End Sub
[実行結果]
0 茶筅 チャセン 名詞 は ハ 助詞 素晴らしい スバラシイ 形容詞 ソフトウェア ソフトウェア 名詞 で デ 助詞 する ス 動詞 EOS
[スクリプト]
use Win32::OLE;
my $oCha = Win32::OLE->new('ComCha.chasen');
print $oCha->Init('-j -r "c:\\progra~1\\chasen21\\dic\\chasenrc"'), "\n";
print $oCha->Analyze('河馬です');
print $oCha->Analyze('これはテストです。');
[実行結果]
0 河馬 カバ 河馬 名詞-一般 です デス です 助動詞 特殊・デス 基本形 EOS これ コレ これ 名詞-代名詞-一般 は ハ は 助詞-係助詞 テスト テスト テスト 名詞-サ変接続 です デス です 助動詞 特殊・デス 基本形 。 。 。 記号-句点 EOS
エラーなどが表示されるはずです。
[テスト用(tcha.vbs)]
Dim oCha
Set oCha = CreateObject("ComCha.Chasen")
MsgBox oCha.Init("-j -r ""c:\program files\chasen21\dic\chasenrc""")
[実行コマンド]
c:> cscript tcha.vbs
ComCha.dl、ChaDll.dll、fulltext.mdbおよびその付属物についての著作権は日本ラッド株式会社
オープンシステム事業部が保有しています。 このプログラムの使用によって生じた
損害等については作者は何も保証する義務を負わないこととさせて頂きます。
Copyright (c) 2001 Nippon RAD Inc. OPEN-System Dept.
All rights reserved.
また茶筅(ChaSen)システムの著作権は奈良先端科学技術大学院大学情報科学研究科
自然言語処理学講座(松本研究室)が保持しています。
このdllおよびサンプルプログラムについての不具合、質問、ご意見、提案は、こちらで受け付けております。お気軽にどうぞ。
日本ラッド株式会社 オープンシステム事業部
担当者: 川合孝典 (kawai@nippon-rad.co.jp)