В извлечении текста , полнотекстовый поиск относится к способам поиска в едином компьютерный -stored документа или коллекцию в полнотекстовой базе данных . Полнотекстовый поиск отличается от поиска на основе метаданных или частей исходного текста, представленных в базах данных (таких как заголовки, аннотации, выбранные разделы или библиографические ссылки).
При полнотекстовом поиске поисковая система проверяет все слова в каждом сохраненном документе, пытаясь соответствовать критериям поиска (например, тексту, указанному пользователем). Методы полнотекстового поиска стали обычным явлением в онлайн- библиографических базах данных в 1990-х годах. [ требуется проверка ] Многие веб-сайты и прикладные программы (например, текстовые редакторы ) предоставляют возможности полнотекстового поиска. Некоторые поисковые системы, такие как AltaVista , используют методы полнотекстового поиска, в то время как другие индексируют только часть веб-страниц, проверенных их системами индексации. [1]
Индексирование
При работе с небольшим количеством документов машина полнотекстового поиска может напрямую сканировать содержимое документов при каждом запросе. Эта стратегия называется « последовательное сканирование ». Это то, что делают некоторые инструменты, такие как grep , при поиске.
Однако, когда количество документов для поиска потенциально велико или количество поисковых запросов, которые необходимо выполнить, является значительным, проблема полнотекстового поиска часто разделяется на две задачи: индексирование и поиск. На этапе индексации будет сканироваться текст всех документов и составлен список поисковых терминов (часто называемый индексом , но более правильно называемый соответствием ). На этапе поиска при выполнении определенного запроса делается ссылка только на индекс, а не на текст исходных документов. [2]
Индексатор сделает запись в указателе для каждого термина или слова, найденного в документе, и, возможно, отметит их относительное положение в документе. Обычно индексатор игнорирует стоп-слова (такие как «и» и «и»), которые являются общими и недостаточно значимыми, чтобы быть полезными при поиске. Некоторые индексаторах также используют для конкретного языка , вытекающие на словах индексируется. Например, слова «диски», «управляемые» и «управляемые» будут записаны в указателе под одним концептуальным словом «диск».
Компромисс между точностью и отзывчивостью
Отзыв измеряет количество релевантных результатов, возвращаемых поиском, а точность - это мера качества возвращаемых результатов. Напоминание - это отношение возвращенных релевантных результатов ко всем релевантным результатам. Точность - это количество возвращенных релевантных результатов по отношению к общему количеству возвращенных результатов.
На диаграмме справа представлен поиск с низкой точностью и быстрым отзывом. На диаграмме красные и зеленые точки представляют общую совокупность потенциальных результатов поиска для данного поиска. Красные точки представляют собой нерелевантные результаты, а зеленые точки - соответствующие результаты. На релевантность указывает близость результатов поиска к центру внутреннего круга. Из всех возможных результатов те, которые действительно были возвращены поиском, показаны на голубом фоне. В этом примере был возвращен только 1 релевантный результат из 3 возможных релевантных результатов, поэтому отзыв является очень низким соотношением 1/3, или 33%. Точность для этого примера составляет очень низкую 1/4 или 25%, поскольку только 1 из 4 возвращенных результатов был релевантным. [3]
Из-за двусмысленности естественного языка системы полнотекстового поиска обычно включают такие параметры, как стоп-слова, чтобы повысить точность, и поиск по краям, чтобы улучшить запоминание. Поиск по контролируемой лексике также помогает решить проблемы с низкой точностью, помечая документы таким образом, чтобы исключить двусмысленность. Компромисс между точностью и отзывом прост: увеличение точности может снизить общий отзыв, в то время как увеличение отзыва снижает точность. [4]
Ложноположительная проблема
Полнотекстовый поиск может привести к поиску многих документов, не имеющих отношения к предполагаемому поисковому запросу. Такие документы называются ложными срабатываниями (см. Ошибку типа I ). Поиск нерелевантных документов часто вызван неоднозначностью, присущей естественному языку . На схеме справа ложные срабатывания представлены нерелевантными результатами (красные точки), которые были возвращены поиском (на голубом фоне).
Методы кластеризации, основанные на байесовских алгоритмах, могут помочь уменьшить количество ложных срабатываний. Для поискового термина «банк» кластеризация может использоваться для категоризации вселенной документов / данных на «финансовое учреждение», «место для сидения», «место для хранения» и т. Д. В зависимости от встречаемости слов, относящихся к категориям, условия поиска или результат поиска могут быть помещены в одну или несколько категорий. Этот метод широко применяется в сфере электронных открытий . [ требуется разъяснение ]
Улучшения производительности
Недостатки свободного поиска по тексту были устранены двумя способами: путем предоставления пользователям инструментов, которые позволяют им более точно выражать свои поисковые вопросы, и путем разработки новых алгоритмов поиска, повышающих точность поиска.
Улучшенные инструменты запросов
- Ключевые слова . Создателей документов (или обученных индексаторов) просят предоставить список слов, описывающих тему текста, включая синонимы слов, описывающих эту тему. Ключевые слова улучшают запоминание, особенно если список ключевых слов включает поисковое слово, которого нет в тексте документа.
- Поиск с ограничением по полю . Некоторые поисковые системы позволяют пользователям ограничивать поиск по свободному тексту определенным полем в сохраненной записи данных , например «Заголовок» или «Автор».
- Логические запросы . Поиски, в которых используются логические операторы (например, «энциклопедия» И «онлайн» НЕ «Энкарта» ), могут значительно повысить точность поиска по свободному тексту. В По сути, оператор AND говорит: «Не извлекайте какой-либо документ, если он не содержит оба этих термина». В Оператор NOT фактически говорит: «Не извлекайте документы, содержащие это слово». Если список поиска извлекает слишком мало документов, Оператор ИЛИ может использоваться для увеличения отзыва ; рассмотрим, например, «энциклопедия» И «онлайн» ИЛИ «Интернет» НЕ «Энкарта» . Этот поиск найдет документы об онлайн-энциклопедиях, в которых используется термин «Интернет» вместо «онлайн». Такое повышение точности очень часто приводит к обратным результатам, поскольку обычно сопровождается резкой потерей отзыва. [5]
- Поиск по фразе . Поиск по фразе соответствует только тем документам, которые содержат указанную фразу, например "Википедия, свободная энциклопедия."
- Концептуальный поиск . Поиск, основанный на концепциях, состоящих из нескольких слов, например, обработка составных терминов . Этот тип поиска становится популярным во многих решениях для электронных открытий.
- Поиск соответствия . Поиск соответствия производит алфавитный список всех основных слов, которые встречаются в тексте, с их непосредственным контекстом.
- Поиск по близости . Поиск по фразе находит только те документы, которые содержат два или более слов, разделенных указанным количеством слов; a search for "Wikipedia" WITHIN2 "free" будет извлекать только те документы, в которых слова «Википедия» и «бесплатно» встречаются в двух словах друг от друга.
- Регулярное выражение . Регулярное выражение использует сложный, но мощный синтаксис запросов, который можно использовать для точного определения условий поиска.
- Нечеткий поиск будет искать документ, который соответствует заданным условиям и некоторым вариациям вокруг них (например, используя расстояние редактирования для порогового значения множественного варианта).
- Поиск по шаблону . Поиск, при котором один или несколько символов в поисковом запросе заменяются символом подстановки, например звездочкой . Например, использование звездочки в поисковом запросе «s * n» найдет в тексте «грех», «сын», «солнце» и т. д.
Улучшенные алгоритмы поиска
PageRank алгоритм , разработанный Google дает больше внимания к документам , к которым другие веб - страницы , которые связаны между собой . [6] Дополнительные примеры см. В разделе « Поисковая система» .
Программное обеспечение
Ниже приводится частичный список доступных программных продуктов, основная цель которых - выполнять полнотекстовое индексирование и поиск. Некоторые из них сопровождаются подробным описанием их теории работы или внутренних алгоритмов, которые могут дать дополнительную информацию о том, как может выполняться полнотекстовый поиск.
Бесплатное программное обеспечение с открытым исходным кодом
- Apache Solr
- АрангоПоиск
- BaseX
- Elasticsearch
- КиноПоиск
- Лемур / Индри
- Lucene
- mnoGoSearch
- PostgreSQL
- Searchdaimon
- Сфинкс
- Swish-e
- ИК-платформа Terrier
- Xapian
- Bsasearch
- RediSearch
- Bleve Search
Проприетарное программное обеспечение
- Алголия
- Автономная корпорация
- Поиск в Azure
- Проект Бар Илана Респонса
- Базовая база данных
- Brainware
- BRS / Поиск
- Concept Searching Limited
- Дизельпойнт
- dtSearch
- Endeca
- Exalead
- Быстрый поиск и перевод
- Инктоми
- Locayta (переименован в ATTRAQT в 2014 г.) [ необходима ссылка ]
- Осознанное воображение
- MarkLogic
- SAP HANA [7]
- Swiftype
- ООО «Тандерстоун Софтвер».
- Вивисимо
Рекомендации
- ^ На практике может быть сложно определить, как работает данная поисковая система. Эти алгоритмы поиска фактически используемые веб-поисковые службы редко полностью раскрывается из страхачто вебпредприниматели будут использовать поисковую оптимизацию методычтобы улучшить их известность в поисковых списках.
- ^ «Возможности системы полнотекстового поиска» . Архивировано из оригинального 23 декабря 2010 года.
- ^ Коулз, Майкл (2008). Профессиональный полнотекстовый поиск в SQL Server 2008 (версия 1, изд.). Издательская компания "Апресс" . ISBN 978-1-4302-1594-3.
- ^ Б., Ювоно; Ли, DL (1996). Алгоритмы поиска и ранжирования для поиска ресурсов во всемирной паутине . 12-я Международная конференция по инженерии данных (ICDE'96). п. 164.
- ^ Исследования неоднократно показывали, что большинство пользователей не понимают отрицательного воздействия логических запросов. [1]
- ^ US 6285999 , Пейдж, Лоуренс, «Метод ранжирования узлов в связанной базе данных», опубликовано 9 января 1998 г., выпущено 4 сентября 2001 г. «Метод присваивает ранги важности узлам в связанной базе данных, такой как любая база данных документов, содержащих цитаты, всемирная паутина или любая другая база данных гипермедиа. Рейтинг, присвоенный документу, рассчитывается на основе рангов документов, цитирующих его. Кроме того, , ранг документа ... "
- ^ «SAP добавляет пакеты программного обеспечения на основе HANA в портфель IoT | Консультант по MarTech» . www.martechadvisor.com .
Смотрите также
- Сопоставление с образцом и сопоставление строк
- Обработка сложных терминов
- Корпоративный поиск
- Извлечение информации
- Поиск информации
- Фасетный поиск
- Список поставщиков поисковой системы предприятия
- WebCrawler , первый движок FTS
- Индексирование поисковыми системами - как поисковые системы генерируют индексы для поддержки полнотекстового поиска