Лемматизация и препроцессинг текста
Как правильно выполнить предварительную обработку текста на русском языке с использованием библиотек nltk и pymorphy3? Есть-ли у меня какие-то ошибки, которые могут нагружать код?
Фреймворки, которые использовал -
import re
import nltk
from pymorphy3 import MorphAnalyzer
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
Функция лемматизации -
def lemmatize(text):
res=[]
words=text.split()
for word in words:
p=morph.parse(word)[0]
res.append(p.normal_form)
return ' '.join(res)
Функция препроцессинга текста -
def preprocess(text):
text=re.sub('[^а-яА-Я]', ' ', text)
tokens = word_tokenize(text, language='russian')
tokens = [word.lower() for word in tokens]
stop_words = set(stopwords.words('russian'))
tokens = [word for word in tokens if word not in stop_words]
tokens = [lemmatize(word) for word in tokens]
return " ".join(tokens)
Сохранение готового текста
data_text['txt'] = data_text["txt"].apply(preprocess)