如何为 svmstruct 准备输入文件
Posted
技术标签:
【中文标题】如何为 svmstruct 准备输入文件【英文标题】:How to prepare input file for svmstruct 【发布时间】:2014-11-08 17:33:02 【问题描述】:我想将 svmstruct 用于我的命名实体识别任务。我对每个标记的一些功能不是数字格式(主要是文本格式,例如 n-char 词缀或单词形状,...)。由于 svmstruct 的输入格式与 svmlight 格式相同,我想知道我应该如何将这些文本特征转换为数字特征?
所有最好的
【问题讨论】:
【参考方案1】:基本上,您需要将文本数据编码为二进制类别。
例如,假设您有数据
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 之类的哈希函数来获得巨大的空间,计算速度快,冲突低。
【讨论】:
以上是关于如何为 svmstruct 准备输入文件的主要内容,如果未能解决你的问题,请参考以下文章