结巴并行分词

 直接在jieba中设置并行并不能真正的并行。所以 用joblib进行并行分词。

源文件有4列

 

import os
import sys


import pandas as pd
from joblib import Parallel, delayed
import jieba

import yaml
config = yaml.load(open('config.yaml', 'r'))


def read_df(trainfile):
    data = pd.read_csv(trainfile, sep='\\t', header=None, nrows=60000,
                       encoding='utf-8', names=['id', 'title', 'content', 'label'])
    return data


def word_cut(df):
    with open(config['train_cut'], 'a+') as f:
        line = '\t'.join([df[0],' '.join(jieba.cut(df[1])) ,' '.join(jieba.cut(df[2])),df[3]])   
        f.writelines(line)
        f.writelines('\n')


def applyParallel(content, func, n_thread):
    with Parallel(n_jobs=n_thread) as parallel:
        parallel(delayed(func)(c) for c in content)


def main():
    overwrite = True
    if overwrite:
        if os.path.exists(config['train_cut']):
            os.remove(config['train_cut'])

    trainfile = 'data/train_fusai.tsv'
    df = read_df(trainfile)
    content = df.values
    applyParallel(content, word_cut, 22)
if __name__ == '__main__':
    main()

 

转载于:https://www.cnblogs.com/zle1992/p/8967644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值