在crf模型中添加数字特征是否可行/好?例如,序列中的位置.
我正在使用CRFsuite.似乎所有的特征都将被转换为字符串,例如'pos = 0','pos = 1',然后失去它作为欧几里德距离的含义.
或者我应该使用它们训练另一个模型,例如svm,然后用crf模型合奏?
我发现CRFsuite确实处理了数字特征,至少根据这个文档:
{"string_key":float_weight,...} dict其中键被观察到的特征和值是它们的权重;
{"string_key":bool,...} dict; True转换为1.0重量,False - 转换为0.0;
{"string_key":"string_value",...} dict; 这与{"string_key = string_value"相同:1.0,...}
["string_key1","string_key2",...]列表; 这与{"string_key1":1.0,"string_key2":1.0,...}相同
{"string_prefix":{...}} dicts:处理嵌套的dict,并为每个键添加"string_prefix".
{"string_prefix":[...]} dicts:处理嵌套列表,并为每个键添加"string_prefix".
{"string_prefix":set([...])} dicts:处理嵌套列表,并为每个键添加"string_prefix".
只要:
我保持输入格式正确;
我使用float vs float的字符串;
我规范它.