我有一个任务,需要计算标注者间一致性,这是在多标签分类中的应用,每个示例可以分配多个标签。我发现NLTK可以基于距离度量来测量一致性。
我正在寻找一个使用 MASI 距离计算 Krippendorff alpha 的示例。
这是我目前的代码。
import nltkfrom nltk.metrics import masi_distancetoy_data = [['1', 5723, [1,2]],['2', 5723, [2,3]]]task = nltk.metrics.agreement.AnnotationTask(data=toy_data, distance=masi_distance)print task.alpha()
这段代码会报错
TypeError: unhashable type: 'list'
以下代码也不行:
toy_data = [['1', 5723, set([1,2])],['2', 5723, set([2,3])]]
你有可用的示例吗?谢谢!
回答:
更具体地说,正如@alexis指出的那样,需要使用 frozenset 的只是三元组中的第三个成员,即分配给项目的标签。
toy_data = [['1', 5723, frozenset([1,2])],['2', 5723, frozenset([2,3])]]