NLTK 与距离度量一致

问题描述 投票:0回答:2

我有一项任务是计算多标签分类中的注释者间一致性,其中每个示例可以分配多个标签。我发现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])]]

你有一个可行的例子吗? 谢谢!

python machine-learning nlp nltk
2个回答
7
投票

更准确地说,需要成为冻结集(正如 @alexis 指出的那样)只是三元组的第三个成员,这是分配给该项目的标签。

toy_data = [['1', 5723, frozenset([1,2])],['2', 5723, frozenset([2,3])]]

0
投票

我认为数据应该是元组列表,而不是列表列表(元组是可散列的,列表不是),尝试:

toy_data = [('1', 5723, (1,2)),('2', 5723, (2,3))]

(我也制作了值元组而不是列表,以防这也可能成为问题)

© www.soinside.com 2019 - 2024. All rights reserved.