Pull to refresh

Comments 21

Попробовал демку, вроде бы неплохо работает.
Было бы интересно встроить эту систему как плагин к CMS для автоматической генерации аннотации при сохранении страниц.
Думаю это не сложно.
сделал JSON API, так что можно попробовать.
А можете какую-нибудь литературу по этому вопросу посоветовать из разряд «для чайников»?
Можно почитать вот это www.olap.ru/basic/refer.asp пункт «Составление выдержек» — это самое близкое к тому что тут сделано. А вобще описание на русском LexRank я не находил. самое простое описание в википедии по той ссылке что в статье.
>Какой алгоритм дал хороший результат?
Мое мнение. Алгоритм 1 (lexrank2) выдает фразы подлиннее, зато по ним можно понять смысл. Алгоритм 2 (pagerank) расстроил — фразы короткие, но без контекста бессмысленные. Алгоритм 3 где-то посредине.

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

>Как бы вы этим хотели пользоваться?
Помимо поля ввода для текста иметь поле ввода для URL страницы в интернете, чтобы не надо было копипастить текст.

Впечатление вцелом — это просто магия!
Код AOT — это Си. Как вы делали интеграцию с python, если не секрет?
Я использую Java SDK. О том как хорошие люди интегрировали словари АОТ с явой написанно здесь habrahabr.ru/blogs/algorithm/105854/
у словарей не особо сложный формат, я когда то писал скрипт на питоне: aot.ru/download/Morphology.zip код правда старый
Добавьте еще для сравнения алгоритм, который случайным образом выбирает предложения из текста.
Это честно — добавил.
Иногда этот продвинутый алгоритм работает весьма неплохо :D
Целые предложения часто бывают информативными только частично, поэтому было бы хорошо показывать не предложения, а части предложений. Хотя не знаю верно ли это когда мы создаём реферат безотносительно какого-то искомого словосочетания (при поиске, например).
Ну в качестве попытки вырезать куски предложений там есть «ключевые фразы» и «ключевые действия» — это выделенные в тексте комбинации существительных и глаголов — а затем тот же алгоритм реферирования. А насчет реферирования относительно словосочетания, это несложно сделать — надо в коде сказать что вот эти предложения априори в 2-3 раза важнее других — планирую сделать.
Кто хотел API — теперь оно есть. Возвращает список выделенных предложений, ключевых слов и действий в виде JSON списков, таким образом их можно выделять в своем GUI.
Результат обработки этой статьи:

Выдержка из текста(предложений: 3/12, время: 0.389 сек)

Алгоритм 1: (69% информации от всего текста): (lexrank2 with central greedy cosine)

За пару дней я написал несколько вариантов алгоритма суммаризации, взяв из интернета русскоязычные компоненты анализа русского текста, главным образом АОТ.
Главная идея этих подходов к реферированию — выбор главных предложений в тексте, тех, которые наилучшим образом передают смысл всего текста.
Я планирую сделать: 1. API, 2. реферировать RSS, 3. возможность реферировать по интервалам времени (по дням, неделям).
Алгоритм 2: (pagerank)

Главная идея этих подходов к реферированию — выбор главных предложений в тексте, тех, которые наилучшим образом передают смысл всего текста.
Если по вашему мнению какой-то из алгоритмов будет достаточно хорош.
Если есть люди желающие помочь в создании этих вещей, пишите.
Алгоритм 3: (lexrank)

Главная идея этих подходов к реферированию — выбор главных предложений в тексте, тех, которые наилучшим образом передают смысл всего текста.
Если по вашему мнению какой-то из алгоритмов будет достаточно хорош.
Если есть люди желающие помочь в создании этих вещей, пишите.
Алгоритм 4: (случайным образом)

Тема автоматического реферирования/аннотирования текста была поднята давно и было придумано множество способов ее реализации.
Если есть люди желающие помочь в создании этих вещей, пишите.
PS Добавил формат вывода JSON, если добавить параметр json=true
ИМХО, алгоритм 1 неплохо выдал. Лучше остальных.
Да еще есть что тюнить, но я сам результатом доволен 80% позитивных отзывов. )
Я тоже занимаюсь автоматическим анализом текстов. У меня есть кое какие результаты, если интересно можете почитать о них здесь.
Интересно, ваш подход не похож на что-то стандартное. Хотя мне кажется это классификация по последовательности символов.
В методе, который я описываю, разница в том, что последовательности перекрываются и выстраивается причинно-следственная связь. Что, кроме всего прочего, позволяет делать предсказания. Как человек, который слушает начало предложения и способен в некоторой степени предугадать, что будет в конце.
Sign up to leave a comment.

Articles