Слишком много времени для проверки орфографии в python - PullRequest
1 голос
/ 11 июля 2019

У меня есть фрейм данных, содержащий около 200 000 строк, и в каждой строке содержится примерно 30 токенизированных слов. Я пытаюсь исправить орфографические ошибки, а затем их лемматизировать.

Некоторые слова отсутствуют в словаре, поэтому, если их частота слишком высока, я просто передаю это слово, если нет, я исправляю его.

spell = SpellChecker() 
def spelling_mistake_corrector(word):
    checkedWord = spell.correction(word)
    if freqDist[checkedWord] >= freqDist[word]:
    word = checkedWord
return word

def correctorForAll(text):
    text = [spelling_mistake_corrector(word) for word in text]
    return text

lemmatizer = WordNetLemmatizer()
def lemmatize_words(text):
    text = [lemmatizer.lemmatize(word) for word in text]
    text = [word for word in text if len(word) > 2] #filtering 1 and 2 letter words out
    return text

def apply_corrector_and_lemmatizer(text):
    return lemmatize_words(correctorForAll(text))

df['tokenized'] = df['tokenized'].apply(apply_corrector_and_lemmatizer)

Дело в том, что этот код работает на colab в течение 3 часов, что мне нужно сделать, чтобы улучшить время выполнения? Спасибо!

...