自然语言处理中的词性标注技术
1. 跨句子边界的词性标注
在词性标注过程中,n - gram 标注器会利用近期的词性标签来为当前单词选择合适的标签。以三元语法标注器(trigram tagger)为例,当对句子的第一个单词进行标注时,它会参考前两个词元的词性标签,通常这两个词元是上一个句子的最后一个单词和句末标点。然而,上一个句子结束时的词性类别与下一个句子开头的词性类别并无关联。
为了解决这个问题,可以使用已标注句子的列表来训练、运行和评估标注器,示例代码如下:
brown_tagged_sents = brown.tagged_sents(categories='news')
brown_sents = brown.sents(categories='news')
size = int(len(brown_tagged_sents) * 0.9)
train_sents = brown_tagged_sents[:size]
test_sents = brown_tagged_sents[size:]
t0 = nltk.DefaultTagger('NN')
t1 = nltk.UnigramTagger(train_sents, backoff=t0)
t2 = nltk.BigramTagger(train_sents, backoff=t1)
print(t2.evaluate(test_sents))
运行上述代码后,输出的评估结果为 0.84491179108940495 。
超级会员免费看
订阅专栏 解锁全文
2093

被折叠的 条评论
为什么被折叠?



