Yahoo!デベロッパーネットワークで日本語係り受け解析用のAPIが公開されているので,試しにRubyから利用してみた.APIの利用にはアプリケーションIDが必要(無料で取得できる).
http://developer.yahoo.co.jp/webapi/jlp/da/v1/parse.html
#!/opt/local/bin/ruby require 'open-uri' $KCODE = 'u' class DependencyParsing AppID = "アプリケーションID" RequestURI = "http://jlp.yahooapis.jp/DAService/V1/parse" def self.parse(text) uri = "#{RequestURI}?appid=#{AppID}&sentence=#{URI.encode(text)}" open(uri) {|f| return f.read } end end puts DependencyParsing.parse("明日の東京はいつ雨が降りますか")
出力は以下の通り.フォーマットはXML.
各文節にIDが割り振られ,どのIDの文節を修飾しているか(Dependency)が示されている.また同時に形態素解析の結果も得られている.あとはREXMLなどを使ってXMLから必要な情報を抽出してやればよさげ.
<?xml version="1.0" encoding="UTF-8" ?> <ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:jlp:DAService" xsi:schemaLocation="urn:yahoo:jp:jlp:DAService http://jlp.yahooapis.jp/DAService/V1/parseResponse.xsd"> <Result> <ChunkList> <Chunk> <Id>0</Id> <Dependency>1</Dependency> <MorphemList> <Morphem> <Surface>明日</Surface><Reading>あした</Reading><Baseform>明日</Baseform><POS>副詞</POS><Feature>副詞,副詞,*,明日,あした,明日</Feature> </Morphem> <Morphem> <Surface>の</Surface><Reading>の</Reading><Baseform>の</Baseform><POS>助詞</POS><Feature>助詞,助詞連体化,*,の,の,の</Feature> </Morphem> </MorphemList> </Chunk> <Chunk> <Id>1</Id> <Dependency>4</Dependency> <MorphemList> <Morphem> <Surface>東京</Surface><Reading>とうきょう</Reading><Baseform>東京</Baseform><POS>名詞</POS><Feature>名詞,地名,*,東京,とうきょう,東京</Feature> </Morphem> <Morphem> <Surface>は</Surface><Reading>は</Reading><Baseform>は</Baseform><POS>助詞</POS><Feature>助詞,係助詞,*,は,は,は</Feature> </Morphem> </MorphemList> </Chunk> <Chunk> <Id>2</Id> <Dependency>4</Dependency> <MorphemList> <Morphem> <Surface>いつ</Surface><Reading>いつ</Reading><Baseform>いつ</Baseform><POS>副詞</POS><Feature>副詞,副詞,*,いつ,いつ,いつ</Feature> </Morphem> </MorphemList> </Chunk> <Chunk> <Id>3</Id> <Dependency>4</Dependency> <MorphemList> <Morphem> <Surface>雨</Surface><Reading>あめ</Reading><Baseform>雨</Baseform><POS>名詞</POS><Feature>名詞,名詞,*,雨,あめ,雨</Feature> </Morphem> <Morphem> <Surface>が</Surface><Reading>が</Reading><Baseform>が</Baseform><POS>助詞</POS><Feature>助詞,格助詞,*,が,が,が</Feature> </Morphem> </MorphemList> </Chunk> <Chunk> <Id>4</Id> <Dependency>-1</Dependency> <MorphemList> <Morphem> <Surface>降り</Surface><Reading>ふ</Reading><Baseform>降</Baseform><POS>動詞</POS><Feature>動詞,ラ五,連用タ接続,降り,ふ,降</Feature> </Morphem> <Morphem> <Surface>ます</Surface><Reading>ま</Reading><Baseform>ま</Baseform><POS>助動詞</POS><Feature>助動詞,助動詞ます,基本形,ます,ま,ま</Feature> </Morphem> <Morphem> <Surface>か</Surface><Reading>か</Reading><Baseform>か</Baseform><POS>助詞</POS><Feature>助詞,終助詞,*,か,か,か</Feature> </Morphem> </MorphemList> </Chunk> </ChunkList> </Result> </ResultSet>
これをmickey24_botで活用できるといいなーと考えているけど,まだ具体的な利用方法は思い付いていない.