【问题标题】:How to prepare input file for svmstruct如何为 svmstruct 准备输入文件
【发布时间】:2014-11-08 17:33:02
【问题描述】:

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

所有最好的

【问题讨论】:

    标签: classification svm libsvm named-entity-recognition 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 之类的哈希函数来获得巨大的空间,计算速度快,冲突低。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2018-04-01
      • 2016-02-03
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多