RU2834217C1 - Method and system for generating response to search query - Google Patents
Method and system for generating response to search query Download PDFInfo
- Publication number
- RU2834217C1 RU2834217C1 RU2024129031A RU2024129031A RU2834217C1 RU 2834217 C1 RU2834217 C1 RU 2834217C1 RU 2024129031 A RU2024129031 A RU 2024129031A RU 2024129031 A RU2024129031 A RU 2024129031A RU 2834217 C1 RU2834217 C1 RU 2834217C1
- Authority
- RU
- Russia
- Prior art keywords
- search
- text
- documents
- query
- search query
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 title description 13
- 238000010801 machine learning Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims abstract description 16
- 238000013528 artificial neural network Methods 0.000 claims abstract description 15
- 238000012549 training Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 14
- 230000003190 augmentative effect Effects 0.000 claims description 12
- 230000003416 augmentation Effects 0.000 claims description 7
- 238000010845 search algorithm Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 12
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 230000003993 interaction Effects 0.000 description 17
- 238000013459 approach Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000003814 drug Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- WBMKMLWMIQUJDP-STHHAXOLSA-N (4R,4aS,7aR,12bS)-4a,9-dihydroxy-3-prop-2-ynyl-2,4,5,6,7a,13-hexahydro-1H-4,12-methanobenzofuro[3,2-e]isoquinolin-7-one hydrochloride Chemical compound Cl.Oc1ccc2C[C@H]3N(CC#C)CC[C@@]45[C@@H](Oc1c24)C(=O)CC[C@@]35O WBMKMLWMIQUJDP-STHHAXOLSA-N 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
Description
ОБЛАСТЬ ТЕХНИКИAREA OF TECHNOLOGY
[1] Настоящее техническое решение, в общем, относится к поисковым системам в целом, а более конкретно - к способу обработки поисковых запросов для извлечения информации по пользовательскому поисковому запросу и генерации сокращенного ответа на него.[1] This technical solution generally relates to search engines in general, and more specifically to a method for processing search queries to extract information on a user's search query and generate a shortened answer to it.
УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY
[2] В настоящее время поисковые системы являются неотъемлемой частью глобальных и локальных сетей связи и обеспечивают предоставление релевантных результатов поисковых запросов. С развитием технологий в сфере искусственного интеллекта, расширились и возможности поисковых систем, за счет внедрения алгоритмов машинного обучения. Так, поисковые системы стали применяться и в корпоративной сфере, например, в рабочих процессах предприятий и/или компаний, обладающих большим объемом документов.[2] Currently, search engines are an integral part of global and local communication networks and provide relevant search query results. With the development of technologies in the field of artificial intelligence, the capabilities of search engines have also expanded due to the introduction of machine learning algorithms. Thus, search engines have begun to be used in the corporate sphere, for example, in the work processes of enterprises and/or companies with a large volume of documents.
[3] Однако, применение поисковых систем, таких как поисковые системы, основанные на моделях машинного обучения, чат-боты и т.д., в корпоративной сфере имеет ряд недостатков. Как правило, в корпоративной сфере существуют определенные области техники, связанные со спецификой деятельности конкретных корпораций и/или компаний, что существенно усложняет применение известных поисковых систем в рабочих целях. Так, ввиду наличия доменно-специфичных терминов в поисковых запросах, известные поисковые системы показывают низкую полноту поисковой выдачи (предоставляемых документов и/или результатов поисковых запросов). Это связано с тем, что поисковая выдача зачастую содержит в себе семантически схожий запросу текст, но некорректный с точки зрения интерпретации узкоспециализированных терминов. Например, запросы «миграция данных из базы данных» и «миграция данных из s3» являются семантически схожими, но по существу относятся к разным понятиям. Кроме того, алгоритмы машинного обучения в известных поисковых системах обучаются на открытых данных, которые не содержат или содержат слишком малое количество доменно-специфичных обучающих данных (доступные методы позволяют добиваться высокой полноты только при наличии большого количества доменно-специфичных данных). Поэтому развитие поисковых систем в доменно-специфичных терминах является существенной и нетривиальной задачей.[3] However, the use of search engines, such as search engines based on machine learning models, chatbots, etc., in the corporate sphere has a number of disadvantages. As a rule, in the corporate sphere there are certain areas of technology related to the specific activities of specific corporations and/or companies, which significantly complicates the use of known search engines for work purposes. Thus, due to the presence of domain-specific terms in search queries, known search engines show low completeness of search results (provided documents and/or search query results). This is due to the fact that search results often contain text that is semantically similar to the query, but incorrect in terms of interpreting highly specialized terms. For example, the queries "data migration from a database" and "data migration from s3" are semantically similar, but essentially refer to different concepts. In addition, machine learning algorithms in well-known search engines are trained on open data that does not contain or contains too little domain-specific training data (available methods allow achieving high completeness only with a large amount of domain-specific data). Therefore, the development of search engines in domain-specific terms is a significant and non-trivial task.
[4] Из уровня техники известны подходы, основанные на доменной адаптации поисковых систем для предоставления поисковых результатов на поисковые запросы, содержащие доменно-специфичные термины. Так, к таким подходам можно отнести GPL (найдено в Интернет по ссылке: https://arxiv.org/abs/2112.07577)(Generative Pseudo Labeling). Метод GPL относится к методам обучения без учителя, использует генеративные модели для генерации псевдозапросов по корпусу текста и существующую поисковую систему для поиска релевантных документов. В качестве целевых меток для обучения модели DPR (Dense Passage Retrieval, семантический поиск для извлечения релевантных документов) используются метки модели ранжирования, например, RocketQA, доступно по ссылке: https://arxiv.org/abs/2010.08191. Такой подход позволяет дообучать модель DPR на синтетических данных.[4] The prior art includes approaches based on domain adaptation of search engines to provide search results for search queries containing domain-specific terms. Thus, such approaches include GPL (found on the Internet at the link: https://arxiv.org/abs/2112.07577) (Generative Pseudo Labeling). The GPL method refers to unsupervised learning methods, uses generative models to generate pseudo-queries for a text corpus and an existing search engine to find relevant documents. Ranking model labels are used as target labels for training the DPR (Dense Passage Retrieval, semantic search for retrieving relevant documents) model, for example, RocketQA, available at the link: https://arxiv.org/abs/2010.08191. This approach allows for additional training of the DPR model on synthetic data.
[5] Стоит отметить, что зачастую в качестве модели ранжирования берется общедоступная модель, которая была обучена на общедоступных данных, не содержащих доменно-специфичные понятия, что может негативно повлиять на качество доменной адаптации. Также такой метод требует достаточно большого размера доменно-специфичного корпуса текстов для достижения качественных результатов, что является серьезным ограничением.[5] It is worth noting that the ranking model is often a publicly available model that was trained on publicly available data that does not contain domain-specific concepts, which can negatively affect the quality of domain adaptation. This method also requires a fairly large domain-specific text corpus to achieve high-quality results, which is a serious limitation.
[6] Соответственно, недостатком такого подхода является низкая точность предоставления поисковых результатов на поисковые запросы, содержащие доменно-специфичные термины, что, как следствие снижает качество генерации ответа на пользовательский запрос.[6] Accordingly, the disadvantage of this approach is the low accuracy of providing search results for search queries containing domain-specific terms, which, as a consequence, reduces the quality of generating a response to a user query.
[7] Общим недостатком известных решений является отсутствие эффективного способа обработки поисковых запросов, содержащих доменно-специфичные термины, выполняемого поисковыми системами, обеспечивающего повышение полноты выдачи и не требующего больших размеров доменно-специфичного корпуса текстов для достижения качественных результатов. Кроме того, такой подход должен обладать низкими вычислительными затратами.[7] A common drawback of known solutions is the lack of an effective way of processing search queries containing domain-specific terms performed by search engines, ensuring an increase in the completeness of the output and not requiring large sizes of the domain-specific text corpus to achieve high-quality results. In addition, such an approach must have low computational costs.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF INVENTION
[8] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.[8] This technical solution is aimed at eliminating the shortcomings inherent in existing solutions known from the state of the art.
[9] Решаемой технической проблемой в данном техническом решении является создание нового и эффективного способа обработки поисковых запросов, содержащих доменно-специфичные термины, в поисковой системе.[9] The technical problem solved in this technical solution is the creation of a new and effective way of processing search queries containing domain-specific terms in a search engine.
[10] Техническим результатом, проявляющимся при решении вышеуказанной проблемы, является повышение точности генерации результата поискового запроса, за счет улучшения релевантности извлеченных документов.[10] The technical result that emerges from solving the above-mentioned problem is an increase in the accuracy of generating the search query result, due to an improvement in the relevance of the retrieved documents.
[11] Указанный технический результат достигается благодаря осуществлению способа обработки поисковых запросов, выполняемого по меньшей мере одной поисковой системой, содержащего этапы, на которых:[11] The specified technical result is achieved by implementing a method for processing search queries performed by at least one search engine, containing the steps of:
a) получают поисковый запрос от пользователя;a) receive a search query from the user;
b) осуществляют полнотекстовый поиск документов на основе запроса, полученного на этапе а);b) carry out a full-text search of documents based on the query received in step a);
c) формируют первый набор результатов поиска;c) generate the first set of search results;
d) осуществляют токенизацию и векторизацию поискового запроса;d) carry out tokenization and vectorization of the search query;
e) осуществляют обработку векторного представления поискового запроса, полученного на этапе d), с помощью модели машинного обучения на базе нейронной сети, обученной на семантический поиск документов, причем в ходе обучения осуществляют:e) process the vector representation of the search query obtained in step d) using a machine learning model based on a neural network trained for semantic search of documents, and during the training process:
i. формирование набора данных, содержащего доменно-специфические термины и синонимы к указанным терминам;i. formation of a data set containing domain-specific terms and synonyms for the specified terms;
ii. создание неразмеченного набора данных из доменно-специфичного корпуса текстов;ii. creating an unlabeled dataset from a domain-specific text corpus;
iii. аугментацию неразмеченного набора данных посредством замены доменно-специфичных терминов их синонимами;iii. augmentation of unlabeled dataset by replacing domain-specific terms with their synonyms;
iv. обучение модели машинного обучения на аугментированном неразмеченном наборе данных;iv. training a machine learning model on the augmented unlabeled dataset;
f) формируют второй набор результатов поиска на основе документов, полученных на этапе е);f) generate a second set of search results based on the documents obtained in step e);
g) объединяют первый и второй набор результатов поиска;g) combine the first and second sets of search results;
h) ранжируют объединенный первый и второй набор результатов поиска, причем, в ходе ранжирования определяют релевантность каждого документа относительно поискового запроса;h) rank the combined first and second sets of search results, wherein, during the ranking, the relevance of each document with respect to the search query is determined;
i) формируют генеративный результат поискового запроса, основанный на полученных документах;i) generate a generative search query result based on the received documents;
j) отправляют результат, полученный на этапе i), пользователю.j) send the result obtained in step i) to the user.
[12] В одном из частных примеров осуществления способа обучения модели машинного обучения на аугментированном неразмеченном наборе данных содержит следующие шаги:[12] One particular example of the implementation of the method for training a machine learning model on an augmented unlabeled dataset contains the following steps:
i. генерация поисковых запросов к набору данных с помощью больших языковых моделей;i. generating search queries on a dataset using large language models;
ii. генерация сложных негативных примеров имеющейся системой поиска;ii. generation of complex negative examples by the existing search system;
iii. получение псевдометок релевантности поискового запроса по исходному тексту и негативным примерам с помощью их ранжирования;iii. obtaining pseudo-labels of search query relevance based on the original text and negative examples using their ranking;
iv. формирование набора данных, включающего: поисковый запрос; исходный текст, к которому генерировался запрос; набор сложных негативных примеров; псевдометки релевантности;iv. formation of a data set including: search query; source text for which the query was generated; a set of complex negative examples; pseudo-relevance labels;
v. обучение модели машинного обучения на полученном наборе данных.v. training a machine learning model on the received data set.
[13] В другом частном примере осуществления способа в ходе объединения первого и второго набора результатов поиска, позиционное расположение каждого результата поиска из каждого набора в объединенном наборе данных выбирается случайным образом.[13] In another particular example of implementing the method, during the combining of the first and second sets of search results, the positional location of each search result from each set in the combined data set is selected randomly.
[14] В другом частном примере осуществления способа доменно-специфические термины представляют собой узкоспециализированные термины, характерные для определенной прикладной области.[14] In another particular example of implementing the method, domain-specific terms are highly specialized terms characteristic of a specific application area.
[15] В другом частном примере осуществления способа в ходе ранжирования, объединенного первого и второго набора результатов поиска, осуществляют следующие шаги:[15] In another particular example of implementing the method, during ranking of the combined first and second sets of search results, the following steps are performed:
i. получение пар текстовых последовательностей, где каждая пара включает в себя поисковый запрос и потенциально релевантный документ;i. obtaining pairs of text sequences, where each pair includes a search query and a potentially relevant document;
ii. конвертацию каждой пары в вещественное число, соответствующее степени релевантности документа к запросу;ii. converting each pair into a real number corresponding to the degree of relevance of the document to the query;
iii. определение порядка ранжирования документов, на основе сравнения вещественных чисел каждой пары.iii. determining the order of ranking of documents based on a comparison of the real numbers of each pair.
[16] В другом частном примере осуществления способа ранжирование выполняется по меньшей мере одной моделью машинного обучения на базе нейронной сети, обученной на наборе данных, содержащим доменно-специфические термины и синонимы к указанным терминам.[16] In another particular example of implementing the method, ranking is performed by at least one machine learning model based on a neural network trained on a data set containing domain-specific terms and synonyms for the specified terms.
[17] В другом частном примере осуществления способа полнотекстовый поиск документов осуществляется посредством, по меньшей мере алгоритма полнотекстового поиска, учитывающего длину документа и частоту терминов.[17] In another particular example of implementing the method, a full-text search of documents is carried out by means of at least a full-text search algorithm that takes into account the length of the document and the frequency of terms.
[18] В другом частном примере осуществления способа алгоритм полнотекстового поиска документов дополнительно содержит набор данных, включающий доменно-специфические термины и синонимы к указанным терминам.[18] In another particular example of implementing the method, the full-text document search algorithm additionally contains a data set that includes domain-specific terms and synonyms for the specified terms.
[19] В другом частном примере осуществления способа генеративный результат формируется с помощью нейронной сети.[19] In another particular example of the implementation of the method, the generative result is formed using a neural network.
[20] В другом частном примере осуществления способа генеративный результат представляет собой текстовую последовательность, сформированную на основе пользовательского запроса и релевантных к нему документов из объединенного первого и второго набора результатов поиска.[20] In another particular example of implementing the method, the generative result is a text sequence formed on the basis of a user query and documents relevant to it from the combined first and second set of search results.
[21] В другом частном примере осуществления способа векторизация поискового запроса осуществляется посредством двунаправленного кодирования.[21] In another particular example of the implementation of the method, the vectorization of the search query is carried out by means of bidirectional coding.
[22] Кроме того, заявленные технические результаты достигаются за счет системы обработки поисковых запросов, содержащей:[22] In addition, the stated technical results are achieved through a search query processing system containing:
• по меньшей мере один процессор;• at least one processor;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые, при их выполнении по меньшей мере одним процессором, обеспечивают выполнение способа обработки поисковых запросов.• at least one memory connected to the processor that contains machine-readable instructions that, when executed by the at least one processor, provide for the execution of a method for processing search queries.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS
[23] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которых:[23] The features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[24] Фиг. 1 иллюстрирует пример реализации системы обработки поисковых запросов.[24] Fig. 1 illustrates an example of the implementation of a search query processing system.
[25] Фиг. 2 иллюстрирует блок-схему выполнения заявленного способа.[25] Fig. 2 illustrates a block diagram of the implementation of the claimed method.
[26] Фиг. 3 иллюстрирует пример вычислительного устройства для реализации заявленной системы.[26] Fig. 3 illustrates an example of a computing device for implementing the claimed system.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[27] Заявленное техническое решение предлагает новый подход, обеспечивающий новый и эффективный способ обработки поисковых запросов, содержащих доменно-специфичные термины, в поисковой системе. Аспекты заявленного технического решения обеспечивают повышение полноты результатов выдачи за счет применения как полнотекстового поиска, так и семантического поиска, обученного на доменно-специфичных терминах, а также дополнительного этапа ранжирования полученных поисковых результатов, что позволяет улучшить релевантность извлеченных документов перед генерацией ответа. Кроме того, заявленное техническое решение обеспечивает возможность генерации ответа, содержащего сжатое или обобщенное изложение наиболее релевантных результатов из объединенного набора результатов поискового запроса.[27] The claimed technical solution proposes a new approach that provides a new and efficient way of processing search queries containing domain-specific terms in a search engine. Aspects of the claimed technical solution provide for an increase in the completeness of search results by using both full-text search and semantic search trained on domain-specific terms, as well as an additional stage of ranking the obtained search results, which improves the relevance of the retrieved documents before generating a response. In addition, the claimed technical solution provides the ability to generate a response containing a condensed or generalized presentation of the most relevant results from the combined set of search query results.
[28] Заявленное техническое решение может выполняться, например, системой, машиночитаемым носителем, сервером и т.д. В данном техническом решении под системой подразумевается, в том числе компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).[28] The claimed technical solution may be implemented, for example, by a system, a machine-readable medium, a server, etc. In this technical solution, a system means, among other things, a computer system, a computer (electronic computer), a CNC (numerical control), a PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, clearly defined sequence of operations (actions, instructions).
[29] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[29] A command processing unit is an electronic unit or integrated circuit (microprocessor) that executes machine instructions (programs).
[30] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например, таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, включая, но не ограничиваясь, жесткие диски (HDD), флеш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.[30] The command processing unit reads and executes machine instructions (programs) from one or more data storage devices, such as random access memory (RAM) and/or read-only memory (ROM). ROM may include, but is not limited to, hard disk drives (HDD), flash memory, solid-state drives (SSD), optical storage media (CD, DVD, BD, MD, etc.), etc.
[31] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[31] A program is a sequence of instructions intended for execution by a computer control device or a command processing device.
[32] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к программным инструкциям или программным командам, которые написаны на заданном языке программирования для осуществления конкретной функции, такой как, например, получение и обработка данных, формирование профиля пользователя, прием и передача сигналов, анализ принятых данных, идентификация пользователя и т.п.Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, Python, различных библиотек (например, "MFC"; Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным каналам передачи данных, например, Wi-Fi, Bluetooth, USB, WLAN, LAN и т.п.[32] The term "instructions" as used in this application may refer generally to software instructions or software commands that are written in a given programming language to perform a specific function, such as, for example, receiving and processing data, forming a user profile, receiving and transmitting signals, analyzing received data, identifying a user, etc. The instructions may be implemented in a variety of ways, including, for example, object-oriented methods. For example, the instructions may be implemented using the C++ programming language, Java, Python, various libraries (e.g., "MFC"; Microsoft Foundation Classes), etc. The instructions that perform the processes described in this solution may be transmitted via both wired and wireless data transmission channels, such as Wi-Fi, Bluetooth, USB, WLAN, LAN, etc.
[33] На Фиг. 1 приведен общий вид системы 100 обработки поисковых запросов в поисковой системе. Система 100 включает в себя основные функциональные элементы, такие как: модуль взаимодействия 101, модуль полнотекстового поиска 102, модуль токенизации и векторизации текстовых данных 103, модуль семантического поиска 104, векторную базу данных 105, модуль ранжирования 106, модуль генерации ответа 107. Более подробно элементы системы 100 раскрыты на Фиг. 3.[33] Fig. 1 shows a general view of a system 100 for processing search queries in a search engine. The system 100 includes basic functional elements such as: an interaction module 101, a full-text search module 102, a text data tokenization and vectorization module 103, a semantic search module 104, a vector database 105, a ranking module 106, and a response generation module 107. The elements of the system 100 are disclosed in more detail in Fig. 3.
[34] Система 100 может являться частью и/или быть связана с поисковой системой. Так, в одном частном варианте осуществления система 100 может являться элементом поисковой системы. Поисковая система может представлять собой корпоративную поисковую систему, предназначенную для поиска данных внутри компании, например, на основе комбинированного поиска в сети Интернет и содержимых баз данных компании. Как правило, поиск предназначен для внутренних пользователей компании в рабочих целях и содержит в поисковых запросах доменно-специфичные термины, связанные с областью техники компании. В еще одном частном варианте осуществления поисковая система может представлять веб-сервис для поиска текстовой или графической информации, поисковую систему на основе алгоритмов машинного обучения, например, поисковая система на базе LLM и т.д., локальную или десктопную поисковую систему для поиска локальных файлов и т.д. В еще одном частном варианте осуществления поисковая система может представлять комбинацию нескольких типов поисковых систем.[34] The system 100 may be part of and/or associated with a search engine. Thus, in one particular embodiment, the system 100 may be an element of a search engine. The search engine may be a corporate search engine designed to search for data within a company, for example, based on a combined search on the Internet and the contents of the company's databases. As a rule, the search is intended for internal users of the company for work purposes and contains domain-specific terms in search queries related to the company's technical field. In another particular embodiment, the search engine may be a web service for searching text or graphic information, a search engine based on machine learning algorithms, for example, a search engine based on LLM, etc., a local or desktop search engine for searching local files, etc. In another particular embodiment, the search engine may be a combination of several types of search engines.
[35] Под доменно-специфичными терминами следует понимать узкоспециализированные термины, характерные для определенной прикладной области. Так, доменно-специфичные термины могут относится к прикладной области корпоративной сферы, например, области информационных технологий, сетей и систем связи, облачных решений и т.д. Так, доменно-специфичные термины относятся к специфичной лексике, присущей определенной области техники, например, медицине (биологические термины, названия лекарств и т.д.), ИТ технологиям (название алгоритмов, систем, протоколов взаимодействия и т.д.).[35] Domain-specific terms are narrowly specialized terms characteristic of a certain application area. Thus, domain-specific terms may relate to an application area of the corporate sphere, for example, the area of information technology, networks and communication systems, cloud solutions, etc. Thus, domain-specific terms relate to specific vocabulary inherent in a certain area of technology, for example, medicine (biological terms, names of drugs, etc.), IT technologies (names of algorithms, systems, interaction protocols, etc.).
[36] Модуль взаимодействия 101 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением и предназначен для обработки входящих поисковых запросов, координации работы других модулей, предоставления вывода пользователю.[36] The interaction module 101 can be implemented on the basis of at least one computing device equipped with appropriate software and is intended to process incoming search queries, coordinate the work of other modules, and provide output to the user.
[37] Модуль 101 может содержать пользовательский интерфейс для взаимодействия с пользователями поисковой системы. Координация работы других модулей может выполняться, например, посредством взаимодействия с указанными модулями по протоколу HTTPS (вызов API). Под координацией следует понимать очередность исполнения модулями системы 100 этапов способа 200, который раскрыт более подробно ниже. Так, модуль 101 может обеспечивать обработку поискового запроса от пользователя, подготовку данных для подмодулей 101-107 и определять порядок их обхода.[37] Module 101 may contain a user interface for interaction with users of the search engine. Coordination of the work of other modules may be performed, for example, by interacting with said modules via the HTTPS protocol (API call). Coordination should be understood as the sequence of execution by modules of system 100 of the steps of method 200, which is disclosed in more detail below. Thus, module 101 may ensure processing of a search request from a user, preparation of data for submodules 101-107 and determine the order of their traversal.
[38] Модуль полнотекстового поиска 102 может представлять собой систему полнотекстового поиска, вычислительное устройство и т.д.[38] The full-text search module 102 may be a full-text search system, a computing device, etc.
[39] Модуль 102 предназначен для автоматизированного поиска документов на основе поискового запроса, при котором поиск ведется не по именам документов, а по их содержимому, всему или существенной части содержимого документа. Так, в одном частном варианте осуществления полнотекстовый поиск может выполняться алгоритмом ВМ25 в сочетании с набором данных, содержащим доменно-специфические термины и синонимы к указанным терминам (словарь синонимов) для улучшения эффективности поиска. Алгоритм ВМ25 является усовершенствованной версией TF-IDF, которая учитывает длину документа и частоту терминов, в то время как словарь синонимов помогает улучшить полноту поисковой выдачи.[39] Module 102 is designed for automated document retrieval based on a search query, where the search is conducted not by document names, but by their content, all or a significant part of the document content. Thus, in one particular embodiment, full-text search can be performed by the BM25 algorithm in combination with a data set containing domain-specific terms and synonyms for the specified terms (a synonym dictionary) to improve the search efficiency. The BM25 algorithm is an improved version of TF-IDF, which takes into account the length of the document and the frequency of terms, while the synonym dictionary helps improve the completeness of the search results.
[40] Модуль 102 работает со структурой данных обратный индекс, которая представляет из себя набор ключей и значений, где ключом является слово, а значением/-ями - индексы документов, в котором/-ых оно встречается. Для ранжирования документов-кандидатов из обратного индекса могут использоваться различные функции, например, TF-IDF, ВМ25 и т.д. При использовании словаря синонимов (набора данных, содержащего доменно-специфичных терминов и синонимом к указанным терминам) обеспечивается возможность добавлять в обратный индекс синонимичные термины и привязывать к ним релевантные документы.[40] Module 102 operates on a reverse index data structure, which is a set of keys and values, where the key is a word and the value(s) are the indices of documents in which it occurs. Various functions can be used to rank candidate documents from the reverse index, such as TF-IDF, BM25, etc. Using a synonym dictionary (a data set containing domain-specific terms and synonyms for the specified terms) makes it possible to add synonymous terms to the reverse index and link relevant documents to them.
[41] Стоит отметить, что названия технологий транслитерируются на русский язык, например, «terraform» и «терраформ», имеют специфичные сокращения, «виртуальная машина» и «вм» и т.п. Словарь синонимов позволяет учитывать вхождения синонимичных терминов в документах, путем их добавления в качестве ключей в обратный индекс.[41] It is worth noting that the names of technologies are transliterated into Russian, for example, “terraform” and “terraform”, have specific abbreviations, “virtual machine” and “vm”, etc. The dictionary of synonyms allows you to take into account the occurrence of synonymous terms in documents by adding them as keys to the reverse index.
[42] Рассмотрим пример работы полнотекстового поиска со словарем:[42] Let's look at an example of a full-text search working with a dictionary:
Исходный запрос: создать мастер-узелOriginal request: create master node
Модифицированный запрос: создать (мастер-узел ИЛИ мастер ИЛИ мастер-нода)Modified query: create (masternode OR master OR masternode)
[43] Как видно из представленного примера, применение словаря синонимов расширяет охватываемые релевантные документы, что, соответственно, повышает полноту поисковой выдачи.[43] As can be seen from the presented example, the use of a dictionary of synonyms expands the range of relevant documents covered, which, accordingly, increases the completeness of search results.
[44] Модуль токенизации и векторизации текстовых данных 103 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и включать набор моделей для токенизации и детокенизации текста, векторизации токенизированного текста и преобразования токенов в текст, например, одну или несколько моделей машинного обучения для преобразования текстовой информации в векторную форму, например, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 и другие.[44] The text data tokenization and vectorization module 103 may be implemented on the basis of at least one computing device equipped with appropriate software and include a set of models for tokenization and detokenization of text, vectorization of tokenized text and conversion of tokens into text, for example, one or more machine learning models for converting text information into vector form, for example, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 and others.
[45] В одном частном варианте осуществления модуль 103 может быть реализован на базе системы 300, которая более подробно раскрыта на Фиг. 3. Стоит отметить, что определенный метод токенизации и векторизации зависит от выбранной языковой модели, на базе которой реализован модуль 104. Например, при использовании модели RuGPT3, токенизация осуществляется методом ВРЕ (Byte Pair Encoding), а последующая векторизация - путем замены каждого токена на его индекс в словаре языковой модели, составленном на этапе изначального обучения модели. Кроме того, в еще одном частном варианте осуществления, в качестве метода токенизации может использоваться токенизация по словам.[45] In one particular embodiment, module 103 may be implemented based on system 300, which is disclosed in more detail in Fig. 3. It is worth noting that a specific tokenization and vectorization method depends on the selected language model on which module 104 is implemented. For example, when using the RuGPT3 model, tokenization is performed using the BPE (Byte Pair Encoding) method, and subsequent vectorization is performed by replacing each token with its index in the language model dictionary compiled at the stage of initial model training. In addition, in another particular embodiment, word tokenization may be used as a tokenization method.
[46] Пример токенизации по словам и кодирование слов индексами в словаре: 'миграция БД' → ['миграция', 'БД'] → [235, 376].[46] An example of tokenization by words and encoding words with indexes in a dictionary: 'migration DB' → ['migration', 'DB'] → [235, 376].
[47] Модуль семантического поиска 104 может быть реализован на базе по меньшей мере одной нейронной сети, заранее обученной на конкретных наборах данных, состоящих, например, из троек (текст поискового запроса, текст релевантного документа, текст нерелевантного документа), пятерок (текст запроса, текст релевантного документа (позитивный пример), оценка релевантности позитивного примера, текст нерелевантного документа (негативный пример), оценка релевантности негативного примера) и т.д. Так, тройки могут использоваться в случаях, когда набор данных тройки уже содержит оценки релевантности документов, однако, на практике такое маловероятно.[47] The semantic search module 104 can be implemented on the basis of at least one neural network, previously trained on specific data sets consisting, for example, of triplets (search query text, relevant document text, irrelevant document text), quintuplets (query text, relevant document text (positive example), positive example relevance assessment, irrelevant document text (negative example), negative example relevance assessment), etc. Thus, triplets can be used in cases where the triple data set already contains document relevance assessments, however, in practice this is unlikely.
[48] В качестве модели машинного обучения, реализующей функцию обработки векторного представления поисковых запросов и текстов документов, может быть использована модель из семейства BERT-подобных моделей, например, xlm-roberta-base. В одном частном варианте осуществления, при реализации заявленного решения, МО являлась мультиязычная модель, например multilingual-e5-large. Модель обучена на источниках из разных доменов: Википедия, книги, новости, мультиязычный Common Crawl и т.д.[48] A model from the BERT-like model family, such as xlm-roberta-base, can be used as a machine learning model implementing the function of processing the vector representation of search queries and document texts. In one particular embodiment, when implementing the claimed solution, the ML was a multilingual model, such as multilingual-e5-large. The model was trained on sources from different domains: Wikipedia, books, news, multilingual Common Crawl, etc.
[49] В еще одном частном варианте осуществления модель так же была дообучена на узкоспециализированных доменных текстах, с использованием различных методов аугментации текста, в частности аугментации синонимами, и техники GPL.[49] In another particular embodiment, the model was also further trained on highly specialized domain texts, using various text augmentation methods, in particular synonym augmentation, and GPL techniques.
[50] Всего в датасете для дообучения содержалось около 160000 наборов данных, состоящих из пятерок (текст запроса, текст релевантного документа (позитивный пример), оценка релевантности позитивного примера, текст нерелевантного документа (негативный пример), оценка релевантности негативного примера).[50] In total, the dataset for additional training contained about 160,000 data sets consisting of quintuples (query text, relevant document text (positive example), positive example relevance score, irrelevant document text (negative example), negative example relevance score).
[51] Пример аугментированного текста:[51] Example of augmented text:
Исходный текст: создать вмSource text: create vm
Варианты аугментированного текста: создать виртуалку, создать ECS, создать виртуальный сервер и т.п.Augmented text options: create a virtual machine, create an ECS, create a virtual server, etc.
[52] Для получения нейросетевой выдачи, в модуле 104 осуществляется сравнение расстояний между пользовательским запросом в виде вектора и документами базы документов 105, также представленных в виде векторов.[52] To obtain neural network output, module 104 compares the distances between the user query in the form of a vector and the documents of the document base 105, also presented in the form of vectors.
[53] Векторная база данных 105 используется для хранения и обработки векторной информации, полученной от модуля 103. Указанная база данных 105 обеспечивает быстрый и эффективный поиск по векторам, поддерживает операции сравнения и кластеризации, а также обеспечивает возможность масштабирования и расширения с учетом потребностей системы поиска данных (поисковая система).[53] Vector database 105 is used to store and process vector information received from module 103. Said database 105 provides fast and efficient search by vectors, supports comparison and clustering operations, and provides the ability to scale and expand taking into account the needs of the data retrieval system (search engine).
[54] Модуль ранжирования 106 может быть реализован на базе вычислительного устройства и предназначен для оценки релевантности текстовых последовательностей.[54] The ranking module 106 can be implemented on the basis of a computing device and is intended to evaluate the relevance of text sequences.
[55] Так, модуль 106 выполняет процесс ранжирования результатов поиска в соответствии с запросом пользователя среди наборов результатов поиска, полученных от модулей 102 и 104. Пары текстовых последовательностей поступают на вход модулю 106, где каждая пара включает в себя поисковый запрос и потенциально релевантный документ из базы данных. Модуль 106 затем конвертирует эту пару в вещественное число, которое отражает степень релевантности документа к запросу. Путем сравнения этих чисел модуль определяет порядок ранжирования документов, что позволяет представить пользователю наиболее релевантную информацию в ответ на его запрос.[55] Thus, module 106 performs the process of ranking search results in accordance with a user query among the sets of search results received from modules 102 and 104. Pairs of text sequences are input to module 106, where each pair includes a search query and a potentially relevant document from the database. Module 106 then converts this pair into a real number that reflects the degree of relevance of the document to the query. By comparing these numbers, the module determines the ranking order of the documents, which allows the user to be presented with the most relevant information in response to his query.
[56] Рассмотрим более подробно принцип работы модуля 106.[56] Let us consider in more detail the operating principle of module 106.
[57] После получения двух выдач (семантической и полнотекстовой) из модулей семантического поиска 104 и полнотекстового поиска 102, смешанная выдача подается в модуль 106. В одном частном варианте осуществления, модуль 106 может быть реализован на базе нейронной сети, такой как нейронная сеть для ранжирования: BERT-подобные модели, например, bert, roberta и т.д., например, bert-multilingual-passage-reranking-msmarco. Модель получает на вход пару поисковый запрос и документ-кандидат, на выходе получаем вещественную оценку (от -10 до 10, больше - лучше). После получения оценок ранжирования для каждого элемента смешанной выдачи, производится сортировка по оценке ранжирования по убыванию.[57] After receiving two outputs (semantic and full-text) from the semantic search 104 and full-text search 102 modules, the mixed output is fed to module 106. In one particular embodiment, module 106 may be implemented based on a neural network, such as a neural network for ranking: BERT-like models, for example, bert, roberta, etc., for example, bert-multilingual-passage-reranking-msmarco. The model receives a pair of a search query and a candidate document as input, and receives a real score (from -10 to 10, more is better) as output. After receiving ranking scores for each element of the mixed output, sorting is performed by the ranking score in descending order.
[58] Стоит отметить, что указанная модель ранжирования, в еще одном частном варианте осуществления, дообучается на наборе данных, содержащем доменно-специфичные термины и синонимы к указанным терминам. Указанный процесс позволяет нивелировать множественные значения одного и того же термина. Так, у одного и того же термина может быть несколько синонимов, что, при использовании стандартной модели ранжирования, приведет к некорректной оценке результатов поискового запроса. Следовательно, для повышения полноты поисковой выдачи модель ранжирования дообучается синонимичными понятиями.[58] It is worth noting that the said ranking model, in another particular embodiment, is further trained on a data set containing domain-specific terms and synonyms for the said terms. The said process allows for the leveling of multiple meanings of the same term. Thus, the same term may have several synonyms, which, when using the standard ranking model, will lead to an incorrect evaluation of the search query results. Consequently, to increase the completeness of the search results, the ranking model is further trained on synonymous concepts.
[59] Для этого так же используется словарь синонимов для конкретной доменно-специфичной области. В заявленном техническом решении модель была дообучена на асессорской разметке, состоящей из приблизительно 5000 троек (поисковый запрос, документ, оценка релевантности).[59] For this purpose, a dictionary of synonyms for a specific domain-specific area is also used. In the declared technical solution, the model was further trained on assessor markup consisting of approximately 5,000 triplets (search query, document, relevance assessment).
[60] Модуль 107 может быть реализован на базе генеративной нейронной сети и предназначен для формирования генеративного результата поискового запроса.[60] Module 107 can be implemented on the basis of a generative neural network and is intended to form a generative result of a search query.
[61] Модуль 107 отвечает за генерацию окончательного ответа на основе пользовательского запроса и релевантных к нему документов из базы знаний, полученных от других модулей. Модуль 107 преобразует полученные данные в окончательный ответ на запрос пользователя в виде текстовой последовательности.[61] Module 107 is responsible for generating the final response based on the user's query and relevant documents from the knowledge base received from other modules. Module 107 converts the received data into a final response to the user's query in the form of a text sequence.
[62] Так, в одном частном варианте реализации, модуль 107 может быть реализован на базе модели типа LLM, которая запромптирована (дообучена посредством текстовых подсказок) отвечать на пользовательский запрос, опираясь на самые релевантные запросу документы. Так, в еще одном частном варианте осуществления модель может представлять собой модель машинного обучения GigaChat, но очевидно, что могут применяться и другие модели (YaGPT, ChatGPT, open-source LLM).[62] Thus, in one particular embodiment, module 107 can be implemented on the basis of a model of the LLM type, which is pre-trained (additionally trained via text prompts) to respond to a user request based on the documents most relevant to the request. Thus, in another particular embodiment, the model can be the GigaChat machine learning model, but obviously other models can also be used (YaGPT, ChatGPT, open-source LLM).
[63] Пример дообучения модели посредством текстовых подсказок предобученных языковых моделей машинного обучения может выглядеть следующим образом: «Ваша роль - выступать в качестве системы информационного поиска. Вам будет задан вопрос, а также предоставлены релевантные отрывки из различных документов. Ваша задача - сформировать короткий и информативный ответ (не более 150 слов), основанный исключительно на представленных отрывках. Обязательно использовать информацию только из данных отрывков. Важно соблюдать нейтральный и объективный тон, а также избегать повторения текста. В конце формируйте окончательный ответ ("FINAL ANSWER"). Не пытайтесь изобрести ответ. Отвечайте исключительно на русском языке, за исключением специфических терминов. Если представленные документы не содержат информации, достаточной для формирования ответа, скажите: "Я не могу ответить на Ваш вопрос, используя информацию из предоставленной документации. Попробуйте переформулировать вопрос." Если документ содержит информацию, относящуюся к запросу, но запрос не предполагает прямого ответа, то просто перескажите содержание релевантного документа.».[63] An example of additional training of the model using text cues from pre-trained language machine learning models might look like this: “Your role is to act as an information retrieval system. You will be asked a question and provided with relevant excerpts from various documents. Your task is to form a short and informative answer (no more than 150 words) based solely on the presented excerpts. Be sure to use information only from these excerpts. It is important to maintain a neutral and objective tone and to avoid repetition of text. At the end, form a final answer (“FINAL ANSWER”). Do not try to invent an answer. Answer exclusively in Russian, with the exception of specific terms. If the presented documents do not contain sufficient information to form an answer, say: “I cannot answer your question using the information in the provided documentation. Try to rephrase the question.” If the document contains information relevant to the query, but the query does not imply a direct answer, then simply restate the content of the relevant document.”
[64] Соответственно, на основе результатов поиска, представленных в модуль 107 и предварительного дообучения текстовой подсказкой, модуль 107 предоставит короткий и информативный ответ на основе документов, содержащихся в выборке, т.е. выполнит объединение наиболее релевантных частей из разных документов в единый ответ (генерация ответа).[64] Accordingly, based on the search results presented to module 107 and preliminary training with text prompts, module 107 will provide a short and informative answer based on the documents contained in the sample, i.e. it will combine the most relevant parts from different documents into a single answer (answer generation).
[65] Благодаря осуществлению указанной системы 100 обеспечивается повышение полноты поисковой выдачи на поисковый запрос, содержащий доменно-специфичные термины.[65] By implementing the said system 100, an increase in the completeness of search results for a search query containing domain-specific terms is ensured.
[66] Рассмотрим метрики качества системы:[66] Let's consider the system quality metrics:
[67] Как видно из Таблицы 1, реализация заявленной технической системы обработки поисковых запросов, обученной на поиск релевантных документов с учетом доменно-специфических терминов, обладает более высокой точностью нахождения релевантных документов в общем массиве документов, чем существующие системы поиска. Стоит отметить, что параметр точности, приведенных в Таблице 1 характеризует процент попадания релевантных поисковому запросу документов в результат поисковой выдачи.[67] As can be seen from Table 1, the implementation of the declared technical system for processing search queries, trained to search for relevant documents taking into account domain-specific terms, has a higher accuracy of finding relevant documents in the general array of documents than existing search systems. It is worth noting that the accuracy parameter given in Table 1 characterizes the percentage of documents relevant to the search query that are included in the search results.
[68] На Фиг. 2 представлена блок схема способа 200 обработки поисковых запросов, выполняемого по меньшей мере одной поисковой системой и/или системой 100, которая является частью поисковой системы. Указанный способ 200 раскрыт поэтапно более подробно ниже. Указанный способ 200 заключается в выполнении этапов, направленных на обработку различных цифровых данных, таких как текстовые данные. Обработка, как правило, выполняется с помощью системы, которая может представлять, например, сервер, компьютер, мобильное устройство, вычислительное устройство и т.д, дополненное аппаратными и/или программно-аппаратными блоками, например, модулями системы 100, реализующими настоящий способ 200. Как указывалось, выше, более подробно элементы системы раскрыты на Фиг. 3.[68] Fig. 2 shows a block diagram of a method 200 for processing search queries performed by at least one search engine and/or a system 100 that is part of a search engine. Said method 200 is disclosed step by step in more detail below. Said method 200 consists of performing steps aimed at processing various digital data, such as text data. The processing is typically performed using a system that can represent, for example, a server, a computer, a mobile device, a computing device, etc., supplemented by hardware and/or software and hardware units, for example, modules of the system 100 that implement the present method 200. As indicated above, the elements of the system are disclosed in more detail in Fig. 3.
[69] На этапе 201 система получает получают поисковый запрос от пользователя. Указанный этап может выполняться модулем 101.[69] At step 201, the system receives a search query from the user. This step may be performed by module 101.
[70] Так, на указанном этапе 202, система получает, например, с помощью интерфейса взаимодействия с пользователем, пользовательский запрос. Пользовательский запрос может быть получен в текстовом виде, например, через сеть связи, такую как глобальная или локальная сеть связи. В одном частном варианте осуществления текстовый запрос содержит доменно-специфичные термины. В еще одном частном варианте осуществления, поисковый запрос может быть получен посредством межмашинного взаимодействия, например, от системы предприятия и/или компании.[70] Thus, at the indicated step 202, the system receives, for example, via a user interaction interface, a user query. The user query may be received in text form, for example, via a communication network, such as a global or local communication network. In one particular embodiment, the text query contains domain-specific terms. In another particular embodiment, the search query may be received via machine-to-machine interaction, for example from an enterprise and/or company system.
[71] На этапе 202 система осуществляет полнотекстовый поиск документов, выполняющийся модулем полнотекстового поиска 102, на основе запроса, полученного на этапе 201 и переданного модулем взаимодействия 101 в модуль 102.[71] At step 202, the system performs a full-text search of documents, performed by the full-text search module 102, based on the request received at step 201 and transmitted by the interaction module 101 to the module 102.
[72] Как указывалось выше, полнотекстовый поиск может выполняться алгоритмом ВМ25 в сочетании с набором данных, содержащим доменно-специфические термины и синонимы к указанным терминам (словарь синонимов) для улучшения эффективности поиска.[72] As mentioned above, full-text search can be performed by the BM25 algorithm in combination with a dataset containing domain-specific terms and synonyms for the specified terms (synonym dictionary) to improve the search efficiency.
[73] Для выполнения полнотекстового поиска осуществляется работа со структурой данных обратный индекс, которая представляет из себя набор ключей и значений, где ключом является слово, а значением/-ями - индексы документов, в котором/-ых оно встречается. Для ранжирования документов-кандидатов из обратного индекса могут использоваться различные функции, например, TF-IDF, ВМ25 и т.д. При использовании словаря синонимов (набора данных, содержащего доменно-специфичных терминов и синонимом к указанным терминам) обеспечивается возможность добавлять в обратный индекс синонимичные термины и привязывать к ним релевантные документы. Процесс формирования набора данных, содержащего доменно-специфичные термины и синонимы к указанным терминам более подробно раскрыт ниже.[73] To perform a full-text search, work is carried out with a reverse index data structure, which is a set of keys and values, where the key is a word, and the value/-s are the indices of documents in which it occurs. Various functions can be used to rank candidate documents from the reverse index, for example, TF-IDF, BM25, etc. When using a synonym dictionary (a data set containing domain-specific terms and synonyms for the specified terms), it is possible to add synonymous terms to the reverse index and link relevant documents to them. The process of forming a data set containing domain-specific terms and synonyms for the specified terms is described in more detail below.
[74] Результатом выполнения этапа 202 является набор релевантных результатов поискового запроса.[74] The result of performing step 202 is a set of relevant search query results.
[75] На этапе 203 система формирует первый набор результатов поиска.[75] At step 203, the system generates a first set of search results.
[76] Указанный набор формируется на основе результатов поиска, полученных на этапе 202.[76] The specified set is formed based on the search results obtained at step 202.
[77] В одном частном варианте осуществления, первый набор результатов поиска может быть отправлен в модуль взаимодействия 101 для дальнейшей агрегации и обработке.[77] In one particular embodiment, the first set of search results may be sent to interaction module 101 for further aggregation and processing.
[78] Первый набор результатов поиска содержит результаты полнотекстового поиска.[78] The first set of search results contains the results of the full-text search.
[79] Далее, способ 200 переходит к этапу 204, с помощью модуля взаимодействия 101 передавая первый набор результатов поиска в модуль токенизации и векторизации 103.[79] Next, the method 200 proceeds to step 204, using the interaction module 101 to transmit the first set of search results to the tokenization and vectorization module 103.
[80] На указанном этапе 204 осуществляется токенизация и векторизация поискового запроса модулем 103 с последующей передачей результатов векторизации в векторную БД 105 под хранение и оперирование поиском.[80] At the specified stage 204, tokenization and vectorization of the search query is carried out by module 103, with subsequent transfer of the vectorization results to vector DB 105 for storage and search operation.
[81] Так, токенизация и векторизация может выполняться посредством моделей для токенизации и детокенизации текста, векторизации токенизированного текста и преобразования токенов в текст, например, одной или несколькими моделями машинного обучения для преобразования текстовой информации в векторную форму, например, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 и другие.[81] Thus, tokenization and vectorization can be performed by models for tokenization and detokenization of text, vectorization of tokenized text and transformation of tokens into text, for example, by one or more machine learning models for transformation of text information into vector form, for example, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 and others.
[82] В еще одном частном варианте осуществления, токенизация и векторизация текста может выполняться с помощью двунаправленного кодирования для обработки и анализа текстовых последовательностей, что обеспечивает возможность извлечения полезных признаков из данных и преобразования их в векторное пространство, которое затем может быть использовано для более сложных операций, таких как сравнение и кластеризация.[82] In another particular embodiment, tokenization and vectorization of text may be performed using bidirectional encoding to process and analyze text sequences, which makes it possible to extract useful features from the data and transform them into a vector space, which can then be used for more complex operations such as comparison and clustering.
[83] На этапе 205 осуществляют обработку векторного представления поискового запроса, полученного на этапе 204 и переданного модулем взаимодействия 101 в модуль семантического поиска 104, с помощью модели машинного обучения на базе нейронной сети, обученной на семантический поиск документов, причем в ходе обучения осуществляют: формирование набора данных, содержащего доменно-специфические термины и синонимы к указанным терминам; создание неразмеченного набора данных из доменно-специфичного корпуса текстов; аугментацию неразмеченного набора данных посредством замены доменно-специфичных терминов их синонимами; обучение модели машинного обучения на аугментированном неразмеченном наборе данных.[83] At step 205, the vector representation of the search query obtained at step 204 and transmitted by the interaction module 101 to the semantic search module 104 is processed using a machine learning model based on a neural network trained for semantic search of documents, wherein during the training the following is performed: forming a data set containing domain-specific terms and synonyms for the specified terms; creating an unlabeled data set from a domain-specific corpus of texts; augmenting the unlabeled data set by replacing domain-specific terms with their synonyms; training the machine learning model on the augmented unlabeled data set.
[84] Рассмотрим более подробно процесс обучения модели машинного обучения модуля 104.[84] Let us consider in more detail the process of training the machine learning model of module 104.
[85] Для формирования набора данных, содержащих доменно-специфичные термины и синонимы к указанным терминам, на первом шаге осуществляют выделение наиболее важных доменно-специфичных терминов.[85] To form a data set containing domain-specific terms and synonyms for these terms, the first step is to identify the most important domain-specific terms.
[86] Так, указанный шаг может выполняться, например, посредством анализа данных корпорации и выделения наиболее часто встречающихся терминов. В еще одном частном варианте осуществления, такие термины могут быть очищены от терминов, не несущих смысловую нагрузку. Так, например, в области облачных технологий могут быть выделены такие термины как: виртуальная машина, фаервол, оркестратор контейнеров и т.д. В еще одном частном варианте осуществления, набор данных может формироваться посредством сопоставления слов, применяемых в конкретной области техники со словарем русского языка и выделением слов, которых там нет и дальнейшей проверке таких слов на содержание смысловой нагрузки (проведение семантического анализа). Также, сформированный набор может быть проверен с помощью экспертной оценки.[86] Thus, the specified step can be performed, for example, by analyzing corporate data and identifying the most frequently encountered terms. In another particular embodiment, such terms can be cleared of terms that do not carry a semantic load. Thus, for example, in the field of cloud technologies, such terms as virtual machine, firewall, container orchestrator, etc. can be identified. In another particular embodiment, a data set can be formed by comparing words used in a specific field of technology with a dictionary of the Russian language and identifying words that are not there and then checking such words for semantic load (conducting semantic analysis). Also, the formed set can be checked using an expert assessment.
[87] Далее, осуществляется составление списка синонимов к терминам (слова, словосочетания), например: Elastic Cloud Server, ECS, виртуальный сервер, Виртуальная машина, виртуалка, ВМ, VM; email, электронная почта, E-mail, e-mail, имейл, емейл, имеил, емеил; WAF, Web application firewall, файервол, межсетевой экран.[87] Next, a list of synonyms for the terms (words, phrases) is compiled, for example: Elastic Cloud Server, ECS, virtual server, Virtual machine, virtual machine, VM, VM; email, electronic mail, E-mail, e-mail, email, email, email, email; WAF, Web application firewall, firewall, firewall.
[88] Таким образом, формируется набор данных, содержащий доменно-специфичные термины и синонимы к указанным терминам (словарь синонимов).[88] In this way, a data set is formed containing domain-specific terms and synonyms for the specified terms (a dictionary of synonyms).
[89] Пример словаря синонимов:[89] Example of a dictionary of synonyms:
["Elastic Cloud Server, ECS, виртуальный сервер, Виртуальная машина, виртуалка, ВМ, VM",["Elastic Cloud Server, ECS, virtual server, Virtual machine, virtual machine, VM, VM",
"балансер, balancer, балансировщик","balancer, balancer, balancer",
"млспейс, mlspace, мл спейс, ml space","mlspace, mlspace, ml space, ml space",
"postgresql, PSQL, postgres, постгрес, PostgreSQL","postgresql, PSQL, postgres, postgres, PostgreSQL",
"email, электронная почта, E-mail, e-mail, имейл, емейл, имеил, емеил","email, email, E-mail, e-mail, email, email, email, email",
"Инициализация, Активация, Инициация, Инициировать","Initialization, Activation, Initiation, Initiate",
"Каталог, Папка, Директория","Directory, Folder, Directory",
"Распределенная атака Отказ в обслуживании, ДДоС, ДДоС-атака, DDoS","Distributed Denial of Service Attack, DDoS, DDoS attack, DDoS",
"Атака Отказ в обслуживании, ДоС, ДоС-атака, DoS","Denial of Service Attack, DoS, DoS attack, DoS",
"Пространство имен, Namespace, Неймспейс","Namespace, Namespace, Namespace",
"Эндпоинт, endpoint, эндпойнт","Endpoint, endpoint, endpoint",
"Рабочий узел, Воркер-нода, Воркер, Воркер-узел","Worker node, Worker node, Worker, Worker node",
"Мастер-узел, Мастер, Мастер-нода"]"Master Node, Master, Master Node"]
[90] Как указывалось выше, словарь синонимов позволяет учитывать вхождения синонимичных терминов в документах, путем их добавления в качестве ключей в обратный индекс. Указанный словарь синонимов в дальнейшем может применяться как в алгоритмах полнотекстового поиска, так и в алгоритмах ранжирования. В одном частном варианте осуществления, указанный сформированный набор может быть добавлен в алгоритм полнотекстового поиска по запросам с всевозможными подстановками (заменами) синонимов, например, следующим образом: Создать вм → создать, вм, виртуальная машина, виртуальный сервер, vm.[90] As indicated above, the dictionary of synonyms allows for the occurrence of synonymous terms in documents to be taken into account by adding them as keys to the inverse index. The specified dictionary of synonyms can then be used in both full-text search algorithms and ranking algorithms. In one particular embodiment, the specified generated set can be added to the full-text search algorithm for queries with all sorts of substitutions (replacements) of synonyms, for example, as follows: Create vm → create, vm, virtual machine, virtual server, vm.
[91] Далее, для обучения модели машинного обучения на семантический поиск документов, осуществляется создание неразмеченного набора данных из доменно-специфичного корпуса текстов.[91] Next, to train the machine learning model for semantic document retrieval, an unlabeled dataset is created from a domain-specific text corpus.
[92] На указанном шаге осуществляется аугментация неразмеченного набора данных, получившегося на предыдущих шагах.[92] At this step, the unlabeled dataset obtained in the previous steps is augmented.
[93] Так, искусственное размножение данных (аугментация) может осуществляться, например, с помощью замены синонимами доменно-специфичных терминов (замена термина в тексте на синоним).[93] Thus, artificial data reproduction (augmentation) can be carried out, for example, by replacing domain-specific terms with synonyms (replacing a term in the text with a synonym).
[94] Таким образом, получается аугментированный датасет, содержащий доменно-специфичные термины.[94] This results in an augmented dataset containing domain-specific terms.
[95] Пример искусственного расширения датасета:[95] Example of artificial expansion of a dataset:
Исходный текст: создать вмSource text: create vm
Варианты аугментированного текста: создать виртуалку, создать ECS, создать виртуальный сервер и т.п.Augmented text options: create a virtual machine, create an ECS, create a virtual server, etc.
[96] Далее, выполняется обучение модели семантического поиска на неразмеченных данных. Обучение может выполняться, например, с помощью техники GPL с искусственным расширением датасета синонимами (замена на синоним).[96] Next, the semantic search model is trained on unlabeled data. Training can be performed, for example, using the GPL technique with artificial expansion of the dataset with synonyms (replacement with a synonym).
[97] В процессе обучения осуществляется генерация поисковых запросов к набору данных с помощью больших языковых моделей (LLM); генерация сложных негативных примеров имеющейся системой поиска; получение псевдометок релевантности поискового запроса исходному тексту и негативным примерам, например, с помощью модели ранжирования; составление наборов данных для обучения, таких как пятерки (поисковый запрос; исходный текст, к которому генерировался запрос, набор сложных негативных примеров, псевдометки релевантности, оценки релевантности примеров); обучение модели DPR на полученном наборе данных.[97] The training process involves generating search queries to a data set using large language models (LLM); generating complex negative examples using an existing search system; obtaining pseudo-labels of the relevance of a search query to the original text and negative examples, for example, using a ranking model; compiling data sets for training, such as fives (search query; original text for which the query was generated, a set of complex negative examples, pseudo-labels of relevance, relevance scores of examples); training a DPR model on the resulting data set.
[98] Таким образом, на этапе 205 осуществляется семантический поиск документов модулем 104 с помощью модели машинного обучения на базе нейронной сети, обученной на узкоспециализированных доменных текстах, с использованием различных методов аугментации текста, в частности аугментации синонимами, и техники GPL. Всего в датасете для дообучения применялось около 160000 троек (поисковый запрос, документ, псевдооценка релевантности).[98] Thus, at step 205, semantic search of documents is performed by module 104 using a machine learning model based on a neural network trained on highly specialized domain texts, using various text augmentation methods, in particular augmentation with synonyms, and the GPL technique. In total, about 160,000 triplets (search query, document, pseudo-relevance score) were used in the dataset for additional training.
[99] На этапе 206 формируют второй набор результатов поиска на основе документов, полученных на этапе 205.[99] At step 206, a second set of search results is generated based on the documents obtained at step 205.
[100] Так, указанный набор является результатом поисковой выдачи модели семантического поиска, примененный к векторному представлению поискового запроса. Указанный второй набор результатов является независимым. Т.е. семантический поиск проводится без учета полнотекстового поиска.[100] Thus, the specified set is the result of the search output of the semantic search model applied to the vector representation of the search query. The specified second set of results is independent. That is, the semantic search is carried out without taking into account the full-text search.
[101] Полученный второй набор направляется в модуль взаимодействия 101 для агрегации.[101] The resulting second set is sent to interaction module 101 for aggregation.
[102] На этапе 207, например, посредством модуля взаимодействия 101, осуществляется объединение первого и второго набора результатов поиска (203+206), с последующей передачей объединенного набора модулем взаимодействия 101 в модуль ранжирования 106.[102] At step 207, for example, by means of the interaction module 101, the first and second sets of search results (203+206) are combined, with subsequent transmission of the combined set by the interaction module 101 to the ranking module 106.
[103] Так, в одном частном варианте осуществления, позиционное расположение каждого результата поиска из каждого набора в объединенном наборе данных выбирается случайным образом. Указанная особенность необходима для того, чтобы при ранжировании результатов, система не отдавала предпочтение наиболее релевантным результатам из каждого типа поиска (полнотекстовый и семантический).[103] Thus, in one particular embodiment, the positional placement of each search result from each set in the combined data set is chosen randomly. This feature is necessary so that when ranking the results, the system does not give preference to the most relevant results from each type of search (full-text and semantic).
[104] На этапе 208 осуществляют ранжирование модулем 106 объединенного первого и второго набора результатов поиска, причем, в ходе ранжирования определяют релевантность каждого документа относительно поискового запроса.[104] At step 208, the module 106 ranks the combined first and second sets of search results, and during the ranking, the relevance of each document with respect to the search query is determined.
[105] Так, на этапе 208 после получения двух выдач (семантической и полнотекстовой), смешанная выдача подается в модуль ранжирования 106, содержащий нейросеть для ранжирования (BERT-подобные модели, например, bert, roberta и т.д.), например, bert-multilingual-passage-reranking-msmarco. Модель получает на вход пару поисковый запрос и документ-кандидат, на выходе получаем вещественную оценку (от -10 до 10, больше - лучше). После получения оценок ранжирования для каждого элемента смешанной выдачи, производится сортировка по оценке ранжирования по убыванию.[105] Thus, at step 208, after receiving two outputs (semantic and full-text), the mixed output is fed to the ranking module 106, which contains a neural network for ranking (BERT-like models, for example, bert, roberta, etc.), for example, bert-multilingual-passage-reranking-msmarco. The model receives a pair of a search query and a candidate document as input, and at the output we receive a real score (from -10 to 10, more is better). After receiving ranking scores for each element of the mixed output, sorting is performed by the ranking score in descending order.
[106] Полученные оценки релевантности отправляются в модуль взаимодействия 101.[106] The resulting relevance scores are sent to interaction module 101.
[107] Далее, модуль 101 выполняет сортировку документов из смешанной выдачи по убыванию оценок релевантности. Первые K документов, например, 6 документов, 10 документов и т.д., из отсортированной смешанной выдачи отправляются вместе с пользовательским запросом в виде текстовой последовательности в модуль генерации ответа 107.[107] Next, module 101 sorts the documents from the mixed output in descending order of relevance scores. The first K documents, for example, 6 documents, 10 documents, etc., from the sorted mixed output are sent along with the user query as a text sequence to response generation module 107.
[108] На этапе 209, на основе документов, отобранных модулем взаимодействия 101, формируется генеративный результат поискового запроса.[108] At step 209, based on the documents selected by the interaction module 101, a generative result of the search query is formed.
[109] На указанном этапе 209 полученные данные преобразуются в окончательный ответ на запрос пользователя в виде текстовой последовательности, например, посредством генерации ответа на пользовательский запрос.[109] At said step 209, the received data is converted into a final response to the user's request in the form of a text sequence, for example, by generating a response to the user's request.
[110] Так, в одном частном варианте реализации, модуль генерации ответа 107 может быть реализован на базе модели типа LLM, которая запромптирована (дообучена посредством текстовых подсказок) отвечать на пользовательский запрос, опираясь на самые релевантные запросу документы. Так, в еще одном частном варианте осуществления модель может представлять собой модель машинного обучения GigaChat, но очевидно, что могут применяться и другие модели (YaGPT, ChatGPT, open-source LLM).[110] Thus, in one particular embodiment, the response generation module 107 can be implemented on the basis of a model of the LLM type, which is programmed (trained further by means of text prompts) to respond to a user request, based on the documents most relevant to the request. Thus, in another particular embodiment, the model can be the GigaChat machine learning model, but obviously other models can also be used (YaGPT, ChatGPT, open-source LLM).
[111] Генеративный результат представляет собой обобщение, например, нескольких релевантных источников и генерации ответа, содержащего наиболее релевантные ответы, например, в виде сжатого изложения указанных источников с добавлением релевантных документов.[111] The generative result is a summary of, for example, several relevant sources and the generation of a response containing the most relevant answers, for example in the form of a condensed summary of the specified sources with the addition of relevant documents.
[112] Далее, на этапе 210 сгенерированный результат поискового запроса отправляется на пользовательское устройство.[112] Next, at step 210, the generated search query result is sent to the user device.
[113] Таким образом, в вышеприведенных материалах был описан способ распознавания данных, содержащих коммерческую тайну, в текстовых документах.[113] Thus, the above materials described a method for recognizing data containing commercial secrets in text documents.
[114] На Фиг. 3 представлена система 300, реализующая этапы заявленного способа 200 и реализующая элементы системы 100.[114] Fig. 3 shows a system 300 that implements the steps of the claimed method 200 and implements the elements of the system 100.
[115] В общем случае система 300 содержит такие компоненты, как: один или более процессоров 301, по меньшей мере одну память 302, средство хранения данных 303, интерфейсы ввода/вывода 304, средство В/В 305, средство сетевого взаимодействия 306, которые объединяются посредством универсальной шины.[115] In general, the system 300 comprises components such as: one or more processors 301, at least one memory 302, data storage means 303, input/output interfaces 304, I/O means 305, network interaction means 306, which are connected via a universal bus.
[116] Процессор 301 выполняет основные вычислительные операции, необходимые для обработки данных при выполнении способа 200. Процессор 301 исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти 302.[116] The processor 301 performs the basic computing operations necessary for processing the data when performing the method 200. The processor 301 executes the necessary machine-readable instructions contained in the RAM 302.
[117] Память 302, как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.[117] Memory 302 is typically in the form of RAM and contains the necessary software logic to provide the required functionality.
[118] Средство хранения данных 303 может выполняться в виде HDD, SSD дисков, рейд массива, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средства 303 позволяют выполнять долгосрочное хранение различного вида информации, например, первый и второй набор результатов поиска и т.п.[118] Data storage means 303 can be implemented in the form of HDD, SSD disks, RAID array, flash memory, optical storage devices (CD, DVD, MD, Blue-Ray disks), etc. Means 303 allow long-term storage of various types of information, for example, the first and second sets of search results, etc.
[119] Для организации работы компонентов системы 300 и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В 304. Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[119] To organize the operation of the components of system 300 and to organize the operation of external connected devices, various types of I/O interfaces 304 are used. The choice of the corresponding interfaces depends on the specific design of the computing device, which may include, but are not limited to: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.
[120] Выбор интерфейсов 304 зависит от конкретного исполнения системы 300, которая может быть реализована на базе широко класса устройств, например, персональный компьютер, мейнфрейм, ноутбук, серверный кластер, тонкий клиент, смартфон, сервер и т.п.[120] The selection of interfaces 304 depends on the specific implementation of system 300, which can be implemented on the basis of a wide range of devices, for example, a personal computer, mainframe, laptop, server cluster, thin client, smartphone, server, etc.
[121] В качестве средств В/В данных 305 может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), монитор, сенсорный дисплей, тач-пад, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[121] The following may be used as I/O data means 305: keyboard, joystick, display (touch display), monitor, touch display, touchpad, mouse, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality means, optical sensors, tablet, light indicators, projector, camera, biometric identification means (retina scanner, fingerprint scanner, voice recognition module), etc.
[122] Средства сетевого взаимодействия 306 выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п.С помощью средств 606 обеспечивается организация обмена данными между, например, системой 300, представленной в виде сервера и вычислительным устройством пользователя, на котором могут отображаться полученные данные (обезличенный текстовый документ) по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.[122] Network interaction means 306 are selected from devices that provide network reception and transmission of data, for example, an Ethernet card, a WLAN/Wi-Fi module, a Bluetooth module, a BLE module, an NFC module, IrDa, an RFID module, a GSM modem, etc. With the help of means 606, the organization of data exchange is ensured between, for example, a system 300, presented in the form of a server and a user's computing device, on which the received data (anonymized text document) can be displayed via a wired or wireless data transmission channel, for example, a WAN, PAN, LAN, Intranet, Internet, WLAN, WMAN or GSM.
[123] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области.[123] The submitted application materials disclose preferred examples of the implementation of the technical solution and should not be interpreted as limiting other, particular examples of its implementation that do not go beyond the scope of the requested legal protection, which are obvious to specialists in the relevant field.
Claims (36)
Publications (1)
Publication Number | Publication Date |
---|---|
RU2834217C1 true RU2834217C1 (en) | 2025-02-04 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372920B2 (en) * | 2012-08-08 | 2016-06-21 | Google Inc. | Identifying textual terms in response to a visual query |
RU2640639C2 (en) * | 2015-11-17 | 2018-01-10 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system of search query processing |
RU2670694C1 (en) * | 2017-08-28 | 2018-10-24 | Федеральное государственное бюджетное образовательное учреждение дополнительного профессионального образования "Российская медицинская академия непрерывного профессионального образования" Министерства здравоохранения Российской Федерации (ФГБОУ ДПО РМАНПО Минздрава России) | Method of obstructive resection of the small intestine with imposition of delayed anastomosis |
RU2733485C1 (en) * | 2020-02-04 | 2020-10-01 | Алексей Валерьевич Комаров | System and method of processing data for integrated assessment of scientific and technological project maturity based on the use of a set of parameters |
US11016966B2 (en) * | 2018-06-26 | 2021-05-25 | Adobe Inc. | Semantic analysis-based query result retrieval for natural language procedural queries |
US11182445B2 (en) * | 2017-08-15 | 2021-11-23 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus, server, and storage medium for recalling for search |
US11388481B2 (en) * | 2007-03-09 | 2022-07-12 | Rovi Technologies Corporation | Media content search results ranked by popularity |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11388481B2 (en) * | 2007-03-09 | 2022-07-12 | Rovi Technologies Corporation | Media content search results ranked by popularity |
US9372920B2 (en) * | 2012-08-08 | 2016-06-21 | Google Inc. | Identifying textual terms in response to a visual query |
RU2640639C2 (en) * | 2015-11-17 | 2018-01-10 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system of search query processing |
US11182445B2 (en) * | 2017-08-15 | 2021-11-23 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus, server, and storage medium for recalling for search |
RU2670694C1 (en) * | 2017-08-28 | 2018-10-24 | Федеральное государственное бюджетное образовательное учреждение дополнительного профессионального образования "Российская медицинская академия непрерывного профессионального образования" Министерства здравоохранения Российской Федерации (ФГБОУ ДПО РМАНПО Минздрава России) | Method of obstructive resection of the small intestine with imposition of delayed anastomosis |
US11016966B2 (en) * | 2018-06-26 | 2021-05-25 | Adobe Inc. | Semantic analysis-based query result retrieval for natural language procedural queries |
RU2733485C1 (en) * | 2020-02-04 | 2020-10-01 | Алексей Валерьевич Комаров | System and method of processing data for integrated assessment of scientific and technological project maturity based on the use of a set of parameters |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563141B (en) | Method and system for processing an input problem to query a database | |
US10586155B2 (en) | Clarification of submitted questions in a question and answer system | |
US10628472B2 (en) | Answering questions via a persona-based natural language processing (NLP) system | |
US9727637B2 (en) | Retrieving text from a corpus of documents in an information handling system | |
US9318027B2 (en) | Caching natural language questions and results in a question and answer system | |
US10102275B2 (en) | User interface for a query answering system | |
CN111797214A (en) | Question screening method, device, computer equipment and medium based on FAQ database | |
US9715531B2 (en) | Weighting search criteria based on similarities to an ingested corpus in a question and answer (QA) system | |
CN113988157B (en) | Semantic retrieval network training method, device, electronic equipment and storage medium | |
US11250044B2 (en) | Term-cluster knowledge graph for support domains | |
US20240095445A1 (en) | Systems and methods for language modeling with textual clincal data | |
JP2020071865A (en) | System and method for performing intelligent cross-domain search | |
US10885081B2 (en) | Systems and methods for contextual ranking of search results | |
US9684726B2 (en) | Realtime ingestion via multi-corpus knowledge base with weighting | |
US10838993B2 (en) | Augment politeness in question answer systems | |
CN111797245B (en) | Knowledge graph model-based information matching method and related device | |
US20250094460A1 (en) | Query answering method based on large model, electronic device, storage medium, and intelligent agent | |
CN114925185B (en) | Interaction method, model training method, device, equipment and medium | |
US20230418873A1 (en) | Query interpreter training with adversarial table perturbations | |
RU2834217C1 (en) | Method and system for generating response to search query | |
CN118093660A (en) | Library data processing method and device, electronic equipment and storage medium | |
US20180349358A1 (en) | Non-transitory computer-readable storage medium, information processing device, and information generation method | |
JP7566387B1 (en) | Information processing device, method, and program | |
CN116610782B (en) | Text retrieval method, device, electronic equipment and medium | |
TWI850128B (en) | A method of semantic search integrating generative ai |