Advertisement
mesearcher

share code for 13th

Dec 19th, 2024
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. Сначала вычистили текст:
  2. ```
  3. # загрузка стоп-слов
  4. nltk.download('stopwords')
  5.  
  6. # удаление ненужных символов
  7. df['clean_text'] = df['эхокг_посл_перед_опер'].str.replace(r'_x000D_', ' ').str.replace(r'\n', ' ')
  8. df['clean_text'] = df['clean_text'].str.lower()
  9.  
  10. # определение стоп-слов
  11. stop_words = set(stopwords.words('russian'))
  12.  
  13. # токенизация и удаление стоп-слов
  14. 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]))
  15. ```
  16. Затем этап LDA:
  17. ```
  18. # тематическое моделирование для определения тем связанных с состоянием сердца
  19. # векторизация текстовых данных
  20. vectorizer = CountVectorizer(max_df=0.95, min_df=2)
  21. doc_term_matrix = vectorizer.fit_transform(df['clean_text'])
  22.  
  23. # применение LDA для тематического моделирования
  24. lda = LatentDirichletAllocation(n_components=5, random_state=654321)
  25. lda.fit(doc_term_matrix)
  26.  
  27. # признак 13: получение тематического распределения
  28. df['new_topic_lda'] = lda.transform(doc_term_matrix).argmax(axis=1)
  29. ```
  30.  
  31. Получили новый признак со значениями:
  32. ```
  33. array([2, 1, 0, 4, 3])
  34. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement