#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
Комментариев нет:
Отправить комментарий