繁体   English   中英

Python - 使 IBM Natural Language Understanding API 分析 csv 文件的每一行

[英]Python - Making IBM Natural Language Understanding API analyze each row of a csv file

我正在使用 IBM Watson Natural Language Understanding 的 API 来执行一些情感分析。 我遵循了文档,并且能够分析我在代码中输入的 url 或一些文本。

但是,我不想分析一些文本,而是希望 IBM NLU 分析 csv 文件。 每行是一个不同的文本,应该被分析,output 应该是相同的 csv 文件,在相关文本旁边的另一列中具有情感和情感分析的值。

我想这可以通过 json 和一些 Python 循环来完成,但它确实超出了我在 Python 中的新技能。

目前,我有以下代码:

import json
from ibm_watson import NaturalLanguageUnderstandingV1 
from ibm_watson.natural_language_understanding_v1 import Features, EmotionOptions, SentimentOptions
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator


authenticator = IAMAuthenticator('XXX')
natural_language_understanding = NaturalLanguageUnderstandingV1(
    version='2019-07-12',
    authenticator=authenticator
)

natural_language_understanding.set_service_url('https://gateway-lon.watsonplatform.net/natural-language-understanding/api')

response = natural_language_understanding.analyze(
    text="Bruce Banner is the Hulk and Bruce Wayne is BATMAN! Superman fears not Banner, but Wayne.",
    features=Features(emotion=EmotionOptions(),
                      sentiment=SentimentOptions())).get_result()

print(json.dumps(response, indent=2))

预先感谢您的帮助,N。

你问了很多基本的 Python 问题(回答 Python Cookbook 的礼貌):

1:如何从a.csv文件中读取数据

import csv 

with open('abc.csv') as f:
  csvFile = csv.reader(f)
  headers = next(csvFile)
  for r in csvFile:
    # Process row 
    # Data in column 1 is r[0], column 2 is r[1] etc.
    # eg. analyseTheData(r[0])

2:如何将分析响应与输入结合起来

rows = []
for r in csfFile:
  d = analyseTheData(r[0])
  row = [r]
  row.extend(d)
  rows.append(row)

3:如何在标题中添加额外的列

headers.extend(['aaa', 'bbb', 'ccc'])

4:如何将数据写入a.csv文件

import csv

with open('xyz.csf') as f:
  csvFile = csv.writer(f)
  csfFile.writerow(headers)
  csvFile.writerows(rows)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM