NLTK 协议与距离度量

com*_*com 4 python nlp machine-learning nltk

我有一个任务来计算,注释间协议多标签分类,其中对于每个例子不止一个标签可以被分配。我发现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()
Run Code Online (Sandbox Code Playgroud)

此代码失败

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

显然,以下方法不起作用。

toy_data = [['1', 5723, set([1,2])],['2', 5723, set([2,3])]]
Run Code Online (Sandbox Code Playgroud)

你有一个工作示例吗?谢谢!

小智 6

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

toy_data = [['1', 5723, frozenset(1,2)],['2', 5723, frozenset(2,3)]]
Run Code Online (Sandbox Code Playgroud)