«gcloud ml language analyze-sentiment» возвращает разные результаты из клиента Python analyze_sentiment

#google-app-engine #machine-learning #nlp #google-cloud-nl

#google-app-engine #машинное обучение #nlp #google-cloud-nl

Вопрос:

Я пытаюсь использовать API Google NLP в своем коде на Python и обнаружил, что при вызове с использованием analyze_sentiment или analyze_entity_sentiment я иногда получаю null в «score», что является недокументированным поведением. Поэтому я попытался использовать «gcloud ml language analyze-sentiment» и был потрясен, обнаружив, что они возвращают разные результаты! Любые подсказки будут с благодарностью!

 from google.cloud import language
// I setup my credentials here
lsclient = language.LanguageServiceClient(credentials=credentials)

document = types.Document(content="@stevenmnuchin1 @Apple @tim_cook How much did this trip cost us? I'm sure you took your wife and did some sightseeing.", type=enums.Document.Type.PLAIN_TEXT)
overall_sentiment = lsclient.analyze_sentiment(document=document)
  

против.

 gcloud ml language analyze-sentiment --content="@stevenmnuchin1 @Apple @tim_cook How much did this trip cost us? I'm sure you took your wife and did some sightseeing."
  

Из Python — обратите внимание, что в нем отсутствует «оценка» даже «величина» отличается! И «begin_offset» тоже неверно…

 document_sentiment {
  magnitude: 0.6000000238418579
}
language: "en"
sentences {
  text {
    content: "@stevenmnuchin1 @Apple @tim_cook How much did this trip cost us?"
    begin_offset: -1
  }
  sentiment {
    magnitude: 0.30000001192092896
    score: -0.30000001192092896
  }
}
sentences {
  text {
    content: "I'm sure you took your wife and did some sightseeing."
    begin_offset: -1
  }
  sentiment {
    magnitude: 0.30000001192092896
    score: 0.30000001192092896
  }
}
  

VS. gcloud

 {
  "documentSentiment": {
    "magnitude": 0.3,
    "score": -0.1
  },
  "language": "en",
  "sentences": [
    {
      "sentiment": {
        "magnitude": 0.3,
        "score": -0.3
      },
      "text": {
        "beginOffset": 0,
        "content": "@stevenmnuchin1 @Apple @tim_cook How much did this trip cost us?"
      }
    },
    {
      "sentiment": {
        "magnitude": 0.0,
        "score": 0.0
      },
      "text": {
        "beginOffset": 65,
        "content": "I\'m sure you took your wife and did some sightseeing."
      }
    }
  ]
}
  

Комментарии:

1. Привет. Я работаю над этим продуктом в Google. Это может быть ошибкой с нашей стороны. Я проведу расследование. Между тем, источником истины является клиентская библиотека, поэтому, пожалуйста, полагайтесь на это.

2. Похоже, проблема связана с «I \ ‘m». gcloud добавляет дополнительный , и действительно, если вы добавите «Я уверен, что вы взяли свою жену и осмотрели достопримечательности». в библиотеке ваш вывод из библиотеки будет соответствовать gcloud. Я проверю, почему gcloud добавляет это.

3. Спасибо, Мона! Это очень полезно. С точки зрения отзывов о продукте было бы полезно получить некоторый код ошибки из клиентской библиотеки о том, что есть проблемы с синтаксическим анализом, вместо того, чтобы пропускать (некоторые) метки

4. На самом деле Mona. Я только что попробовал это и столкнулся с другой проблемой. Общее настроение документа теперь работает, но настроение на уровне предложения больше не работает… : ( Любая информация будет высоко оценена!

5. Извините, не понял. Что вы пробовали? Не могли бы вы вставить содержимое и команду?