哈工大LTP 词性标注失败,标记内容为空,Index out of range

哈工大LTP 词性标注失败,标记内容为空,Index out of range

问题

直接加载哈工大LTP中的词性标记模型,对已经分词的词语列表words进行标记,出现了标记后标记列表内容为空现象,正常情况下标记列表的长度与分词词语列表长度一致,并存有标记结果。
如图,出现错误" Index out of range "
哈工大LTP 词性标注失败,标记内容为空,Index out of range哈工大LTP 词性标注失败,标记内容为空,Index out of range
哈工大LTP 词性标注失败,标记内容为空,Index out of range

出现原因

当词语为空时,LTP词性标记模型无法成功标记并抛出Index out of range异常。

解决方法

删除所有空行

  • notepad++文档打开分词文档(程序中是从文档读取并存储到列表)直接删除空行
  • 编写写入分词结果到文档中时过滤掉空行,或者在读取时过滤

解决过程

  1. 改变读入的分词列表,发现能够正确运行出结果,如下图“中国植物志 - nz”。由此可见,代码无误,必然是原分词列表中存在某类词语导致无法用词语标记模型进行正确标记哈工大LTP 词性标注失败,标记内容为空,Index out of range
  2. 针对分词列表,采用列表长度折半测试出问题词语出现所在行,从而可查出该词性标记模型不支持的词语形式。如图,测试出的第1264行为空行,当整个列表不存在改行时能够正确运行,说明该词性标注模型标注时要求每个词语必须不为空
    哈工大LTP 词性标注失败,标记内容为空,Index out of range

正确结果

哈工大LTP 词性标注失败,标记内容为空,Index out of range