Подведение итогов статьи из Википедии - PullRequest
17 голосов
/ 01 января 2012

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

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

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

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

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

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

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

Ответы [ 2 ]

13 голосов
/ 01 января 2012

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

Суммирование отдельных документов на основе анализа коэффициентов кластеризации и транзитивности

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

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

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

1 голос
/ 02 января 2012

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

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

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

  1. Всегда печатайте весь вступительный абзац.

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

    2a. Распечатайте любые разделенные запятыми списки ссылок как маркированный список.

  3. Если ссылка на статью «развернута», выведите первый абзац этой статьи.

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

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

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

...