Google Cloud Natural Language API - 句子提取(Python 2.7)

时间:2017-05-25 06:35:03

标签: python-2.7 google-cloud-platform

我正在使用Google Cloud Natural Language API。我的目标是在更大的文本块中提取句子和情感,并对它们进行情绪分析。

我收到以下“unexpected indent”错误。根据我的研究,它似乎不是一个“基本”缩进错误(如流氓空间等)。

 print(sentence.content)

for循环中的以下代码行(请参阅下面的完整代码)导致问题。如果我删除它,问题就会消失。

from google.cloud import language

text = 'Terrible, Terrible service. I cant believe how bad this was.'
client = language.Client()
document = client.document_from_text(text)
sent_analysis = document.analyze_sentiment()
sentiment = sent_analysis.sentiment
annotations = document.annotate_text(include_sentiment=True, include_syntax=True, include_entities=True)

print ('this is the full text to be analysed:')
print(text)
print('Here is the sentiment score and magnitude for the full text')
print(sentiment.score, sentiment.magnitude)

#now for the  individual sentence analyses
for index, sentence in enumerate(annotations.sentences):
    sentence_sentiment = sentence.sentiment.score
    print(sentence.content)
    print('Sentence {} has a sentiment score of {}'.format(index, sentence_sentiment))

此外,如果我在循环外移动此print语句,我不会收到错误,但只会打印大块文本的最后一句(如预期的那样)。

我对编程非常陌生 - 所以如果有人能用非常简单的术语解释我做错了什么,并指出我正确的方向,我会非常感激。

下面的完整脚本

麦克

int[] appWidgetIds= AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), MyWidgetProvider.class));

        Toast.makeText(mContext,"ids:size:"+appWidgetIds.length,Toast.LENGTH_SHORT).show();
        MyWidgetProvider myWidget = new MyWidgetProvider();
        myWidget.onUpdate(this, AppWidgetManager.getInstance(this),appWidgetIds);

1 个答案:

答案 0 :(得分:0)

这看起来完全正确,尽管潜在的标签/空间问题可能无法在您的问题中发布。你能让你的文本编辑器显示空格字符吗?通常有一个选项。如果它是支持Python的编辑器,则可以选择将选项卡更改为空格。

您可以通过删除

行来解决问题
print(sentence.content)

并将以下内容更改为

print('{}\nSentence {} has a sentiment score of {}'.format(sentence.content, index, sentence_sentiment))