Я использую функцию исправления заклинаний в наборе данных, который у меня есть. Я использовал from pathos.multiprocessing import ProcessingPool as Pool
, чтобы сделать работу. Когда обработка будет завершена, я бы хотел получить доступ к результатам. Вот мой код:
import codecs
import nltk
from textblob import TextBlob
from nltk.tokenize import sent_tokenize
from pathos.multiprocessing import ProcessingPool as Pool
class SpellCorrect():
def load_data(self, path_1):
with codecs.open(path_1, "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 run_clean(self, path_1):
pool = Pool()
data = self.load_data(path_1)
return pool.amap(self.correct_spelling, data)
if __name__ == "__main__":
path_1 = "../Data/training_data/training_corpus.txt"
SpellCorrect = SpellCorrect()
result = SpellCorrect.run_clean(path_1)
print(result)
result = " ".join(temp for temp in result)
with codecs.open("../Data/training_data/training_data_spell_corrected.txt", "a", "utf-8") as file:
file.write(result)
Если вы посмотрите на основной блок, когда я делаю print(result)
, я получаю объект типа <multiprocess.pool.MapResult object at 0x1a25519f28>
.
Я пытаюсь получить доступ к результатам с помощью result = " ".join(temp for temp in result)
, но затем получаю следующую ошибку TypeError: 'MapResult' object is not iterable
. Я попытался вписать его в список list(result)
, но ошибка все та же. Что я могу сделать, чтобы это исправить?