TypeError: объект 'MapResult' не может быть повторен с использованием pathos.multiprocessing - PullRequest
0 голосов
/ 09 января 2019

Я использую функцию исправления заклинаний в наборе данных, который у меня есть. Я использовал 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), но ошибка все та же. Что я могу сделать, чтобы это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...