【问题标题】:How to see the progress of vectorizer.fit (sklearn)?如何查看vectorizer.fit(sklearn)的进度?
【发布时间】:2022-02-11 19:36:44
【问题描述】:
考虑以下代码:
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
vectorizer.fit(documents)
fit 函数在有很多文档时需要很长时间才能运行(在我的例子中是 100k)。如何查看进度(即进度条或计数)?没有verbose 选项。
【问题讨论】:
标签:
python
scikit-learn
verbose
【解决方案1】:
你是对的,没有详细的选项,但有一个可能的解决方法。
CountVectorizer 类执行一些预处理步骤,例如 strip_accents(默认情况下为无),然后是 lowercase 和 tokenizer(默认情况下为真,因为您的情况都是如此,因为您正在使用带有默认参数的word 分析器)。
考虑到您不关心预处理步骤的进度,获取有关方法进度的信息的唯一方法是创建您自己的analyser 作为可调用,这是一个简单的函数,它可以做同样的事情,但每 10% 打印一次进度(例如)。
但是,如果您只是想要一种友好的方式来了解需要多长时间,因为 CountVectorizer 的计算时间与输入大小呈线性相关,您可以只选择数据的一小部分(随机采样),例如 10%,处理它并计时。然后您知道处理所有内容需要大约 10 倍以上的时间。