NLTK文本分割器是如何工作的

本文翻译自: http://text-processing.com/demo/tokenize/


Tokenization 是把文本分割成tokens的方式。tokens可以是段落,句子,或者单独的单词。 


NLTK 的tokenize 模块提供了一系列的分割器(tokenizers)。

这个分割器我多啰嗦几句,如果用英文表示的话,其实tokenizer可以是很多个意思,但是这个词不能翻译,一翻译这个词就完蛋了,就会丢失它原本具有的很多意思。你说它翻译成分词器,但是它也可以是分句器,分段器,所以干脆翻译成分割器得了。或者理解成刀,刀片,切割器也行。


单词分割器--分词器

句子分割器--分句器

段落分割器--分段器

章节分割器--分节器

以上都是叫 tokenizer,但是用中文表述的时候,可以有选择的表述,因此,后文不管是什么分X器,都是tokenizer。


下面列出其中的5个。

文本首先使用 PunktSentenceTokenizer 分割成句子。
然后使用下面4中不同的单词分割器将句子分割为单词。

TreebankWordTokenizer
WordPunctTokenizer
PunctWordTokenizer
WhitespaceTokenizer

示例:
In Düsseldorf I took my hat off. But I can't put it back on.

分词结果


TreebankWordTokenizer (宾夕法尼亚州立大学 Treebank单词分割器)

In/ Düsseldorf/ I took/ my/ hat/ off/ ./ 
But/ I/ ca/ n't/ put/ it/ back/ on/ ./ 

WordPunctTokenizer(单词标点分割,can‘t 分割为can和’和t)

In/ Düsseldorf/ I/ took/ my/ hat/ off/ ./ 
But/ I/ can/ '/ t/ put/ it/ back/ on/ ./ 

PunktWordTokenizer(标点单词分割,这个can't 分割为can和’t)

In/ Düsseldorf/ I/ took/ my/ hat/ off./ 
But/ I/ can/ 't/ put/ it/ back/ on./ 


WhitespaceTokenizer(空格符号分割,就是split(' ') 最简单的一个分词器。)

In/ Düsseldorf/ I/ took/ my/ hat/ off./ 
But/ I/ can't/ put/ it/ back/ on./ 

上面的初始例子提供了2个句子来演示每个分词器的分词结果,从而可以显示出这4个分词器各自是如何处理non-ascii 字符和简单的带标点符号的单词缩写。

阅读更多

没有更多推荐了,返回首页