0

내가 IBM DataScienceExperience에서 오브젝트 스토리지를 사용하여 왓슨의 성격 통찰력 API에 DataFrame 파일에서 데이터를 게시하려고 해요 .. DataFrame을 만들었습니다. 잘 작동합니다. 데이터 프레임에있는 데이터를 API에 게시하는 방법을 이해하지 못합니다. 제공된 문서에서 올바른 방향으로 나를 가리 키지는 않습니다. 게시 텍스트

나는 누군가가 팁을 제공 할 수 있기를 바랍니다하는 방법을 알고하는 API 싶습니다 에 DataFrame 내용을 게시 할 내가

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의 관련 열을 텍스트 형식으로 변환 해보십시오. 로 예를 들면 : 당신은 왓슨의 성격 통찰력 API로 전화를 걸 텍스트 형식으로 관련 데이터를 일단

pip install --upgrade watson-developer-cloud 

:

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

설치 한 파이썬 패키지가 있는지 확인합니다. 예를 들어 같이

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) 

응답은 당신이 팬더 dataframe 변환을 다시 할 수있는 성격 특성을 포함하는 JSON 객체가 될 것입니다.

+0

안녕 수밋의 PI_text 객체의 텍스트는 구조화되지 않은 데이터입니다. 이 텍스트를 Watson Personality 통찰력 API에 게시하고 결과를 나중에 다른 DataFrame과 결합하여 분석 할 DataFrame에 저장하려고합니다. 그래서 실제로 ObjectStorage 개체를 API에 게시합니다. – Brenzef

+0

@Brenzef, 관련 칼럼을 데이터 프레임에서 텍스트 형식으로 변환 한 후 Watson Personality Insights API에 API 호출을 할 수 있습니다. 그에 따라 대답을 수정합시다. –