我正在做一个项目,其中一部分是开发一个用于 POS 标记的无监督 HMM 训练器,我现在想测试它是否存在可能的错误。
我正在使用 Baum-Welch 算法来训练模型。输入是序列词(从语料库中提取),输出是来自一组状态的隐藏状态序列(s1, s2, ... sn)
。我现在完成了编码,但我不确定它是否没有错误。
谁能建议我一些调试想法?正如我应该在输出中检查什么?如何检查我的算法的准确性?
我正在做一个项目,其中一部分是开发一个用于 POS 标记的无监督 HMM 训练器,我现在想测试它是否存在可能的错误。
我正在使用 Baum-Welch 算法来训练模型。输入是序列词(从语料库中提取),输出是来自一组状态的隐藏状态序列(s1, s2, ... sn)
。我现在完成了编码,但我不确定它是否没有错误。
谁能建议我一些调试想法?正如我应该在输出中检查什么?如何检查我的算法的准确性?
无监督词性标注是一个非常有趣的新兴研究课题。如果我理解正确,您实际上是在问如何评估您的标记准确性,而不是如何调试代码。评估是无监督 POS 归纳中的一个已知问题。对您的问题的简短回答是:从NLTK获取这个带注释的语料库,然后通过将状态映射到它最常同时出现的标签,将您的状态映射到语料库标签,并找到正确的百分比。此评估过程称为多对一映射。
你应该让自己熟悉文献,因为它会回答你的问题等等。以下是一些开始的地方:
早期论文:
马克约翰逊。2007. 为什么 EM 找不到好的 HMM 词性标注器?在 2007 年自然语言处理和计算自然语言学习中的经验方法联合会议 (EMNLP-CoNLL) 上,第 296-305 页。
一份调查报告:
克里斯托斯·克里斯多洛普洛斯、莎朗·戈德华特和马克·斯蒂德曼。2010. 两个十年的无监督 POS 归纳:我们走了多远?在 2010 年 EMNLP 会议记录中。
例如,当您说“无监督”时,您应该问自己是否只想使用原始文本,或者还想使用字典。也有这方面的工作。
此外,还有用于该任务的代码。
另一个询问 NLP 的地方是: http: //metaoptimize.com/qa。
如果您有其他问题,请不要犹豫。