[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-dev:00039] 病名クラス



有家@松山記念病院です。
users-ML で

date: Fri, May 17, 2002 at 12:01:57PM +0900
from: Yoshinori Ariie <PBA00250@xxxxxxxxx>
>
> 病名や症状名は(論理性を持った)文字列の結合ですから
> 日本語病名もオブジェクト指向言語(Ruby等)のクラスのような形式で表現できれば
> それを扱うプログラムの生産性が一気に高まると思います。

などと、大ぶろしきをひろげてしまったので、この数日悩んでいました (^^);

病名や症状名は自然言語、おもに複合名詞であり、その分析ツールを探していたら

 ChaSen        http://chasen.aist-nara.ac.jp/index.html.ja
 MSLR Parser   http://tanaka-www.cs.titech.ac.jp/pub/mslr/index-j.html

を見つけました。ChaSenが良さそうなので

 http://chasen.aist-nara.ac.jp/stable/chasen/chasen-2.2.9.tar.gz
 http://chasen.aist-nara.ac.jp/stable/ipadic/ipadic-2.4.4.tar.gz
 http://www.itlb.te.noda.sut.ac.jp/~ikarashi/ruby/chasen1.6.tar.gz

をインストールして
以下のような(たいへんおおざっぱな)クラスを書いて見ました。

ここで「電脳依存型強迫神経症」というのは私の造語ですが、これが

["電脳", "依存", "型", "強迫", "神経症"]

というような配列として出力されます。
それがどうした、と言われそうですが、あとこの IPADIC を医学用に拡張すれば
もう少し、何かできそうに思います。


#!/usr/local/bin/ruby -Ke

require "chasen.o"

class Disease < String
    def initialize(str)
        @name = str
    end
    def split
        arr = Chasen.sparse(@name).split("\n").each{|i| i.gsub!(/\s.*/,"")}
        arr.pop     # pop "EOS"
        arr
    end
end

p Disease.new("電脳依存型強迫神経症").split

__END__

-- 
pba00250@xxxxxxxxx
yoariie@xxxxxxxxxxxxxxx
-------------------------
有家佳紀  Yoshinori Ariie