ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[01] Настоящая технология относится к системам и способам обработки поисковых запросов, введенных в сервис поисковой системы. Конкретнее, системы и способы нацелены на вычисление обобщенных запросов на основе поисковых запросов для предоставления содержимого пользователю.
УРОВЕНЬ ТЕХНИКИ
[02] Совпадение по ключевым словам является удобным способом для предоставления целевого содержимого пользователям сервисов поисковых систем. В некоторых случаях такое совпадение может предоставлять более релевантные поисковые результаты пользователю в ответ на введенный запрос в поисковую систему. В других случаях, поставщики целевого содержимого могут предоставлять информацию о продукте и/или услуге, которые они рекламируют, о поисковых фразах, которые будут использованы для установления соотношения рекламного объявления с поисковых запросом, введенным пользователем, и о ценах, предлагаемых поставщиком сервиса поисковой системы для отображения своих рекламных объявлений. Например, когда пользователь вводит поисковый запрос в поисковую систему, процедура установления соответствия выполняется между поисковым запросом и поисковой фразой, предоставляемой рекламодателем и/или поставщиком содержимого, и рекламное объявление и/или поисковые результаты, релевантные поисковому запросу выбираются поисковой системой для предоставления рассматриваемому пользователю. Тем не менее, следует иметь в виду, что могут присутствовать семантические ошибки, грамматические ошибки, орфографические ошибки и так далее, связанные с процедурой установления соответствия.
[03] Например, поисковые запросы, введенные пользователями, могут содержать опечатки, которые пользователи по ошибке вводят в момент введения поисковых запросов. В другом примере, поисковый запрос и поисковая фраза могут быть ведены в поисковую систему на другом языке. В другом варианте, поисковый запрос может включать в себя не значимые слова, например, предлоги, которые могут усложнять процедуру установления соответствия между данным поисковым запросом и данной поисковой фразой.
[04] Одна из проблем, возникающих при установлении соответствия поисковых запросов и поисковых фраз, относится к синонимам. Действительно, в некоторых случаях, если поисковый запрос включает в себя синоним слова, содержащегося в поисковой фразе, данный поисковый запрос и данная поисковая фраза могут не совпадать. Это несовпадение является нежелательным для: (i) пользователя, поскольку он может не получить рекламное объявление об интересующем продукте; (ii) рекламодателя и/или поставщика содержимого, поскольку их продукт и/или услуга и/или содержимое не достаточно хорошо рекламируются; и (iii) поставщика поисковой системы, поскольку не достигается оптимальная монетизация, связанная с рекламными объявлениями/содержимым, которые рекламируются с помощью страницы результатов поиска (SERP).
[05] Некоторые поставщики поисковой системы могут создавать синонимичные фразы, эквивалентные поисковым запросам, для попытки установления соответствия между синонимичными фразами и поисковыми фразами, предоставляемыми рекламодателем. Обычный подход к созданию синонимичных фраз выглядит следующим образом. Поисковый запрос считается набором из слов, для которого выбирается набор синонимов, и далее синонимичные фразы создаются как возможные комбинации рассматриваемых синонимов. Количество таких комбинаций представляет собой 2N-1, причем N - число слов в поисковом запросе. Это означает, что более длинные поисковые запросы приводят к экспоненциальному росту комбинаций, также известному как комбинаторный взрыв.
РАСКРЫТИЕ
[06] Настоящее техническое решение может уменьшить по меньшей мере некоторые недостатки, присущие текущему уровню техники в отношении обработки поисковых запросов.
[07] В некоторых вариантах осуществления технического решения, предлагается способ обработки поисковых запросов, который выполняется на сервере, и в котором сервер размещает поисковую систему. Способ включает в себя: получение сервером множества поисковых запросов, введенных в поисковую систему; и обработку сервером каждого поискового запроса во множестве поисковых запросов. Обработка каждого поискового запроса включает в себя: получение сервером набора лексем и набора синонимов; вычисление сервером набора нормализованных запросов на основе поисковых запросов и лексем из набора лексем; вычисление сервером набора обобщенных запросов на основе нормализованных запросов из набора нормализованных запросов и синонимов из набора синонимов, при этом каждый нормализованный запрос связан с соответствующим обобщенным запросом из набора обобщенных запросов; и компиляцию сервером индексной структуры на основе набора логических деревьев, причем компиляция индексной структуры включает в себя вычисление сервером набора логических деревьев. Каждое логическое дерево в наборе логических деревьев представляет собой по меньшей мере один обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом.
[08] В некоторых вариантах осуществления способа, способ дополнительно включает в себя: получение сервером поисковой фразы, введенной в поисковую систему; обработку сервером поисковой фразы. Обработка поисковой фразы включает в себя: вычисление сервером нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем; вычисление сервером обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов; и связывание сервером по меньшей мере одного нормализованного запроса из набора нормализованных запросов с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры, причем по меньшей мере один нормализованный запрос отличается от нормализованной поисковой фразы.
[09] В некоторых вариантах осуществления способа, вычисление набора нормализованных запросов включает в себя для каждого поискового запроса из множества поисковых запросов: определение сервером соответствующей лексемы для каждого значимого слова в данном поисковом запросе; создание сервером данного нормализованного запроса, связанного с данным поисковым запросом, причем данный нормализованный запрос включает в себя соответствующую лексему каждого значимого слова в данном поисковом запросе.
[10] В некоторых вариантах осуществления способа, вычисление набора обобщенных запросов включает в себя для каждого нормализованного запроса из набора нормализованных запросов: определение сервером соответствующего основного синонима для каждой лексемы в данном нормализованном запросе; создание сервером данного обобщенного запроса, связанного с данным нормализованным запросом, причем данный обобщенный запрос включает в себя соответствующий основной синоним каждой лексемы в данном нормализованном запросе.
[11] В некоторых вариантах осуществления способа, данный нормализованный запрос связан с нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов, которые связаны с данным нормализованным запросом.
[12] В некоторых вариантах осуществления способа, данный обобщенный запрос связан с обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов, которые связаны с данным обобщенным запросом.
[13] В некоторых вариантах осуществления способа, каждое значимое слово является словоизмененной парадигмой соответствующей лексемы.
[14] В некоторых вариантах осуществления способа, соответствующий основной синоним каждой лексемы определен модулем обработки на основе соответствующих указаний популярности синонимов из набора синонимов.
[15] В некоторых вариантах осуществления способа, по меньшей мере одно логическое дерево из набора логических деревьев включает в себя: родительский узел; по меньшей мере один дочерний узел первого уровня и по меньшей мере один дочерний узел второго уровня.
[16] В некоторых вариантах осуществления способа, по меньшей мере одно логическое дерево представляет по меньшей мере один соответствующий обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом, причем по меньшей мере один обобщенный запрос связан по меньшей мере с одним из: родительским узлом, по меньшей мере одним дочерним узлом первого уровня и по меньшей мере одним дочерним узлом второго уровня.
[17] В некоторых вариантах осуществления способа, способ дополнительно включает в себя: получение сервером текущего поискового запроса, введенного в поисковую систему; обработку сервером текущего поискового запроса. Обработка текущего поискового запроса включает в себя: вычисление сервером нормализованного текущего поискового запроса на основе текущего поискового запроса и лексем из набора лексем; вычисление сервером обобщенного текущего поискового запроса на основе нормализованного поискового запроса и синонимов из набора синонимов и связывание сервером нормализованного текущего запроса с целевым содержимым, связанным с поисковой фразой на основе по меньшей мере одного из: нормализованной поисковой фразы и по меньшей мере одного нормализованного запроса, связанного с поисковой фразой.
[18] В некоторых вариантах осуществления технического решения, предлагается сервер для обработки поисковых запросов, который размещает поисковую систему. Сервер выполнен с возможностью осуществлять: получение сервером множества поисковых запросов, введенных в поисковую систему; и обработку сервером каждого поискового запроса во множестве поисковых запросов. Для обработки каждого поискового запроса сервер выполнен с возможностью осуществлять: получение набора лексем и набора синонимов; вычисление набора нормализованных запросов на основе поисковых запросов и лексем из набора лексем; вычисление набора обобщенных запросов на основе нормализованных запросов из набора нормализованных запросов и синонимов из набора синонимов, при этом каждый нормализованный запрос связан с соответствующим обобщенным запросом из набора обобщенных запросов; и компиляцию индексной структуры на основе набора логических деревьев, причем компиляция индексной структуры включает в себя сервер, выполненный с возможностью осуществлять вычисление набора логических деревьев, причем каждое логическое дерево из набора логических деревьев представляет по меньшей мере один обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом.
[19] В некоторых вариантах осуществления сервера, сервер дополнительно выполнен с возможностью осуществлять: получение поисковой фразы, введенной в поисковую систему; обработку поисковой фразы. Для обработки поисковой фразы сервер выполнен с возможностью осуществлять: вычисление нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем; вычисление обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов и связывание по меньшей мере одного нормализованного запроса из набора нормализованных запросов с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры, причем по меньшей мере один нормализованный запрос отличается от нормализованной поисковой фразы.
[20] В некоторых вариантах осуществления сервера, для вычисления набора нормализованных запросов, сервер дополнительно выполнен с возможностью осуществлять, для каждого данного поискового запроса из множества поисковых запросов: определение соответствующей лексемы для каждого значимого слова в данном поисковом запросе; создание данного нормализованного запроса, связанного с данным поисковым запросом, причем данный нормализованный запрос включает в себя соответствующую лексему каждого значимого слова в данном поисковом запросе.
[21] В некоторых вариантах осуществления способа, для вычисления набора обобщенных запросов, сервер выполнен с возможностью осуществлять, для каждого нормализованного запроса из набора нормализованных запросов: определение соответствующего основного синонима для каждой лексемы в данном нормализованном запросе; создание данного обобщенного запроса, связанного с данным нормализованным запросом, причем данный обобщенный запрос включает в себя соответствующий основной синоним каждой лексемы в данном нормализованном запросе.
[22] В некоторых вариантах осуществления сервера, данный нормализованный запрос связан с нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов, которые связаны с данным нормализованным запросом.
[23] В некоторых вариантах осуществления сервера, данный обобщенный запрос связан с обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов, которые связаны с данным обобщенным запросом.
[24] В некоторых вариантах осуществления сервера, каждое значимое слово является словоизмененной парадигмой соответствующей лексемы.
[25] В некоторых вариантах осуществления сервера, соответствующий основной синоним каждой лексемы определен на основе соответствующих указаний популярности синонимов из набора синонимов.
[26] В некоторых вариантах осуществления сервера, по меньшей мере одно логическое дерево из набора логических деревьев включает в себя: родительский узел; по меньшей мере один дочерний узел первого уровня и по меньшей мере один дочерний узел второго уровня.
[27] В некоторых вариантах осуществления сервера, по меньшей мере одно логическое дерево представляет по меньшей мере один соответствующий обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом, причем по меньшей мере один обобщенный запрос связан по меньшей мере с одним из: родительским узлом, по меньшей мере одним дочерним узлом первого уровня и по меньшей мере одним дочерним узлом второго уровня.
[28] В некоторых вариантах осуществления сервера, сервер дополнительно выполнен с возможностью осуществлять: получение текущего поискового запроса, введенного в поисковую систему; обработку текущего поискового запроса. Для обработки текущего поискового запроса, сервер выполнен с возможностью осуществлять: вычисление нормализованного текущего поискового запроса на основе текущего поискового запроса и лексем из набора лексем; вычисление обобщенного текущего поискового запроса на основе нормализованного поискового запроса и синонимов из набора синонимов; и связывание нормализованного текущего запроса с целевым содержимым, связанным с поисковой фразой на основе по меньшей мере одного из: нормализованной поисковой фразы и по меньшей мере одного нормализованного запроса, связанного с поисковой фразой.
[29] В контексте настоящего описания, если четко не указано иное, "электронное устройство", "пользовательское устройство", "сервер", "удаленный сервер" и "компьютерная система" подразумевают под собой аппаратное и/или системное обеспечение, подходящее к решению соответствующей задачи. Таким образом, некоторые неограничивающие примеры аппаратного и/или программного обеспечения включают в себя компьютеры (серверы, настольные компьютеры, ноутбуки, нетбуки и так далее), смартфоны, планшеты, сетевое оборудование (маршрутизаторы, коммутаторы, шлюзы и так далее) и/или их комбинацию.
[30] В контексте настоящего описания, если четко не указано иное, "машиночитаемый носитель" и "память" подразумевает под собой носитель абсолютно любого типа и характера, не ограничивающие примеры включают в себя ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB-ключи, флеш-карты, твердотельные накопители и накопители на магнитной ленте.
[31] В контексте настоящего описания, если четко не указано иное, «указание» информационного элемента может представлять собой сам информационный элемент или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен информационный элемент. Например, указание на файл может включать в себя сам файл (т.е. его содержимое), или же оно может являться уникальным дескриптором файла, идентифицирующим файл по отношению к конкретной файловой системе, или каким-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу. Как будет понятно специалистам в данной области техники, степень точности, необходимая для такого указания, зависит от степени первичного понимания того, как должна быть интерпретирована информация, которой обмениваются получатель и отправитель указателя. Например, если до установления связи между отправителем и получателем понятно, что признак информационного элемента принимает вид ключа базы данных для записи в конкретной таблице заранее установленной базы данных, содержащей информационный элемент, то передача ключа базы данных - это все, что необходимо для эффективной передачи информационного элемента получателю, несмотря на то, что сам по себе информационный элемент не передавался между отправителем и получателем указания.
[32] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[33] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
[34] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[35] Для лучшего понимания настоящего технического решения, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[36] На Фиг. 1 представлена диаграмма компьютерной системы, которая подходит для реализации настоящей технологии, и/или которая используется в сочетании с вариантами осуществления настоящей технологи.
[37] На Фиг. 2 представлено схематическое изображение обработки поисковых запросов из множества поисковых запросов модулем обработки, в некоторых вариантах осуществления настоящего технического решения, для вычисления, среди прочего, набора нормализованных запросов.
[38] На Фиг. 3 представлено множество поисковых запросов, которое хранится в базе данных поисковых запросов, как описано в некоторых вариантах осуществления настоящего технического решения.
[39] На Фиг. 4 представлен набор нормализованных запросов и связей между нормализованными запросами и соответственными связанными поисковыми запросами, как показано в некоторых вариантах осуществления настоящего технического решения.
[40] На Фиг. 5 представлено схематическое изображение обработки нормализованных запросов из набора нормализованных запросов модулем обработки, в некоторых вариантах осуществления настоящего технического решения, для вычисления, среди прочего, набора обобщенных запросов.
[41] На Фиг. 6 представлен набор обобщенных запросов и связей между обобщенными запросами и соответственными связанными нормализованными запросами, созданными модулем обработки и хранящимися в базе данных обработки, как показано в некоторых вариантах осуществления настоящего технического решения.
[42] На Фиг. 7 представлено схематическое изображение обработки обобщенных запросов и нормализованных запросов модулем обработки, в некоторых вариантах осуществления настоящего технического решения, для компиляции индексной структуры.
[43] На Фиг. 8 представлена индексная структура, включающая в себя набор логических деревьев, который хранится в индексной базе данных, как описано в некоторых вариантах осуществления настоящего технического решения.
[44] На Фиг. 9 представлена блок-схема способа обработки поисковых запросов, который выполняется сервером в некоторых вариантах осуществления настоящего технического решения.
[45] Также следует отметить, что чертежи выполнены не в масштабе, если не специально указано иное.
ОСУЩЕСТВЛЕНИЕ
[46] Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы помочь читателю понять принципы настоящей технологии, а не для установления границ ее объема. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы настоящей технологии и находятся в границах ее объема.
[47] Кроме того, для ясности в понимании, следующее описание касается достаточно упрощенных вариантов осуществления настоящей технологии. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.
[48] Некоторые полезные примеры модификаций настоящей технологии также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающего списка, и специалисты в данной области техники могут создавать другие модификации, остающиеся в границах объема настоящей технологии. Кроме того, те случаи, где не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента настоящей технологии.
[49] Более того, все заявленные здесь принципы, аспекты и варианты осуществления настоящей технологии, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ, вне зависимости от того, известны ли они на данный момент или будут разработаны в будущем. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы настоящей технологии. Аналогично, любые блок-схемы, диаграммы, псевдокоды и т.п. представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор, или нет.
[50] Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как «процессор» или «графический процессор», могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. В некоторых вариантах осуществления настоящей технологии процессор может являться универсальным процессором, например, центральным процессором (CPU) или специализированным для конкретной цели процессором, например, графическим процессором (GPU). Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[51] Программные модули или простые модули, представляющие собой программное обеспечение, которое может быть использовано здесь в комбинации с элементами блок-схемы или другими элементами, которые указывают на выполнение этапов процесса и/или текстовое описание. Подобные модели могут быть выполнены на аппаратном обеспечении, показанном напрямую или косвенно.
[52] С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления аспектов настоящей технологии.
[53] На Фиг. 1 представлена система 100, подходящая для использования с некоторыми вариантами осуществления настоящей технологии. Система 100 может содержать, среди прочего, клиентское устройство 104, сеть 106, сервер 108 и ресурсы 180 целевого содержимого.
[54] Варианты осуществления клиентского устройства 104 никак конкретно не ограничены, но, в качестве примера, клиентское устройство 104 может взаимодействовать с сервером 108, путем передачи/получения данных серверу 108/от сервера 108. Клиентское устройство 104 может, например, в качестве не ограничивающего примера, представлять собой настольный компьютер, ноутбук, смартфон (например, Apple iPhone™ or a Samsung Galaxy S5™), персональный цифровой органайзер (PDA) или другое устройство, включающее в себя функциональность вычисления и возможности передачи данных. Клиентское устройство 104 может включать в себя, среди прочего, внутренние аппаратные компоненты, включая один или несколько одно- или мультиядерных процессоров, которые коллективно представлены здесь как процессор (не показан), ОЗУ (не показано), сетевой интерфейс (не показано) для связи с сервером 108.
[55] Клиентское устройство 104 связано с пользователем 102, который может взаимодействовать с клиентским устройством 104. В некоторых вариантах осуществления настоящего технического решения, клиентское устройство 104 может быть выполнено с возможностью выполнять браузерное приложение (не показано). В общем случае, задачей браузерного приложения является предоставление пользователю 102 доступа к одному или нескольким веб-ресурсам. Реализация браузерного приложения никак конкретно не ограничена. Например, браузерное приложение 104 может быть реализовано как Яндекс™ браузер. Несмотря на то, что клиентское устройство 104 связано с пользователем 102, эта связь не требует от пользователя 102 авторизации или чего-либо подобного.
[56] Клиентское устройство 104 соединено с сетью 106 через сети передачи данных (не пронумерована). В некоторых вариантах осуществления настоящего технического решения, сеть 106 может быть реализована как Интернет. В других вариантах осуществления настоящей технологии сеть 106 может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[57] Реализация линии передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 104 используется. В качестве примера (но не ограничения) в данных вариантах осуществления настоящей технологии в случаях, когда клиентское устройство 104 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линию передачи данных 3G, линию передачи данных 4G, беспроводной интернет Wireless Fidelity или WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское клиентское устройство 104 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet).
[58] Важно иметь в виду, что варианты реализации клиентского устройства 104, линии передачи данных и сети 106 приведены исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 104, линии передачи данных и сети 106. То есть, представленные здесь примеры не ограничивают объем настоящего технического решения.
[59] Также с сетью 106 соединен сервер 108, на котором может быть расположен сервис поисковой системы для обработки поисковых запросов, связанных с одним или несколькими пользователями (например, пользователем 102). Сервер 108 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящей технологии, сервер 108 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 108 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем ее объем, сервер 108 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих ее объем, функциональность сервера 108 может быть разделена, и может выполняться с помощью нескольких серверов.
[60] Варианты осуществления сервера 108 широко известны среди специалистов в данной области техники. Тем не менее, вкратце: сервер 108 содержит интерфейс связи (не показан), который настроен и выполнен с возможностью устанавливать соединение с различными элементами (например, клиентским устройством 180 и другими устройствами, потенциально соединенными с сетью 106) через сеть 106.
[61] Как было упомянуто ранее, сервер 108 может реализовать сервис поисковой системы. В общем случае, сервис поисковой системы находится под контролем и/или управлением поставщика поисковой системы (не показан), такого, например, как оператор поисковой системы Yandex™. Таким образом, поисковая система сервера 108 может быть выполнена с возможностью производить один или несколько поисков в ответ на поисковые запросы, которые введены пользователем 102 и/или потенциальными пользователями сервиса поисковой системы. Сервис поисковой системы сервера 108 также выполнен с возможностью передавать клиентскому устройству 104 набор результатов поиска, который будет отображаться пользователю 102, связанный с поисковыми запросами, которые были введены пользователем 102.
[62] С сетью 106 передачи данных также соединены ресурсы 180 целевого содержимого. В общем случае, ресурсы 180 целевого содержимого управляются множеством поставщиков целевого содержимого, которые продвигают продукты и/или услуги. В другом примере, ресурсы 180 целевого содержимого могут предоставлять поисковой системе, которая расположена на сервере 108, данные целевого содержимого, которые включают в себя: (i) данные, связанные с множеством рекламных объявлений, продвигающих продукты и/или услуги, например, изображения, видео, текст или другие данные, (ii) поисковые фразы, связанные соответственно с каждым рекламным объявлением во множестве рекламных объявлений для установления соответствия рекламных объявлений с поисковыми запросами, введенными в сервис поисковой системы пользователем 102 и/или другими потенциальными пользователями сервиса поисковой системы и (iii) цены, предлагаемые соответствующим поставщиком целевого содержимого из множества поставщиков целевого содержимого, для отображения их рекламных объявлений пользователю 102 и/или другим потенциальным пользователям сервиса поисковой системы.
[63] Аналогично серверу 108, ресурсы 180 целевого содержимого могут быть реализованы как обычные компьютерные серверы. В примере варианта осуществления настоящего технического решения, ресурсы 180 целевого содержимого могут представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что ресурсы 180 целевого содержимого могут представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В других вариантах осуществления технического решения, ресурсы 180 целевого содержимого могут быть реализованы как веб-сайты, соответственно связанные со множеством поставщиков целевого содержимого и расположенные на соответствующей обычной серверной системе.
[64] В других вариантах осуществления технического решения, ресурсы 180 целевого содержимого могут предоставлять серверу 108 данные целевого содержимого для продвижения продуктов и/или услуг. Например, ресурсы 180 целевого содержимого могут передавать серверу 108 через сеть 106 первый пакет 194 данных. Первый пакет 194 данных может содержать данные целевого содержимого. В ответ на получение первого пакета 194 данных, сервер 108 может быть выполнен с возможностью сохранять данные целевого содержимого в базе 150 данных целевого содержимого.
[65] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может быть соединен и/или функционально соединен с базой 120 данных лексем, базой 130 данных синонимов, базой 140 данных поисковых запросов, базой 150 данных целевого содержимого, базой 160 данных обработки и индексной базой 170 данных. Несмотря на то, что база 120 данных лексем, база 130 данных синонимов, база 140 данных поисковых запросов, база 150 данных целевого содержимого, база 160 данных обработки и индексная база 170 данных схематично представлены в распределенном виде для простоты иллюстрации, считается, что некоторые или все из базы 120 данных лексем, базы 130 данных синонимов, базы 140 данных поисковых запросов, базы 150 данных целевого содержимого, базы 160 данных обработки и индексной базы 170 данных могут быть реализованы как единый элемент. Функциональности каждой из базы 120 данных лексем, базы 130 данных синонимов, базы 140 данных поисковых запросов, базы 150 данных целевого содержимого, базы 160 данных обработки и индексной базы 170 данных, а также данные и/или информация, которые на них хранятся, будут описаны далее.
[66] База 120 данных лексем может быть выполнена с возможностью хранить данные, связанные с лексемами и соответственно связанными словоизмененными парадигмами. В общем случае, из-за грамматических правил различных языков, данная лексема может быть связана с набором данных словоизмененных парадигм. Например, если данная лексема представляет собой "ride", то набор словоизмененных парадигм может включать в себя данные словоизмененные парадигмы: "riding", "ridden", "rode" и так далее. В другом примере, если данная лексема представляет собой "sing", то набор словоизмененных парадигм может включат в себя данные словоизмененные парадигмы: "singing", "sang", "sung" и так далее. База 120 данных лексем может включать в себя данные, относящиеся к тысячам лексем, и соответственно связанным словоизмененным парадигмам. Следует отметить, что для примера и для простоты понимания были использованы данные лексемы и соответственно связанные словоизмененные парадигмы английской грамматики, но лексемы и соответственно связанные словоизмененные парадигмы других грамматик (например, русской, французской, немецкой, испанской и так далее) также могут быть представлены в некоторых вариантах, не выходя на границы настоящего технического решения.
[67] В некоторых вариантах осуществления настоящего технического решения, база 130 данных синонимов может быть доступна серверу 108. База 130 данных синонимов может быть выполнена с возможностью хранить данные, связанные со словами и соответственно связанными синонимами. В общем случае, синоним представляет собой слово, обладающее тем же или схожим значением, что и другое слово. Например, в английском языке слова "happy" и "joyful" являются синонимами слова "elated". База 130 данных синонимов может включать в себя данные, относящиеся к большому числу синонимов, связанных соответствующими словами, для которых они являются синонимами. В другом варианте, база 130 данных синонимов может включать в себя данные, связанные со словами и их соответствующими синонимами в других языках, например, русском, французском, немецком, испанском и так далее.
[68] В некоторых вариантах осуществления технического решения, каждый синоним в базе 130 данных синонимов может быть связан с указанием популярности их в данном языке. Например, слова "buy", "purchase", "acquire" и "procure" могут быть включены в набор синонимов в базе 130 данных синонимов, и указание на популярность каждого синонима среди слов "buy", "purchase", "acquire" и "procure" может указывать на то, что слово "buy" является наиболее популярным синонимом и/или наиболее часто используемым синонимом и/или основным синонимом в английском языке, среди "buy", "purchase", "acquire" и "procure".
[69] В некоторых вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью использования информации из истории, собранной из большого числа предыдущих поисковых запросов, которые могут храниться в базе 140 данных поисковых запросов. База 140 данных поисковых запросов, показанная на Фиг. 1, может быть доступна серверу 108. База 140 данных поисковых запросов может быть выполнена с возможностью хранить данные, связанные с поисковыми запросами, которые были введены пользователем 102 и/или другими потенциальными пользователями сервиса поисковой системы в поисковую систему, размещенную на сервере 108. Следует отметить, что поисковые запросы, введенные в сервис поисковой системы, реализованный сервером 108, могут быть реализованы на других языках, отличных от английского.
[70] Способ сохранения данных, связанных с поисковыми запросами, а также способ их сбора и/или предоставления сервером 108/серверу 108 никак конкретно не ограничиваются, и только в качестве примера, данные, связанные с поисковыми запросами, которые хранятся в базе 140 данных поисковых запросов, могут быть получены сервером 108 через сеть 106 от клиентского устройства 104 и/или других потенциальных клиентских устройств, связанных с другими потенциальными пользователями сервиса поисковой системы, реализованного сервером 108.
[71] Как было упомянуто ранее, сервер 108 может сохранять данные целевого содержимого в базе 150 данных целевого содержимого. В некоторых вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью запрашивать и получать данные целевого содержимого от ресурсов 180 целевого содержимого. В других вариантах осуществления технического решения, ресурсы 180 целевого содержимого могут быть выполнены с возможностью передавать данные целевого содержимого серверу 108 без инициирования сервером 108 запроса. Сервер 108 может быть выполнен с возможностью получать первый пакет 194 данных, который включает в себя данные целевого содержимого, и сохранять данные целевого содержимого в базе 150 данных целевого содержимого.
[72] Например, данные целевого содержимого могут относиться к множеству рекламных объявлений, продвигающих продукты и/или услуги. Данное рекламное объявление из множества рекламных объявлений может быть связано с данной поисковой фразой для установления соответствия данного рекламного объявления и данного текущего поискового запроса, введенного в сервис поисковой системы, например, пользователем 102. Данное рекламное объявление может быть связано с данной ценой, предложенной данным поставщиком целевого содержимого, относящегося к данному рекламному объявлению, для отображения данного рекламного объявления пользователю 102 в ответ на соответствие между данных текущим поисковым запросом и данной поисковой фразой, связанной с данным рекламным объявлением.
[73] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может обладать доступом к базе 160 данных обработки. База 160 данных обработки может быть выполнена с возможностью сохранять различные типы данных. В общем случае, база 160 данных обработки может сохранять данные, связанные с обработкой поисковых запросов, поисковых фраз, лексем и синонимов сервером 108. Обработка поисковых запросов, поисковых фраз, лексем и синонимов сервером 108 будет описана далее и, следовательно, функциональности базы 160 данных обработки будут понятны специалистам в данной области техники.
[74] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может далее обладать доступом к индексной базе 170 данных. Индексная база 170 данных может включать в себя индексную структуру 706 (показано на Фиг. 8), которая показана в некоторых вариантах осуществления настоящего технического решения. Индексная структура 706 может быть описана и сохранена сервером 108 в индексной базе 170 данных на основе обработки поисковых запросов, поисковых фраз, лексем и синонимов. То, как именно сервер 108 может компилировать индексные структуры, будет подробнее описано далее.
[75] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может быть выполнен с возможностью обрабатывать поисковые запросы. Для этого сервер 108 может реализовать модуль 110 обработки и модуль 112 создания индекса. Модуль 110 обработки и модуль 112 создания индекса могут представлять собой устройство или множество модулей, выполненных с использованием аппаратного обеспечения, например, с помощью, например, интегральной схемы специального назначения (ASIC) или программируемой логической интегральной схемы (FPGA), или же комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора инструкций, реализующих функционал модуля, которые (при выполнении) трансформируют микропроцессорную систему в устройство специального назначения. Модуль 110 обработки и модуль 112 создания индекса также могут быть реализованы в виде комбинации обоих, причем некоторые конкретные функций реализуются за счет аппаратного обеспечения, а другие функции реализуются комбинацией аппаратного и программного обеспечения.
[76] В других вариантах осуществления технического решения, модуль 110 обработки и модуль 112 создания индекса могут также быть реализованы в программном обеспечении для выполнения различных типов процессоров. Любой из модуля 110 обработки и модуля 112 создания индекса может, например, включать в себя один или несколько физических или логических блоков компьютерных инструкций, которые могут, например, быть организованы как объект, процедура или функция. Тем не менее, исполняемые файлы данного модуля не обязательно должны быть расположены вместе, а могут состоять из разрозненных инструкций, хранящихся в различных местах, которые, в случае их логического соединения, представляют собой данный модуль и достигают целей, заявленных для данного модуля. Следует отметить, что в других вариантах осуществления настоящего технического решения, модуль 110 обработки и модуль 112 создания индекса могут быть реализованы сервером 108 как единый элемент.
[77] В дополнительных вариантах осуществления технического решения, модуль 110 обработки и модуль 112 создания индекса не обязаны быть реализованы одинаковыми способами. Например, модуль 110 обработки может быть реализован как программный модуль, а модуль 112 создания индекса может быть реализован как комбинация аппаратного и/или программного обеспечения или наоборот. Функциональности модуля 110 обработки и модуля 112 создания индекса будут более подробно описаны далее, и по меньшей мере некоторые их преимущества станут поняты специалистам в данной области техники.
[78] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может быть выполнен с возможностью получать множество поисковых запросов 300 (показано на Фиг. 3), введенных в поисковую систему, размещенную на сервере 108. Множество поисковых запросов 300 может включать в себя сотни или тысячи или даже миллионы поисковых запросов, которые были введены в поисковую систему. Например, модуль 110 обработки сервера 108 может получать множество поисковых запросов 300 из базы 140 данных поисковых запросов через путь 202 данных, показанный на Фиг. 2.
[79] Модуль 110 обработки может быть выполнен с возможностью подвергать синтаксическому анализу (парсингу) каждый поисковый запрос из множества поисковых запросов 300 для идентификации значимых слов, содержащихся в каждом поисковом запросе из множества поисковых запросов 300. В некоторых вариантах осуществления технического решения, все слова в данном поисковом запросе, за исключением предлогов, например, "a", "the", "with", "for" и тому подобного, могут быть значимыми словами данного поискового запроса. То, как именно значимые слова из каждого поискового запроса идентифицируются, будет понятно специалисту в данной области техники с учетом следующих примеров.
[80] На Фиг. 3 представлен первый поисковый запрос (SQ1), второй поисковый запрос (SQ2), третий поисковый запрос (SQ3), четвертый поисковый запрос (SQ4), пятый поисковый запрос (SQ5), шестой поисковый запрос (SQ6), седьмой поисковый запрос (SQ7), восьмой поисковый запрос (SQ8), девятый поисковый запрос (SQ9) и десятый поисковый запрос (SQ10) Важно иметь в виду, что многие другие поисковые запросы могут подвергаться парсингу модулем 110 обработки в других вариантах осуществления настоящего технического решения, и что поисковые запросы SQ1, SQ2, SQ3, SQ4, SQ5, SQ6, SQ7, SQ8, SQ9 и SQ10 представлены только для облегчения понимания.
[81] Например, модуль 110 обработки может подвергать парсингу поисковый запрос SQ1 для идентификации значимых слов: "buying", "car" и "Moscow". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ2 для идентификации значимых слов: "bought", "car" и "Moscow". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ3 для идентификации значимых слов: "buying", "vehicles" и "Moscow". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ4 для идентификации значимых слов: "purchasing", "automobiles" и "Moscow". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ5 для идентификации значимых слов: "purchased", "cars" и "Montreal". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ6 для идентификации значимых слов: "buying", "car" и "Montreal". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ7 для идентификации значимых слов: "purchasing" и "fridge". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ8 для идентификации значимых слов: "buying", "fridge" и "Paris". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ9 для идентификации значимых слов: "selling", "car" и "Berlin". Модуль 110 обработки может подвергать парсингу поисковый запрос SQ10 для идентификации значимых слов: "sold" и "car".
[82] В других вариантах осуществления технического решения, модуль 110 обработки может быть выполнен с возможностью получать набор лексем, связанных со значимыми словами, идентифицированными со множеством поисковых запросов 300. Например, набор лексем может быть получен из базы 120 данных лексем через путь 204 данных, показанный на Фиг. 2. В этом случае, набор лексем может включать в себя лексемы, связанные со значимыми словами (например, словоизмененными парадигмами): "buying", "car", "Moscow", "bought", "vehicles", "automobiles", "purchasing", "purchased", "cars", "Montreal", "fridge", "Paris", "selling", "Berlin" и "sold".
[83] Например, набор лексем может включать в себя лексему "buy", поскольку она связана со значимыми словами "buying" и "bought", которые представляют собой некоторые из словоизмненных парадигм лексемы "buy". Набор лексем может включать в себя лексему "car", поскольку она связана со значимыми словами "car" и "cars". Набор лексем может включать в себя лексему "Moscow", поскольку она связана со значимым словом "Moscow". Набор лексем может включать в себя лексему "vehicle", поскольку она связана со значимым словом "vehicles". Набор лексем может включать в себя лексему "automobile", поскольку она связана со значимым словом "automobiles". Набор лексем может включать в себя лексему "purchase", поскольку она связана со значимыми словами "purchasing" и "purchased". Набор лексем может включать в себя лексему "Montreal", поскольку она связана со значимым словом "Montreal". Набор лексем может включать в себя лексему "Paris", поскольку она связана со значимым словом "Paris". Набор лексем может включать в себя лексему "Berlin", поскольку она связана со значимым словом "Berlin". Набор лексем может включать в себя лексему "fridge", поскольку она связана со значимым словом "fridge". Набор лексем может включать в себя лексему "sell", поскольку она связана со значимыми словами "selling" и "sold".
[84] В других вариантах осуществления настоящего технического решения, модуль 110 обработки может быть выполнен с возможностью вычислять данные 206 нормализованного запроса на основе поисковых запросов из множества поисковых запросов 300 и лексем из набора лексем. Далее, модуль 110 обработки может быть выполнен с возможностью сохранять данные 206 нормализованного запроса в базе 160 данных обработки. Например, модуль 110 обработки может передавать данные 206 нормализованного запроса базе 160 данных обработки через путь 208 данных. Данные 206 нормализованного запроса будут далее описаны со ссылкой на Фиг. 4.
[85] На Фиг. 4 представлены данные 206 нормализованного запроса, которые включают в себя: множество поисковых запросов 300, связи 404 нормализации, нормализованные счетчики 402 частот и набор нормализованных запросов 400. Модуль 110 обработки может создавать набор нормализованных запросов 400, который включает в себя первый нормализованный запрос (NQ1), второй нормализованный запрос (NQ2), третий нормализованный запрос (NQ4), четвертый нормализованный запрос (NQ5), шестой нормализованный запрос (NQ6), седьмой нормализованный запрос (NQ7), восьмой нормализованный запрос (NQ8) и девятый нормализованный запрос (NQ9).
[86] В общем случае, вычисление набора нормализованных запросов 400 модулем 110 обработки может включать в себя, для каждого поискового запроса из множества поисковых запросов, (i) определение соответствующей лексемы для каждого значимого слова в данном поисковом запросе и (ii) создание данного нормализованного запроса, связанного с данным поисковым запросом, причем данный нормализованный запрос включает в себя соответствующие лексемы каждого значимого слова в данном поисковом запросе.
[87] Например, модуль 110 обработки может создавать NQ1 на основе SQ1 и лексем в наборе лексем. Поскольку SQ1 представляет собой "buying a car in Moscow", модуль 110 обработки идентифицирует в SQ1 с помощью парсинга, значимые слова "buying", "car" и "Moscow". В результате, модуль 110 обработки может создавать NQ1 с помощью амальгамирования соответствующих лексем значимых слов, идентифицированных в SQL Следовательно, модуль 110 обработки может создавать NQ1 в виде: "buy" "car" "Moscow". В другом примере, модуль 110 обработки может создавать NQ1 на основе SQ2 и лексем в наборе лексем. Поскольку SQ2 представляет собой "bought a car in Moscow", модуль 110 обработки идентифицирует в SQ2 с помощью парсинга, значимые слова "bought", "car" и "Moscow". В результате, модуль 110 обработки может создавать NQ1 с помощью амальгамирования соответствующих лексем значимых слов, идентифицированных в SQ2. Следовательно, модуль 110 обработки может создавать NQ1 в виде: "buy" "car" "Moscow".
[88] В некоторых вариантах осуществления технического решения, данный нормализованный запрос может быть связан с данным нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов 300, которые связаны с данным нормализованным запросом. Следовательно, модуль 110 обработки может связывать NQ1 с нормализованным счетчиком частоты «2», поскольку NQ1 может быть связан с двумя отдельными поисковыми запросами, например, SQ1 и SQ2. Связь NQ1 с SQ1 и SQ2 соответственно показана на Фиг. 4 среди других нормализованных связей 404.
[89] В другом примере, модуль 110 обработки может создавать NQ2 на основе SQ3 и лексем в наборе лексем. Поскольку SQ3 представляет собой "buying vehicles in Moscow", модуль 110 обработки идентифицирует в SQ3 с помощью парсинга, значимые слова "buying", "vehicles" и "Moscow". В результате, модуль 110 обработки может создавать NQ1 с помощью амальгамирования соответствующих лексем значимых слов, идентифицированных в SQ3. Следовательно, модуль 110 обработки может создавать NQ2 в виде: "buy" "vehicle" "Moscow".
[90] Модуль 110 обработки может связывать NQ2 с нормализованным счетчиком частоты «1», поскольку NQ2 может быть связан только с одним поисковым запросом из множества поисковых запросов 300, например, SQ3. Связь NQ2 с SQ2 соответственно показана на Фиг. 4 среди других нормализованных связей 404.
[91] Далее, модуль 110 обработки может создавать NQ3, NQ4, NQ5, NQ6, NQ7, NQ8 и NQ9 аналогично тому, как модуль 110 обработки создает NQ2.
[92] В некоторых вариантах осуществления настоящего технического решения, со ссылкой на Фиг. 5, модуль 110 обработки может быть выполнен с возможностью вычислять данные 506 обобщенного запроса. С этой целью, модуль 110 обработки может получать данные 206 нормализованного запроса из базы 160 данных обработки через путь 502 данных и набор синонимов из базы 130 данных синонимов через путь 504 данных. Как было ранее упомянуто, данные 206 нормализованного запроса могут включать в себя, среди прочего, данные, связанные с набором лексем и набором нормализованных запросов 400. В результате, модуль 110 обработки может получать из базы 130 данных синонимов набор синонимов, включающий в себя соответствующие синонимы каждой лексемы из набора лексем. Модуль 110 обработки может быть выполнен с возможностью сохранять данные 506 нормализованного запроса в базе 160 данных обработки. Например, модуль 110 обработки может передавать данные 506 обобщенного запроса базе 160 данных обработки через путь 508 данных. Данные 506 обобщенного запроса будут далее описаны со ссылкой на Фиг. 6.
[93] На Фиг. 6 представлены данные 506 обобщенного запроса, которые включают в себя: набор нормализованных запросов 400, нормализованные счетчики 602 частот, обобщенные связи 604, обобщенные счетчики 602 частот и набор обобщенных запросов 600. Модуль 110 обработки может выполнять набор обобщенных запросов 600, включая первый обобщенный запрос (GQ1), второй обобщенный запрос (GQ2), третий обобщенный запрос (GQ3), четвертый обобщенный запрос (GQ4), пятый обобщенный запрос (GQ5) и шестой обобщенный запрос (GQ6).
[94] В общем случае, вычисление набора обобщенных запросов 600 модулем 110 обработки может включать в себя, для каждого данного нормализованного запроса из набора нормализованных запросов 400, (i) определение соответствующего основного синонима для каждой лексемы в данном поисковом запросе и (ii) создание данного обобщенного запроса, связанного с данным нормализованным запросом, причем данный обобщенный запрос включает в себя соответствующие основные синонимы каждой лексемы в данном нормализованном запросе.
[95] Например, модуль 110 обработки может создавать GQ1 на основе NQ1 и синонимов из набора синонимов. Поскольку NQ1 представляет собой "buy" "car" "Moscow", модуль 110 обработки может создавать GQ1 путем амальгамирования соответствующих основных синонимов каждой лексемы в NQ1. Например, основной синоним лексемы "buy" может представлять собой "buy", поскольку среди синонимов слова "buy", "buy" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "car" может представлять собой "car", поскольку среди синонимов слова "car", "car" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "Moscow" может представлять собой "Moscow", поскольку среди синонимов слова "Moscow", "Moscow" может быть наиболее часто используемым синонимом. Модуль 110 обработки может определять основной синоним для данной лексемы на основе соответствующего указания на популярность каждого синонима в базе 130 данных синонимов. Следовательно, модуль 110 обработки может создавать GQ1 в виде: "buy" "car" "Moscow".
[96] Далее, модуль 110 обработки может создавать GQ1 на основе NQ2 и синонимов из набора синонимов. Поскольку NQ2 представляет собой "buy" "vehicle" "Moscow", модуль 110 обработки может создавать GQ1 путем амальгамирования соответствующих основных синонимов каждой лексемы в NQ2. В одном примере, основной синоним лексемы "vehicle" может представлять собой "car", поскольку среди синонимов слова "vehicle", "car" может быть наиболее часто используемым синонимом. Следовательно, модуль 110 обработки может создавать GQ1 в виде: "buy" "car" "Moscow".
[97] Кроме того, модуль 110 обработки может создавать GQ1 на основе NQ3 и синонимов из набора синонимов. Поскольку NQ3 представляет собой "purchase" "automobile" "Moscow", модуль 110 обработки может создавать GQ1 путем амальгамирования соответствующих основных синонимов каждой лексемы в NQ3. Например, основной синоним лексемы "purchase" может представлять собой "buy", поскольку среди синонимов слова "purchase", "buy" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "automobile" может представлять собой "car", поскольку среди синонимов слова "automobile", "car" может быть наиболее часто используемым синонимом. Следовательно, модуль 110 обработки может создавать GQ1 в виде: "buy" "car" "Moscow".
[98] В некоторых вариантах осуществления технического решения, данный обобщенный запрос может быть связан с данным обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов 400, которые связаны с данным обобщенным запросом. Следовательно, модуль 110 обработки может связывать GQ1 с обобщенным счетчиком частоты «3», поскольку GQ1 может быть связан с тремя отдельными нормализованными запросами из набора нормализованных запросов 400, такими как NQ1, NQ2 и NQ3. Связи 610, 620 и 630 запроса GQ1 соответственно с NQ1, NQ2 и NQ3 представлены на Фиг. 6 среди обобщающих связей 604.
[99] В дополнительном примере, модуль 110 обработки может создавать GQ2 на основе NQ4 и синонимов из набора синонимов. Поскольку NQ4 представляет собой "purchase" "car" "Montreal", модуль 110 обработки может создавать GQ2 путем амальгамирования соответствующих основных синонимов каждой лексемы в NQ4. Например, основной синоним лексемы "purchase" может представлять собой "buy", поскольку среди синонимов слова "purchase", "buy" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "car" может представлять собой "car", поскольку среди синонимов слова "car", "car" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "Montreal" может представлять собой "Montreal", поскольку среди синонимов слова "Montreal", "Montreal" может быть наиболее часто используемым синонимом. Следовательно, модуль 110 обработки может создавать GQ1 в виде: "buy" "car" "Montreal". Аналогично, модуль 110 обработки может создавать GQ2 на основе NQ5 и синонимов из набора синонимов.
[100] Следовательно, модуль 110 обработки может связывать GQ2 с обобщенным счетчиком частоты «2», поскольку GQ2 может быть связан с двумя отдельными нормализованными запросами из множества нормализованных запросов 400, например, NQ4 и NQ5. Связи 610, 640 и 650 запроса GQ2 соответственно с NQ4 и NQ5 представлены на Фиг. 6 среди обобщающих связей 604.
[101] Далее, модуль 110 обработки может создавать GQ3, GQ4, GQ5 и GQ6 аналогично тому, как модуль 110 обработки создает GQ1 и/или GQ2. Связь 660 GQ3 с NQ6, связь 670 GQ4 с NQ7, связь 680 GQ5 с NQ8 и связь 690 GQ6 с NQ9 представлены на Фиг. 6 среди обобщающих связей 604.
[102] В некоторых вариантах осуществления настоящего технического решения, со ссылкой на Фиг. 7, сервер 108 может быть выполнен с возможностью компилировать индексную структуру 706. С этой целью, модуль 112 создания индекса может получать данные 506 обобщенного запроса из базы 160 данных обработки через путь 702 данных. Как было упомянуто ранее, данные 506 обобщенного запроса могут включать в себя набор нормализованных запросов 400, нормализованные счетчики 402 частот, обобщенные связи 604, обобщенные счетчики 602 частот и набор обобщенных запросов 600. Модуль 112 создания индекса может также быть выполнен с возможностью сохранять индексную структуру 706 в индексной базе 170 данных. Например, модуль 112 создания индекса может передавать индексную структуру 706 индексной базе 170 данных через путь 708 данных. Индексная структура 706 будет далее описано со ссылкой на Фиг. 8.
[103] На Фиг. 8 представлена индексная структура 706, которая включает в себя, среди прочего, набор логических деревьев 808. Модуль 112 создания индекса может включать в себя первое логическое дерево 802, второе логическое дерево 804 и другое логическое дерево 806, причем каждое логическое дерево из набора логических деревьев 808 может представлять собой по меньшей мере один обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом. Следует отметить, что в других вариантах осуществления технического решения, индексная структура 706 может включать в себя другие структуры, отличные от логических деревьев, представленных на Фиг. 8. Другими словами, индексная структура 706 может представлять собой любую другую индексную структуру, не выходя за границы настоящего технического решения.
[104] В общем случае, модуль 112 создания индекса компилирует индексную структуру 706 и может включать в себя вычисление набора логических деревьев 808 для индексирования набора обобщенных запросов 600, связанных с набором нормализованных запросов 400. Как было упомянуто выше, каждое логическое дерево в наборе логических деревьев 808 может представлять собой по меньшей мере один обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом.
[105] В некоторых вариантах осуществления технического решения, модуль 112 создания индекса может вычислять первое логическое дерево 802 на основе по меньшей мере одного обобщенного запроса (т.е., в этом случае по меньшей мере один обобщенный запрос представляет собой GQ1, GQ2, GQ3 и GQ4), связанного по меньшей мере с одним соответствующим нормализованным запросом (т.е. в этом случае по меньшей мере один соответствующий нормализованный запрос представляет собой NQ1, NQ2, NQ3, NQ4, NQ5, NQ6 и NQ7).
[106] Вычисление первого логического дерева 802 модулем 112 создания индекса будет более подробно описано далее. Модуль 112 создания индекса может вычислять первое логическое дерево 802 путем определения родительского узла 822 первого логического дерева 802, дочерних узлов 824 первого уровня первого логического дерева 802 и дочерних узлов 826 второго уровня первого логического дерева 802.
[107] Например, модуль 112 создания индекса может идентифицировать слово "buy" как родительский узел 822 первого логического дерева 802, поскольку по меньшей мере один обобщенный запрос в наборе обобщенных запросов 600 (т.е. в данном случае по меньшей мере один обобщенный запрос представляет собой GQ1, GQ2, GQ3 и GQ4) начинается с основного синонима "buy".
[108] Далее, модуль 112 создания индекса может идентифицировать "car" и "refrigerator" как дочерние узлы 824 первого уровня первого логического дерева 802, поскольку GQ1, GQ2, GQ3 и GQ4 включают в себя либо основной синоним "car" или "refrigerator" после основного синонима "buy". Другими словами, модуль 112 создания индекса может идентифицировать "car" как один из дочерних узлов 824 первого уровня, поскольку GQ1 и GQ2 содержат основной синоним "car" после основного синонима "buy". Также, модуль 112 создания индекса может идентифицировать "refrigerator" как один из дочерних узлов 824 первого уровня, поскольку GQ3 и GQ4 содержат основной синоним "refrigerator" после основного синонима "buy".
[109] В этом случае, слово "car", которое является одним из дочерних узлов 824 первого уровня, может не быть связано с каким-либо обобщенным запросом среди набора обобщенных запросов 600, поскольку набор обобщенных запросов 600 не включает в себя данный обобщенный запрос, представляющий собой: "buy" "car". С другой стороны, слово "refrigerator", которое является одним из дочерних узлов 824 первого уровня, может быть связано с запросом GQ3, поскольку GQ3 представляет собой: "buy" "refrigerator". Следовательно, GQ3 может быть связан со словом "refrigerator", которое является одним из дочерних узлов 824 первого уровня. С учетом того, что GQ3 связан с NQ6 через связь 660 среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ3 со словом "refrigerator", которое является одним из дочерних узлов 824 первого уровня первого логического дерева 802. Следует отметить, что GQ3 может быть связан только с одним узлом в индексной структуре 706.
[110] Далее, модуль 112 создания индекса может идентифицировать "Moscow" и "Montreal" как два дочерних узла 826 второго уровня первого логического дерева 802, поскольку GQ1 и GQ2 включают в себя либо основной синоним "Moscow" или "Montreal" после основных синонимов "buy" и "car". Другими словами, модуль 112 создания индекса может идентифицировать "Moscow" как один из дочерних узлов 826 второго уровня, поскольку GQ1 содержит основной синоним "Moscow" после основных синонимов "buy" и "car". Также, модуль 112 создания индекса может идентифицировать "Montreal" как один из дочерних узлов 826 второго уровня, поскольку GQ2 содержит основной синоним "Montreal" после основных синонимов "buy" и "car". Кроме того, модуль 112 создания индекса может идентифицировать "Paris" как один из дочерних узлов 826 второго уровня первого логического дерева 802, поскольку GQ4 содержит основной синоним "Paris" после основных синонимов "buy" и "refrigerator".
[111] В этом случае, слово "Moscow", которое является одним из дочерних узлов 826 второго уровня, может быть связано с запросом GQ1, поскольку GQ1 представляет собой: "buy" "car" "Moscow". Следовательно, GQ1 может быть связан со словом "Moscow", которое является одним из дочерних узлов 826 второго уровня. С учетом того, что GQ1 связан с NQ1, NQ2 и NQ3 через связь 610, связь 620 и связь 630 соответственно среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ1, NQ2 и NQ3 со словом "Moscow", которое является одним из дочерних узлов 826 второго уровня первого логического дерева 802. Следует отметить, что GQ1 может быть связан только с одним узлом в индексной структуре 706.
[112] В этом случае, слово "Montreal", которое является одним из дочерних узлов 826 второго уровня, может быть связано с запросом GQ2, поскольку GQ2 представляет собой: "buy" "car" "Montreal". Следовательно, GQ2 может быть связан со словом "Montreal", которое является одним из дочерних узлов 826 второго уровня. С учетом того, что GQ2 связан с NQ4 и NQ5 через связь 640 и связь 650 соответственно среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ4 и NQ5 со словом "Montreal", которое является одним из дочерних узлов 826 второго уровня первого логического дерева 802. Следует отметить, что GQ2 может быть связан только с одним узлом в индексной структуре 706.
[113] В этом случае, слово "Paris", которое является одним из дочерних узлов 826 второго уровня, может быть связано с запросом GQ4, поскольку GQ4 представляет собой: "buy" "refrigerator" "Paris". Следовательно, GQ4 может быть связан со словом "Paris", которое является одним из дочерних узлов 826 второго уровня. С учетом того, что GQ4 связан с NQ7 через связь 670 среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ7 со словом "Paris", которое является одним из дочерних узлов 826 второго уровня первого логического дерева 802. Следует отметить, что GQ4 может быть связан только с одним узлом в индексной структуре 706.
[114] В некоторых вариантах осуществления технического решения, модуль 112 создания индекса может вычислять второе логическое дерево 804 на основе по меньшей мере одного обобщенного запроса (т.е., в этом случае по меньшей мере один обобщенный запрос представляет собой GQ5 и GQ6), связанного по меньшей мере с одним соответствующим нормализованным запросом (т.е., в этом случае по меньшей мере один соответствующий нормализованный запрос представляет собой NQ8 и NQ9).
[115] Вычисление второго логического дерева 804 модулем 112 создания индекса будет более подробно описано далее. Модуль 112 создания индекса может вычислять второе логическое дерево 804 путем определения родительского узла 842 второго логического дерева 804, дочернего узла 844 первого уровня второго логического дерева 804 и дочернего узла 846 второго уровня второго логического дерева 804.
[116] Например, модуль 112 создания индекса может идентифицировать слово "sell" как родительский узел 842 второго логического дерева 804, поскольку по меньшей мере один обобщенный запрос в наборе обобщенных запросов 600 (т.е. в данном случае по меньшей мере один обобщенный запрос представляет собой GQ5 и GQ6) начинается с основного синонима "sell".
[117] Далее, модуль 112 создания индекса может идентифицировать "car" как дочерний узел 844 первого уровня второго логического дерева 804, поскольку GQ1 и GQ4 включают в себя основной синоним "car" после основного синонима "sell". Модуль 112 создания индекса может идентифицировать "car" как дочерний узел 844 первого уровня второго логического дерева 804 как единственный дочерний узел первого уровня второго логического дерева 804, поскольку, в данном случае, ни один из обобщенных запросов из набора обобщенных запросов 600 не включает в себя другой основной синоним (т.е. отличный от "car") после основного синонима "sell".
[118] В этом случае, слово "car", которое является дочерним узлом 844 первого уровня, может быть связано с запросом GQ6, поскольку GQ6 представляет собой: "sell" "car". Следовательно, GQ6 может быть связан со словом "car", которое является дочерним узлом 844 первого уровня. С учетом того, что GQ6 связан с NQ9 через связь 690 среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ9 со словом "car", которое является дочерним узлом 844 первого уровня второго логического дерева 804. Следует отметить, что GQ6 может быть связан только с одним узлом в индексной структуре 706.
[119] Кроме того, модуль 112 создания индекса может идентифицировать "Berlin" как дочерний узел 846 второго уровня второго логического дерева 804, поскольку GQ5 содержит основной синоним "Berlin" после основных синонимов "sell" и "car". Модуль 112 создания индекса может идентифицировать "Berlin" как дочерний узел 846 второго уровня второго логического дерева 804 как единственный дочерний узел второго уровня второго логического дерева 804, поскольку, в данном случае, ни один из обобщенных запросов из набора обобщенных запросов 600 не включает в себя другой основной синоним (т.е. отличный от "Berlin") после основных синонимов "sell" и "car".
[120] В этом случае, слово "Berlin", которое является дочерним узлом 846 второго уровня, может быть связано с запросом GQ5, поскольку GQ5 представляет собой: "sell" "car" "Berlin". Следовательно, GQ5 может быть связан со словом "Berlin", которое является дочерним узлом 846 второго уровня. С учетом того, что GQ5 связан с NQ8 через связь 680 среди обобщающих связей 604; модуль 112 создания индекса может связывать NQ8 со словом "Berlin", которое является дочерним узлом 846 второго уровня второго логического дерева 804. Следует отметить, что GQ5 может быть связан только с одним узлом в индексной структуре 706.
[121] В некоторых вариантах осуществления технического решения, модуль 112 создания индекса может вычислять другое логическое дерево 806 на основе по меньшей мере одного обобщенного запроса, связанного по меньшей мере с одним соответствующим нормализованным запросом. Как было упомянуто ранее, множество поисковых запросов 300 может включать в себя многие другие поисковые запросы, как показано на Фиг. 3, отличающиеся от SQ1, SQ2, SQ3, SQ4, SQ5, SQ6, SQ7, SQ8, SQ9 и SQ10, которые упрощены в некоторых вариантах осуществления настоящего технического решения. Это означает, что набор нормализованных запросов 400 может включать в себя многие другие нормализованные запросы, как показано на Фиг. 4, отличающиеся от NQ1, NQ2, NQ3, NQ4, NQ5, NQ6, NQ7, NQ8 и NQ9, которые упрощены в некоторых вариантах осуществления настоящего технического решения. Это также означает, что набор обобщенных запросов 600 может включать в себя многие другие обобщенные запросы, как показано на Фиг. 6, отличающиеся от GQ1, GQ2, GQ3, GQ4, GQ5 и GQ6, которые упрощены в некоторых вариантах осуществления настоящего технического решения. Следовательно, модуль 112 создания индекса может вычислять другое логическое дерево 806, являющееся по меньшей мере одним другим логически деревом, на основе по меньшей мере одного обобщенного запроса, связанного по меньшей мере с одним соответствующим нормализованным запросом.
[122] Следует отметить, что в некоторых вариантах осуществления технического решения, родительский узел 822 первого логического дерева 802 и родительский узел 842 второго логического дерева 804 могут быть связаны по меньшей мере с одним обобщенным запросом. В общем случае, данный родительский узел данного логического дерева из набора логических деревьев 808 может быть связан с данным обобщенным запросом и по меньшей мере одним соответственно связанным данным нормализованным запросом.
[123] Например, если набор обобщенных запросов 600 содержит другой обобщенный запрос, который представляет собой слово "buy", родительский узел 822 первого логического дерева 802 может быть связан с другим обобщенным запросом. Поскольку другой обобщенный запрос будет связан по меньшей мере с одним другим нормализованным запросом, по меньшей мере один другой нормализованный запрос может быть связан с родительским узлом 822 первого логического дерева 802. Аналогично, если набор обобщенных запросов 600 содержит дополнительный обобщенный запрос, который представляет собой слово "sell", родительский узел 842 второго логического дерева 804 может быть связан с дополнительным обобщенным запросом. Поскольку дополнительный обобщенный запрос будет связан по меньшей мере с одним другим нормализованным запросом, по меньшей мере один дополнительный нормализованный запрос может быть связан с родительским узлом 842 первого логического дерева 804.
[124] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может быть выполнен с возможностью обрабатывать поисковые фразы, хранящиеся в базе 150 данных целевого содержимого. Для обработки поисковых фраз, введенных в сервис поисковой системы, размещенный на сервере 108, сервер 108 может использовать индексную структуру 706, хранящуюся в индексной базе 170 данных.
[125] Например, сервер 108 может быть выполнен с возможностью получать поисковую фразу среди поисковых фраз из базы 150 данных целевого содержимого. Как было упомянуто ранее, поисковая фраза может быть связана с рекламным объявлением из множества рекламных объявлений, полученных сервером 108 с помощью первого пакета 194 данных для установления совпадения рекламного объявления с текущими поисковыми запросами, введенными в поисковую систему пользователем 102 и/или другими потенциальными пользователями сервиса поисковой системы.
[126] Сервер 108 может быть выполнен с возможностью обрабатывать поисковые фразы, полученные из базы 150 данных целевого содержимого. В общем случае, обработка поисковой фразы сервером 108 может включать в себя: (i) вычисление нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем; (ii) вычисление обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов и (iii) связывание по меньшей мере одного нормализованного запроса из набора нормализованных запросов 400 с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры 706. Подобная обработка поисковой фразы сервером 108 позволяет улучшить установление соответствия между поисковой фразой и текущими поисковыми запросами. Другими словами, улучшенное установление соответствия может снизить время отклика сервера 108 для предоставления данного рекламного объявления пользователю 102 и/или другим потенциальным пользователям в ответ на совпадение между данной поисковой фразой, связанной с данным рекламным объявлением, и данным текущим поисковым запросом, введенным пользователем 102 и/или другими потенциальными пользователями. В других вариантах осуществления технического решения, подобная обработка поисковой фразы может выполняться в оффлайн режиме, что может снизить необходимую пропускную способность нагрузки на сеть 106. Далее, обработка поисковой фразы и поисковых запросов может требовать меньшей вычислительных ресурсов, чем способы, существующие в известном уровне техники, поскольку разрешается проблема комбинаторного взрыва при обработке длинных поисковых запросов и/или поисковых фраз.
[127] Как было ранее упомянуто, обработка поисковой фразы сервером 108 может включать в себя вычисление нормализованной поисковой фразы на основе поисковой фразы и лексемы из набора лексем. Для целей облегчения понимания, предполагается, что поисковая фраза представляет собой "procuring a car in Moscow". Следует отметить, что множество возможных поисковых фраз может быть рассмотрено в других вариантах осуществления технического решения, не выходя за границы настоящей технологии.
[128] Аналогично тому, что модуль 110 обработки вычисляет данный нормализованный запрос на основе данного поискового запроса, модуль 110 обработки сервера 108 может вычислять нормализованную поисковую фразу на основе поисковой фразы и лексем из набора лексем.
[129] Например, модуль 110 обработки может создавать нормализованную поисковую фразу на основе поисковой фразы и лексем в наборе лексем. Модуль 110 обработки может идентифицировать в поисковой фразе, с помощью парсинга, значимые слова "procuring", "car" и "Moscow". В результате, модуль 110 обработки может создавать нормализованную поисковую фразу с помощью амальгамирования соответствующих лексем значимых слов (т.е. словоизмененных парадигм), идентифицированных в поисковой фразе. Следовательно, модуль 110 обработки может создавать нормализованную поисковую фразу в виде: "procure" "car" "Moscow". В некоторых вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью сохранять поисковую фразу, нормализованную поисковую фразу и нормализованную связь между поисковой фразой и нормализованной поисковой фразой в базе 160 данных обработки.
[130] Аналогично тому, что модуль 110 обработки вычисляет данный обобщенный запрос на основе данного нормализованного запроса, модуль 110 обработки сервера 108 может вычислять обобщенную поисковую фразу на основе нормализованной поисковой фразы и синонимов из набора синонимов.
[131] Например, модуль 110 обработки может создавать обобщенную поисковую фразу на основе нормализованной поисковой фразы и синонимов из набора синонимов. Поскольку нормализованная поисковая фраза представляет собой "procure" "car" "Moscow", модуль 110 обработки может создавать обобщенную поисковую фразу путем амальгамирования соответствующих основных синонимов каждой лексемы в нормализованной поисковой фразе. Основной синоним лексемы "procure" может представлять собой "buy", поскольку среди синонимов слова "procure", "buy" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "car" может представлять собой "car", поскольку среди синонимов слова "car", "car" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "Moscow" может представлять собой "Moscow", поскольку среди синонимов слова "Moscow", "Moscow" может быть наиболее часто используемым синонимом. Следовательно, модуль 110 обработки может создавать обобщенную поисковую фразу в виде: "buy" "car" "Moscow". В некоторых вариантах осуществления технического решения, сервер 108 может далее быть выполнен с возможностью сохранять обобщенную поисковую фразу и обобщенную связь между нормализованной поисковой фразой и обобщенной поисковой фразой в базе 160 данных обработки.
[132] Далее, сервер 108 может быть выполнен с возможностью связывать по меньшей мере один нормализованный запрос из набора нормализованных запросов в индексной структуре 706 с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры 706.
[133] Например, сервер 108 может получать доступ к индексной структуре 706 в индексной базе 170 данных. Далее, сервер 108 может получать доступ к первому логическому дереву 802, поскольку обобщенная поисковая фраза начинается со слова "buy", и родительский узел 822 первого логического дерева 802 также представляет собой слово "buy". Далее, сервер 108 может получать доступ к дочернему узлу 824 первого уровня, который представляет собой "car", и далее получать доступ к дочернему узлу 826 второго уровня, который представляет собой "Moscow", поскольку обобщенная поисковая фраза включает в себя "car" и "Moscow" после слова "buy". Другими словами, сервер 108 может получать доступ к дочернему узлу 826 второго уровня, который представляет собой "Moscow", поскольку обобщенная поисковая фраза соответствует GQ1. Следовательно, сервер 108 может связывать по меньшей мере один нормализованный запрос, представляющий собой NQ1, NQ2 и NQ3, с поисковой фразой и нормализованной поисковой фразой.
[134] В ответ на связь между NQ1, NQ2 и NQ3 с поисковой фразой, сервер 108 может связывать NQ1, NQ2 и NQ3 и нормализованную поисковую фразу с рекламным объявлением, связанным с поисковой фразой. В некоторых вариантах осуществления технического решения, сервер 108 может сохранять NQ1, NQ2 и NQ3 и нормализованную поисковую фразу в базе 150 данных целевого содержимого, и их соответствующие связи с рекламным объявлением, связанным с поисковой фразой. Другими словами, рекламное объявление может быть соответственно связано с поисковой фразой, NQ1, NQ2, NQ3 и нормализованной поисковой фразой.
[135] В дополнительных вариантах осуществления технического решения, сервер 108 может сохранять GQ1 в базе 150 данных целевого содержимого, и их связь с рекламным объявлением, связанным с поисковой фразой. Другими словами, рекламное объявление может быть связано с поисковой фразой, NQ1, NQ2, NQ3, нормализованной поисковой фразой и GQ1 (т.е. в этом случае, GQ1 соответствует обобщенной поисковой фразе).
[136] В других вариантах осуществления технического решения, поскольку в данном случае по меньшей мере один нормализованный запрос (NQ1, NQ2 и NQ3) отличается от нормализованной поисковой фразы, сервер 108 может дополнительно связывать нормализованную поисковую фразу "procure" "car" "Moscow" с GQ1 (который связан с дочерним узлом 826 второго уровня, представляющим собой "Moscow") в первом логическом дереве 802 индексной структуры 706.
[137] В некоторых вариантах осуществления настоящего технического решения, пользователь 102 может желать ввести текущий поисковый запрос "buying vehicle in Moscow". С этой целью, пользователь 102 может взаимодействовать с клиентским устройством 104 таким образом, что клиентское устройство 104 выполняет браузерное приложение. Кроме того, пользователь 102 может получать доступ к веб-сайту через браузерное приложение, связанное с сервисом поисковой системы, которую выполняет сервер 108. Пользователь 102 может вводить текущий поисковый запрос "buying vehicle in Moscow" в сервис поисковой системы. С этой целью, клиентское устройство 104 может создавать второй пакет 192 данных, который содержит данные, представляющие текущий поисковый запрос, и может передавать второй пакет 192 данных через сеть 106 серверу 108.
[138] В ответ на ввод текущего поискового запроса (т.е. получение второго пакета 192 данных сервером 108), сервер 108 может создавать текущую страницу результатов поиска (SERP) на основе данных, представляющих текущий поисковый запрос. Текущая страница результатов поиска может включать в себя текущее рекламное объявление, которое предназначено пользователю 102 на основе текущего поискового запроса. Далее, сервер 108 может создавать третий пакет 196 данных, который содержит данные, представляющие текущую SERP, и может передавать третий пакет 196 данных клиентскому устройству 104. В ответ на получение третьего пакета 196 данных, клиентское устройство 104 может отображать через браузерное приложение текущую SERP пользователю 102. То, как именно выбирается текущее рекламное объявление сервером 108, чтобы представить клиентскому устройству 104 на SERP, будет описано далее.
[139] В некоторых вариантах осуществления настоящего технического решения, модуль 110 обработки может создавать нормализованный поисковый запрос на основе текущего поискового запроса и лексем из набора лексем. Модуль 110 обработки может идентифицировать в текущем поисковом запросе, с помощью парсинга, значимые слова "buying", "vehicle" и "Moscow". В результате, модуль 110 обработки может создавать нормализованный текущий поисковый запроса с помощью амальгамирования соответствующих лексем значимых слов, идентифицированных в текущем поисковом запросе. Следовательно, модуль 110 обработки может создавать нормализованный текущий поисковый запрос в виде: "buy" "vehicle" "Moscow". В некоторых вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью сохранять текущий поисковый запрос, нормализованный текущий поисковый запрос и нормализованную связь между текущим поисковым запросом и нормализованным текущим поисковым запросом в базе 160 данных обработки.
[140] В других вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью получать доступ к базе 150 данных целевого содержимого. В результате, сервер 108 может быть выполнен с возможностью устанавливать соответствие нормализованного текущего поискового запроса по меньшей мере с одной нормализованной поисковой фразой и/или по меньшей мере одним нормализованным запросом. В данном случае, сервер 108 может определять, что нормализованный текущий поисковый запрос соответствует NQ2, который связан с рекламным объявлением, связанным с поисковой фразой "procuring a car in Moscow". Несмотря на то, что поисковая фраза "procuring a car in Moscow", предоставляемая ресурсами 180 целевого содержимого в связи с рекламным объявлением, не совпадает с текущим поисковым запросом, сервер 108 может выбирать рекламное объявление как текущее рекламное объявление, которое будет представлено на текущей странице результатов поиска пользователю 102, поскольку нормализованный текущий поисковый запрос соответствует NQ2, который связан с рекламным объявлением. Далее, несмотря на то что нормализованная поисковая фраза "procure" "car" "Moscow", связанная с рекламным объявлением, не совпадает с нормализованным текущим поисковым запросом, сервер 108 может выбирать рекламное объявление как текущее рекламное объявление, которое будет представлено на текущей странице результатов поиска пользователю 102, поскольку нормализованный текущий поисковый запрос соответствует NQ2, который связан с рекламным объявлением.
[141] В другом примере, пользователь 102 может ввести текущий поисковый запрос "acquiring a vehicle in Moscow". Модуль 110 обработки может создавать нормализованный поисковый запрос на основе текущего поискового запроса и лексем из набора лексем. В этом случае, модуль 110 обработки может идентифицировать в текущем поисковом запросе, с помощью парсинга, значимые слова "acquiring", "vehicle" и "Moscow". В результате, модуль 110 обработки может создавать нормализованный текущий поисковый запроса с помощью амальгамирования соответствующих лексем значимых слов, идентифицированных в текущем поисковом запросе. Следовательно, в данном случае, модуль 110 обработки может создавать нормализованный текущий поисковый запрос в виде: "acquire" "vehicle" "Moscow".
[142] В других вариантах осуществления технического решения, сервер 108 может быть выполнен с возможностью получать доступ к базе 150 данных целевого содержимого. Сервер 108 может быть выполнен с возможностью устанавливать соответствие нормализованного текущего поискового запроса по меньшей мере с одной нормализованной поисковой фразой и/или по меньшей мере одним нормализованным запросом. В данном случае, сервер 108 может определять, что нормализованный текущий поисковый запрос не совпадает с какой-либо нормализованной поисковой фразой и/или каким-либо нормализованным запросом в базе 150 данных целевого содержимого. В результате, сервер 108 может быть далее выполнен с возможностью вычислять обобщенный текущий поисковый запрос на основе нормализованного текущего поискового запроса и синонимов из набора синонимов.
[143] Поскольку нормализованный текущий поисковый запрос представляет собой "acquire" "vehicle" "Moscow", модуль 110 обработки может создавать обобщенный текущий поисковый запрос путем амальгамирования соответствующих основных синонимов каждой лексемы в нормализованном текущем поисковом запросе. Основной синоним лексемы "acquire" может представлять собой "buy", поскольку среди синонимов слова "acquire", "buy" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "vehicle" может представлять собой "car", поскольку среди синонимов слова "vehicle", "car" может быть наиболее часто используемым синонимом. В другом примере, основной синоним лексемы "Moscow" может представлять собой "Moscow", поскольку среди синонимов слова "Moscow", "Moscow" может быть наиболее часто используемым синонимом. Следовательно, модуль 110 обработки может создавать обобщенный текущий поисковый запрос в виде: "buy" "car" "Moscow". В некоторых вариантах осуществления технического решения, сервер 108 может далее быть выполнен с возможностью сохранять обобщенный текущий поисковый запрос и обобщенную связь между нормализованным текущим поисковым запросом и обобщенным текущим поисковым запросом в базе 160 данных обработки.
[144] Далее, сервер 108 может получать доступ к индексной структуре 706, сохраненной в индексной базе 170 данных. Конкретнее, сервер 108 может получать доступ к дочернему узлу 826 второго уровня первого логического дерева 802, который представляет собой "Moscow", поскольку обобщенный текущий поисковый запрос соответствует GQ1. Сервер 108 может быть выполнен с возможностью связывать обобщенный текущий поисковый запрос "acquire" "vehicle" "Moscow" с GQ1 и, следовательно, с дочерним узлом 826 второго уровня первого логического дерева 802, который представляет собой "Moscow".
[145] В качестве другого варианта осуществления технического решения, сервер 108 может быть выполнен с возможностью устанавливать соответствие обобщенного текущего поискового запроса по меньшей мере с одной нормализованной поисковой фразой и/или по меньшей мере одним нормализованным запросом и/или по меньшей мере одним обобщенным запросом в базе 150 данных целевого содержимого. В данном случае, сервер 108 может определять, что обобщенный текущий поисковый запрос "buy" "car" "Moscow" соответствует GQ1, который связан с рекламным объявлением, связанным с поисковой фразой "procuring a car in Moscow". Несмотря на то, что поисковая фраза "procuring a car in Moscow", предоставляемая ресурсами 180 целевого содержимого в связи с рекламным объявлением, не совпадает с текущим поисковым запросом, сервер 108 может выбирать рекламное объявление как текущее рекламное объявление, которое будет представлено на текущей странице результатов поиска пользователю 102, поскольку обобщенный текущий поисковый запрос соответствует GQ1, который связан с рекламным объявлением.
[146] В некоторых вариантах осуществления настоящего технического решения, сервер 108 может быть выполнен с возможностью исполнять способ 900, представленный на Фиг. 9, обработки поисковых запросов. Способ 900 будет более подробно описан далее.
[147] ЭТАП 902: Получение множества поисковых запросов, введенных в поисковую систему
[148] Способ 900 начинается на этапе 902, где сервер 902 получает множество поисковых запросов 300 (показано на Фиг. 3), введенных в поисковую систему, размещенную на сервере 108. В некоторых вариантах осуществления технического решения, множество поисковых запросов 300 может быть получено сервером 108 из базы 140 данных поискового запроса через путь 202 данных, показанный на Фиг. 2. Поисковые запросы из множества поисковых запросов 300 могут быть ранее введены пользователем 102 и/или другими потенциальными пользователями в сервис поисковой системы, реализованной сервером 108.
[149] ЭТАП 904: Обработка каждого поискового запроса из множества поисковых запросов
[150] Способ 900 продолжается на этапе 904, где сервер 108 обрабатывает каждый запрос из множества поисковых запросов 300.
[151] В некоторых вариантах осуществления технического решения, обработка каждого поискового запроса может включать в себя получение сервером 108 набора лексем и набора синонимов. Например, набор лексем может быть получен из базы 120 данных лексем модулем 110 обработки сервера 108 через путь 204 данных, показанный на Фиг. 2. Набор лексем может быть получен из базы 130 данных синонимов модулем 110 обработки через путь 504 данных, показанный на Фиг. 5.
[152] В некоторых вариантах осуществления технического решения, обработка каждого поискового запроса может включать в себя вычисление сервером 108 набора нормализованных запросов 400, показанных на Фиг. 4, на основе поисковых запросов из множества поисковых запросов 300 и лексем из набора лексем.
[153] В других вариантах осуществления технического решения, обработка каждого поискового запроса может включать в себя вычисление сервером 108 набора обобщенных запросов 600, показанных на Фиг. 6, на основе нормализованных запросов из набора нормализованных запросов 400 и синонимов из набора синонимов. Модуль 110 обработки может вычислять набор обобщенных запросов 600 так, чтобы каждый нормализованный запрос из набора нормализованных запросов 400 был связан с соответствующим обобщенным запросом из набора обобщенных запросов 600.
[154] В дополнительных вариантах осуществления технического решения, обработка каждого поискового запроса может включать в себя компиляцию сервером 108 индексной структуры 706, показанной на Фиг. 7 и 8, на основе набора логических деревьев 808. В некоторых вариантах осуществления технического решения, компиляция индексной структуры 706 включает в себя вычисление сервером 108 набора логических деревьев 808, показанных на Фиг. 8, причем каждое логическое дерево из набора логических деревьев 808 представляет собой по меньшей мере один обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом.
[155] ЭТАП 906: Получение поисковой фразы, введенной в поисковую систему
[156] Способ 900 продолжается на этапе 906, где сервер 108 получает поисковую фразу, введенную в поисковую систему, размещенную на сервере 108. В некоторых вариантах осуществления технического решения, сервер 108 может получать поисковую фразу из базы 150 данных целевого содержимого. Поисковая фраза может быть связана с рекламным объявлением, что позволяет установить соответствие рекламного объявления с текущими поисковыми запросами, который были ранее введены пользователем 102 и/или другими потенциальными пользователями в сервис поисковой системы, реализованной сервером 108.
[157] В других вариантах осуществления технического решения, поисковая фраза была ранее получена сервером 108 от ресурсов 180 целевого содержимого. Например, ресурсы 180 целевого содержимого могут предоставлять сервису поисковой системы, который реализован сервером 108, данные целевого содержимого, которые включают в себя: (i) данные, связанные с множеством рекламных объявлений, например, продвигающих продукты и/или услуги, (ii) поисковые фразы, связанные соответственно с каждым рекламным объявлением во множестве рекламных объявлений для установления соответствия рекламных объявлений с текущими поисковыми запросами, введенными в поисковую систему пользователем 102 и/или другими потенциальными пользователями сервиса поисковой системы и (iii) цены, предлагаемые соответствующим поставщиком целевого содержимого из множества поставщиков целевого содержимого для отображения их рекламных объявлений пользователю 102 и/или другим потенциальным пользователям сервиса поисковой системы.
[158] Ресурсы 180 целевого содержимого могут передавать серверу 108 через сеть 106 первый пакет 194 данных. Первый пакет 194 данных может включать в себя данные целевого содержимого, которые могут включать в себя, среди прочего, данные, связанные с рекламным объявлением, а также с соответствующей связанной поисковой фразой. В ответ на получение первого пакета 194 данных, сервер 108 может быть выполнен с возможностью сохранять данные целевого содержимого в базе 150 данных целевого содержимого.
[159] ЭТАП 908: Обработка поисковой фразы
[160] Способ 900 завершается на этапе 908, где сервер 108 обрабатывает поисковую фразу. Например, обработка поисковой фразы может выполняться модулем 110 обработки сервера 108.
[161] В некоторых вариантах осуществления технического решения, обработка поисковой фразы может включать в себя вычисление нормализованной поисковой фразы на основе поисковой фразы и лексем в наборе лексем. Например, модуль 110 обработки может идентифицировать, с помощью парсинга, значимые слова в поисковой фразе. Далее, для каждого значимого слова в поисковой фразе модуль 110 обработки может определять соответствующую лексему из набора лексем. С этой целью, модуль 110 обработки может извлекать набор лексем из базы 120 данных лексем. В результате, модуль 110 обработки может амальгамировать соответствующие лексемы каждого значимого слова в поисковой фразе для вычисления нормализованной поисковой фразы. В дополнительных вариантах осуществления технического решения, модуль 110 обработки может сохранять поисковую фразу, нормализованную поисковую фразу и нормализованную связь между поисковой фразой и нормализованной поисковой фразой в базе 160 данных обработки для их дальнейшей обработки.
[162] В других вариантах осуществления технического решения, обработка поисковой фразы может включать в себя вычисление обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов в наборе синонимов. Например, модуль 110 обработки может определять для каждой лексемы из нормализованной поисковой фразы соответствующий основной синоним из набора синонимов. С этой целью, модуль 110 обработки может извлекать набор синонимов из базы 130 данных синонимов. В результате, модуль 110 обработки может амальгамировать соответствующие основные синонимы каждой лексемы из нормализованной поисковой фразы для вычисления обобщенной поисковой фразы. В дополнительных вариантах осуществления технического решения, модуль 110 обработки может сохранять обобщенную поисковую фразу, нормализованную поисковую фразу и обобщенную связь между обобщенной поисковой фразой и нормализованной поисковой фразой в базе 160 данных обработки для их дальнейшей обработки.
[163] В дополнительных вариантах осуществления технического решения, обработка поисковой фразы может включать в себя связывание по меньшей мере одного нормализованного запроса из набора нормализованных запросов 400 (показано на Фиг. 4) с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры 706 (показано на Фиг. 7). В некоторых вариантах осуществления технического решения, по меньшей мере один нормализованный запрос может отличаться от нормализованной поисковой фразы.
[164] Для облегчения понимания, предполагается, что поисковая фраза представляет собой "procuring a car in Moscow". В одном примере, нормализованная поисковая фраза может представлять собой "procure" "car" "Moscow". В результате, обобщенная поисковая фраза может представлять собой "buy" "car" "Moscow".
[165] В некоторых вариантах осуществления технического решения, сервер 108 может получать доступ к индексной структуре 706 (см. Фиг. 8) в индексной базе 170 данных. Далее, сервер 108 может получать доступ к первому логическому дереву 802, поскольку обобщенная поисковая фраза начинается со слова "buy", и родительский узел 822 первого логического дерева 802 также представляет собой слово "buy". Далее, сервер 108 может получать доступ к дочернему узлу 824 первого уровня, который представляет собой "car", и далее получать доступ к дочернему узлу 826 второго уровня, который представляет собой "Moscow", поскольку обобщенная поисковая фраза включает в себя "car" и "Moscow" после слова "buy". Другими словами, сервер 108 может получать доступ к дочернему узлу 826 второго уровня, который представляет собой "Moscow", поскольку обобщенная поисковая фраза соответствует GQ1. Следовательно, сервер 108 может связывать по меньшей мере один нормализованный запрос, представляющий собой NQ1, NQ2 и NQ3, с поисковой фразой и нормализованной поисковой фразой.
[166] В ответ на связь между NQ1, NQ2 и NQ3 с поисковой фразой, сервер 108 может связывать NQ1, NQ2 и NQ3 и нормализованную поисковую фразу с рекламным объявлением, связанным с поисковой фразой. В некоторых вариантах осуществления технического решения, сервер 108 может сохранять NQ1, NQ2 и NQ3 и нормализованную поисковую фразу в базе 150 данных целевого содержимого, и их соответствующие связи с рекламным объявлением, связанным с поисковой фразой. Другими словами, рекламное объявление может быть соответственно связано с поисковой фразой, NQ1, NQ2, NQ3 и нормализованной поисковой фразой.
[167] В дополнительных вариантах осуществления технического решения, сервер 108 может сохранять GQ1 в базе 150 данных целевого содержимого, и их связь с рекламным объявлением, связанным с поисковой фразой. Другими словами, рекламное объявление может быть связано с поисковой фразой, NQ1, NQ2, NQ3, нормализованной поисковой фразой и обобщенной поисковой фразой (т.е. в этом случае, обобщенная поисковая фраза соответствует GQ1).
[168] В других вариантах осуществления технического решения, поскольку в данном случае по меньшей мере один нормализованный запрос (NQ1, NQ2 и NQ3) отличается от нормализованной поисковой фразы, сервер 108 может дополнительно связывать нормализованную поисковую фразу "procure" "car" "Moscow" с GQ1 (который связан с дочерним узлом 826 второго уровня, представляющим собой "Moscow") в первом логическом дереве 802 индексной структуры 706.
[169] В некоторых вариантах осуществления способа 900, обработка поисковых запросов из множества поисковых запросов 300 и поисковых фраз сервером 108 может позволить улучшить установление соответствия между поисковыми фразами и текущими поисковыми запросами. Другими словами, улучшенное установление соответствия может снизить время отклика сервера 108 для предоставления данного рекламного объявления пользователю 102 и/или другим потенциальным пользователям в ответ на совпадение между данной поисковой фразой, связанной с данным рекламным объявлением, и данным текущим поисковым запросом, введенным пользователем 102 и/или другими потенциальными пользователями. В других вариантах осуществления технического решения, подобная обработка поисковых фраз и поисковых запросов может выполняться в оффлайн режиме, что может снизить необходимую пропускную способность нагрузки на сеть 106 при предоставлении текущей страницы результатов поиска (SERP) поисковой системы, размещенной на сервере 108. Далее, обработка поисковых фраз и поисковых запросов может требовать меньшей вычислительных ресурсов, чем способы, существующие в известном уровне техники, поскольку разрешается проблема комбинаторного взрыва при обработке длинных поисковых запросов и/или длинных поисковых фраз.
[170] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, опто-волоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[171] С учетом вышеописанных вариантов осуществления технологии, которые были описаны и показаны со ссылкой на конкретные этапы, выполненные в определенном порядке, следует иметь в виду, что эти этапы могут быть совмещены, разделены, обладать другим порядком выполнения - все это не выходит за границы настоящей технологии. Соответственно, порядок и группировка этапов не является ограничением для настоящей технологии.
[172] Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством или другим электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран компьютерного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
[173] Важно иметь в виду, что не все упомянутые здесь технические результаты могут проявляться в каждом из вариантов осуществления настоящего технического решения. Например, варианты осуществления настоящего технического решения могут быть выполнены без проявления некоторых технических результатов, другие могут быть выполнены с проявлением других технических результатов или вовсе без них.
[174] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.
[175] Варианты осуществления настоящей технологии можно изложить следующим образом, в виде пронумерованных пунктов:
[176] ПУНКТ 1 Способ (900) обработки поисковых запросов, способ (900) выполняется на сервере (108), сервер (108) размещает поисковую систему, способ (900) включает в себя:
a. получение (902) сервером (108) множества поисковых запросов (300), введенных в поисковую систему; и
b. обработку (904) сервером (108) каждого поискового запроса во множестве поисковых запросов (300), обработка (904) каждого поискового запроса включает в себя:
i. получение сервером (108) набора лексем и набора синонимов;
ii. вычисление сервером (108) набора нормализованных запросов (400) на основе поисковых запросов и лексем из набора лексем;
iii. вычисление сервером (108) набора обобщенных запросов на основе нормализованных запросов из набора нормализованных запросов (400) и синонимов из набора синонимов, при этом каждый нормализованный запрос связан с соответствующим обобщенным запросом из набора обобщенных запросов (600);
iv. компиляцию сервером (108) индексной структуры (706) на основе набора логических деревьев (808), причем компиляция индексной структуры (706) включает в себя вычисление сервером (108) набора логических деревьев (808), причем каждое логическое дерево из набора логических деревьев (808) представляет собой по меньшей мере один обобщающий запрос, связанный по меньшей мере с одним нормализованным запросом.
[177] ПУНКТ 2 Способ (900) по п. 1, дополнительно включающий в себя:
a) получение (906) сервером (108) поисковой фразы, введенной в поисковую систему;
b) обработку (908) сервером (108) поисковой фразы, обработка (908) поисковой фразы включает в себя:
i) вычисление сервером (108) нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем;
ii) вычисление сервером (108) обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов; и
iii) связывание сервером (108) по меньшей мере одного нормализованного запроса из набора нормализованных запросов (400) с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры (706), по меньшей мере один нормализованный запрос отличается от нормализованной поисковой фразы.
[178] ПУНКТ 3 Способ (900) по п. 2, в котором вычисление набора нормализованных запросов (400) включает в себя для каждого данного поискового запроса из множества поисковых запросов (300):
a) идентификацию сервером (108) соответствующей лексемы из каждого значимого слова из данного поискового запроса;
b) создание сервером (108) данного нормализованного запроса, связанного с данным поисковым запросом, данный нормализованный запрос включает в себя соответствующую лексему каждого значимого слова из данного поискового запроса.
[179] ПУНКТ 4 Способ (900) по п. 3, в котором вычисление набора обобщенных запросов (600) включает в себя для каждого данного нормализованного запроса из набора нормализованных запросов (400):
a) идентификацию сервером (108) соответствующего основного синонима для каждой лексемы из данного нормализованного запроса;
b) создание сервером (108) данного обобщенного запроса, связанного с данным нормализованным запросом, данный обобщенный запрос включает в себя соответствующий основной синоним для каждой лексемы из данного нормализованного запроса.
[180] ПУНКТ 5 Способ (900) по п. 3, в котором данный нормализованный запрос связан с нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов (300), которые связаны с данным нормализованным запросом.
[181] ПУНКТ 6 Способ (900) по п. 4, в котором данный обобщенный запрос связан с обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов (400), которые связаны с данным обобщенным запросом.
[182] ПУНКТ 7 Способ (900) по п. 3, в котором каждое значимое слово является словоизмененной парадигмой соответствующей лексемы.
[183] ПУНКТ 8 Способ (900) по п. 4, в котором соответствующий основной синоним каждой лексемы определен модулем (112) обработки на основе соответствующих указаний популярности синонимов из набора синонимов.
[184] ПУНКТ 9 Способ (900) по п. 2, в котором по меньшей мере одно логическое дерево из набора логических деревьев (808) включает в себя:
a) родительский узел (822);
b) по меньшей мере один дочерний узел (824) первого уровня; и
с. по меньшей мере один дочерний узел (826) второго уровня.
[185] ПУНКТ 10 Способ (900) по п. 9, в котором по меньшей мере одно логическое дерево представляет собой по меньшей мере один соответствующий обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом, причем по меньшей мере один обобщенный запрос связан по меньшей мере с одним из:
a) родительским узлом (822);
b) по меньшей мере одним дочерним узлом (824) первого уровня; и
c) по меньшей мере одним дочерним узлом (826) второго уровня.
[186] ПУНКТ 11 Способ (900) по п. 2, дополнительно включающий в себя:
a) получение сервером (108) текущего поискового запроса, введенного в поисковую систему;
b) обработку сервером (108) текущего поискового запроса, обработка текущего поискового запроса включает в себя:
i) вычисление сервером (108) нормализованного текущего поискового запроса на основе текущего поискового запроса и лексем из набора лексем;
ii) вычисление сервером (108) обобщенного текущего поискового запроса на основе нормализованного текущего поискового запроса и синонимов из набора синонимов; и
iii) связывание сервером (108) нормализованного текущего поискового запроса с целевым содержимым, связанным с поисковой фразой на основе по меньшей мере одного из:
1) нормализованной поисковой фразы; и
2) по меньшей мере одного нормализованного запроса, связанного с поисковой фразой.
[187] ПУНКТ 12 Сервер (108) для обработки поисковых запросов, сервер (108) размещает поисковую систему, сервер (108) выполнен с возможностью выполнять способ (900) по пп. 1-11.
Изобретение относится к системам и способам обработки поисковых запросов, введенных в сервис поисковой системы. Техническим результатом является уменьшение вычислительных ресурсов за счет того, что разрешается проблема комбинаторного взрыва при обработке длинных поисковых запросов. В способе обработки поисковых запросов получают множество поисковых запросов, введенных в поисковую систему. Обрабатывают каждый поисковый запрос, причем обработка включает получение набора лексем и набора синонимов, вычисление набора нормализованных запросов на основе поисковых запросов и лексем, вычисление набора обобщенных запросов на основе нормализованных запросов и синонимов и компиляцию индексной структуры на основе набора логических деревьев. Каждый нормализованный запрос связан с соответствующим обобщенным запросом. Компиляция индексной структуры включает вычисление набора логических деревьев, причем каждое логическое дерево представляет собой обобщающий запрос, связанный с обобщенным запросом. 2 н. и 20 з.п. ф-лы, 9 ил.
1. Способ обработки поисковых запросов, способ выполняется на сервере, сервер размещает поисковую систему, способ включает в себя:
- получение сервером множества поисковых запросов, введенных в поисковую систему; и
- обработку сервером каждого поискового запроса во множестве поисковых запросов, обработка каждого поискового запроса включает в себя:
i) получение сервером набора лексем и набора синонимов;
ii) вычисление сервером набора нормализованных запросов на основе поисковых запросов и лексем из набора лексем;
iii) вычисление сервером набора обобщенных запросов на основе нормализованных запросов из набора нормализованных запросов и синонимов из набора синонимов, при этом каждый нормализованный запрос связан с соответствующим обобщенным запросом из набора обобщенных запросов;
iv) компиляцию сервером индексной структуры на основе набора логических деревьев, причем компиляция индексной структуры включает в себя вычисление сервером набора логических деревьев, причем каждое логическое дерево из набора логических деревьев представляет собой по меньшей мере один обобщающий запрос, связанный по меньшей мере с одним нормализованным запросом.
2. Способ по п. 1, дополнительно включающий в себя:
- получение сервером поисковой фразы, введенной в поисковую систему;
- обработку сервером поисковой фразы, обработка поисковой фразы включает в себя:
i) вычисление сервером нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем;
ii) вычисление сервером обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов; и
iii) связывание сервером по меньшей мере одного нормализованного запроса из набора нормализованных запросов с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры, по меньшей мере один нормализованный запрос отличается от нормализованной поисковой фразы.
3. Способ по п. 2, в котором вычисление набора нормализованных запросов включает в себя для каждого данного поискового запроса из множества поисковых запросов:
- идентификацию сервером соответствующей лексемы из каждого значимого слова из данного поискового запроса;
- создание сервером данного нормализованного запроса, связанного с данным поисковым запросом, данный нормализованный запрос включает в себя соответствующую лексему каждого значимого слова из данного поискового запроса.
4. Способ по п. 3, в котором вычисление набора обобщенных запросов включает в себя для каждого данного нормализованного запроса из множества нормализованных запросов:
- идентификацию сервером соответствующего основного синонима для каждой лексемы из данного нормализованного запроса;
- создание сервером данного обобщенного запроса, связанного с данным нормализованным запросом, данный обобщенный запрос включает в себя соответствующий основной синоним для каждой лексемы из данного нормализованного запроса.
5. Способ по п. 3, в котором данный нормализованный запрос связан с нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов, которые связаны с данным нормализованным запросом.
6. Способ по п. 4, в котором данный обобщенный запрос связан с обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов, которые связаны с данным обобщенным запросом.
7. Способ по п. 3, в котором каждое значимое слово является словоизмененной парадигмой соответствующей лексемы.
8. Способ по п. 4, в котором соответствующий основной синоним каждой лексемы определен модулем обработки на основе соответствующих указаний популярности синонимов из набора синонимов.
9. Способ по п. 2, в котором по меньшей мере одно логическое дерево из набора логических деревьев включает в себя:
- родительский узел;
- по меньшей мере один дочерний узел первого уровня; и
- по меньшей мере один дочерний узел второго уровня.
10. Способ по п. 9, в котором по меньшей мере одно логическое дерево представляет собой по меньшей мере один соответствующий обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом, причем по меньшей мере один обобщенный запрос связан по меньшей мере с одним из:
- родительский узел;
- по меньшей мере один дочерний узел первого уровня; и
- по меньшей мере один дочерний узел второго уровня.
11. Способ по п. 2, дополнительно включающий в себя:
- получение сервером текущего поискового запроса, введенного в поисковую систему;
- обработку сервером текущего поискового запроса, обработка текущего поискового запроса включает в себя:
i) вычисление сервером нормализованного текущего поискового запроса на основе текущего поискового запроса и лексем из набора лексем;
ii) вычисление сервером обобщенного текущего поискового запроса на основе нормализованного текущего поискового запроса и синонимов из набора синонимов; и
iii) связывание сервером нормализованного текущего поискового запроса с целевым содержимым, связанным с поисковой фразой на основе по меньшей мере одного из:
- нормализованной поисковой фразы; и
- по меньшей мере одного нормализованного запроса, связанного с поисковой фразой.
12. Сервер для обработки поисковых запросов, сервер размещает поисковую систему, сервер выполнен с возможностью осуществлять:
- получение множества поисковых запросов, введенных в поисковую систему; и
- обработку каждого поискового запроса из множества поисковых запросов, и для обработки каждого поискового запроса сервер выполнен с возможностью осуществлять:
i) получение набора лексем и набора синонимов;
ii) вычисление набора нормализованных запросов на основе поисковых запросов и лексем из набора лексем;
iii) вычисление набора обобщенных запросов на основе нормализованных запросов из набора нормализованных запросов и синонимов из набора синонимов, при этом каждый нормализованный запрос связан с соответствующим обобщенным запросом из набора обобщенных запросов; и
iv) компиляцию индексной структуры на основе набора логических деревьев, для компиляции индексной структуры сервер выполнен с возможностью осуществлять вычисление сервером набора логических деревьев, причем каждое логическое дерево из набора логических деревьев представляет собой по меньшей мере нормализованным запросом.
13. Сервер по п. 12, сервер дополнительно выполнен с возможностью осуществлять:
- получение поисковой фразы, введенной в поисковую систему;
- обработку поисковой фразы, для обработки поисковой фразы сервер выполнен с возможностью осуществлять:
i) вычисление нормализованной поисковой фразы на основе поисковой фразы и лексем из набора лексем;
ii) вычисление обобщенной поисковой фразы на основе нормализованной поисковой фразы и синонимов из набора синонимов; и
iii) связывание по меньшей мере одного нормализованного запроса из набора нормализованных запросов с поисковой фразой на основе обобщенной поисковой фразы и индексной структуры, по меньшей мере один нормализованный запрос отличается от нормализованной поисковой фразы.
14. Сервер по п. 13, в котором для вычисления набора нормализованных запросов сервер выполнен с возможностью осуществлять для каждого данного поискового запроса из множества поисковых запросов:
- идентификацию соответствующей лексемы из каждого значимого слова из данного поискового запроса;
- создание данного нормализованного запроса, связанного с данным поисковым запросом, данный нормализованный запрос включает в себя соответствующую лексему каждого значимого слова из данного поискового запроса.
15. Сервер по п. 14, в котором для вычисления набора обобщенных запросов сервер выполнен с возможностью осуществлять для каждого данного нормализованного запроса из набора нормализованных запросов:
- идентификацию соответствующего основного синонима для каждой лексемы из данного нормализованного запроса;
- создание данного обобщенного запроса, связанного с данным нормализованным запросом, данный обобщенный запрос включает в себя соответствующий основной синоним для каждой лексемы из данного нормализованного запроса.
16. Сервер по п. 14, в котором данный нормализованный запрос связан с нормализованным счетчиком частоты, который указывает на ряд поисковых запросов из множества поисковых запросов, которые связаны с данным нормализованным запросом.
17. Сервер по п. 15, в котором данный обобщенный запрос связан с обобщенным счетчиком частоты, который указывает на ряд нормализованных запросов из набора нормализованных запросов, которые связаны с данным обобщенным запросом.
18. Сервер по п. 14, в котором каждое значимое слово является словоизмененной парадигмой соответствующей лексемы.
19. Сервер по п. 15, в котором соответствующий основной синоним каждой лексемы определен на основе соответствующих указаний популярности синонимов из набора синонимов.
20. Сервер по п. 13, в котором по меньшей мере одно логическое дерево из набора логических деревьев включает в себя:
- родительский узел;
- по меньшей мере один дочерний узел первого уровня; и
- по меньшей мере один дочерний узел второго уровня.
21. Сервер по п. 20, в котором по меньшей мере одно логическое дерево представляет собой по меньшей мере один соответствующий обобщенный запрос, связанный по меньшей мере с одним соответствующим нормализованным запросом, причем по меньшей мере один обобщенный запрос связан по меньшей мере с одним из:
- родительский узел;
- по меньшей мере один дочерний узел первого уровня; и
- по меньшей мере один дочерний узел второго уровня.
22. Сервер по п. 13, в котором сервер также выполнен с возможностью осуществлять:
- получение текущего поискового запроса, введенного в поисковую систему;
- обработку текущего поискового запроса, для обработки текущего поискового запроса сервер выполнен с возможностью осуществлять:
i) вычисление нормализованного текущего поискового запроса на основе текущего поискового запроса и лексем из набора лексем;
ii) вычисление обобщенного текущего поискового запроса на основе нормализованного текущего поискового запроса и синонимов из набора синонимов; и
iii) связывание нормализованного текущего поискового запроса с целевым содержимым, связанным с поисковой фразой на основе по меньшей мере одного из:
- нормализованной поисковой фразы; и
- по меньшей мере одного нормализованного запроса, связанного с поисковой фразой.
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
US 5590319 A, 31.12.1996 | |||
ПОИСК ПРОИЗВОЛЬНОГО ТЕКСТА И ПОИСК ПО АТРИБУТАМ В ДАННЫХ ЭЛЕКТРОННОГО РУКОВОДСТВА ПО ПРОГРАММАМ | 2004 |
|
RU2365984C2 |
СПОСОБ СИНТЕЗА САМООБУЧАЮЩЕЙСЯ СИСТЕМЫ ИЗВЛЕЧЕНИЯ ЗНАНИЙ ИЗ ТЕКСТОВЫХ ДОКУМЕНТОВ ДЛЯ ПОИСКОВЫХ СИСТЕМ | 2002 |
|
RU2273879C2 |
ПРОВЕРКА РЕЛЕВАНТНОСТИ МЕЖДУ КЛЮЧЕВЫМИ СЛОВАМИ И СОДЕРЖАНИЕМ ВЕБ-САЙТА | 2005 |
|
RU2375747C2 |
Авторы
Даты
2017-10-02—Публикация
2015-12-28—Подача