NLTK 协议与距离度量
NLTK agreement with distance metric
我有一个计算任务inter-annotator agreement in multi-label classification, where for each example more than one label can be assigned. I found that NLTK可以根据距离度量来衡量一致性。
我正在寻找使用 MASI 距离计算 krippendorff alpha 的示例。
这就是我的。
import nltk
from nltk.metrics import masi_distance
toy_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])]]
你有一个有效的例子吗?
谢谢!
我认为数据应该是元组的列表,而不是列表的列表(元组是可散列的,列表不是),试试:
toy_data = [('1', 5723, (1,2)),('2', 5723, (2,3))]
(我也制作了值元组而不是列表,以防万一这也可能是个问题)
更准确地说,需要成为冻结集的(正如@alexis 指出的那样)只是三元组的第三个成员,这是分配给该项目的标签。
toy_data = [['1', 5723, frozenset(1,2)],['2', 5723, frozenset(2,3)]]
我有一个计算任务inter-annotator agreement in multi-label classification, where for each example more than one label can be assigned. I found that NLTK可以根据距离度量来衡量一致性。
我正在寻找使用 MASI 距离计算 krippendorff alpha 的示例。
这就是我的。
import nltk
from nltk.metrics import masi_distance
toy_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])]]
你有一个有效的例子吗? 谢谢!
我认为数据应该是元组的列表,而不是列表的列表(元组是可散列的,列表不是),试试:
toy_data = [('1', 5723, (1,2)),('2', 5723, (2,3))]
(我也制作了值元组而不是列表,以防万一这也可能是个问题)
更准确地说,需要成为冻结集的(正如@alexis 指出的那样)只是三元组的第三个成员,这是分配给该项目的标签。
toy_data = [['1', 5723, frozenset(1,2)],['2', 5723, frozenset(2,3)]]