Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Сначала вычистили текст:
- ```
- # загрузка стоп-слов
- nltk.download('stopwords')
- # удаление ненужных символов
- df['clean_text'] = df['эхокг_посл_перед_опер'].str.replace(r'_x000D_', ' ').str.replace(r'\n', ' ')
- df['clean_text'] = df['clean_text'].str.lower()
- # определение стоп-слов
- stop_words = set(stopwords.words('russian'))
- # токенизация и удаление стоп-слов
- df['clean_text'] = df['clean_text'].apply(lambda x: ' '.join([word for word in re.findall(r'\w+', str(x)) if word not in stop_words]))
- ```
- Затем этап LDA:
- ```
- # тематическое моделирование для определения тем связанных с состоянием сердца
- # векторизация текстовых данных
- vectorizer = CountVectorizer(max_df=0.95, min_df=2)
- doc_term_matrix = vectorizer.fit_transform(df['clean_text'])
- # применение LDA для тематического моделирования
- lda = LatentDirichletAllocation(n_components=5, random_state=654321)
- lda.fit(doc_term_matrix)
- # признак 13: получение тематического распределения
- df['new_topic_lda'] = lda.transform(doc_term_matrix).argmax(axis=1)
- ```
- Получили новый признак со значениями:
- ```
- array([2, 1, 0, 4, 3])
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement