Предобработка текста:
- стемминг - это нормализация слов, приведение всех слов к единой форме
- удаление стоп-слов - типа предлоги, союзы, т.д.
Что в классификации: tfi-df - это как векторизация, но просто на учете частоты слова в документе на основе коллекции документа
-
NER - извлечение именнованных сущностей. Так мы сможем разбить всю выборку документов (новостей) по районам - базово. Если усложнять, то можно было кластеризовать эти данные, чтобы документы объединять не по районам, но и по просто каким-то важным местам
-
Тематическое моделирование - поиск тем среди набора документов одной территории.
Если брать пример из гетто:
- Извлекли локации из текста
- Определили то, где есть "Мурино" (мне ещё надо "Озерки", но я тебя не буду грузить)
- Возможно: посмотрели через картографические данные, что ещё из объектов есть в Мурино, которые фигурируют в новостях
- Найти темы в этом наборе документов для определенной локации
- Сделать визуализацию дополнительную (я ещё не додумала, но предполагаю, что - это карта с темами, диаграмма с частотами)
Analysis of combining Topic model, Sentiment, Geolocation information approaches on Social Network - это самый близкий вариант к тому, что мне нравится и хочется сделать, основан на разных социальных сетях. Также используется NER - определяются большие географические районы, документы объединяются в большой документ, делается LDA (тематическое моделирование) и затем определяется тональсть текста
Analyzing Entities and Topics in News Articles Using Statistical Topic Models - здесь описана очень интересная тематическая модель и определение связей между сущностями, не думаю, что нужно глубоко смотреть, тем более текст не копируется из неё нормально
Geographical Topic Modelling on Spatial Social Network Data - пафосная статья от ИТМО, которая не очень нравится, но они используют хорошие слова. ТУт используются гео-теги из-под постов и на этом строится тематическое моделирование
Ноутбук пример тематического моделирования и визуализации LDA
Файлы разбиты на 3 строчки:
- категории
- заголовок
- текст
Как использовать
import glob
from google.colab import drive
drive.mount('/content/drive')
news = glob.glob(f"path/to/directory/with/news/*.txt")
В news
будут лежать пути к необходимым файлам