编程语言
首页 > 编程语言> > python-哪个标记程序最好与nltk一起使用

python-哪个标记程序最好与nltk一起使用

作者:互联网

我已经开始学习nltk并遵循this教程.首先,我们使用send_tokenize使用内置的令牌生成器,然后使用PunktSentenceTokenizer.本教程提到PunktSentenceTokenizer能够进行无监督的机器学习.

那么这是否意味着它比默认值更好?或各种标记器之间的比较标准是什么?

解决方法:

查看source code的send_tokenize(),发现该方法当前使用预先训练的punkt令牌生成器,因此它等效于PunktSentenceTokenizer.您是否需要重新训练令牌生成器取决于您使用的文本的性质.如果像报纸上的文章一样,没有什么太奇异的了,那么您可能会发现经过预训练的令牌生成器就足够了.标记化归结为分类任务,因此可以通过对标记数据使用典型指标(例如精度,召回率,f得分等)来比较不同的标记化器.

punkt令牌生成器基于以下论文中发表的工作:

http://www.mitpressjournals.org/doi/abs/10.1162/coli.2006.32.4.485#.V2ouLXUrLeQ

从根本上讲,这是一种基于启发式的方法,旨在消除句子边界与缩写词之间的歧义-句子标记化的祸根.称其为启发式方法并不意味着要贬低.我以前使用过内置的句子标记器,它可以很好地完成我的工作,当然,我的任务实际上并不依赖于准确的句子标记器.或更确切地说,我能够在无关紧要的地方投入足够的数据.

这是一个关于SO的问题的示例,在该示例中,用户发现缺少预训练的令牌生成器,并且需要训练新的令牌生成器:

How to tweak the NLTK sentence tokenizer

有问题的文本是Moby Dick,奇数句子结构使令牌生成器崩溃了.社交媒体(例如twitter)或技术文献中可能需要培训自己的令牌生成器的一些示例,其中包含许多预训练的令牌生成器未遇到的奇怪缩写.

标签:python,tokenize,nltk
来源: https://codeday.me/bug/20191010/1888303.html