Подведение итогов статьи в Википедии

Мне приходится постоянно учиться новым вещам. Я пытался придумать, как я мог бы ускорить процесс изучения новых предметов. Я думал, что это может быть аккуратно, если я могу написать программу для анализа статьи в википедии и удалить все, кроме самой ценной информации.

Я начал с публикации статьи Wikipedia по PDF файлам и извлечения первых 100 предложений. Я дал каждому предложению оценку, основанную на том, насколько ценным я считал это. Я закончил создание файла, следующего за этим форматом:

<sentence>
<value>
<sentence>
<value>
etc.

Затем я проанализировал этот файл и попытался найти различные функции, которые бы коррелировали каждое предложение со значением, которое я ему дал. Я только начал изучать машинное обучение и статистику и многое другое, поэтому я много занимаюсь здесь. Это моя последняя попытка: https://github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py.

Я попробовал кучу вещей, которые, похоже, не произвели никакой корреляции вообще - средняя длина слова, позиция в статье и т.д. Практически единственное, что произвело какие-то полезные отношения, это длина строки (точнее, подсчета числа букв букв "e", казалось, лучше всего работали). Но это кажется немного хромым, потому что кажется очевидным, что более длинные предложения будут скорее содержать полезную информацию.

В какой-то момент я думал, что нашел некоторые интересные функции, но потом, когда я попытался удалить выбросы (только подсчитывая внутренние квартили), они оказались хуже, а затем просто возвращали 0 для каждого предложения. Это заставило меня задуматься о том, как много других вещей я могу сделать неправильно... Мне также интересно, действительно ли это хороший способ приблизиться к этой проблеме.

Ты думаешь, я на правильном пути? Или это просто безумное поручение? Есть ли вопиющие недостатки в связанном коде? Кто-нибудь знает, как лучше подойти к проблеме подведения итогов статьи в Википедии? Я бы предпочел бы быстрое и грязное решение, чем что-то совершенное, и это займет много времени. Любые общие рекомендации также приветствуются.

Ответы

Ответ 1

Учитывая, что ваш вопрос больше связан с исследовательской деятельностью, чем с проблемой программирования, вам, вероятно, следует взглянуть на научную литературу. Здесь вы найдете опубликованные сведения о ряде алгоритмов, которые выполняют именно то, что вы хотите. Поиск Google для "подбора ключевых слов" находит следующее:

Подведение итогового документа на основе анализа кластеризации и анализа транзитивности

Подведение итогов нескольких документов для системы электронного обучения ответов на запросы

Интеллектуальная электронная почта: помощь пользователям с AI

Если вы прочтете выше, а затем следуйте ссылкам, которые они содержат, вы найдете целую массу информации. Разумеется, достаточно построить функциональное приложение.

Ответ 2

Только мои два цента...

Всякий раз, когда я просматриваю новую тему в Википедии, я обычно выполняю поиск "в ширину"; Я отказываюсь переходить к другой теме, пока не проверю каждую ссылку, к которой подключается страница (которая вводит тему, о которой я еще не знаком). Я прочитал первое предложение каждого абзаца, и если я вижу что-то в этой статье, которая, как представляется, относится к исходной теме, я повторяю этот процесс.

Если бы я должен был разработать интерфейс для "сумматора" Википедии, я бы

  • Всегда печатайте весь вводный параграф.

  • В остальной части статьи напечатайте любое предложение, в котором есть ссылка.

    2а. Распечатайте список ссылок, разделенных запятыми, в виде указательного списка маркеров.

  • Если ссылка на статью "расширена", напечатайте первый абзац этой статьи.

  • Если этот вводный абзац расширен, повторите список предложений со ссылками.

Этот процесс может повторяться бесконечно.

Я хочу сказать, что обобщение статей в Википедии - это не то же самое, что обобщение статьи из журнала или публикация в блоге. Акт ползания - важная часть изучения вводных понятий быстро через Википедию, и я чувствую это к лучшему. Как правило, нижняя половина статей - это начало тегов citation needed, но первая половина любой данной статьи считается предоставленной сообществом сообществом.