はじめに

ちゃお・・・†

今回は岡山大学竹内研究室のASAのPythonクライアントを作ったので紹介します。

意味役割付与システムとは

下記のように入力文に対して述語項構造解析を行い,その後,述語の語義を同定して,係り関係にある項の意味役割を付与するものです.

(入力文)
昨日彼は私に手紙を送った.
(出力)
[昨日] 場所(時)(点) => 時間(点)に変更予定 (2015.10)
[彼は] 動作主
[私に] 着点(人)
[手紙を] 対象
[送った] 状態変化あり-位置変化-位置変化(物理)(人物間)-他者への所有物の移動-提供

のように述語に対して,概念(「提供」)を付与し,述語にかかる係り元(項と呼ぶ)に意味的な関係を付与するものです.例えば「彼は」は「送った」に対して「動作主」という意味役割であることを示しています.
http://www.cl.cs.okayama-u.ac.jp/study/project/asa/

インストール

  1. ASA Scalaをダウンロードします http://www.cl.cs.okayama-u.ac.jp/study/project/asa/asa-scala/download/
  2. pip install asa でPythonクライアントをインストールします

使い方

from asa import ASA

# Initialize a ASA instance
asa = ASA(path-to-asa)

# Let's analyze a sample sentence
asa.parse('彼は村長だ')
# =>
[{'category': '人',
  'frame': '1-copula',
  'link': 1,
  'main': '彼',
  'part': 'は',
  'tense': 'PRESENT',
  'type': 'elem',
  'wakati': ['彼\tカレ\t\t名詞,代名詞,一般\t\t\tO', 'は\t\t\t助詞,係助詞\t\t\tO']},
 {'category': '人',
  'frame': '0-elem',
  'link': -1,
  'main': '村長',
  'mood': 'INDICATIVE',
  'part': 'だ',
  'polarity': 'AFFIRMATIVE',
  'sentelem': 'PREDICATE',
  'tense': 'PRESENT',
  'type': 'copula',
  'voice': 'ACTIVE',
  'wakati': ['村長\tソンチョウ\t村長\t名詞,一般\t\t\tO', 'だ\t\t\t助動詞\t特殊・ダ\t基本形\tO']}]

問題点: 実行が遅い

echoコマンドからパイプでASAに渡すだけというシンプルな構成になっているので、毎回YAMLファイルをロードするため実行毎に1秒近くかかります。JPypeとか使えばいい感じにならないかな?

我こそは!という方はcontributions are welcomeです!
https://github.com/ikegami-yukino/asa-python

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.