У меня есть фрейм данных, содержащий около 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 часов, что мне нужно сделать, чтобы улучшить время выполнения? Спасибо!