0

私はIBM DataScienceExperienceにオブジェクトストレージを使用してワトソンパーソナリティ洞察APIへのデータフレームのファイルからデータを投稿しようとしています.. DataFrameを作成しました。正常に動作します。データフレーム内のデータをAPIに投稿する方法を理解していない。提供されたドキュメントは私を正しい方向に向けるものではありません。投稿テキスト

これは 私のPythonの知識...私は誰かがヒントを提供することを願って、どのように知っていただきたいと思いAPI にデータフレームのコンテンツを投稿したい私は

from io import StringIO 
import requests 
import json 
import pandas as pd 

def get_object_storage_file_with_credentials(container, filename): 
    """This functions returns a StringIO object containing 
    the file content from Bluemix Object Storage.""" 

    url1 = ''.join(['https://identity.open.softlayer.com', '/v3/auth/tokens']) 
    data = { 
     'auth': { 
      'identity': { 
       'methods': ['password'], 
       'password': { 
        'user': { 
         'name': 'UID UID UID', 
         'domain': { 
          'id': 'ID ID ID' 
         }, 
        'password': 'PASS PASS' 
        } 
       } 
      } 
     } 
    } 
    headers1 = {'Content-Type': 'application/json'} 
    resp1 = requests.post(url=url1, data=json.dumps(data), headers=headers1) 
    resp1_body = resp1.json() 

    for e1 in resp1_body['token']['catalog']: 
     if(e1['type']=='object-store'): 
      for e2 in e1['endpoints']: 
       if(e2['interface']=='public'and e2['region']=='dallas'): 
        url2 = ''.join([e2['url'],'/', container, '/', filename]) 

    s_subject_token = resp1.headers['x-subject-token'] 
    headers2 = {'X-Auth-Token': s_subject_token, 'accept': 'application/json'} 
    resp2 = requests.get(url=url2, headers=headers2) 

    return StringIO(resp2.text) 

PI_text = get_object_storage_file_with_credentials('MyDSXProjects', 'myPI.txt') 

をやった次でありますここには欠けている。

答えて

0

Watson Personality Insights API referenceによれば、テキスト、HTML、またはJSON入力を提供できます。データセットは、パンダのデータフレームとして利用できます。 DataFrameの関連する列をテキスト形式に変換してみてください。例えばによって:

pi_api_text = PI_text['<TEXT_COLUMN>'].str.cat(sep='. ').encode('ascii', 'ignore') 

あなたはPythonのパッケージがインストールされていることを確認してください:

pip install --upgrade watson-developer-cloud 

を使用すると、テキスト形式で、関連するデータを持っていたら、ワトソンパーソナリティ洞察APIへの呼び出しを行います。たとえば、よう:

personality_insights = PersonalityInsightsV3(
version='xxxxxxxxx', 
username='xxxxxxxxxx', 
password='xxxxxxxxxx') 
profile = personality_insights.profile(
pi_api_text, content_type='text/plain', 
raw_scores=True, consumption_preferences=True) 

応答は、あなたが再パンダのデータフレームに変換することができ性格を含むJSONオブジェクトになります。

+0

こんにちはSumit、 PI_textオブジェクトのテキストは、非構造化データです。 このテキストをWatson Personality Insights APIに投稿し、その結果を後で別のDataFrameと結合して分析するDataFrameに保存したいとします。 これは実際にAPIにObjectStorageオブジェクトをポストすることについてです。 – Brenzef

+0

@Brenzef、関連する列をデータフレームからテキスト形式に変換した後、Watson Personality Insights APIへのAPI呼び出しを行うことができます。私はそれに応じて答えを編集させてください。 –