我想将svmstruct用于我的命名实体识别任务。我的每个令牌的一些功能不是数字格式(大多数是文本格式,如n-char词缀或单词形状,......)。由于svmstruct的输入格式与svmlight格式相同,我想知道如何将这些文本特征转换为数字格式?
所有优惠
答案 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这样的哈希函数来获得一个快速计算和低冲突的巨大空间。