Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Определить общие темы среди множеств слов

#python #текст


Путем долгих переборов, удалений, парсинга, стемминга и др. анализов я пришел к ТОП
10 слов для каждой лекции с ted.com. Они достаточно уникальные, т.е. среди 2346 множеств
слов максимально из них повторяется не более 50 слов.

Задача состоит в том, чтобы выявить на основе полученных 2346 множеств слов по 10
схожие. Простое пересечение множеств каждого с каждым ни к чему не приводит (длина
пересечения 1-3). Нужно использовать синонимы. Пытался разобраться с gensim и nltk,
но ни к чему не пришел. LSA не настроил.

Направьте на истинный путь в этом нелегком деле.
    


Ответы

Ответ 1



Если без использования всяких word2vec и подобных, можно попробовать разработать алгоритм такого типа: Для каждого исходного слова из ваших 2346 множеств составить таблицу частоты встречаемости прочих слов взятых из тех же предложений, в которых встречается ваше слово, можно даже не все слова брать, а ближайшие слова находящиеся перед и после исходного слова. Для каждого найденного слова найти таким же способом рядом стоящие слова (т.е. контекст), и сгруппировать эти слова в единый список отсортированный по частоте встречаемости и отфильтрованный так, чтобы в списке оставались только те слова, которые присутствуют в Ваших 2346 множествах слов. Полученный из этого списка топ10 будет состоять из слов, которыми можно заменить исходное слово. PROFIT Предварительно, конечно же, нужно всё это обработать всяким там стеммингом и др. анализом. А по поводу простого пересечения множеств, возникла такая идея: попробовать пересекать не по словам, а по выделенным корням слов, т.е. чтобы пересекались однокоренные слова. Ну и напоследок полезная ссылка: https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D0%BA%D0%B0

Комментариев нет:

Отправить комментарий