IBM Watson, как анализировать данные - PullRequest
0 голосов
/ 07 марта 2020

Я хочу проанализировать файл CSV с помощью IBM Watson. Как мне это сделать? Я импортировал его как фрейм данных и попытался проанализировать, но получил ошибку. Затем я попытался проанализировать сам файл, но все равно получил ошибку. Мне нужна помощь, чтобы решить эту проблему.

from ibm_watson import ApiException
from pandas.io.json import json_normalize
try:
    with open('C:\\Users\\Desktop\\WORK\\Example Data.csv') as f:
        response3 = natural_language_understanding.analyze(text = f,features=Features(concepts=ConceptsOptions())).get_result()

except ApiException as ex:
    print ("Method failed with status code" + str(ex.code) + ": " + ex.message)

Я получаю следующую ошибку:

TypeError: Object of type TextIOWrapper is not JSON serializable

Можно ли отправить файл данных или весь файл для анализа из Watson

1 Ответ

0 голосов
/ 08 марта 2020

Решил проблему. Это была ошибка ладьи. Я не использовал ' f.read () '. Как только я ввел его, код был выполнен. Вот как выглядит отредактированный код:

try:
    with open('C:\\Users\\Desktop\\WORK\\Example Data.csv') as f:
        response3 = natural_language_understanding.analyze(text = f.read(),features=Features(concepts=ConceptsOptions())).get_result()

except ApiException as ex:
    print ("Method failed with status code" + str(ex.code) + ": " + ex.message)

Теперь, если вы хотите проанализировать фрейм данных, вам придется преобразовать его в текст, а затем передать в IBM Watson. Я использовал приведенный ниже код, и он сделал всю работу за меня

pi_text = df['Example Content'][0:5].str.cat(sep='. ').encode('ascii', 'ignore')

Я пытаюсь найти понимание личности. Выше код преобразует Dataframe в текст (я выбрал только первые пять строк. Если вы хотите использовать весь dataframe, удалите [0:5])

profile = personality_insights.profile(pi_text, content_type='text/plain', accept='application/json').get_result()

Выше код даст личную информацию. Обратите внимание, что вывод в формате JSON

...