如何为svmstruct准备输入文件

时间:2014-09-15 08:34:27

标签: classification svm libsvm named-entity-recognition svmlight

我想将svmstruct用于我的命名实体识别任务。我的每个令牌的一些功能不是数字格式(大多数是文本格式,如n-char词缀或单词形状,......)。由于svmstruct的输入格式与svmlight格式相同,我想知道如何将这些文本特征转换为数字格式?

所有优惠

1 个答案:

答案 0 :(得分:0)

基本上,您需要将文本数据编码为二进制类别。

例如,假设您有数据

affix    shape
==============
ing      lower
         initcap
ed       allcaps

您要发送给svmstruct的内容是这样的:

affix_ing:1 shape_lower:1
shape_initcap:1
affix_ed:1 shape_allcaps

现在,您可以将单词作为列标识符,但svmstruct使用稀疏格式,因此只要它们是唯一的,您就可以使用广泛分离的列号。

这是一个很好的哈希函数应用程序。因此,该技术可以即时组成列ID,并对您的离散数据进行伪编码。

hash(colName + colValue) => 1

根据您的数据,您可能不需要colName。 colName是否可能与colValue冲突?

你可以使用像murmur hash或cityhash这样的哈希函数来获得一个快速计算和低冲突的巨大空间。