ワード群に関する連想ワードを計算し結果を返すエンジンです.
リクエストの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}