哪个是Python 3中最快的标记化功能?

时间:2018-02-08 17:09:31

标签: regex python-3.x nltk tokenize textblob

在Python 3中,我们可以使用re.compile(),nltk.tokenize()和TextBlob.words()来标记给定的文本。我想也可能有其他方法,但我不知道它们。

这些方法中的哪一种或其他未提及的方法最快地对给定文本进行标记?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

在计算每个tokenize函数的开始和结束之间的时间戳差异后,我得出以下观察结果:

1)正则表达式操作是最快的。代码如下:

import re
WORD = re.compile(r'\w+')
def regTokenize(text):
    words = WORD.findall(text)
    return words

标记100,000个简单的单行字符串所需的时间是0.843757秒。

2)NLTK word_tokenize(文本)是第二名。代码如下:

import nltk
def nltkTokenize(text):
    words = nltk.word_tokenize(text)
    return words

标记100,000个简单的单行字符串所需的时间是18.869182秒。

3)TextBlob.words是最慢的。代码如下:

from textblob import TextBlob as tb
def blobTokenize(text):
    words = tb(text).words
    return words

标记100,000个简单的单行字符串所需的时间是34.310102秒。

  • 正则表达式操作非常快。
  • 但是,NLTK也会对字符进行标记,因此会返回更大的列表。
  • TextBlob的速度几乎是NLTK的两倍,但只存储了来自的字样 标记化列表。

如果其他人想知道同样的事情,这就是答案。