Mallet CRF simpleTagger不显示原始单词,也不用几乎相同的标签标记所有单词

问题描述

我正在尝试利用SimpleTagger来使用Mallet(版本2.0.8)进行序列标记,但是我可能做错了。 我按照描述的示例here进行操作,然后得到了与描述不同的结果:

要创建模型文件,我键入了命令:

java -cp 
 "/home/MyFolders/mallet/class:/home/MyFolders/mallet/lib/mallet-deps.jar” cc.mallet.fst.SimpleTagger --train true --model-file nouncrf sample

带有标记数据的示例文件内容与教程中所述完全相同:

Bill CAPITALIZED noun
slept non-noun
here LOWERCASE STOPWORD non-noun

构建模型(nouncrf)之后,我将按照本教程进行操作并移动以标记以下文本(文件名为stest):

CAPITAL Al
        slept
        here

使用命令:

java -cp
"/home/MyFolders/mallet/class:/home/MyFolders/mallet/lib/mallet-deps.jar"
 cc.mallet.fst.SimpleTagger --model-file nouncrf  stest

结果应为:

Number of predicates: 5
noun CAPITAL Al
non-noun  slept
non-noun  here

但是我得到了

Number of predicates: 9  
noun   
non-noun   
non-noun

问:

  1. 为什么我的输出中只有带有原始单词的标签(如本教程所示)?
  2. 为什么在stest文件中,名字(Al)前面有大写字母?在现实世界中,单词“按原样”出现。
  3. 我尝试了其他一些训练数据(3000个带标记的句子,并定义了标签),但是在对模型进行训练以移动以标记新数据后,我遇到了与上述相同的问题(我只得到了标记),此外几乎所有我要标记文字中的单词得到了完全相同的标签,即使在训练数据中从未被该标签标记过的单词仍然得到它,怎么可能呢?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)