Search
Write a publication
Pull to refresh

Система сбора статей, релевантных заданной

Введение


С каждым днем количество информации в сети Интернет увеличивается, соответственно, чем больше в сети информации, тем сложнее находить нужные для пользователя данные. Поисковые машины позволяют лишь вести поиск по ключевым словам, однако далеко не всегда удается найти нужную информацию. Как правило, поисковая система выдает десятки тысяч ссылок, обработать которые вручную практически невозможно.
Основной проблемой поиска в интернете по заданной статье является время, затраченное пользователем на обработку результатов поиска. Облегчить рутинную работу отбора смогла бы система, которая будет решать задачи поиска информации, отбирать нужные материалы и выводить их пользователю в структурированном виде в автоматическом режиме. Таким образом, пользуясь подобной системой, пользователь уменьшает время отбора текстов и увеличивает время для решения непосредственно своих задач. Была поставлена задача: разработать систему отбора статей в Интернете.

Примеры существующих решений


Яндекс

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

Google

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

Nigma

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

Как реализовать подобную систему?


Морфологический анализ

В процессе анализа текстов необходимо проводить морфологический анализ слов. Данная задача является лингвистической и требует большой базы данных для каждого анализируемого языка. На данный момент существуют готовые системы морфологического анализа слов для русского языка, такие как AOT и Yandex mystem.

Ключевые слова

В основе большинства методов поиска ключевых слов в тексте лежит закон Ципфа.Не всегда легко подобрать простую эвристику для выбора диапазона ключевых слов, поэтому метод выявления ключевых слов, с использованием диаграммы Ципфа будет работать точнее, если ввести в использование так называемые фоновые словари. В общем виде этот алгоритм называется TF-IDF.
Одним из наиболее красивых методов поиска ключевых слов является алгоритм с использованием баз данных Википедии, однако о нем лучше будет рассказать отдельно в последующих статьях.

Анализ релевантности двух текстов

Когда для каждого текста выявлены ключевые слова, необходимо каким то образом их сопоставить.
Методов сопоставления можно придумать массу. От простого к сложному:

Векторный метод сравнения

Полученные списки ключевых слов представляются в виде векторов. Полученные вектора сопоставляются по длине с вектором частот ключевых слов из исходного текста(с которым мы сравниваем текущую статью) и в случае не равенства размерностей взаимодополняются ключевыми словами из противоположного вектора с нулевым значением. Такое преобразование необходимо для уравнивания размерностей векторов текстов. Каждому элементу вектора соответствует пара: слово-частота из диаграммы Ципфа, или если данное слово не встречается в тексте и было дополнено при преобразовании вектора парой: слово-0. Тогда мерой релевантности текстов будет угол между векторами, т. е. скалярное произведение векторов.

Нейронные сети Кохонена

Если по заранее заданным тематикам существуют сформированные диаграммы Ципфа для средней употребляемости слов по соответствующей тематике, мы автоматически можем классифицировать тему статьи и выявлять ключевые слова. Этот метод можно назвать «подобием» машинного интуитивного мышления, аналогично тому как человек, читая статью, имея в голове общие понятие о тех или иных сущностях, делает вывод о принадлежности статьи к определенной тематике. Подробнее о данном типе нейронных сетей можно почитать тут.

Проблемы при решении подобной задачи


Основной проблемой при решении этой задачи является критерий «правильности» выбора текстов.

На данный момент была реализована подобная система в качестве моей научной работы в МИФИ. Мне было бы интересно сделать веб проект на основе моих наработок, если это кому-нибудь нужно.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.