在Python 3中,我们可以使用re.compile(),nltk.tokenize()和TextBlob.words()来标记给定的文本。我想也可能有其他方法,但我不知道它们。
这些方法中的哪一种或其他未提及的方法最快地对给定文本进行标记?
提前谢谢。
答案 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秒。
如果其他人想知道同样的事情,这就是答案。