言語処理関連のプログラム類


可能な限りプログラミングをしなくて済むようにプログラミングを学ぶ

rubyっぽいの

手習いで作ったrubyのコードとか

google N-gramを利用したデモ類

以下のデモはNYUの関根先生の指導の下、New York Experience Program滞在中に進めたテーマを元にスピンアウトしたもので、株式会社データセクションの支援により開発しました。

用語集合拡張器デモ

google N-gramが研究室に届いたので、trigramだけを用いて簡単な知識獲得のデモを作ってみた。
いわゆる用語集合拡張器と言う奴です。解説はそのうち

google N-gramを利用した用語集合拡張器デモ

用語間共通属性抽出器デモ

上で作った用語集合拡張器を利用して、入力語間に共通すると思われる属性の抽出器を構築。
これも基本的にtrigramだけで動いています。

google N-gramを利用した用語間共通属性抽出器デモ

windowsのrubyからlibmecab.dllを呼び出す

mecab0.94で動作確認
mecabのrubyバインディングがwindowsで動かないらしいので、dllとかShared Objectを呼び出す勉強がてら作ってみた。
execとかでmecab起動するとかは不細工だしコマンドプロンプトは2047文字制限あるのでdll呼び出す方が良いでしょう。
mecabをインストールして、下で落とせるmecab.rbにlibmecab.dllのpathを指定すると多分動きます。ここらへん適当で環境依存なので気をつけてください。
mecab_sparse_tonode系は動きませんがまぁ良いんじゃないでしょうか。生起コストとか遷移確率が欲しいなら起動オプションいじってセコセコやってください。
linux環境でも、suに成れない場所で使いたいならlibmecab.soのpathを書けば動くかもしれません。
xyzzy-lisp版はhttp://web.sfc.keio.ac.jp/~aihara/lisp.htmlで配布。

Download

Locality Sensitive Hashing DB

Locality Sensitive Hashingを利用した最近傍点探索ライブラリ。
インプリしてあるのはeuclid distance版LSH(Projection-based LSH)。
NArrayとTokyo Cabinetを利用しているので使うときはその両方を先に入れてください。
dRubyでも使って分散化するとなんかかっこいい気がします。
言語のところにおいてありますが、もともとは類似画像検索用に作ってたものなので扱えるベクトルは固定長です。内積の計算ばっかなのでsparse vector化は簡単。

Download

コサイン尺度版のLSHライブラリ。超単純超簡単で速度もそこそこ。
Hashでkey-valueのベクトルを与えてあげれば動きます。類似文書検索なんかにどうぞ。

Download

ruby+Win32OLEでIE制御して……

Jscriptで書かずに、あえてrubyの勉強としてrubyで実装。
Javascriptでガチガチに出来ててurlを抜けない上に検索結果が500件以内のときしか本文を返してくれないシステムからテキストを自動で抜いてくるために構築。
今ではインターフェイスが変わってそのままでは動かないようになったので、ruby+win32oleのサンプルコードとして古いバージョンを公開。
ブラウザから正規にアクセスしてるわけだからクロール行為自体には問題なかったかと。ソース見ればどこのサイトを対象にしていたか丸バレですが。

Download

おまけ。Love Hate RatioをIEとgoogleを使って計算するプログラム。IE制御のテスト用に。

Download

雑多ネタ

数詞の読み仮名付け

chasenの出力をラップした数詞+助数詞の読み仮名付けライブラリとIPADIC内の助数詞ごとの音便変化の分類とか。
漢数字や全角半角、小数点等がメタメタに混ざっていてもひらがなで読みを返す。(9999兆9999億9999万9999まで対応)
読み上げブラウザや音声対話エンジン等向けに昔プロプライエタリとしてC++で書いたものを一から書き直し中。そのうちアップ予定。

Download

読み変化パターンファイル

SOMで巡回セールスマン問題を解く

まったくもって言語処理と関係ないけど、SOMというか競合学習でクラスタリングとかはしたりするから関係なくは無い気が。
このバージョンではダブルバッファリングをしてないからアニメーションが汚い。気が向いたら直す。手元にVC++6.0が無いのでなおせなーいー。C#で書き直しますか。

Download

バックプロパゲーション学習class for java

これまた言語処理とあんまり関係ないけれど、固定長のベクトルからなんか学習したいぜ、って時のニューラルネットテストライブラリ。
活性化関数を自分で定義していろいろ遊べます。

Download

top
aihara('A`)nlp.sfc.keio.ac.jp
Last modified: Sun Apr 12 00:50:42 JST 2009