【发布时间】:2017-10-05 13:52:20
【问题描述】:
我试图解析一个网站,对其进行标记并将不同的句子存储在一个数组中,所以这变成了一个字符串数组。我需要访问从 json 返回的类。例如,我必须上课:讨厌和讨厌。如果班级是仇恨并且该班级的信心> 0.50,那么做点什么。但是我无法访问这些课程。
words = text.split(".")
c=0
for i in words:
if not words[c]:
words[c] = "this was empty before."
classes = natural_language_classifier.classify('90e7b4x199-nlc-36073',words[c])
result = json.dumps(classes, indent=2)
if (classes.class_name == 'hate' and classes.confidence > 0.50):
print(json.dumps(classes, indent=2))
c=c+1
我得到的错误是:
Traceback (most recent call last):
File "parse.py", line 45, in <module>
if (classes.class_name == 'hate' and classes.confidence > 0.50)
AttributeError: 'dict' object has no attribute 'class_name'
已编辑:我得到的json是这样的:
{
"classifier_id": "10D41B-nlc-1",
"url": "https://gateway.watsonplatform.net/natural-language-classifier /api/v1/classifiers/10D41B-nlc-1/classify?text=How%20hot%20wil/10D41B-nlc-1",
"text": "How hot will it be today?",
"top_class": "nhate",
"classes": [
{
"class_name": "nhate",
"confidence": 0.9998201258549781
},
{
"class_name": "hate",
"confidence": 0.00017987414502176904
}
]
}
已编辑
print(classes) 给我:
{u'url': u'https://gateway.watsonplatform.net/natural-language-classifier/api/v1
/classifiers/90e7b4x199-nlc-36073',
u'text': u' A Partnership With Abu Shaklak Printing House',
u'classes':
[{u'class_name': u'nhate.', u'confidence': 0.9398546
187612434}, {u'class_name': u'hate.', u'confidence': 0.0449277873541271}, {u'cla
ss_name': u'Feels good man', u'confidence': 0.015217593884629425}], u'classifier
_id': u'90e7b4x199-nlc-36073', u'top_class': u'nhate.'}
【问题讨论】:
-
这意味着 dict 类没有任何名为 class_name 的键。尝试打印(类)并查看确切名称
-
既然错误说是
dict对象;您应该尝试像classes[class_name]一样访问它 -
@Exprator 在 json 中有一个名为“class_name”的键。
-
ok 然后使用 dict['key_name']
-
@stovfl print(classes['classes']) 给出以下结果:
[{u'class_name': u'nhate.', u'confidence': 0.9525668254559034}, {u'class_name': u'hate.', u'confidence': 0.0389566476309232}, {u'class_name': u'Feels good man'u'confidence': 0.008476526913173313}]
标签: python nlp ibm-cloud classification ibm-watson