3266079 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

傀儡師の館.Python

傀儡師の館.Python

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Recent Posts

Calendar

Keyword Search

▼キーワード検索

Category

Archives

2023.11
2023.10
2023.09
2023.08
2023.07

Freepage List

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2007.11.15
XML
カテゴリ:Python
Python から Yahoo! 日本語形態素解析Webサービスを使う (1) では、ヒビノキロク: Yahoo! 形態素解析 API for Python の webma.py を使わせてもらうかなということで、そこで使われているライブラリを見ていたら、前置きが長くなってしまった。lxml と formencode がインストールされていないとこれは使えないよということでインストールを済ませたら早速使ってみる。

とりあえず ヒビノキロク: Yahoo! 形態素解析 API for Python コードを webma.py として保存して、lib/site-package に放り込む。コード中の、default_app_id = 'Yahoo! MAService API for Python'" の部分は、どうページのようにコマンドラインで実行するのであれば書き換える必要があるが、下のようにして使うときには引数で渡せば変更しなくても使えるようにできている。

とりあえず使ってみる。

#!/usr/bin/env python
#-*- coding: utf-8 -*

import webma

myap = '自分のアプリケーションID'

ma = webma.WebMA(app_id=myapp)

sample = [u'今日は天気がよいです。', u'明日の天気は晴れです。']

for line in sample:
for w in ma.parse(line):
print "%(surface)s\t%(feature)s" % w
print "EOS"

これを実行すると、

今日 名詞,名詞,*,今日,きょう,今日は 助詞,係助詞,*,は,は,は
天気 名詞,名詞,*,天気,てんき,天気
が 助詞,格助詞,*,が,が,が
よかっ 形容詞,形容,連用タ接続,よかっ,よかっ,よい
た 助動詞,助動詞た,基本形,た,た,た
です 助動詞,助動詞です,基本形,です,です,です
。 特殊,句点,*,。,。,。
EOS
明日 名詞,名詞,*,明日,あした,明日
の 助詞,助詞連体化,*,の,の,の
天気 名詞,名詞,*,天気,てんき,天気
は 助詞,係助詞,*,は,は,は
晴れ 名詞,名詞,*,晴れ,はれ,晴れ
です 助動詞,助動詞です,基本形,です,です,です
。 特殊,句点,*,。,。,。
EOS

動くことは確認できた。

今度はフィルタを指定してみる。感動詞(3)、接続詞(6)、助詞(11)、助動詞(12)、句読点など特殊(13) を省いて、それ以外の形容詞(1)、形容動詞(2)、副詞(4)、連体詞(5)、接頭辞(7)、接尾辞(8)、名詞(9)、動詞(10) だけを取り出す。ということで取り出すものだけ指定すればよいので、"1|2|4|5|7|8|9|10" をフィルタとして指定する。出力は基本形だけにする。

#!/usr/bin/env python
#-*- coding: utf-8 -*

from webma import *

myapp = '自分のアプリケーションID'
sample = [u'あぁ、今日は天気がよかったな。',
u'そして、明日の天気は晴れなのです。']

# フィルタを作る
def make_filter(filter):
return "|".join([str(x) for x in filter])

filter = (ADJECTIVE, ADJECTIVAL_NOUN, ADVERB,
ADNOMIAL, PREFIX, SUFFIX, NOUN,
VERB )

# "1|2|4|5|7|8|9|10"
filter_str = make_filter(filter)


ma = WebMA(app_id=myapp, filter=filter_str)

for line in sample:
for w in ma.parse(line):
print "%(baseform)s" % w
print "\n"

そうすると、次のような出力が得られる。

今日
天気
よい

明日
天気
晴れ

この品詞だけ要らないというのであれば、全部まとめてリストになっているところから、不要のものを削除するのも作っておいた方が、いいかな。

これで指定した単語の基本形が取り出せたので次に続く。


なかのひと






お気に入りの記事を「いいね!」で応援しよう

Last updated  2007.11.15 20:06:22
コメント(0) | コメントを書く



© Rakuten Group, Inc.