2012-01-01 6 views
16

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

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

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

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

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

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

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

+0

Далее вы хотите, чтобы мы использовали новостную ленту, чтобы сделать отсканированную статью еще короче;) – tylerthemiler

+4

Вы явно слишком стары. Оставьте эту вещь до 16-летних. Http://www.wired.com/gadgetlab/2011/12/summly-app-summarization/ – ColinE

+0

:) Summli выглядит круто. Я не могу запустить его на своем ipod, но я могу прочитать отзывы. Они были довольно смешанными. У меня сложилось впечатление, что это плохо работает. –

ответ

13

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

Single document Summarization based on Clustering Coefficient and Transitivity Analysis

Multi-document Summarization for Query Answering E-learning System

Intelligent Email: Aiding Users with AI

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

+2

Итак, я просто должен взбить график зависимостей на основе анализа отношений синтаксических зависимостей и использовать коэффициент кластеризации для измерения соединений узлов. Тогда просто вытащить треугольники узлов и использовать их для извлечения ключевых предложений. ffs ... так много для быстрой и грязной. Серьезно, хотя, спасибо за бумаги. Это лучшая информация, которую я смогу получить. –

+4

Эй, вы только что скомпилировали ключевые слова для этой статьи. Возможно, это работа для механического турка! – ColinE

1

Просто мои два цента ...

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

Если бы я был разработать интерфейс для «сводных» Википедии, я бы

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

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

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

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

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

Этот процесс может повторяться неопределенно долго.

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