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

2021-06-18 14:10:59 字數 1633 閱讀 8346

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 字元和簡單的帶標點符號的單詞縮寫。

個人筆記 C txt文字分割器

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

python 直譯器是如何工作的呢

python 直譯器是如何工作的呢?不管在哪種框架下寫程式,都會花費大量時間去實現那些會被框架本身呼叫的方法,python 也不例外。python 直譯器碰到特殊的句法時,會使用特殊方法去啟用一些基本的對 象操作,這些特殊方法的名字以兩個下劃線開頭,以兩個下劃線結尾 比如 obj key 的背後就是...

JQuery選擇器是如何工作的

每次申明乙個jquery物件的時候,返回的是jquery.prototype.init物件,很多人就會不明白,init明明是jquery.fn的方法啊,實際上這裡不是方法,而是init的建構函式,因為js的prototype物件可以實現繼承,加上js的物件只是引用不會是拷貝,new jquery,n...