需要帮助理解 Google 自然语言 API 中的 'no attribute' 错误消息
Need help understanding 'no attribute' error message in Google Natural Language API
情况
我正在尝试 运行 Google 对从 Twitter API 中使用 Tweepy 提取的文本字段进行 Cloud NLP 情绪分析,然后将其转换为 pandas 数据框。该 Dataframe 有一个名为 text
的文本字段,这是我想要 运行 情绪分析的推文内容。
这是我的参考代码:
https://cloud.google.com/natural-language/docs/reference/libraries
预期
我期待这个过程对我的 Dataframe 中的 text
字段进行 运行 情绪分析,返回 sentiment score
和 sentiment magnitude
的值。下一步是将这些值发送回数据帧。
我试过的
下面是我运行宁的代码。
# Imports the Google Cloud client library
from google.cloud import language_v1
# Instantiates a client
client = language_v1.LanguageServiceClient()
# The text to analyze
text = dfTWEENGAGE.loc[:,"text"]
document = language_v1.Document(
content=text, type_=language_v1.Document.Type.PLAIN_TEXT
)
# Detects the sentiment of the text
sentiment = client.analyze_sentiment(
request={"document": document}
).document_sentiment
print("Text: {}".format(text))
print("Sentiment: {}, {}".format(sentiment.score, sentiment.magnitude))
我对示例所做的唯一更改是:
text = dfTWEENGAGE.loc[:,"text"]
… 在 dfTWEENGAGE
数据框中找到 text
列。
结果
它返回以下错误消息:
AttributeError: module 'google.cloud.language_v1' has no attribute 'Document'
这让我感到困惑,因为我在文档中看到了 'Document' 属性:
Document
之后的代码也与 API 文档匹配:.Type.PLAIN_TEXT
因此,对于有关文档属性以及我在这里可能做错了什么的任何见解或解释,我将不胜感激。
dsx
您只需将 type_=language_v1.Document.Type.PLAIN_TEXT
更新为 type_=language_v1.types.Document.Type.PLAIN_TEXT
,您的代码就会 运行 成功。请参阅此 api documentation 了解更多信息。
此外,通过 运行 更新此 pip install --upgrade google-cloud-language
,确保您拥有更新的 google-cloud-language 库
下面是我使用您的代码并使用 u"Hello, world!"
作为我的示例文本输入的测试。
# Imports the Google Cloud client library
from google.cloud import language_v1
# Instantiates a client
client = language_v1.LanguageServiceClient()
# The text to analyze
text = u"Hello, world!"
document = language_v1.Document(
content=text, type_=language_v1.types.Document.Type.PLAIN_TEXT
)
# Detects the sentiment of the text
sentiment = client.analyze_sentiment(
request={"document": document}
).document_sentiment
print("Text: {}".format(text))
print("Sentiment: {}, {}".format(sentiment.score, sentiment.magnitude))
输出:
情况
我正在尝试 运行 Google 对从 Twitter API 中使用 Tweepy 提取的文本字段进行 Cloud NLP 情绪分析,然后将其转换为 pandas 数据框。该 Dataframe 有一个名为 text
的文本字段,这是我想要 运行 情绪分析的推文内容。
这是我的参考代码:
https://cloud.google.com/natural-language/docs/reference/libraries
预期
我期待这个过程对我的 Dataframe 中的 text
字段进行 运行 情绪分析,返回 sentiment score
和 sentiment magnitude
的值。下一步是将这些值发送回数据帧。
我试过的
下面是我运行宁的代码。
# Imports the Google Cloud client library
from google.cloud import language_v1
# Instantiates a client
client = language_v1.LanguageServiceClient()
# The text to analyze
text = dfTWEENGAGE.loc[:,"text"]
document = language_v1.Document(
content=text, type_=language_v1.Document.Type.PLAIN_TEXT
)
# Detects the sentiment of the text
sentiment = client.analyze_sentiment(
request={"document": document}
).document_sentiment
print("Text: {}".format(text))
print("Sentiment: {}, {}".format(sentiment.score, sentiment.magnitude))
我对示例所做的唯一更改是:
text = dfTWEENGAGE.loc[:,"text"]
… 在 dfTWEENGAGE
数据框中找到 text
列。
结果
它返回以下错误消息:
AttributeError: module 'google.cloud.language_v1' has no attribute 'Document'
这让我感到困惑,因为我在文档中看到了 'Document' 属性:
Document
之后的代码也与 API 文档匹配:.Type.PLAIN_TEXT
因此,对于有关文档属性以及我在这里可能做错了什么的任何见解或解释,我将不胜感激。
dsx
您只需将 type_=language_v1.Document.Type.PLAIN_TEXT
更新为 type_=language_v1.types.Document.Type.PLAIN_TEXT
,您的代码就会 运行 成功。请参阅此 api documentation 了解更多信息。
此外,通过 运行 更新此 pip install --upgrade google-cloud-language
下面是我使用您的代码并使用 u"Hello, world!"
作为我的示例文本输入的测试。
# Imports the Google Cloud client library
from google.cloud import language_v1
# Instantiates a client
client = language_v1.LanguageServiceClient()
# The text to analyze
text = u"Hello, world!"
document = language_v1.Document(
content=text, type_=language_v1.types.Document.Type.PLAIN_TEXT
)
# Detects the sentiment of the text
sentiment = client.analyze_sentiment(
request={"document": document}
).document_sentiment
print("Text: {}".format(text))
print("Sentiment: {}, {}".format(sentiment.score, sentiment.magnitude))
输出: