【发布时间】:2020-01-13 11:35:47
【问题描述】:
我有一个与单词句子相对应的列表列表。
X = [
['John','has','house'],
['Mary','works','at','home']
]
您可以将每个句子视为一个训练样本。我的模型 tagger 用一些标签标记每个单词:
y = [
['proper','verb','noun'],
['proper','verb','prep','noun']
]
我想根据单词级别的标记准确性对我的标记器进行网格搜索:
search = GridSearchCV(tagger, parameters, cv=10, scoring='accuracy')
search.fit(X, y)
但是,accuracy_score() 方法抱怨
{ValueError}您似乎正在使用旧的多标签数据表示。不再支持序列序列;改用二进制数组或稀疏矩阵 - MultiLabelBinarizer 转换器可以转换为这种格式。
这不会发生,当列表列表 y 被展平时,例如:
> y_pred = ['proper','verb','noun', 'proper','verb','prep','noun']
> y_true = ['proper','verb','noun', 'proper','verb','prep','noun']
> accuracy_score(y_pred, y_true)
1.0
我仍然希望我的标记器(Keras 模型)预测()一个列表列表以保留文本结构(句子、单词),但我希望记分器在单词级别进行评估。
我怎样才能优雅地解决它?
【问题讨论】:
标签: python scikit-learn