Comments 21
Попробовал демку, вроде бы неплохо работает.
Было бы интересно встроить эту систему как плагин к CMS для автоматической генерации аннотации при сохранении страниц.
Было бы интересно встроить эту систему как плагин к CMS для автоматической генерации аннотации при сохранении страниц.
А можете какую-нибудь литературу по этому вопросу посоветовать из разряд «для чайников»?
Можно почитать вот это www.olap.ru/basic/refer.asp пункт «Составление выдержек» — это самое близкое к тому что тут сделано. А вобще описание на русском LexRank я не находил. самое простое описание в википедии по той ссылке что в статье.
>Какой алгоритм дал хороший результат?
Мое мнение. Алгоритм 1 (lexrank2) выдает фразы подлиннее, зато по ним можно понять смысл. Алгоритм 2 (pagerank) расстроил — фразы короткие, но без контекста бессмысленные. Алгоритм 3 где-то посредине.
Подкину еще идею: определять количество предложений для вывода автоматически по разнице в весе. Часто всю большую статью можно свести к одной фразе, но ее не видно, пока не прочитаешь статью.
>Как бы вы этим хотели пользоваться?
Помимо поля ввода для текста иметь поле ввода для URL страницы в интернете, чтобы не надо было копипастить текст.
Впечатление вцелом — это просто магия!
Мое мнение. Алгоритм 1 (lexrank2) выдает фразы подлиннее, зато по ним можно понять смысл. Алгоритм 2 (pagerank) расстроил — фразы короткие, но без контекста бессмысленные. Алгоритм 3 где-то посредине.
Подкину еще идею: определять количество предложений для вывода автоматически по разнице в весе. Часто всю большую статью можно свести к одной фразе, но ее не видно, пока не прочитаешь статью.
>Как бы вы этим хотели пользоваться?
Помимо поля ввода для текста иметь поле ввода для URL страницы в интернете, чтобы не надо было копипастить текст.
Впечатление вцелом — это просто магия!
Код AOT — это Си. Как вы делали интеграцию с python, если не секрет?
Я использую Java SDK. О том как хорошие люди интегрировали словари АОТ с явой написанно здесь habrahabr.ru/blogs/algorithm/105854/
у словарей не особо сложный формат, я когда то писал скрипт на питоне: aot.ru/download/Morphology.zip код правда старый
Добавьте еще для сравнения алгоритм, который случайным образом выбирает предложения из текста.
Целые предложения часто бывают информативными только частично, поэтому было бы хорошо показывать не предложения, а части предложений. Хотя не знаю верно ли это когда мы создаём реферат безотносительно какого-то искомого словосочетания (при поиске, например).
Ну в качестве попытки вырезать куски предложений там есть «ключевые фразы» и «ключевые действия» — это выделенные в тексте комбинации существительных и глаголов — а затем тот же алгоритм реферирования. А насчет реферирования относительно словосочетания, это несложно сделать — надо в коде сказать что вот эти предложения априори в 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
Выдержка из текста(предложений: 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
Интересно, ваш подход не похож на что-то стандартное. Хотя мне кажется это классификация по последовательности символов.
Sign up to leave a comment.
Автоматическое реферирование статей на русском языке