我从 Google Cloud Natural Language API 获得了这个输出结果(我花了很长时间才生成它,所以我不想使用如何 JSON 序列化来自 google 的自然语言 API 的对象?(没有 __dict__ 属性)中的解决方案)
Mentions:
Name: "Trump"
Begin Offset : 0
Content : Trump
Magnitude : 0.0
Sentiment : 0.0
Type : 2
Salience: 0.6038374900817871
Sentiment:
Mentions:
Name: "hand"
Begin Offset : 19
Content : hand
Magnitude : 0.0
Sentiment : 0.0
Type : 2
Salience: 0.20075689256191254
Sentiment:
Mentions:
Name: "water boarding"
Begin Offset : 39
Content : water boarding
Magnitude : 0.0
Sentiment : 0.0
Type : 2
Salience: 0.13010266423225403
Sentiment:
Mentions:
Name: "some"
Begin Offset : 58
Content : some
Magnitude : 0.0
Sentiment : 0.0
Type : 2
Salience: 0.04501711577177048
Sentiment:
Mentions:
Name: "GOPDebate"
Begin Offset : 65
Content : GOPDebate
Magnitude : 0.0
Sentiment : 0.0
Type : 1
Salience: 0.020285848528146744
Sentiment:
我想找到一组候选人姓名(唐纳德·特朗普、希拉里·克林顿、伯尼·桑德斯和特德·克鲁兹)的量级和情绪——或一组类似的名字,比如只有 trump/hillary/clinton/cruz/bernie/sanders/@realdonaldtrump )。
起初我没有意识到输出文件不是 json。事实上,我不确定格式是什么。有人告诉我它可能是格式错误的 YAML。有没有办法将这些文件转换为 json?正如我所说,我已经处理了很多文件,此时修改 protobuf 并创建 json 对我来说是不切实际的。
Google Cloud NLP 教程中执行此操作的代码部分是:
# [START def_entity_sentiment_text]
def entity_sentiment_text(text):
"""Detects entity sentiment in the provided text."""
client = language.LanguageServiceClient()
if isinstance(text, six.binary_type):
text = text.decode('utf-8')
document = types.Document(
content=text.encode('utf-8'),
type=enums.Document.Type.PLAIN_TEXT)
# Detect and send native Python encoding to receive correct word offsets.
encoding = enums.EncodingType.UTF32
if sys.maxunicode == 65535:
encoding = enums.EncodingType.UTF16
result = client.analyze_entity_sentiment(document, encoding)
for entity in result.entities:
print('Mentions: ')
print(u'Name: "{}"'.format(entity.name))
for mention in entity.mentions:
print(u' Begin Offset : {}'.format(mention.text.begin_offset))
print(u' Content : {}'.format(mention.text.content))
print(u' Magnitude : {}'.format(mention.sentiment.magnitude))
print(u' Sentiment : {}'.format(mention.sentiment.score))
print(u' Type : {}'.format(mention.type))
print(u'Salience: {}'.format(entity.salience))
print(u'Sentiment: {}\n'.format(entity.sentiment))
# [END def_entity_sentiment_text]
所以我什至不确定如何在另一个 SO 中应用答案。