如何在单个帖子请求中向Google Cloud Natural Language API发送多个文本字符串 [英] how to send multiple text strings in a single post request to google cloud natural language api

查看:47
本文介绍了如何在单个帖子请求中向Google Cloud Natural Language API发送多个文本字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的python代码

here is my python code

def sentiment_local_file(text):

  """Detects sentiment in the local document"""
  language_client = language.Client()

  if isinstance(text, six.binary_type):
      text = text.decode('utf-8')

  with open("abhi.txt",'r') as fr:
      data = json.loads(fr.read())

  print ([data['document']['content']])
  document = language_client.document_from_text(data['document']['content'])
  result = document.annotate_text(include_sentiment=True,
                                         include_syntax=False,
                                         include_entities=False)

我正在尝试在单个发布请求中发送字符串列表以进行分析,但它给出了一个错误.这是我正在阅读的文本文件.在上面的代码文本中,指的是文件名,而代码示例是一个函数

I am trying to send list of strings in a single post request for analysis but it is giving an error . This is the text file i am reading. In above code text refer to file name and the code sample is a function

{
 "document":{
 "type":"PLAIN_TEXT",
 "language": "EN",
 "content":[

    "pretending to be very busy"
  ,

    "being totally unconcerned"
  ,

    "a very superior attitude"
  ,

    "calm, dignified and affectionate disposition" 
]},"encodingType":"UTF8"}

我阅读了文档,许多示例仍然无法弄清.

i read documentation and many examples still unable to figure it out.

推荐答案

据我所知,无法发送要分析的字符串列表.返回的句子是一个数组,因为GNL API会中断每个句子并对其进行分析.

As I know, there is no way to send a list of strings to be analysed. The sentences returned is an array because GNL API, breaks every sentence and analyses it.

让我们说您发送了以下请求:

Lets say that you send the following request:

{
 "document": {
  "type": "PLAIN_TEXT",
  "content": "Terrible, I did not like the last updated."
 }
}

响应可能是:

{
    "language": "en",
    "sentences": [
        {
            "text": {
                "content": "Terrible, I did not like the last updated.",
                "beginOffset": -1
            },
            "sentiment": {
                "magnitude": 0.9,
                "score": -0.9
            }
        }
    ]
}

上面的响应中有一个名为`sentence`的数组,但是只有一个元素.发生这种情况是因为我们发送给要分析的文本只有一个句子.因此,以下是另一个示例:

请求:

The response above, there is an array called ```sentence``` but with only one element. It happens because the text we sent to be analysed there is only one sentence. So, following is another sample:

Request:

{
 "document": {
  "type": "PLAIN_TEXT",
  "content": "Terrible, I did not like the last updated. Also, I would like to have access to old version"
 }
}

可能的响应将是:

{
    "language": "en",
    "sentences": [
        {
            "text": {
                "content": "Terrible, I did not like the last updated.",
                "beginOffset": -1
            },
            "sentiment": {
                "magnitude": 0.9,
                "score": -0.9
            }
        },
        {
            "text": {
                "content": "Also, I would like to have access to old version",
                "beginOffset": -1
            },
            "sentiment": {
                "magnitude": 0,
                "score": 0
            }
        }
    ]
}

在这种情况下, sentence 数组包含两个元素.发生这种情况是因为发送的文本有两个句子(以句点."分隔).

In this case, the sentence array has two elements. It happened because the text sent has two sentences (separated by period ".").

希望它对您有帮助.

这篇关于如何在单个帖子请求中向Google Cloud Natural Language API发送多个文本字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆