在Python 3中,我们可以使用re.compile()、nltk.tokenize()和TextBlob.words()来标记给定的文本。我认为可能还有其他方法,但我不知道。
以下哪种方法或其他未提及的方法对给定文本进行标记化速度最快?
提前谢谢您。
最佳答案
计算每个 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(text) 是第二个。代码如下:
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 的两倍,但仅存储来自 标记化列表。
如果其他人也想知道同样的事情,这就是答案。
关于regex - Python 3 中最快的标记化函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691087/