如何为 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 准备输入文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为大查询制作类似 java 准备语句的查询或如何在大查询中转义参数

如何为 HTML 中的文件输入设置值?

如何为动态生成的输入文件添加“多个”属性?

如何为LSTM Keras中的多步和多变量准备时间序列数据

Python - 如何为用户输入创建删除函数?

如何为bash中提示输入的命令提供密码?