微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 python 中为 Watson NLU 调用多个 API

如何解决在 python 中为 Watson NLU 调用多个 API

我正在研究 Watson NLU,我需要对问卷数据进行分析。来自不同人的大约 300 个答案。 我能够在“...”格式文本上运行它,但我很想获得一些帮助,了解如何一次性运行所有 300 个。我当前的输入是带有 ID 列的 excel。 感谢您对此进行调查。

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,categories=CategoriesOptions(limit=3),sentiment=SentimentOptions(targets=['investments']) #sentiment=SentimentOptions(targets=['stocks'])
        )).get_result()

print(json.dumps(response,indent=2))
RESP_ID 答案
Q6_109.000000 团队建设
Q6_110.000000 技术和服务之间的支持和协调
Q6_111.000000 技能培养
Q6_113.000000 快速获取合适的资源
Q6_114.000000 关于目前变更的实用性的信息

解决方法

所以已经提供了解决方案 py T.J. Python 中的 Crowder: 这是他原始答案的链接:How to get rid of "\n" and " ' ' " in my json file

json_arr = []
for text in gtm_Q6_df['ANSWER']:
    response = natural_language_understanding.analyze(
        text=text,language = 'en',features=Features(
            entities=EntitiesOptions(sentiment=True,emotion=False,limit=3),categories=CategoriesOptions(limit=3),#sentiment=SentimentOptions(EntitiesOptions)
            )).get_result()
    
    #text = ("{ Answer: " + text + "}")
    json_arr.append(text)
    json_arr.append (response) # <==== change is here
    with open(r'C:\Users\...\Documents\Python NLP\WATSON NLU\OUTPUT JSON\data.json','w') as outline: #with open('data.json','w') as outline: ## data.json is the output file created ## the file can be renamed
        json.dump(json_arr,outline,indent = 2) # indent = 2 creates the pretty json!!
    
print("break")
print(json_arr)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?