哪个tokenizer最好与nltk一起使用

Rik*_*hah 6 python tokenize nltk

我已经开始学习nltk并学习教程.首先,我们使用内置的tokenizer sent_tokenize,后来我们使用PunktSentenceTokenizer.该教程提到PunktSentenceTokenizer能够进行无监督的机器学习.

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

jua*_*aga 10

查看源代码可以sent_tokenize()看出这个方法目前使用的是预先训练好的punkt tokenizer,所以它等同于PunktSentenceTokenizer.您是否需要重新训练您的标记器取决于您正在使用的文本的性质.如果它没有什么异国情调,比如报纸文章,那么你很可能会发现预先训练好的标记器就足够了.令牌化归结为分类任务,因此可以通过使用标记数据上的典型度量(例如精度,召回,f分数等)来比较不同的令牌化器.

punkt tokenizer基于以下文章中发布的工作:

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

它基本上是一种基于启发式的方法,旨在消除缩写中的句子边界 - 句子标记化的祸根.将其称为启发式方法并不意味着贬低.我以前使用过内置的句子标记器,它对我正在做的事情很好,当然,我的任务并不真正依赖于准确的句子标记.或者更确切地说,我能够在它没有真正重要的地方投入足够的数据.

以下是关于SO的问题的示例,其中用户发现预先训练好的令牌器缺少,并且需要训练新的令牌器:

如何调整NLTK句子标记器

有问题的文本是Moby Dick,奇怪的句子结构正在绊倒令牌器.您可能需要训练自己的标记器的一些示例是社交媒体(例如,推特)或技术文献,其中预先训练的标记器未遇到许多奇怪的缩写.