Python 3.x NLP应用程序的多处理错误
我在做一个NLP项目。我有一个1.8亿字的海量数据集。在开始训练之前,我想纠正单词的拼写。为此,我使用TextBlob的拼写正确。因为TextBlob无论如何都需要一段时间来处理,所以要纠正1.8亿个单词的拼写将需要非常长的时间。下面是我的方法(代码如下):Python 3.x NLP应用程序的多处理错误,python-3.x,multiprocessing,python-multiprocessing,multiprocess,Python 3.x,Multiprocessing,Python Multiprocessing,Multiprocess,我在做一个NLP项目。我有一个1.8亿字的海量数据集。在开始训练之前,我想纠正单词的拼写。为此,我使用TextBlob的拼写正确。因为TextBlob无论如何都需要一段时间来处理,所以要纠正1.8亿个单词的拼写将需要非常长的时间。下面是我的方法(代码如下): 加载语料库 使用nltk将语料库拆分为句子列表 标记器 多处理:将函数应用于步骤2生成的列表中的每个iterable项 这是我的密码: import codecs import multiprocessing import nltk fr
import codecs
import multiprocessing
import nltk
from textblob import TextBlob
from nltk.tokenize import sent_tokenize
class SpellCorrect():
def __init__(self):
pass
def load_data(self, path):
with codecs.open(path, "r", "utf-8") as file:
data = file.read()
return sent_tokenize(data)
def correct_spelling(self, data):
data = TextBlob(data)
return str(data.correct())
def merge_cleaned_corpus(self, result, path):
result = " ".join(temp for temp in result)
with codecs.open(path, "a", "utf-8") as file:
file.write(result)
if __name__ == "__main__":
SpellCorrect = SpellCorrect()
data = SpellCorrect.load_data(path)
correct_spelling = SpellCorrect.correct_spelling
pool = multiprocessing.Pool(processes = multiprocessing.cpu_count())
result = pool.apply_async(correct_spelling, (data, ))
result = result.get()
SpellCorrect.merge_cleaned_corpus(tuple(result), path)
当我运行此操作时,会出现以下错误:
_pickle.PicklingError: Can't pickle <class '__main__.SpellCorrect'>: it's not the same object as __main__.SpellCorrect
\u pickle.PicklingError:无法pickle:它与\uuuuu main\uuuuuu.spillcorrect不是同一个对象
此错误是在我的代码中表示result=result.get()
根据我可能是错误的猜测,我猜测并行处理组件成功完成了,并且能够将我的清理应用到每个iterable语句。但是,我无法检索这些结果
有人能告诉我为什么会产生这个错误,以及我能做些什么来修复它吗。提前谢谢