CrowdTruth/CrowdTruth-core

TypeError: 'float' object is not subscriptable in crowdtruth.run(data, config)

erynrigley opened this issue · 0 comments

I am running on a Python 3 Jupyter notebook. I am able to configure my data no problem, however when I run 'crowdtruth.run(data, config)', I receive the following error and can't workout why:


TypeError Traceback (most recent call last)
Cell In[20], line 1
----> 1 results = crowdtruth.run(data, config)

File ~/anaconda3/lib/python3.11/site-packages/crowdtruth/run.py:10, in run(data, config)
7 def run(data, config):
8 """Run the CrowdTruth metrics with the given processing configuration"""
---> 10 processed_results = Metrics.run(data, config)
11 return processed_results

File ~/anaconda3/lib/python3.11/site-packages/crowdtruth/models/metrics.py:520, in Metrics.run(results, config, max_delta)
516 return new_unit_ann_dict
518 if not config.open_ended_task:
519 # compute annotation quality score (aqs)
--> 520 aqs_new, max_delta, avg_aqs_delta = compute_aqs(aqs, work_unit_ann_dict,
521 uqs_list, wqs_list, aqs_list, aqs_len, max_delta, avg_aqs_delta)
523 # compute unit quality score (uqs)
524 uqs_new, max_delta, avg_uqs_delta = compute_uqs(uqs_new, unit_work_ann_dict,
525 wqs_list, aqs_list, uqs_list, uqs_len, max_delta, avg_uqs_delta)

File ~/anaconda3/lib/python3.11/site-packages/crowdtruth/models/metrics.py:482, in Metrics.run..compute_aqs(aqs, work_unit_ann_dict, uqs_list, wqs_list, aqs_list, aqs_len, max_delta, avg_aqs_delta)
480 def compute_aqs(aqs, work_unit_ann_dict, uqs_list, wqs_list, aqs_list, aqs_len, max_delta, avg_aqs_delta):
481 """ compute annotation quality score (aqs) """
--> 482 aqs_new = Metrics.annotation_quality_score(list(aqs.keys()), work_unit_ann_dict,
483 uqs_list[len(uqs_list) - 1],
484 wqs_list[len(wqs_list) - 1])
485 for ann, _ in aqs_new.items():
486 max_delta = max(max_delta, abs(aqs_new[ann] - aqs_list[len(aqs_list) - 1][ann]))

File ~/anaconda3/lib/python3.11/site-packages/crowdtruth/models/metrics.py:351, in Metrics.annotation_quality_score(annotations, work_unit_ann_dict, uqs, wqs)
348 numerator = 0.0
349 denominator = 0.0
--> 351 numerator, denominator = Metrics.compute_ann_quality_factors(numerator,
352 denominator, work_unit_ann_dict_worker_i,
353 work_unit_ann_dict_worker_j, ann, uqs)
355 if denominator > 0:
356 aqs_numerator[ann] += wqs[worker_i] * wqs[worker_j] *
357 numerator / denominator

File ~/anaconda3/lib/python3.11/site-packages/crowdtruth/models/metrics.py:256, in Metrics.compute_ann_quality_factors(numerator, denominator, work_unit_ann_dict_worker_i, work_unit_ann_dict_worker_j, ann, uqs)
253 if unit_id in work_unit_ann_dict_worker_j:
254 work_unit_ann_dict_work_j_unit = work_unit_ann_dict_worker_j[unit_id]
--> 256 work_unit_ann_dict_wj_unit_ann = work_unit_ann_dict_work_j_unit[ann]
258 def compute_numerator_aqs(unit_id_ann_value, worker_i_ann_value,
259 worker_j_ann_value):
260 """ compute numerator """

TypeError: 'float' object is not subscriptable