首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Dask进行更快的语言检测?

如何使用Dask进行更快的语言检测?
EN

Stack Overflow用户
提问于 2020-04-02 23:47:04
回答 1查看 96关注 0票数 1

我正在使用Dask进行并行计算,并希望使用langdetect检测列中句子的语言。但是,在获取列中行的语言方面,我仍然无法获得任何速度。

下面是我的代码:

代码语言:javascript
复制
import dask.dataframe as dd
data = dd.read_csv('name.csv')# has a column called short_description
def some_fn(e):
    return e['short_description'].apply(langdetect.detect)

data['Language'] = data.map_partitions(some_fn, meta='string')# adding a new column called Language.

此csav文件有800000行,每行包含大约。20个单词的长句。

任何建议,我可以更快地实现语言检测,因为目前它需要2-3个小时。

EN

回答 1

Stack Overflow用户

发布于 2020-04-05 00:32:28

默认情况下,dask dataframe使用线程池进行处理。我猜测您的语言检测算法是用纯Python (而不是像大多数Pandas那样的C/Cython )编写的,因此受到GIL的限制。这意味着你应该使用进程而不是线程。您可以通过将scheduler="processes"关键字添加到任何compute或persist调用来要求Dask使用进程

代码语言:javascript
复制
df.compute(scheduler="processes")

有关Dask的不同调度器以及何时使用它们的更多信息,请访问此处:https://docs.dask.org/en/latest/scheduling.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60995598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档