我目前正在使用马鹿,以检测特定的产品名称在网页。我已经训练了一个模型,我想列出这个模型中最重要的10个规则(那些权重最大的规则(正负))。
以下是从马鹿文档中摘取的一个经过训练的模型的例子:
[...]
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那么,从上面的三个规则,我怎么知道哪一个有最大的权重?规则*:Pre-3 X='s,与数字"12“相关联。这个数字是重量吗?还是指的是下面的线条?但是,数字"12“没有出现在这些行中。
另一个问题是:是否有可能强制实施“硬约束”?也就是说,编写一条规则,当观察被看到时,它总是产生一个给定的标记。
发布于 2017-05-12 14:46:58
对于第一个问题,请看马鹿的转储模式,它以更易读的格式转换模型文件,这样就可以很容易地提取出具有最高或最低权重的特性。
马鹿转储模型> model.txt
这将为您提供一个文本文件,每一行都有一个特性,并有4列描述。首先是替换扩展的模式,其次是位于前一个位置的标签(或单格模式的#),然后是当前位置的标签,最后是特征权重。
对于你的第二个问题,马鹿有一个强制解码模式。如果您的数据有N列的观测结果,只需给马鹿一个带有N+1列的文件,并将约束放在最后一列。如果标签模式的-强制切换,如果在最后一列中有一个有效的标签,马鹿将迫使解码器在这个位置预测这个标签,并在邻居位置考虑到这一点。
https://stackoverflow.com/questions/43914067
复制相似问题