« MeCab形態素解析API | メイン | [python2] wsgiでpostのパラメータを取得する »

Wikipedia内 - 連想計算エンジンAPI v0.0.1

ワード群に関する連想ワードを計算し結果を返すエンジンです.

リクエストのURIは以下のとおりです.

http://www.darecophoe.com/dj/api/v_001/assocFromWords/api_key/
リクエストメソッド : POST
api_key : 各ユーザーに割り当てた文字列を指定します

POSTパラメータ

q(必須):
形態素解析の結果と同じ形式(マルチバイト文字はUTF-8でエンコードしてからJSON文字列にしてください)
サーバー側でパラメータとして受け取りmap形のインスタンスに変換した後、長さが30まで

n
(デフォルト30、max300)
結果の個数.関連の高いものから最大n個返します

origin ※1:
(デフォルト0)
キーとして返された文字列のoriginを結果に付加するかどうかのフラグ

q(入力)のフォーマット

{
  "word1": {"cnt": 1},
  "word2": {"cnt": 1},
  "word3": {"cnt": 1},
  ...
}

originなど他のキーがついていても無視します.ただしサーバー側で受け取ったJSON文字列で1000文字までですので、余計なスペースや改行、余分なキーはないほうがよいかもしれません.

※1
originの説明はMeCabによる形態素解析のドキュメントを参照してください.



結果は以下のような形式で返ってきます.結果は関連度の大きいものから上位n個を返しますが、ソートはされていません.

{
  '艦これ': {'cnt': 3.21},
  '角川ゲームス': {'cnt': 1.23},
  'DMM.com': {'cnt': 1.45},
  '大日本帝国海軍': {'cnt': 0.34},
  ...
}
(この出力はサンプルです)

originを返すよう指定されている場合は、cntキーのほかにoriginキーが付与されます.

python2.7によるサンプル

import urllib, urllib2
import json

def main():
    domain = 'www.darecophoe.com/dj'
    api_key = 'ma11'
    
    #qin = 'mecabで形態素解析する'
    qin = 'ビッグデータとは、市販されているデータベース管理ツールや従来のデータ処理アプリケーションで処理することが困難なほど巨大で複雑なデータ集合の集積物を表す用語である。'
    data = urllib.urlencode({'q': qin})
    url = 'http://%(domain)s/api/v_001/getWordListFromText/%(apikey)s/' % {'domain': domain, 'apikey': api_key}
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    body = response.read()
    response.close()
    print body # json文字列
    obj = json.loads(body)
    print obj # pythonのmap型へ変換
    for k, v in obj.iteritems():
        print k, v
    # ここまでは形態素解析
    # 以下形態素解析の結果を用いて連想計算を行う
    
    data = urllib.urlencode({'q': body})
    url = 'http://%(domain)s/api/v_001/assocFromWords/%(apikey)s/' % {'domain': domain, 'apikey': api_key}
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    body = response.read()
    response.close()
    print body
    obj = json.loads(body)
    for k, v in obj.iteritems():
        print k, v

if __name__ == '__main__':
    main()

出力結果(デフォルトなので30個を返します.ソートはされていません)

フラットファイルデータベース {u'cnt': 1.963238669466598}
microsoft jet database engine {u'cnt': 1.6592472083421497}
hadoop {u'cnt': 1.6712429326695695}
データベース管理システム {u'cnt': 1.4581663007233416}
階層型データモデル {u'cnt': 1.3805800199688154}
デリミタ {u'cnt': 1.7034612977580739}
エクサバイト {u'cnt': 1.6255091981213614}
管理 {u'cnt': 1.7475214416487281}
データ移行 {u'cnt': 2.000867131326227}
データ・クラスタリング {u'cnt': 1.4311966634294082}
idef1x {u'cnt': 1.611722125255795}
olap {u'cnt': 1.4938514568104344}
データウェアハウス {u'cnt': 2.380624292263059}
処理 {u'cnt': 2.5317893358955796}
データ分析 {u'cnt': 1.3797870622488642}
データ {u'cnt': 1.821831423127683}
ペタバイト {u'cnt': 1.5804527678131666}
超高速データベース {u'cnt': 2.223044024508403}
ツール {u'cnt': 1.5917291969594238}
extract/transform/load {u'cnt': 2.3430050936400235}
データ完全性 {u'cnt': 1.9056962378786186}
非構造化データ {u'cnt': 1.8388194158082403}
パターン認識 {u'cnt': 1.396134823043611}
ole db {u'cnt': 1.508803034130766}
gnu r {u'cnt': 1.4028342807921397}
データマイニング {u'cnt': 1.920448191146759}
テキストマイニング {u'cnt': 1.5276894417377058}
ビッグデータ {u'cnt': 2.754803153926084}
データ統合 {u'cnt': 2.3076816607668102}
データ処理 {u'cnt': 3.3681212224215114}
origin:1
を指定すると、originをつけて結果を返します.
microsoft jet database engine {u'origin': u'Microsoft Jet Database Engine', u'cnt': 1.6592472083421497} hadoop {u'origin': u'Hadoop', u'cnt': 1.6712429326695695}

About

2014年08月09日 16:43に投稿されたエントリーのページです。

ひとつ前の投稿は「MeCab形態素解析API」です。

次の投稿は「[python2] wsgiでpostのパラメータを取得する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

広告

Powered by
Movable Type 3.37