Hatena::ブログ(Diary)

駄文生産所 このページをアンテナに追加 RSSフィード

2014-11-15

Pharo3.0から言語解析WebAPIを叩くライブラリ

Pharo3.0からエクシング社の提供する言語解析WebAPI(https://lr.capio.jp/services/webapis/)を叩くラッパーライブラリ作成した。

現在のところ、言語解析WebAPIはなにかしらのイベント(ハッカソンコンテスト)に紐付けられた期間・用途しか利用許諾が下りないことになっているので、心に留めておくこと。


言語解析WebAPIは、形態素解析に加えて、ポジネガ解析・係り受け分析が利用できる。

XMLではなくJSONで結果を返してくれるので、Web上で手軽に使えるのは良い所だ。

形態素解析の結果(読みや品詞の選択等)が時折怪しいが、たくさんのデータを食べさせて傾向を取る場合に向いている。



なおJavaScript用のラッパー作成、更新している。適当に使ってもらいたい。


"Install"

Gofer new smalltalkhubUser: 'kaminami'
    project: 'Configuration';
    package: 'ConfigurationOfJsJapaneseLanguageAnalyzer';
    load.
(Smalltalk at: #ConfigurationOfJsJapaneseLanguageAnalyzer) load
"Example"

| key result |
key := 'YourAccessKey'.  "register here: https://lr.capio.jp/services/webapis/".
result := (JsAnalyzer accessToken: key) analyze: '今日はいい天気だ'.

result phrases do: [:each | Transcript cr; show: each printString].
"==>
a JsPhrase(今日は [評価なし])
a JsPhrase(いい [ポジティブ])
a JsPhrase(天気だ [評価なし])"

result morphemes do: [:each | Transcript cr; show: each printString].
"==>
a JsMorpheme(今日, 名詞, きょう)
a JsMorpheme(は, その他, は)
a JsMorpheme(い, 形容・形容動詞, い)
a JsMorpheme(い, その他, い)
a JsMorpheme(天気, 名詞, てんき)
a JsMorpheme(だ, その他, だ)"

2014-10-30

Pharo3.0からTwitterに投稿する

Pharo3.0からTwitter投稿するサンプル。

Twitter Developersでアプリを登録しておく必要がある。


ZnOAuth1TwitterUserAccessクラスには、投稿ユーザプロファイル取得以外のAPI実装されていないので、その他のことがやりたい場合は自前で実装すること。


"Zinc SSOの導入 (https://github.com/svenvc/docs/blob/master/zinc/zinc-sso-paper.md)"

Gofer it
    url: 'http://mc.stfx.eu/ZincHTTPComponents';
    package: 'ConfigurationOfZincHTTPComponents';
    load.

(Smalltalk at: #ConfigurationOfZincHTTPComponents) project latestVersion load: 'SSO'.
"Twitterに投稿"

| consumerKey consumerSecret accessToken accessTokenSecret tokenDic token consumerData service userAccess |

consumerKey := 'YOUR_CONSUMER_KEY'.
consumerSecret := 'YOUR_CONSUMER_SECRET'.
accessToken := 'YOUR_ACCESS_TOKEN'.
accessTokenSecret := 'YOUR_ACCESS_SECRET'.

tokenDic := Dictionary new
                at: 'oauth_token' put: accessToken;
                at: 'oauth_token_secret' put: accessTokenSecret;
                yourself.
token := ZnOAuth1Token newFromDictionary: tokenDic.

consumerData := ZnOAuth1ConsumerData newForTwitter
                    consumer: consumerKey;
                    consumerSecret: consumerSecret;
                    yourself.

service := ZnOAuth1Service new
                providerAccount: consumerData;
                yourself.

userAccess := ZnOAuth1TwitterUserAccess new
                oauth1Service: service;
                accessToken: token;
                yourself.
	
^ userAccess statusesUpdate: 'Pharo3.0から投稿'

2014-10-11

デバッガの内容をそのままHTML出力 DebugReport for Pharo

半年程ローカル環境に放置していたDebugReportのPharo3.0対応版をSmalltalkHubに置いた。

問題発生時のエスパー対応がなくなるので、結構便利なものである。

"導入用スクリプト"
Gofer new smalltalkhubUser: 'kaminami'
    project: 'Configuration';
    package: 'ConfigurationOfDebugReport';
    load.
(Smalltalk at: #ConfigurationOfDebugReport) load