我正在开展一个项目,其中一部分是为POS标记开发一个无人监督的HMM培训师,我现在想测试它是否存在错误。
我正在使用Baum-Welch算法来训练模型。输入是序列词(从语料库中提取),输出是来自一组状态(s1, s2, ... sn)
的隐藏状态序列。
我现在已完成编码,但我不确定它是否没有错误。
有谁能建议我一些调试想法?我应该在输出中检查什么?如何检查算法的准确性?
答案 0 :(得分:1)
无监督的POS标记是一个非常有趣的新兴研究课题。如果我理解正确,您实际上是在询问如何评估标记准确性,而不是如何调试代码。评估是无监督POS诱导中的已知问题。对您的问题的简短回答是:从this annotated corpus获取NLTK,然后通过将状态映射到最常与其共同发布的标记来将您的状态映射到语料库标记,并找到正确的百分比那些。此评估过程称为多对一映射。
你应该熟悉文献,因为它会回答你的问题等等。以下是一些开始的地方:
早期论文:
马克约翰逊。 2007.为什么EM没有找到好的HMM POS标签?在2007年自然语言处理和计算自然语言学习经验方法联合会议论文集(EMNLP-CoNLL),第296-305页。
调查报告:
Christos Christodoulopoulos,Sharon Goldwater和Mark Steedman。 2010年。二十年无监督的POS诱导:我们到底有多远?在EMNLP 2010的会议录中。
当你说“无人监督”时,你应该问自己,你是想只使用原始文本,还是想要使用字典。也有相关的工作。
此外,还有可用于该任务的代码。
另一个询问NLP的地方是:http://metaoptimize.com/qa。
如果您有其他问题,请不要犹豫。