I am working on Watson NLU and I need to run analysis on questionnaire data. About 300 answers from separate people. I am able to run it on "..." format text, but I'd love to get some help on how I can run it for all the 300 in one run. My current input is in excel with an ID column. Thank you for looking into this.
nlu_api_key = "MY API KEY"
nlu_url = "https://api.eu-gb.natural-language-understanding.watson.cloud.ibm.com/instances/MY INSTANCE"
import json
from ibm_watson import NaturalLanguageUnderstandingV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson.natural_language_understanding_v1 import Features, EntitiesOptions, KeywordsOptions, CategoriesOptions,SentimentOptions
import pandas as pd
gtm_Q6 = pd.read_excel(r'C:\Users\...\INPUT FILE.xlsx', sheet_name='OUPUT1')
print(gtm_Q6)
authenticator = IAMAuthenticator(nlu_api_key)
natural_language_understanding = NaturalLanguageUnderstandingV1(
version='2020-08-01',
authenticator=authenticator)
natural_language_understanding.set_service_url(nlu_url)
response = natural_language_understanding.analyze(
text='Where is the firetruck with the flaming paint the tigers on top?',
features=Features(
entities=EntitiesOptions(emotion=True, sentiment=True, limit=5),
keywords=KeywordsOptions(emotion=True, sentiment=True,limit=5),
categories=CategoriesOptions(limit=3),
sentiment=SentimentOptions(targets=['investments']) #sentiment=SentimentOptions(targets=['stocks'])
)).get_result()
print(json.dumps(response, indent=2))
RESP_ID | ANSWER |
---|---|
Q6_109.000000 | team building |
Q6_110.000000 | enablement and coordination between tech and sevices |
Q6_111.000000 | skill building |
Q6_113.000000 | speed to the right resources |
Q6_114.000000 | information on the practicalities of the change at the moment |
So the solution has been provided py T.J. Crowder in Python: Here is the link to his original answer: How to get rid of "\n" and " ' ' " in my json file