1

我目前正在使用 Wapiti 来检测网页中的特定产品名称。我已经训练了一个模型,我想列出这个模型中最重要的 10 条规则(那些权重最大的规则(正面或负面))。

以下是从 Wapiti 文档中获取的训练模型示例:

[...]
12:*:Pre-3 X='s,
13:*:Pre-3 X=Wel,
13:*:Suf-3 X=rid,
[...]
10=-0x1.32892bf985df3p-1
11=0x1.73883325ee8edp-4
15=0x1.034d12a224d71p-2
16=-0x1.1fa154002a2f9p+0

那么,从以上 3 条规则中,我怎么知道哪条的权重最大呢?该规则*:Pre-3 X='s,与数字“12”相关联。这个数字是重量吗?还是对下面几行的引用?但是,数字“12”没有出现在这些行中。

另一个问题:是否可以强制“硬约束”?也就是说,要编写一个规则,即每当看到一个观察时,它总是会产生一个给定的标签。

4

1 回答 1

2

对于您的第一个问题,请查看 wapiti 的转储模式,它将模型文件转换为更易读的格式,以便轻松提取具有最高或最低权重的特征。

wapiti 转储模型 > model.txt

这将为您提供一个文本文件,其中每行一个功能描述为 4 列。首先是替换扩展的模式,接下来是先前位置的标签(或 # 表示一元模式),接下来是当前位置的标签,最后是特征权重。

对于您的第二个问题,Wapiti 有为此设计的强制解码模式。如果您的数据有 N 列观察,只需给 wapiti 一个包含 N+1 列的文件并将约束放在最后一列。使用标签模式的 --force 开关,如果最后一列中存在有效标签,wapiti 将强制解码器在该位置预测该标签,并在邻居位置考虑这一点。

于 2017-05-12T14:46:58.887 回答