WO2019172153A1 - インデックスを用いた情報検索システム及び情報検索方法 - Google Patents

インデックスを用いた情報検索システム及び情報検索方法 Download PDF

Info

Publication number
WO2019172153A1
WO2019172153A1 PCT/JP2019/008254 JP2019008254W WO2019172153A1 WO 2019172153 A1 WO2019172153 A1 WO 2019172153A1 JP 2019008254 W JP2019008254 W JP 2019008254W WO 2019172153 A1 WO2019172153 A1 WO 2019172153A1
Authority
WO
WIPO (PCT)
Prior art keywords
directed graph
search
phrase
resource
index
Prior art date
Application number
PCT/JP2019/008254
Other languages
English (en)
French (fr)
Inventor
邦裕 西村
貴司 青木
俊貴 竹内
晃一 赤部
Original Assignee
株式会社テンクー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社テンクー filed Critical 株式会社テンクー
Priority to CN201980012723.4A priority Critical patent/CN111699485A/zh
Priority to EP19763530.3A priority patent/EP3764240B1/en
Priority to KR1020207028264A priority patent/KR102453183B1/ko
Priority to US16/970,916 priority patent/US11755833B2/en
Priority to SG11202008506RA priority patent/SG11202008506RA/en
Publication of WO2019172153A1 publication Critical patent/WO2019172153A1/ja
Priority to US18/360,504 priority patent/US20230376682A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Definitions

  • the present invention relates to an information search technique, and more particularly, to an apparatus and method for creating an index for searching a database based on collected information, and a program for executing the method.
  • so-called Internet search is an information search service on a Web site for searching a huge amount of information (resources) distributed on the Internet.
  • a server program called a search engine in a service provider includes: An index search is performed based on a search query given by the user, and the search result is provided to the user.
  • a search engine visits a web page on the Internet in advance by a robot agent called a crawler, collects and analyzes information on the visited web page, Create an index to search the database.
  • search engine When a user accesses a search site via a Web browser and inputs a text (search query) to be searched, the search engine analyzes the search query, searches an index, and extracts based on a predetermined ranking algorithm. The obtained results are scored, and those sorted in the order of score are provided as search results to the user.
  • Patent Document 2 in order to obtain a highly accurate translation, the original text is divided into phrases, and a paraphrase that is paired with one or more phrases is obtained based on the paraphrase information. And a machine translation device that acquires a paraphrase lattice including a set of phrases using one or more paraphrases.
  • the information retrieval service as described above has deeply penetrated into all social activities of people, and for example, it is no exception in the medical field.
  • a medical worker such as a doctor formulates a clinical trial plan based on his / her specialized knowledge and taking into account all possible matters such as the content and significance of treatment and side effects. For this reason, medical staff need to collect various information related to the subject's illness (for example, disease name, drug name, etc.) without omission when formulating a clinical trial plan. For example, a medical worker extracts information on other clinical trials or academic papers from a database system using relevant information as a clue, and determines an implementation procedure based on the information.
  • phrase is not uniquely defined in one specific concept, and usually there are multiple phrases for one specific concept. To do.
  • a single concept can have multiple phrases, especially their synonyms and synonyms, related terms, abbreviations, and foreign languages.
  • related phrases There are many derivative words (hereinafter referred to as “related phrases”, and these are collectively referred to as “related phrases”).
  • the existing index type search engine creates an index based only on the headwords directly obtained from the collected information as described above, the search result based only on such headwords. Or if a specific word given as a search query does not exist as an entry word in the index, an alternative word that seems to be close to the specific word (for example, a correct notation for a typographical error) The search is performed only on the basis of the selection, and the range of words given based on the search query is limited.
  • Patent Document 1 is a method of performing a cross-sectional search on an index associated with an index criterion based on a given search word and providing a result thereof. Words that are only relevant to the query are only indexed, and again the range of words given based on the search query has been limited.
  • Patent Document 2 obtains a set of phrases by paraphrasing the original phrase, the obtained phrase set is simply a parameter directly corresponding to the original phrase. It only uses phrases.
  • Patent Document 2 is directed to machine translation technology, and cannot be directly applied to index creation technology used for search engines.
  • the search result when providing the search result, if the user can recognize the reason that the search result is extracted, it can be used for the next search, which is convenient.
  • the search result is not a direct hit from a phrase of the search query but a hit by the related phrase, the user needs to know what related phrase is hit.
  • an object of the present invention is to provide a technique for creating an index capable of efficiently searching collected information in an index type search engine.
  • one of the objectives of the present invention is not only the specific phrases contained in the collected resources, but also their synonyms, synonyms, related terms, abbreviations, foreign languages, and these words. It is to provide a technique for creating an index having a phrase expanded as a derived word based on a headword.
  • One of the objects of the present invention is that even if a search query from a user is composed of phrases other than the phrases included in the collected information on which the index is created, the information is effective. It is to provide a technique for allowing search and extraction to be performed.
  • one of the objects of the present invention is to provide a technique that enables the user to recognize the basis on which the result is extracted.
  • the present invention for solving the above-described problems is configured to include the following invention specific items or technical features.
  • the present invention is an apparatus for creating an index for searching a database based on a resource including a text sentence.
  • the device includes, for example, a dictionary including a plurality of phrases that are associated with each other for each specific concept, an input interface unit that receives input of the resource, and a plurality of phrases as tokens from a text sentence of the received resource.
  • a text processing unit that performs processing for cutting out, a directed graph generation unit that generates a directed graph (lattice) representing a connection relationship between the plurality of cut-out tokens according to the text sentence, and in the directed graph based on a search target phrase And when the search target phrase is found in the dictionary, based on a directed graph search unit that identifies a location where the search target term appears in the directed graph, and a plurality of tokens in the directed graph , An index indicating the association with the resource And indexing unit for forming may comprise.
  • the directed graph search unit may be configured to set at least one token in the directed graph as the search target phrase and refer to the dictionary based on the set search target phrase.
  • the directed graph generation unit may be configured to update the directed graph based on the dictionary by adding a new token based on at least one phrase associated with the search target phrase to the directed graph. .
  • the apparatus can create an index using not only the phrase included in the text sentence of the resource but also each related phrase group including the paraphrase for the phrase as a headword of the resource.
  • the device since the device proceeds with the search while updating the directed graph generated based on the text sentence, the device includes not only the direct paraphrase for the phrase included in the text sentence but also the directed graph at the time of update.
  • An indirect or derivative paraphrase for a phrase to be used can be a related phrase group.
  • the text processing unit may be configured to perform a predetermined syntax analysis based on the text sentence and cut out the plurality of words as the token. Thereby, a directed graph based on the text sentence can be generated.
  • the directed graph generation unit may be configured to generate the directed graph in which adjacent tokens of the plurality of tokens are connected by a node.
  • the directed graph may be a data structure represented by defining the token as an edge label and connecting the edges by the nodes.
  • the directed graph generation unit may be configured to connect the at least one phrase associated with the search target phrase found in the dictionary to nodes before and after the revealed location in the directed graph.
  • the directed graph search unit may be configured to search the directed graph updated by the directed graph generation unit.
  • the directed graph to be searched changes dynamically, so that not only the phrase included in the text sentence but also a new phrase that is paraphrased is further paraphrased. .
  • the directed graph search unit may search the updated directed graph so that a re-search for a token that has already been searched in the updated directed graph is avoided.
  • the directed graph may include a plurality of nodes that connect adjacent tokens among the plurality of tokens.
  • the directed graph search unit may store a node associated with the token that has been searched as a searched node, and search again for tokens connected to nodes other than the searched node.
  • the apparatus may further include a data array indicating a tree structure configured based on the plurality of phrases included in the dictionary.
  • the tree structure may be a trie tree or a prefix tree including an ordered node corresponding to each of the plurality of phrases.
  • the said directed graph search part can search the said directed graph, referring the said tree structure.
  • the directed graph search unit when the search target phrase matches at least one phrase corresponding to at least one of the ordered nodes in the tree structure, the search target phrase is revealed in the directed graph Can be judged.
  • the directed graph generation unit may update the directed graph by adding a new token based on at least one phrase in the dictionary associated with the matching search target phrase to the directed graph.
  • the index creation unit may be configured to extract an N-gram based on a plurality of tokens in the updated directed graph and create the index based on the extracted N-gram. As a result, an index in which a phrase other than the phrase included in the text of the resource is N-gram is created.
  • the index creation unit may be configured to extract a word-based N-gram (word N-gram) as the N-gram. Since the word N-gram is based on a token in the directed graph, an index suitable for a search based on a related phrase group is created.
  • word N-gram word-based N-gram
  • an index created by the above apparatus, a resource information file related to the resource associated with the index, and the index based on a search query are searched, and the search result
  • a search device or search engine comprising: a query server that specifies a predetermined resource from the resource information file based on the search information and outputs a search result indicating the specified predetermined resource.
  • the query server based on a directed graph including a predetermined related phrase related to a phrase in the predetermined resource, obtained from the specified predetermined resource, An original phrase in the predetermined resource associated with the phrase is specified.
  • the search result includes the basis phrase and the original phrase.
  • the present invention is an operation method of an apparatus for creating an index for searching a database based on a resource including a text sentence.
  • the method includes, for example, expanding a dictionary including a plurality of phrases associated with each other for each specific concept into a memory accessed by a processor of the device, and inputting the resource via an input interface unit.
  • Receiving a input performing text processing for cutting out a plurality of words as tokens from the text sentence of the received resource, and a directed graph expressing a connection relationship between the cut out tokens according to the text sentence Generating, searching the directed graph based on a search target phrase, and creating an index indicating an association with the resource based on a plurality of tokens in the directed graph.
  • Searching in the directed graph sets at least one token in the directed graph as the search target phrase, refers to the dictionary based on the set search target phrase, and the search target phrase is in the dictionary. When it is found, it may include specifying a place where the search target phrase appears in the directed graph. Further, generating the directed graph includes updating the directed graph based on the dictionary by adding a new token based on at least one phrase associated with the search target phrase to the directed graph. obtain.
  • the present invention according to still another aspect is an operating method of a search device that searches an index based on a search query and identifies at least one resource from a resource information file based on the search result.
  • the method of operation became the basis for identifying the at least one resource based on a directed graph obtained from the identified at least one resource and including a predetermined related phrase related to a phrase in the at least one resource. Identifying a base phrase and an original phrase in the at least one resource associated with the phrase, and outputting information indicating the predetermined resource and the base phrase and the original phrase as a search result. .
  • the present invention may be a computer program for causing a computing device to implement each of the above-described methods or a computer-readable recording medium in which this is recorded temporarily.
  • the term “means” does not simply mean a physical means, but includes a case where the functions of the means are realized by software. Further, the function of one means may be realized by two or more physical means, or the functions of two or more means may be realized by one physical means.
  • an index that can efficiently search collected information is created in an index type search engine. Therefore, it is possible to search for information using phrases other than the phrases included in the collected information on which the index is created.
  • the user can recognize the basis of the search result.
  • the resource hit for the search query is not a resource hit directly from the phrase of the search query but a resource hit by the related phrase, It becomes possible to recognize related phrases.
  • FIG. 1 is a block diagram showing a schematic configuration of an information search system according to an embodiment of the present invention.
  • FIG. 2 is a diagram for explaining an example of a database in a search engine according to an embodiment of the present invention.
  • FIG. 3 is a diagram for explaining an example of a dictionary in a search engine according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing a schematic configuration of an indexer of a search engine according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating an example of a text sentence input to the text processing unit of the search engine according to the embodiment of the present invention.
  • FIG. 6 is a flowchart for explaining index creation processing by the search engine according to the embodiment of the present invention.
  • FIG. 1 is a block diagram showing a schematic configuration of an information search system according to an embodiment of the present invention.
  • FIG. 2 is a diagram for explaining an example of a database in a search engine according to an embodiment of the present invention.
  • FIG. 3 is
  • FIG. 7 shows an example of a part of an initial directed graph generated by a search engine according to an embodiment of the present invention.
  • FIG. 8 is a flowchart for explaining the directed graph search / update processing by the search engine according to the embodiment of the present invention.
  • FIG. 9 is a diagram illustrating an example of a process in which a part of the directed graph is expanded by the search engine according to the embodiment of the present invention.
  • FIG. 10 is a diagram for explaining an example of a process in which a directed graph is developed by a search engine according to an embodiment of the present invention.
  • FIG. 11 is a flowchart for explaining search processing by a search engine according to an embodiment of the present invention.
  • FIG. 12A is a diagram for explaining an example of a process for specifying a search basis from a directed graph of resources searched by a search engine according to an embodiment of the present invention.
  • FIG. 12B is a diagram for explaining an example of a process for specifying a search basis from a directed graph of resources searched by a search engine according to an embodiment of the present invention.
  • FIG. 13A is a diagram showing an example of a search result screen displayed on the client in the information search system according to the embodiment of the present invention.
  • FIG. 13B is a diagram showing an example of a search result screen displayed on the client in the information search system according to the embodiment of the present invention.
  • FIG. 13C is a diagram showing an example of a search result screen displayed on the client in the information search system according to the embodiment of the present invention.
  • FIG. 14 is a diagram for explaining another example of the dictionary in the search engine according to the embodiment of the present invention.
  • FIG. 15 is a diagram for explaining an example of a trie tree in a search engine according to an embodiment of the present invention.
  • FIG. 16A is a flowchart for explaining another example of the directed graph search / update process by the search engine according to the embodiment of the present invention.
  • FIG. 16B is a flowchart for explaining another example of the directed graph search / update process by the search engine according to the embodiment of the present invention.
  • FIG. 17 is a diagram illustrating another example of a process in which a part of the directed graph is expanded by the search engine according to the embodiment of the present invention.
  • FIG. 18 is a block diagram illustrating an example of a hardware configuration of a search engine according to an embodiment of the present invention.
  • FIG. 1 is a block diagram showing a schematic configuration of an information search system according to an embodiment of the present invention.
  • the information search system 1 of this embodiment includes at least one search engine 20 and at least one client 30 that are communicably connected via a computer network 10.
  • the computer network 10 typically includes an IP-based computer network, but is not limited thereto.
  • the computer network 10 can apply any protocol network that enables inter-node communication.
  • the search engine 20 is a computer system that provides an information search service to the client 30, and may be realized by, for example, one or more general-purpose computing devices.
  • the search engine 20 is configured such that one or more CPUs (processors) on the computing device execute another search engine program according to the present embodiment on a predetermined operating system (OS), for example. Together with the wear element, it is a virtual machine that is embodied.
  • the search engine 20 may be realized by a virtualization technology.
  • a hardware configuration of a computing device in which the search engine 20 is realized is illustrated in FIG. 18, but since it is known, its details are omitted here.
  • the search engine 20 is an index type search engine, and has, for example, an index creation and update function and a database search function based on the index.
  • the search engine 20 includes, for example, a crawler 21, a dictionary 22, an indexer 23, a database 24, and a query server 25.
  • the search engine 20 is a virtual machine (search device or search engine in a narrow sense) that realizes a database search function based on an index.
  • the crawler 21 is an automatic patrol agent program for automatically collecting various resources on the Web (for example, Web pages, documents, images, programs, etc.). Specifically, the crawler 21 periodically visits a site on the Web while following links in the Web page, and collects resources in the site. For example, the crawler 21 may collect resources in a site belonging to a specific specialized field. For example, the crawler 21 may temporarily store the collected resources in a storage (not shown). In the information search system 1 of the present embodiment, a known crawler 21 can be applied, and therefore details thereof are omitted here.
  • the dictionary 22 is one or a plurality of files or tables in which a plurality of phrases about a specific concept are stored in association with each other, but is not limited thereto.
  • the dictionary 22 is configured as a static file or table, and is not resident in the memory, but dynamically as a dictionary model (for example, a neural network model) in which a phrase group relationship is constructed according to a predetermined algorithm. It may be configured.
  • a phrase refers to a word or expression composed of one word and a sequence of two or more words.
  • a plurality of phrases associated with each other shall be referred to as a related phrase group, and examples include synonyms, synonyms, related words, abbreviations, corresponding foreign languages, and derivatives based on these words.
  • the dictionary 22 is constructed manually, semi-automatically or fully automatically, for example based on available information sources. For example, in the medical field, various dictionaries provided by the National Cancer Institute (NCI) are used to construct the dictionary 22.
  • NCI National Cancer Institute
  • the dictionary 22 is referred to when an indexer 23 described later creates an index 241.
  • the indexer 23 registers the resource (for example, information about the resource) collected by the crawler 21 in the database 24, analyzes the content (typically, a text sentence) of the resource, and indexes 241 according to the analysis result. Create and update
  • the indexer 23 of this embodiment decomposes a text sentence included in a resource into several tokens, creates a directed graph (lattice) based on the tokens, and refers to the dictionary 22 according to a predetermined phrase. While searching for the directed graph, the directed graph is expanded and updated under a predetermined condition. The updated directed graph becomes a new directed graph to be searched.
  • the indexer 23 cuts out an entry word by a predetermined method (for example, N-gram method) based on the expanded directed graph, and creates and indexes the index 241 by associating it with the collected resource (indexing). / Or update. Further, the indexer 23 associates the collected resources with the created directed graph and registers them in the database 24.
  • a predetermined method for example, N-gram method
  • the database 24 stores information related to resources collected by the crawler 21 and includes an index 241 thereof. Further, the database 24 stores a directed graph used for creating the index 241.
  • FIG. 2 is a diagram for explaining an example of a database in a search engine according to an embodiment of the present invention.
  • FIG. 2A shows an example of information regarding resources.
  • the information about the resource is, for example, a structure file including a resource ID for identifying the resource, a resource name, a URL, and a directed graph ID for identifying the directed graph.
  • a structure file storing information about resources is referred to as a resource information file.
  • the index 241 is a structure file including index information created and updated by the indexer 23.
  • FIG. 2B shows an example of the index 241.
  • the index 241 has a data structure called a transposed index.
  • the index information is, for example, a headword cut out from the word sequence in the directed graph by the N-gram method.
  • a headword in the index 241 is associated with a resource (ie, resource ID), and thereby associated with an individual data set in the resource information file of the database 24.
  • the index 241 is configured as a part of the database 24. However, the index 241 is not limited to this, and may be configured separately.
  • the query server 25 accepts a search query given from the client 30, searches the index 241, extracts information related to the corresponding resource from the database 24 based on the search result, and searches this information. As a result, it is provided to the client 30.
  • the query server 25 may calculate the degree of matching between the search query and the extracted resource by a predetermined method, and may provide a search result ranking the extracted resources according to the calculation result.
  • the query server 25 directly returns the search result for the search query from the client 30 to the client 30, but the present invention is not limited to this.
  • the query server 25 passes the search result to another application program via a predetermined API (Application Program Interface), and the result of performing predetermined information processing on the search result by the other application program is sent to the client 30. You may make it return to.
  • a known query server 25 can be applied.
  • the client 30 is typically a computing device owned by a user, and may be a personal computer, for example.
  • the client 30 includes a viewer functioning as a user interface for accessing the search engine 20 via the computer network 10, for example.
  • the viewer may be a web browser, for example, but is not limited thereto.
  • the client 30 can establish a communication session with the search engine 20 via the computer network 10 by using a secure communication technology such as SSL, for example.
  • the client 30 includes one or a plurality of CPUs (processors), a memory, and the like, but since the hardware configuration is known, the details thereof are omitted here.
  • FIG. 3 is a diagram for explaining an example of a dictionary in a search engine according to an embodiment of the present invention.
  • the dictionary 22 is configured as a table that stores a plurality of phrases composed of one or a plurality of words in association with each other for each specific concept.
  • polymerase’ are registered in association with each other.
  • is a delimiter added to separate individual words in the phrase.
  • FIG. 4 is a block diagram showing a schematic configuration of an indexer of a search engine according to an embodiment of the present invention.
  • the indexer 23 of the present embodiment includes, for example, an input interface unit 231, a text processing unit 232, a directed graph generation unit 233, a directed graph search unit 234, and an index creation unit 235.
  • the input interface unit 231 functions as an interface between the crawler 21 and the text processing unit 232, for example.
  • the input interface unit 231 communicates with the crawler 21 and inputs, for example, a text sentence as shown in FIG. 5 included in the resource collected by the crawler 21 to the text processing unit 232.
  • the text processing unit 232 performs, for example, morphological analysis on the input text sentence and cuts out a plurality of tokens.
  • the text processing unit 232 can typically include a language analysis engine (not shown) corresponding to the language of each country such as Japanese or English. A known language analysis engine can be used.
  • the directed graph generation unit 233 generates a directed graph based on a plurality of tokens cut out by the text processing unit 232. Specifically, the directed graph generation unit 233 connects adjacent tokens with nodes for each of the plurality of tokens cut out by the text processing unit 232, thereby expressing the connection relationship between the plurality of tokens ( For example, FIG. 7A is generated. That is, in general, the directed graph is expressed by edges and nodes. However, the directed graph of this embodiment defines individual tokens as edge labels, and is expressed by such labeled edges and nodes. it can. Thus, the directed graph directly generated from the text sentence by the directed graph generation unit 233 includes only one path from the first node to the last node.
  • the directed graph generation unit 233 expands and updates the directed graph by dynamically changing the connection relation of the directed graph according to the search result by the directed graph search unit 234 described later.
  • the directed graph search unit 234 sets a search target phrase (hereinafter referred to as “search target phrase”), and searches the directed graph while referring to the dictionary 22 based on the phrase.
  • the search target phrase is any one or a plurality of tokens in the directed graph.
  • the search target phrase is selected and set in order from the first token.
  • the directed graph search unit 234 registers the search target phrase in the dictionary 22 while sequentially tracing the directed graph according to edges and nodes based on the set search target phrase. It is determined whether or not.
  • the directed graph search unit 234 determines that the search target phrase is registered in the dictionary 22, that is, when the search target phrase is found in the dictionary 22, the directed graph search unit 234 searches for the search target in the directed graph.
  • the part where the phrase appears is specified, and the specified part is notified to the directed graph generation unit 233.
  • the directed graph generation unit 233 updates the directed graph by additionally connecting the phrase associated with the search target phrase in the dictionary 22 to the nodes before and after the specified location in the directed graph. Therefore, in the directed graph in which a phrase is newly added and updated, for example, as shown in FIG. 9B, a plurality of paths can exist between the first node and the last node of the text sentence. .
  • the index creation unit 235 creates an index indicating the association with the collected resource based on the final directed graph obtained by the directed graph search unit 234 finishing the search. Specifically, the index creating unit 235 follows the updated final directed graph, and from there, a word (token) -based N-gram (hereinafter referred to as “word N-gram”) (that is, a word sequence) is obtained.
  • word N-gram a word (token) -based N-gram
  • An index 241 is created by extracting and associating the extracted word N-gram as a headword with a resource.
  • N ⁇ 3 where N is, a sequence of 1 to 3 words (that is, 1-gram, 2-gram, and 3-gram) is used as an index 241 headword. It is done.
  • the word N-gram is used.
  • the present invention is not limited to this.
  • an arrangement of character units ie, one character, two characters,...) Is used. It is not intended to exclude use.
  • FIG. 6 is a flowchart for explaining index creation processing by the search engine according to the embodiment of the present invention. Such processing is realized, for example, when a processor on a computing device executes a predetermined search engine program according to the present embodiment.
  • the search engine 20 receives a text sentence included in the resource collected by the crawler 21 (S601).
  • the input interface unit 231 inputs a text sentence included in the resource to the text processing unit 232.
  • the search engine 20 performs morphological analysis on the text sentence to tokenize the text sentence, that is, cut out a plurality of tokens from the text sentence (S602).
  • the text processing unit 232 determines the language of the text sentence, and cuts out a plurality of tokens from the text sentence by morphological analysis processing corresponding to the language.
  • the search engine 20 generates a directed graph based on the extracted tokens (S603).
  • the directed graph generation unit 233 connects, for each of a plurality of tokens cut out by the text processing unit 232, the token as an edge label and adjacent edges by a node, thereby connecting the plurality of tokens to each other.
  • the directed graph generated first from the text sentence is referred to as an initial directed graph.
  • FIG. 7 shows a part of the initial directed graph generated from the input text sentence shown in FIG. That is, as shown in FIG. 7A, the directed graph of this embodiment defines each token as an edge label, and is represented by such labeled edges and nodes.
  • the initial directed graph has only one path continuing from the head node.
  • a directed graph is shown in which individual tokens are defined as edge labels in the directed graph.
  • a token may also be defined as a node (that is, there are two types of nodes), and a directed graph in which these two types of nodes are connected by simple edges may be used. Note that such a graph is sometimes referred to as a lattice in the field of natural language processing, and is not distinguished in the present disclosure.
  • the search engine 20 searches the directed graph while referring to the dictionary 22, and expands and updates the directed graph according to the search result (S604). That is, the search engine 20 sequentially sets a predetermined word from the directed graph as a search target phrase to be searched, and based on this, the search engine 20 searches the directed graph according to edges and nodes while searching for the search target phrase. Each time it is found in the dictionary 22, the directed graph is expanded and updated based on the phrase associated with the found search target phrase. Details of the directed graph search and update processing will be described with reference to FIG.
  • the search engine 20 creates an index 241 indicating an association with the collected resource based on the updated directed graph (S605).
  • the index creation unit 235 extracts word sequences from 1-gram to 3-gram from each according to the updated final directed graph and collects the extracted word sequences as headwords.
  • an index 241 as shown in FIG. 2B is created.
  • the index creation unit 235 also registers a resource information file as shown in FIG. 2A in the database 24 so as to correspond to the created index 241.
  • the resource is searched from the headword expanded to the range of the related phrase of the search query.
  • the index creation unit 235 associates the final directed graph updated with the collected resource, and stores the directed graph associated with the resource in the database 24.
  • a directed graph associated with a resource is used to present a basis (for example, a related phrase) that is hit by the search when the search is executed based on the search query and the resource is hit and extracted.
  • FIG. 8 is a flowchart for explaining index creation processing by the search engine according to an embodiment of the present invention, and more specifically, details of the directed graph search and update processing shown in FIG. 6. It is a flowchart for doing.
  • the directed graph search unit 234 first sets the current directed graph as a directed graph to be searched (S801), and then selects a predetermined token at the current search location in the directed graph. It is set as a search target phrase (S802).
  • the initial directed graph is the directed graph to be searched, and the token connected to the first node of the initial directed graph is set as the search target phrase.
  • predetermined tokens in the directed graph are sequentially set.
  • the search target phrase is one or more tokens.
  • the directed graph search unit 234 searches the directed graph while referring to the dictionary 22 based on the set search target phrase (S803). For example, the directed graph search unit 234 determines whether the search target phrase is registered in the dictionary 22 based on the set search target phrase while sequentially tracing the directed graph according to the edge and the node (S804). .
  • the search in the directed graph can be performed, for example, according to the KMP (Knuth-Morris-Platt) method, but is not limited thereto.
  • the directed graph search unit 234 determines that the search target phrase is registered in the dictionary 22 (Yes in S804), that is, when the search target phrase is found in the dictionary 22, the directed graph search unit 234 The location where the search target phrase appears in the directed graph is specified, and the specified location is notified to the directed graph generation unit 233 (S805). In response to this, the directed graph generation unit 233 additionally connects the phrase associated with the search target phrase in the dictionary 22 to the nodes before and after the specified location in the directed graph, thereby generating the directed graph. Update (S806). A phrase is typically cut out as one or more tokens and connected to a directed graph. Thereafter, the directed graph search unit 234 returns to the process of S801 to continue the search. That is, the directed graph search unit 234 sets the current directed graph as a directed graph to be searched (S801), advances the search location, sets the token there as a new search target phrase, and advances the search process (S802). .
  • the directed graph search unit 234 determines whether or not the terminal node of the directed graph has been reached (S807). When the directed graph search unit 234 determines that the terminal node of the directed graph has not been reached (No in S807), the directed graph search unit 234 returns to the process of S802 to continue the search in the directed graph. On the other hand, when determining that the final node of the directed graph has been reached (Yes in S807), the directed graph search unit 234 ends the search process.
  • the search engine 20 uses the dictionary 22 in which a plurality of phrases associated with each other are registered.
  • An index can be created based not only on a phrase included in a text sentence but also on an individual phrase extended to a related phrase group.
  • FIG. 9 is a diagram for explaining an example of a process in which a directed graph is developed by a search engine according to an embodiment of the present invention.
  • the search engine 20 shows how the directed graph is expanded when the index 241 is created for the resource including the text sentence shown in FIG. 5 based on the dictionary 22 shown in FIG.
  • the search engine 20 generates an initial directed graph as shown in FIG. 7A, for example, based on the input text sentence.
  • the search engine 20 starts searching for a directed graph, and in the process, the search target phrase ‘poly
  • the search engine 20 associates the phrase “poly
  • polymerase' are connected in parallel to update the directed graph (FIG. 9A).
  • the search engine 20 advances the search of the directed graph, and when 'adp
  • ribose' is a word added to the directed graph by the search engine 20 in the search process described above.
  • the search engine 20 applies the phrase “adenosine” associated with the phrase “adp
  • the digraph is updated by connecting
  • the search engine 20 advances the search of the directed graph, and when “parp
  • inhibitor’ is a word obtained by combining the adjacent word ‘inhibitor’ as a result of adding ‘parp’ to the directed graph by the search engine 20 during the search process.
  • the search engine 20 applies the phrase 'parp associated with the phrase' parp
  • Direction is updated by connecting
  • the search engine 20 expands and updates the directed graph by performing the search operation on the directed graph as described above.
  • the updated directed graph forms several parallel paths with respect to the original path in the initial directed graph. Therefore, by extracting headwords based on such a directed graph, an index is created based not only on the phrases included in the original text sentence but also on individual phrases (paraphrases) extended to related phrases. Will be able to.
  • FIG. 10 is a flowchart for explaining search processing by a search engine according to an embodiment of the present invention. Such processing is realized, for example, when a processor on the computing device executes a predetermined search engine program.
  • the search engine 20 receives a search query from the client 30 (S1001).
  • the client 30 transmits a search query to the search engine 20 by, for example, a user inputting a search query on a search screen displayed on a web browser (not shown).
  • the search engine performs a predetermined analysis process on the received search query (S1002).
  • the query server 25 creates an N-gram search expression for the search query received from the client 30.
  • N 3 is set as the maximum value, but is not limited thereto. Therefore, when the search query includes four or more words, the query server 25 extracts 3-gram words and performs an AND search of these words.
  • the search formula is “(platinum and parp) AND (and parp inhibitor)”.
  • the search engine 20 searches the index 241 based on the created search expression (S1003).
  • the query server 25 searches the index 241 based on the created search expression, and checks whether a headword in the index 241 is hit. When the headword is hit, the query server 25 refers to the database 24 according to the headword, extracts information such as the name of the resource associated with the headword and its position information, and sends the extracted result to the client 30. reply.
  • the query server 25 searches the index 241 based on the search expression “(platinum and parp) AND (and parp inhibitor)”, and the resource including the text sentence as shown in FIG. Will be extracted.
  • the query server 25 may rank them according to the score based on a predetermined score calculation. Further, in the present embodiment, when the query server 25 extracts the resource associated with the headword, the query server 25 extracts the related phrase that is the basis for the hit of the resource and the resource based on the directed graph associated with the resource.
  • the phrase of the text sentence is specified (S1004). Details of the search ground specifying process will be described with reference to FIG.
  • the search engine 20 specifies the phrase that is the search basis, and then transmits the search result including the phrase that is the search basis to the client (S1005).
  • the client 30 displays the search result on the search screen in which the search query is input.
  • the search query is included in the resource. It is necessary to include the headword.
  • a conventional search engine does not create an index with the phrase “par inhibitor” as a headword for a resource including a text sentence as shown in FIG. Therefore, if the search query from the client 30 is 'platinum and parp inhibitor', resources that do not contain 'parp inhibitor' are not presented as search results, or even if they are presented due to other factors. Is only presented as low.
  • the search engine 20 of this embodiment can register in the index 241 headwords based on individual phrases expanded to related phrases as well as phrases included in the text sentence. Therefore, even if the search query from the client 30 is “platinum and parp inhibitor”, a resource that does not include “parp inhibitor” is presented as a search result.
  • FIG. 11 is a flowchart for explaining the search processing by the search engine according to the embodiment of the present invention. More specifically, FIG. 11 is a flowchart for explaining details of the search basis specifying process shown in FIG. It is.
  • the search engine 20 specifies a directed graph of resources hit by the search (S1101).
  • the query server 25 refers to the resource information file of the database 24 as shown in FIG. 2, identifies the directed graph ID associated with the text sentence of the hit resource, and based on the identified directed graph ID, The directed graph stored in 24 is read out.
  • the search engine 20 uses the directed graph ID stored in association with the hit resource.
  • the search engine 20 is not limited to this, and the hit resource is searched and updated according to the search and update process shown in FIG. The directed graph may be generated again.
  • the search engine 20 searches the specified directed graph based on the search query (S1102), and specifies the location in the directed graph where the search query is revealed (S1103).
  • the query server 25 specifies a location that matches the search query while sequentially tracing each path in the directed graph according to the edge and the node.
  • the identified location is all or part of one path and thus may include multiple edges and nodes.
  • the search is performed according to, for example, the KMP method. Alternatively, the trie tree T is used.
  • the search engine 20 specifies a branch node on the original path in the directed graph to which the path at the specified location is connected (S1104), and specifies a merge node (S1105).
  • the original path is a path of the directed graph obtained directly from the text sentence of the resource, and is equal to the path of the initial directed graph (see FIG. 7A) described above.
  • the query server 25 moves the path of the specified part backward (that is, in the direction opposite to the edge direction) until the node of the original path based on the text sentence is reached from the front end node of the specified part. Trace and specify the reached node as a branch node.
  • the query server 25 traces the path of the specified location forward (that is, in the direction of the edge) from the rear end node of the specified location to the node of the original path, and determines the reached node. Identified as a merge node. In this example, the query server 25 identifies the junction node after identifying the branch node. However, the query server 25 may identify the branch node after identifying the junction node, or may simultaneously execute these. You may specify.
  • the search engine 20 When the search engine 20 identifies the branch node and the merge node, the search engine 20 identifies a phrase from the branch node to the merge node on the path of the identified location (S1106). For example, the query server 25 extracts edge labels in the process of tracing the path backward in step S1104 and the process of tracing forward in step S1105, stores them in the buffer, and specifies the phrase according to the extracted and stored labels. To do.
  • the phrase specified in step S1106 is the related phrase that is the basis for the hit by the search.
  • the search engine 20 similarly extracts a phrase from the branch node to the merge node on the original path (S1106).
  • the query server 25 extracts edge labels from the branch node to the joining node according to the edge direction, stores them in a buffer, and specifies a phrase according to the extracted and stored labels.
  • the phrase specified in step S1107 is the phrase of the text sentence from which the related phrase is generated.
  • search engine 20 can perform the above-described search ground specifying process for each location where the search query appears in the directed graph.
  • the search engine 20 may use the resource hit for the search query not the resource hit directly from the phrase of the search query but the resource hit by the related phrase. Thus, it becomes possible to provide the user with the related phrase that is the basis for the hit by the search.
  • the search basis is presented to the user.
  • the phrase that contributed to the resource hit can be easily grasped from a plurality of phrases. Even if a resource that the user does not expect is hit from the search query, the search basis is presented, so that the user can recognize that the search engine 20 is functioning normally.
  • 12A and 12B are diagrams for explaining an example of a process for specifying a search basis from a directed graph of resources searched by a search engine according to an embodiment of the present invention.
  • the search engine 20 shows how to specify the search basis based on the directed graph shown in FIG.
  • the search engine 20 identifies the directed graph ID of the hit resource from the resource information file of the database 24, reads out the directed graph as shown in FIG.
  • the search in the directed graph is started based on the included phrase “diphosphate phosphate”.
  • the search engine 20 finds a phrase that matches the phrase of the search query in a certain path in the directed graph, the search engine 20 identifies a portion where the phrase appears in the directed graph (FIG. 12A (b)).
  • the front end node of the specified location is referred to as a front end node A
  • the rear end node is referred to as a rear end node B.
  • the search engine 20 traces the path of the specified location in the reverse direction until reaching the node of the original path based on the text sentence from the front end node A, specifies the reached node as the branch node A ′, Until the node of the original path is reached from the rear end node B, the path of the specified location is traced in the forward direction, and the reached node is specified as the joining node B ′ (FIG. 12B (c)).
  • the search engine 20 traces the path from the branch node A ′ to the joining node B ′ via the path including the identified location, and identifies the phrase “poly
  • the phrase at the specified location is a related phrase that is the basis for hitting the resource as a phrase related to the search query.
  • the search engine 20 traces the original path from the branch node A ′ to the merge node B ′ based on the text sentence of the resource, and specifies the phrase “poly
  • the identified phrase of the original path is the phrase of the text sentence from which the related phrase is generated.
  • the search engine 20 transmits the search result including the phrase that is the search basis to the client.
  • the client 30 displays the search result on a web browser, for example.
  • FIGS 13A to 13C are diagrams showing examples of search result screens displayed on the client in the information search system according to the embodiment of the present invention.
  • the search result screen 1300A includes, for example, the resource name 1302 searched by the search engine 20 based on the search query input in the search query input field 1301 and its link 1303.
  • “cancer therapeutic agent” and its URL are displayed as resources that have been hit against the search query “diphosphate phosphate” OR “parp inhibitor”.
  • the search result screen includes a text display area 1304 and a search basis display area 1305.
  • the text display area 1304 and the search reason display area 1305 are arranged side by side, for example.
  • a text display area 1304 is an area for displaying at least a part of a text sentence in a resource hit for a search query.
  • the displayed text sentence can be, for example, at least a portion of a text sentence associated with the phrase of the search query.
  • the search basis display area 1305 is an area for displaying a related phrase that is the basis for the resource hit for the search query.
  • the related phrases are highlighted by a technique such as color coding, diagonal lines, bold letters, italics, and a frame.
  • FIG. 13A it is shown to which related phrase the phrase in the resource hit with respect to the phrase of the search query is associated. In other words, it shows which phrase of the text sentence in the resource is replaced by what related phrase and hit.
  • FIG. 13B At least a part of the text sentence in the resource hit for the search query and the related phrase that is the basis for hitting the resource for the search query are displayed in the body display area 1304 ′.
  • An example of the search result screen 1300B is shown.
  • the related phrase is highlighted to improve the visibility of the user.
  • the search result screen 1300B of this example includes a check box 1306 so that the user can arbitrarily select whether or not to display the search basis.
  • the check box 1306 is checked, the search basis is displayed on the search result screen 1300B.
  • the user can check the check box 1306 to display it. By doing so, the user can selectively display the search basis of only the necessary portion after the search result screen 1300B is simply displayed.
  • FIG. 13C At least a part of the text sentence in the resource hit for the search query is displayed in the body display area 1304, and the user operates the pointer cursor 1307 to overlay the pointer cursor 1307 on the related phrase.
  • the search result screen displays the text sentence in the resource hit for the search query in association with the related phrase that is the basis for the hit of the resource. It becomes possible to easily recognize the related phrase that is the basis.
  • the search is performed only for edges (tokens) that have not yet been searched in the directed graph, that is, so as to avoid a second search for tokens that have already been searched.
  • a tree structure composed of ordered nodes is used.
  • Such a tree structure is known as a trie tree or a prefix tree. That is, in the trie tree, all nodes under a certain node have a prefix common to a character string (a token in this case) corresponding to the node.
  • individual words constituting a phrase registered in the dictionary 22 are assigned to edges between nodes in the trie tree. In the following, for ease of understanding, it is assumed that a phrase as shown in FIG. 14 is registered in a part of the dictionary 22.
  • the search engine 20 of this example includes a trie tree created based on the dictionary 22.
  • FIG. 15 is a diagram for explaining an example of the trie tree created based on the phrases registered in the dictionary 22 shown in FIG.
  • the trie tree T is typically some sort of data structure or data array that can be interpreted by the processor of the computing device, for example, but is limited to one or more files or tables. It is not a thing. Also, for example, the trie tree T is configured as a static file or table, and part or all of the trie tree T is not resident in the memory, but is dynamically configured according to a predetermined algorithm during execution of processing. May be.
  • the individual words of the phrases registered in the dictionary 22 are assigned in order to the edge between nodes with the node n0 as a root. For example, a unique number is assigned to each node. For example, “0” is assigned to the root node n0. In the figure, for the sake of convenience, it is assumed that numbers 1 to 10 are assigned to the remaining nodes.
  • a node indicated in black is a phrase end node, and functions as a flag for identifying a phrase registered in the dictionary 22.
  • the phrase indicated by the path from the root node n0 to the phrase end node is a phrase registered in the dictionary 22.
  • therapy' are registered in the dictionary 22, respectively. Therefore, in the trie tree shown in Fig. 15, the nodes n3 and n9 are respectively phrase end points. Become a node.
  • 16A and 16B are flowcharts for explaining another example of index creation processing by a search engine according to an embodiment of the present invention, and more specifically, a flowchart of directed graph search and update processing. ing.
  • the directed graph generation unit 233 assigns a number (root number) “0” representing the root node n0 of the trie tree T to each node of the initial directed graph, for example (S1601).
  • the assignment of the route number to each node of the initial directed graph may be performed when the initial directed graph is generated (see S603 in FIG. 6).
  • the directed graph search unit 234 sets the initial directed graph as the directed graph to be searched (S1602), then selects one head node of the directed graph and sets it as the current search node (S1603).
  • the selected search node is stored as a searched node.
  • the directed graph search unit 234 caches the position of the search node and the start position where the phrase is to be inserted (hereinafter referred to as “phrase insertion start position”) in a cache area (not shown) (S1604).
  • phrase insertion start position the position of the unsearched node and the position to which the related phrase should be added according to the cached contents.
  • the directed graph search unit 234 next determines whether or not the token (phrase) associated with the search node is retrieved according to the corresponding node of the trie tree T (S1605). More specifically, the directed graph search unit 234 specifies the edge token connected to the search node, and the specified token is connected to the node of the trie tree T corresponding to the number assigned to the search node. It is determined whether or not the token matches the edge token. When the specified token is searched in the trie tree T (Yes in S1605), the directed graph search unit 234 assigns the number assigned to the downstream node of the token in the trie tree T to the downstream node of the specified token in the directed graph. Further allocation is performed (S1606 in FIG. 16B).
  • the directed graph search unit 234 finds the token “tpn” of the edge connected to the root node n0 in the trie tree T, and obtains the number “2” of the downstream node connected to the edge as the token “tpn” in the directed graph. It is additionally allocated to a downstream node connected to '(see FIG. 17B).
  • the directed graph search unit 234 determines whether or not the downstream node of the trie tree T is a phrase end node (S1607).
  • the directed graph search unit 234 determines whether or not there is a further downstream node in the downstream node (S1608).
  • the directed graph generation unit 233 receives this, and extracts a related phrase of the token (phrase) with reference to the dictionary 22.
  • the connected graph is updated by additionally connecting the extracted related phrases between corresponding nodes of the directed graph (S1610).
  • the directed graph generation unit 233 connects the path including the related phrase in parallel to the cached phrase insertion start position node and the token downstream node (insertion end position node) in the directed graph.
  • the directed graph search unit 234 assigns the number “0” of the root node n0 to the node connected to the newly added related phrase in the directed graph (S1611), and S1603 (FIG. 16A).
  • the directed graph search unit 234 determines that the downstream node of the trie tree T is not the phrase end node (No in S1607), the process returns to the processing of S1603 to set the next search node. In addition, when the directed graph search unit 234 determines that there are further downstream nodes in the downstream node of the trie tree T (Yes in S1608), the process returns to the processing of S1603 to set the next search node.
  • the directed graph search unit 234 determines whether all nodes in the directed graph have been searched (S1612). When the directed graph search unit 234 determines that not all the nodes in the directed graph have been searched (No in S1612), the directed graph search unit 234 returns to the processing of S1603 in order to continue the search in the directed graph. On the other hand, when it is determined that all the nodes in the directed graph have been searched (Yes in S1612), the directed graph search unit 234 ends the search process.
  • FIG. 17 is a diagram for explaining another example of a process in which a directed graph is developed by a search engine according to an embodiment of the present invention.
  • a node indicated in white indicates a node to be searched (unsearched node), and a node indicated in black indicates a searched node.
  • FIG. 4A shows a part of the initial directed graph.
  • a root number “0” is assigned to each node of the initial directed graph.
  • the directed graph search unit 234 sets a node indicated by a white arrow as a search node in the directed graph search process.
  • the directed graph search unit 234 caches the search node position and the phrase insertion start position in the cache area.
  • the directed graph search unit 234 determines that the edge token 'tpn' connected to the search node is the edge token connected to the node of the trie tree T corresponding to the number “0” assigned to the search node. Determine whether they match.
  • the directed graph search unit 234 sends the token of the trie tree T to the downstream node of the token of the directed graph.
  • the number “2” assigned to the downstream node is additionally assigned ((b) in the figure).
  • the directed graph search unit 234 determines that the downstream node of the token in the trie tree T is a phrase end node, and in response, the directed graph generation unit 233 refers to the dictionary 22 (FIG. 14), The related phrase 'total
  • the directed graph search unit 234 advances the search process in the same manner, and as shown in FIG. 4D, the search for the node indicated by black is completed, and the node indicated by the white arrow is changed to the search node.
  • the directed graph search unit 234 assigns the node number “9” of the lower node to the lower node of the directed graph in accordance with the edge token “nutrition” from the node n6.
  • the directed graph search unit 234 refers to the dictionary 22 because the node n6 is a phrase terminal node, and connects the path of the related phrase (token) 'tpn' of 'total
  • the directed graph search unit 234 advances the search process in the same manner. Since the node n4 of the trie tree T is the phrase end node, the dictionary 22 is referred to, and the token “nutrition” path is inserted at the phrase insertion position in the directed graph. Are connected ((e) in the figure).
  • the directed graph generation unit 233 finally generates a directed graph as shown in FIG.
  • the directed graph generation unit 233 may be configured to perform part of the processing performed by the directed graph generation unit 233, or the directed graph generation unit 233 may perform part of the processing performed by the directed graph search unit 234. You may comprise as follows.
  • the index type search engine creates the index 241 that can efficiently search the collected resources.
  • the user can access the resource even with a phrase other than the phrase included in the collected resource on which the index 241 is created. Therefore, for example, in a specialized field such as the medical field, resources including related phrase groups such as synonyms can be searched widely and efficiently based on specific phrases.
  • the user is presented with a plurality of phrases by providing the basis of the search to the user.
  • the phrase that contributed to the resource hit can be easily grasped. Even if a resource that the user does not expect is hit from the search query, the basis for the search is presented, so that the user can recognize that the search engine 20 is functioning normally.
  • steps, operations, or functions may be performed in parallel or in a different order as long as the results do not contradict each other.
  • the steps, operations, and functions described are provided as examples only, and some of the steps, operations, and functions may be omitted and combined with each other without departing from the spirit of the invention. There may be one, and other steps, operations or functions may be added.
  • the present invention can be widely used in the field of information retrieval technology.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、収集した情報に基づいて、データベースを検索するためのインデックスを作成する装置である。前記装置は、特定の概念ごとに相互に関連付けられた複数のフレーズを含む辞書と、テキスト文の入力を受け付ける入力インターフェース部、前記テキスト文から複数の語をトークンとして切り出すテキスト処理部と、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフを生成する有向グラフ生成部と、前記辞書を参照しながら前記有向グラフ内を探索し、探索対象フレーズが前記辞書中に発見された場合に、前記有向グラフを展開する有向グラフ探索部と、前記有向グラフ内における複数のトークンに基づいてインデックスを作成するインデックス作成部とを備える。

Description

インデックスを用いた情報検索システム及び情報検索方法
 本発明は、情報検索技術に関し、特に、収集された情報に基づいてデータベースを検索するためのインデックスを作成するための装置及び方法、並びに該方法を実行するためのプログラムに関する。
 現在、コンピュータシステムを用いた様々な情報検索サービスが提供されている。例えば、いわゆるインターネット検索は、インターネット上に分散する膨大な情報(リソース)を検索するためのWebサイト上の情報検索サービスであり、典型的には、サービス提供者における検索エンジンと呼ばれるサーバプログラムが、ユーザから与えられた検索クエリに基づいてインデックス検索を行って、ユーザにその検索の結果を提供する。このような情報検索サービスでは、典型的には、検索エンジンが、予め、クローラと呼ばれるロボットエージェントによりインターネット上のWebページを巡回訪問させ、訪問したWebページの情報を収集、解析し、これにより、データベースを検索するためのインデックスを作成する。ユーザは、Webブラウザを介して、検索サイトにアクセスし、検索したいテキスト(検索クエリ)を入力すると、検索エンジンは、検索クエリを解析して、インデックスを検索し、所定のランキングアルゴリズムに基づいて抽出された結果をスコアリングして、これらをスコア順にソートしたものを検索結果として、ユーザに提供する。
 このような従来のインデックス型検索エンジンは、予め、クローラによって収集された情報に従ってそのままインデックスを作成しているため、ユーザは、インデックス化された情報のみに基づいた検索結果を得ることになる。このため、例えば下記特許文献1は、インデックス基準に従って1つ又はそれ以上の横断検索にインデックスを付与し、クエリをインデックス基準の1つ又はそれ以上と比較し、クエリをインデックス基準とマッチさせ、クエリに関するインデックス基準と関連付けられた1つ又はそれ以上のインデックス付き横断検索からの結果を提供する技術を提案している。
 一方、下記特許文献2は、高精度な翻訳文を得るために、原文をフレーズに分割し、パラフレーズ情報に基づいて1以上の各フレーズと対になるパラフレーズを取得し、1以上のフレーズと1以上のパラフレーズを用いてフレーズの集合を含むパラフレーズラティスを取得する機械翻訳装置を開示している。
特開2015-133151号公報 特開2011-180823号公報
 上述のような情報検索サービスは、人々のあらゆる社会活動の中に深く浸透しており、例えば、医療分野においても例外ではない。
 例えば、新しい治療法や薬の候補が標準治療として認められるためには、臨床試験を実施し、そのような治療法や薬の有効性及び安全性などを確認する必要がある。典型的には、医師などの医療従事者は、自身の専門的知識に基づき、治療の内容や意義、副作用など想定されるあらゆる事柄を考慮して、臨床試験計画を策定する。このため、医療従事者は、臨床試験計画の策定にあたって、被験者の病気に関連する各種の情報(例えば、病名や薬名など)を漏れのないように収集する必要がある。例えば、医療従事者は、関連情報を手掛かりにしてデータベースシステムから他の臨床試験の情報や学術論文などを抽出し、それに基づいて実施手順を決定していく。
 しかしながら、実際問題として、一つの特定の概念に、一つの特定の語ないし表現(フレーズ)が一意に定められているわけではなく、通常、一つの特定の概念に対して、複数のフレーズが存在する。特に、医療分野のような専門分野においては、一つの特定の概念に対して、複数のフレーズ、とりわけ、それらの類義語や同義語、関連語、略語、及び外国語、さらには、これらの語に基づく派生語など(以下、それぞれを「関連フレーズ」といい、これらをまとめて「関連フレーズ群」という。)が多く存在している。
 したがって、仮に、医療従事者が、偏った関連情報(本人は、通常、該情報が偏っているという認識はない。)に基づいてデータベースシステムを検索した場合、適切な情報がヒットしない可能性があり、これにより、臨床試験計画の策定に影響を及ぼす可能性もある。
 しかしながら、既存のインデックス型検索エンジンは、上述したように、収集された情報から直接的に得られる見出し語のみに基づいてインデックスを作成しているため、このような見出し語のみに基づいた検索結果を得ることができるに過ぎないか、或いは、検索クエリとして与えられた特定の語がインデックスに見出し語として存在しない場合、該特定の語に近いと思われる代替語(例えば誤表記に対する正しい表記)を選択して、それに基づいて検索を実行するに過ぎず、検索クエリに基づいて与えられる語の範囲が制限的であった。
 また、特許文献1に示される情報検索技術は、与えられた検索語に基づいて、インデックス基準に関連付けられたインデックスを横断的に検索し、その結果を提供するものであるが、与えられた検索クエリにのみ関連する語がインデックス化されるに過ぎず、やはり、検索クエリに基づいて与えられる語の範囲が制限的であった。
 さらに、特許文献2に示される機械翻訳装置は、原文のフレーズをパラフレーズすることで、フレーズの集合を得ているものの、該得られるフレーズの集合は、単に、原文のフレーズに直接対応するパラフレーズを用いているに過ぎない。また、特許文献2は、機械翻訳技術に向けられており、検索エンジンに用いられるようなインデックスの作成技術にそのまま応用することはできない。
 したがって、医療分野のような専門分野においては、特定のフレーズに基づいて、関連フレーズ群を幅広く効率的に検索する技術が望まれるところ、上記従来の情報検索技術は、十分とはいえなかった。
 さらに、ユーザは、検索結果を提供されるにあたり、該検索結果が抽出されることになった根拠が認識できれば、次の検索に利用することができ、便利である。とりわけ、検索結果が検索クエリのフレーズから直接的にヒットしたものでなく、その関連フレーズによってヒットしたものである場合、ユーザは、どのような関連フレーズでヒットしたかを知ることが必要になる。
 そこで、本発明は、インデックス型検索エンジンにおいて、収集された情報を効率的に検索することができるインデックスを作成する技術を提供することを目的とする。
 具体的には、本発明の目的の一つは、収集されたリソースに含まれる特定のフレーズのみならず、その類義語や同義語、関連語、略語、及び外国語、さらには、これらの語に基づく派生語などにまで拡張したフレーズを見出し語とするインデックスを作成するための技術を提供することである。
 また、本発明の目的の一つは、ユーザからの検索クエリが、該インデックス作成の基となった収集された情報に含まれるフレーズ以外のフレーズからなるものであっても、該情報が効果的に検索され、抽出されるようにする技術を提供することである。
 さらに、本発明の目的の一つは、該ユーザが、該結果が抽出されることになった根拠を認識できるようにする技術を提供することである。
 上記課題を解決するための本発明は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。
 ある観点に従う本発明は、テキスト文を含むリソースに基づいて、データベースを検索するためのインデックスを作成する装置である。前記装置は、例えば、特定の概念ごとに、相互に関連付けられた複数のフレーズを含む辞書と、前記リソースの入力を受け付ける入力インターフェース部と、前記受け付けたリソースのテキスト文から複数のフレーズをトークンとして切り出すための処理を行うテキスト処理部と、前記テキスト文に従って、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフ(ラティス)を生成する有向グラフ生成部と、探索対象フレーズに基づいて前記有向グラフ内を探索し、前記探索対象フレーズが前記辞書中に発見される場合に、前記有向グラフ内における前記探索対象タームが顕出した箇所を特定する有向グラフ探索部と、前記有向グラフ内における複数のトークンに基づいて、前記リソースとの関連付けを示すインデックスを作成するインデックス作成部と、を備え得る。前記有向グラフ探索部は、前記有向グラフ内における少なくとも1つのトークンを前記探索対象フレーズに設定し、前記設定した探索対象フレーズに基づいて前記辞書を参照するように構成され得る。また、前記有向グラフ生成部は、前記辞書に基づいて、前記探索対象フレーズに関連付けられた少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新するように構成され得る。
 これにより、前記装置は、リソースのテキスト文に含まれるフレーズのみならず、該フレーズに対するパラフレーズを含む関連フレーズ群のそれぞれを該リソースの見出し語とするインデックスを作成することができるようになる。また、前記装置は、テキスト文に基づいて生成した有向グラフを更新しながら探索を進めていくので、該テキスト文に含まれるフレーズに対する直接的なパラフレーズのみならず、更新された時点の有向グラフに含まれるフレーズに対する間接的ないしは派生的なパラフレーズを関連フレーズ群とすることができる。
 前記テキスト処理部は、前記テキスト文に基づいて所定の構文解析を行って前記複数の語を前記トークンとして切り出すように構成され得る。これにより、前記テキスト文に基づく有向グラフを生成することができるようになる。
 前記有向グラフ生成部は、前記複数のトークンのうちの隣接するトークンどうしをノードによって接続した前記有向グラフを生成するように構成され得る。前記有向グラフは、前記トークンをエッジのラベルとして定義し、前記エッジを前記ノードによって接続することにより表現されるデータ構造であり得る。
 前記有向グラフ生成部は、前記有向グラフ内における前記顕出した箇所の前後のノードに、前記辞書中に発見された前記探索対象フレーズに関連付けられた前記少なくとも1つのフレーズを接続するように構成され得る。
 前記有向グラフ探索部は、前記有向グラフ生成部によって更新された有向グラフを探索するように構成され得る。これにより、探索される有向グラフは、動的に変化していくため、前記テキスト文に含まれるフレーズのみならず、パラフレーズ化された新たなフレーズについても、さらに、パラフレーズ化されることになる。
 また、前記有向グラフ探索部は、前記更新された有向グラフにおいて既に探索し終えたトークンに対する再探索が回避されるように、前記更新された有向グラフ内を探索し得る。
 前記有向グラフは、前記複数のトークンのうちの隣接するトークンどうしを接続する複数のノードを含み得る。そして、前記有向グラフ探索部は、前記探索をし終えたトークンに関連付けられたノードを探索済みノードとして記憶し、前記探索済みノード以外のノードに接続されたトークンに対して再探索し得る。
 また、前記装置は、前記辞書に含まれる前記複数のフレーズに基づいて構成される木構造を示すデータ配列をさらに備え得る。前記木構造は、前記複数のフレーズのそれぞれに対応する順序付きノードを含むトライ木又はプレフィックス木であり得る。そして、前記有向グラフ探索部は、前記木構造を参照しながら、前記有向グラフ内を探索し得る。
 また、前記有向グラフ探索部は、前記探索対象フレーズが前記木構造における少なくとも1つの前記順序付きノードに対応する少なくとも1つのフレーズと一致する場合に、前記有向グラフ内に前記探索対象フレーズが顕出したと判断し得る。
 また、前記有向グラフ生成部は、前記一致する探索対象フレーズに関連付けられた、前記辞書における少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新し得る。
 前記インデックス作成部は、更新された前記有向グラフ内における複数のトークンに基づいてN-gramを抽出し、前記抽出したN-gramに基づいて、前記インデックスを作成するように構成され得る。これにより、リソースのテキスト文に含まれるフレーズ以外のフレーズをN-gramとするインデックスが作成されることになる。
 また、前記インデックス作成部は、前記N-gramとして、単語ベースのN-gram(単語N-gram)を抽出するように構成され得る。かかる単語N-gramは、前記有向グラフ内におけるトークンに基づいているため、関連フレーズ群に基づく検索に適したインデックスが作成されることになる。
 また、別の観点に係る本発明は、上記の装置により作成されたインデックスと、前記インデックスに関連付けられた前記リソースに関するリソース情報ファイルと、検索クエリに基づいて前記インデックスを検索し、該検索の結果に基づいて前記リソース情報ファイルから所定のリソースを特定し、前記特定した所定のリソースを示す検索結果を出力するクエリサーバとを備える検索装置ないしは検索エンジンである。前記クエリサーバは、前記特定した所定のリソースから得られる、前記所定のリソースにおけるフレーズに関連する所定の関連フレーズを含む有向グラフに基づいて、前記所定のリソースが特定された根拠となった根拠フレーズ及び前記フレーズに関連付けられた前記所定のリソースにおける元フレーズを特定する。また、前記検索結果は、前記根拠フレーズ及び前記元フレーズを含む。これにより、ユーザは、検索クエリに対する検索結果として、検索されたリソースに加え、該リソースが検索された根拠となった根拠フレーズ及びこれに関連する元フレーズを認識することができるようになる。
 さらに別の観点に係る本発明は、テキスト文を含むリソースに基づいて、データベースを検索するためのインデックスを作成する装置の作動方法である。前記方法は、例えば、特定の概念ごとに、相互に関連付けられた複数のフレーズを含む辞書を、前記装置のプロセッサによってアクセスされるメモリに展開することと、入力インターフェース部を介して、前記リソースの入力を受け付けることと、前記受け付けたリソースのテキスト文から複数の語をトークンとして切り出すためのテキスト処理を行うことと、前記テキスト文に従って、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフを生成することと、探索対象フレーズに基づいて前記有向グラフ内を探索することと、前記有向グラフ内における複数のトークンに基づいて、前記リソースとの関連付けを示すインデックスを作成することと、を含み得る。前記有向グラフ内を探索することは、前記有向グラフ内における少なくとも1つのトークンを前記探索対象フレーズに設定し、前記設定した探索対象フレーズに基づいて前記辞書を参照し、前記探索対象フレーズが前記辞書中に発見される場合に、前記有向グラフ内における前記探索対象フレーズが顕出した箇所を特定することを含み得る。また、前記有向グラフを生成することは、前記辞書に基づいて、前記探索対象フレーズに関連付けられた少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新することを含み得る。
 さらに別の観点に係る本発明は、検索クエリに基づいてインデックスを検索し、該検索の結果に基づいてリソース情報ファイルから少なくとも1つのリソースを特定する検索装置の作動方法である。前記作動方法は、前記特定した少なくとも1つのリソースから得られる、前記少なくとも1つのリソースにおけるフレーズに関連する所定の関連フレーズを含む有向グラフに基づいて、前記少なくとも1つのリソースが特定された根拠となった根拠フレーズ及び前記フレーズに関連付けられた前記少なくとも1つのリソースにおける元フレーズを特定することと、前記所定のリソース並びに前記根拠フレーズ及び前記元フレーズを示す情報を検索結果として出力することと、を含み得る。
 さらに別の観点に従う本発明は、コンピューティングデバイスに、各前記方法を実現させるためのコンピュータプログラム又はこれを非一時的に記録したコンピュータ可読記録媒体であり得る。
 なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されても良い。
 本発明によれば、インデックス型検索エンジンにおいて、収集された情報を効率的に検索することができるインデックスが作成される。したがって、インデックス作成の基となった収集された情報に含まれるフレーズ以外のフレーズによっても、該情報を検索することができるようになる。
 また、本発明によれば、ユーザは、検索結果の根拠を認識できるようになる。とりわけ、検索クエリに対してヒットしたリソースが、検索クエリのフレーズから直接的にヒットしたリソースではなく、その関連フレーズによってヒットしたリソースである場合であっても、ユーザは、検索によりヒットした根拠となった関連フレーズを認識できるようになる。
 本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
図1は、本発明の一実施形態に係る情報検索システムの概略構成を示すブロックダイアグラムである。 図2は、本発明の一実施形態に係る検索エンジンにおけるデータベースの一例を説明するための図である。 図3は、本発明の一実施形態に係る検索エンジンにおける辞書の一例を説明するための図である。 図4は、本発明の一実施形態に係る検索エンジンのインデクサの概略的構成を示すブロックダイアグラムである。 図5は、本発明の一実施形態に係る検索エンジンのテキスト処理部に入力されるテキスト文の一例を示す図である。 図6は、本発明の一実施形態に係る検索エンジンによるインデックスの作成処理を説明するためのフローチャートである。 図7は、本発明の一実施形態に係る検索エンジンにより生成された初期有向グラフの一部の例を示している 図8は、本発明の一実施形態に係る検索エンジンによる有向グラフの探索・更新処理を説明するためのフローチャートである。 図9は、本発明の一実施形態に係る検索エンジンにより有向グラフの一部が展開される処理過程の一例を示す図である。 図10は、本発明の一実施形態に係る検索エンジンにより有向グラフが展開される処理過程の一例を説明するための図である。 図11は、本発明の一実施形態に係る検索エンジンによる検索処理を説明するためのフローチャートである。 図12Aは、本発明の一実施形態に係る検索エンジンにより検索されたリソースの有向グラフから検索根拠を特定するための処理過程の一例を説明するための図である。 図12Bは、本発明の一実施形態に係る検索エンジンにより検索されたリソースの有向グラフから検索根拠を特定するための処理過程の一例を説明するための図である。 図13Aは、本発明の一実施形態に係る情報検索システムにおけるクライアント上に表示される検索結果画面の一例を示す図である。 図13Bは、本発明の一実施形態に係る情報検索システムにおけるクライアント上に表示される検索結果画面の一例を示す図である。 図13Cは、本発明の一実施形態に係る情報検索システムにおけるクライアント上に表示される検索結果画面の一例を示す図である。 図14は、本発明の一実施形態に係る検索エンジンにおける辞書の他の例を説明するための図である。 図15は、本発明の一実施形態に係る検索エンジンにおけるトライ木の一例を説明するための図である。 図16Aは、本発明の一実施形態に係る検索エンジンによる有向グラフの探索・更新処理の他の例を説明するためのフローチャートである。 図16Bは、本発明の一実施形態に係る検索エンジンによる有向グラフの探索・更新処理の他の例を説明するためのフローチャートである。 図17は、本発明の一実施形態に係る検索エンジンにより有向グラフの一部が展開される処理過程の他の例を示す図である。 図18は、本発明の一実施形態に係る検索エンジンのハードウェア構成の一例を示すブロックダイアグラムである。
 以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本発明は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
 図1は、本発明の一実施形態に係る情報検索システムの概略構成を示すブロックダイアグラムである。同図に示すように、本実施形態の情報検索システム1は、コンピュータネットワーク10を介して通信可能に接続される、少なくとも1つの検索エンジン20と少なくとも1つのクライアント30とを含み構成される。
 コンピュータネットワーク10は、典型的には、IPベースのコンピュータネットワークを含むが、これに限られない。例えば、コンピュータネットワーク10は、ノード間通信を可能とするあらゆるプロトコルのネットワークを適用することができる。
 検索エンジン20は、クライアント30に情報検索サービスを提供するコンピュータシステムであり、例えば、1以上の汎用のコンピューティングデバイスにより実現され得る。すなわち、検索エンジン20は、コンピューティングデバイス上の1つ又は複数のCPU(プロセッサ)が、例えば、所定のオペレーティングシステム(OS)上で本実施形態の検索エンジンプログラムを実行することにより、他のハードウェア要素と相俟って、具現化される仮想マシンである。検索エンジン20は、仮想化技術により実現されても良い。検索エンジン20が実現されるコンピューティングデバイスのハードウェア構成は、図18に例示されるが、既知であるため、ここではその詳細を省略する。本実施形態では、検索エンジン20は、インデックス型検索エンジンであり、例えば、インデックスの作成及び更新の機能と、該インデックスに基づくデータベース検索の機能を有する。図1に示すように、検索エンジン20は、例えば、クローラ21と、辞書22と、インデクサ23と、データベース24と、クエリサーバ25とを含み、構成される。なお、情報検索をしようとするユーザからみると、検索エンジン20は、インデックスに基づくデータベース検索機能を実現する仮想マシン(検索装置ないしは狭義の検索エンジン)である。
 クローラ21は、Web上の多種多様なリソース(例えば、Webページ、文書、画像、プログラムなど)を自動的に収集するための自動巡回エージェントプログラムである。具体的には、クローラ21は、Webページ内のリンクを辿りながら、Web上のサイトを周期的に訪問して、サイト内にあるリソースを収集する。例示として、クローラ21は、特定の専門分野に属するサイト内のリソースを収集するものであっても良い。クローラ21は、例えば、収集したリソースをストレージ(図示せず)に一時的に記憶させても良い。本実施形態の情報検索システム1においては、既知のクローラ21を適用することができ、したがって、ここではその詳細は省略する。
 辞書22は、ある特定の概念についての複数のフレーズを相互に関連付けて記憶した1つ又は複数のファイルないしはテーブルであるが、これに限られるものではない。例えば、辞書22は、静的なファイルないしはテーブルとして構成され、メモリ上に常駐するのではなく、所定のアルゴリズムに従って、フレーズ群の関係が構築される辞書モデル(例えばニューラルネットワークモデルなど)として動的に構成されても良い。本開示では、フレーズは、1つの単語及び2つ以上の単語の並びからなる語ないし表現をいうものとする。また、相互に関連付けられる複数のフレーズを、関連フレーズ群と称するものとし、一例として、類義語、同義語、関連語、略語、及び対応外国語、さらには、これらの語に基づく派生語などを含む。辞書22は、例えば、入手可能な情報ソースに基づいて、手動で、半自動で、又は全自動で構築される。例えば、医療分野であれば、アメリカ国立がん研究所(National Cancer Institute:NCI)が提供する様々な辞書は、辞書22の構築のために用いられる。辞書22は、後述するインデクサ23がインデックス241を作成する際に参照される。
 インデクサ23は、クローラ21によって収集されたリソース(例えば、リソースに関する情報)をデータベース24に登録するとともに、該リソースの内容(典型的には、テキスト文)を解析し、該解析の結果に従ってインデックス241を作成し、更新する。本実施形態のインデクサ23は、概略的には、リソースに含まれるテキスト文をいくつかのトークンに分解し、これらに基づいて有向グラフ(ラティス)を作成し、所定のフレーズに従って、辞書22を参照しながら有向グラフ内の探索し、所定の条件の下、有向グラフを展開し、更新していく。更新された有向グラフは、新たな探索対象の有向グラフとなる。その後、インデクサ23は、展開された有向グラフに基づいて、所定の手法(例えばN-gram手法など)で見出し語を切り出して、これを収集したリソースと関連付けて(索引付けて)インデックス241を作成及び/又は更新する。また、インデクサ23は、収集したリソースと作成した有向グラフとを関連付けて、データベース24に登録する。
 データベース24は、クローラ21によって収集されたリソースに関する情報を格納し、そのインデックス241を含み構成される。また、データベース24は、インデックス241を作成するために用いた有向グラフを格納する。図2は、本発明の一実施形態に係る検索エンジンにおけるデータベースの一例を説明するための図である。図2(a)は、リソースに関する情報の一例を示す。リソースに関する情報は、例えば、リソースを識別するリソースID、リソース名称、URL、及び有向グラフを識別するための有向グラフIDなどを含む構造ファイルである。本開示では、リソースに関する情報を格納した構造ファイルをリソース情報ファイルと称するものとする。インデックス241は、インデクサ23によって作成され、更新される索引情報を含む構造ファイルである。図2(b)は、インデックス241の一例を示す。典型的には、インデックス241は、転置インデックスと呼ばれるデータ構造を有する。索引情報は、例えば、N-gram手法により有向グラフ中の語の並びから切り出された見出し語である。インデックス241内の見出し語は、リソース(すなわち、リソースID)と関連付けられ、これにより、データベース24のリソース情報ファイルの個々のデータセットと関連付けられる。なお、本開示では、インデックス241は、データベース24の一部として構成されているが、これに限られるものではなく、それぞれ別体として構成されても良い。
 図1に戻り、クエリサーバ25は、クライアント30から与えられる検索クエリを受け付けて、インデックス241を検索し、その検索結果に基づいてデータベース24から該当するリソースに関連する情報を抽出し、これを検索結果としてクライアント30に提供する。クエリサーバ25は、例えば、検索クエリと抽出したリソースとの間の適合度を所定の手法により算出し、その算出結果に応じて抽出したリソースを順位付けした検索結果を提供しても良い。本実施形態では、クエリサーバ25は、クライアント30からの検索クエリに対する検索結果を、クライアント30に直接返しているが、これに限られるものではない。例えば、クエリサーバ25は、検索結果を、所定のAPI(Application Program Interface)を介して、他のアプリケーションプログラムに渡し、他のアプリケーションプログラムにより該検索結果に対する所定の情報処理を行った結果をクライアント30に返すようにしても良い。本実施形態の情報検索システム1においては、既知のクエリサーバ25を適用することができる。
 クライアント30は、典型的には、ユーザが所有するコンピューティングデバイスであり、例えば、パーソナルコンピュータであり得る。クライアント30は、例えば、コンピュータネットワーク10を介して、検索エンジン20にアクセスするための、ユーザインターフェースとして機能するビューワを含む。ビューワは、例えば、Webブラウザであり得るが、これに限られるものではない。クライアント30は、例えば、SSLなどのセキュアな通信技術を利用することによって、コンピュータネットワーク10を介して、検索エンジン20との通信セッションを構築し得る。クライアント30は、1つ又は複数のCPU(プロセッサ)及びメモリなどを含み構成されるが、そのハードウェア構成は既知であるため、ここではその詳細は省略する。
 図3は、本発明の一実施形態に係る検索エンジンにおける辞書の一例を説明するための図である。図3に示すように、辞書22は、特定の概念ごとに、1つ又は複数の語からなる複数のフレーズのそれぞれを相互に関連付けて記憶するテーブルとして構成されている。例示的に、図3においては、フレーズ‘parp’、フレーズ‘poly|adp|ribose|poly|merase’及びフレーズ‘ポリ|adp|リボース|ポリメラーゼ’が、それぞれ相互に関連付けられて登録されている。記号‘|’は、フレーズ中の個々の単語を区切るために追加されたデリミタである。このように、フレーズを構成する単語をデリミタで区切ることにより、後述するように、フレーズを構成する個々の単語を有向グラフ中の個々のトークンとして扱えるようになる。なお、ここでは、3つのフレーズが相互に関連付けられた1つのデータセットとして示されているが、これに限られるものでなく、その数に制限はない。
 図4は、本発明の一実施形態に係る検索エンジンのインデクサの概略的構成を示すブロックダイアグラムである。同図に示すように、本実施形態のインデクサ23は、例えば、入力インターフェース部231と、テキスト処理部232と、有向グラフ生成部233と、有向グラフ探索部234と、インデックス作成部235とを含み構成される。
 入力インターフェース部231は、例えば、クローラ21とテキスト処理部232との間のインターフェースとして機能する。入力インターフェース部231は、クローラ21と通信して、クローラ21が収集したリソースに含まれる例えば図5に示すようなテキスト文をテキスト処理部232に入力する。
 テキスト処理部232は、入力されたテキスト文について例えば形態素解析を行って、複数のトークンを切り出す。テキスト処理部232は、典型的には、日本語や英語などの各国の言語に対応した言語解析エンジン(図示せず)を含み得る。言語解析エンジンは、既知のものを用いることができる。
 有向グラフ生成部233は、テキスト処理部232によって切り出された複数のトークンに基づく有向グラフを生成する。具体的には、有向グラフ生成部233は、テキスト処理部232によって切り出された複数のトークンのそれぞれについて、隣接するトークンをノードによって接続し、これによって、複数のトークンどうしの接続関係を表現した有向グラフ(例えば図7(a))を生成する。つまり、一般的に、有向グラフは、エッジ及びノードにより表現されるところ、本実施形態の有向グラフは、個々のトークンをエッジのラベルとして定義し、かかるラベル付きエッジ及びノードにより表現されたものということができる。このように、有向グラフ生成部233によってテキスト文から直接生成された有向グラフは、先頭ノードから最終ノードまで1つのパスのみを含む。なお、本開示で図示される有向グラフは、理解容易のために描かれたもので、実際上は、コンピューティングデバイス内部では、典型的には、プロセッサにより解釈可能なある種のデータ構造として扱われる。有向グラフ生成部233は、後述する有向グラフ探索部234による探索の結果に従って、有向グラフの接続関係を動的に変更することにより、有向グラフを展開し、更新していく。
 有向グラフ探索部234は、探索の対象となるフレーズ(以下「探索対象フレーズ」という。)を設定し、これに基づいて、辞書22を参照しながら有向グラフ内を探索する。探索対象フレーズは、有向グラフ中の任意の1つ又は複数のトークンであり、例えば、先頭のトークンから順に選択され、設定される。より具体的には、本実施形態では、有向グラフ探索部234は、設定された探索対象フレーズに基づいて、有向グラフ内をエッジ及びノードに従って順番に辿りながら、該探索対象フレーズが辞書22に登録されているか否かを判定する。有向グラフ探索部234は、該探索対象フレーズが辞書22に登録されていると判定する場合、すなわち、該探索対象フレーズを辞書22中に発見した場合、有向グラフ探索部234は、有向グラフ内における該探索対象フレーズが顕出した箇所を特定し、特定した箇所を有向グラフ生成部233に通知する。これを受けて、有向グラフ生成部233は、有向グラフ内における特定された箇所の前後のノードに、辞書22における該探索対象フレーズに関連付けられたフレーズを追加的に接続することにより、有向グラフを更新する。したがって、新たにフレーズが追加され、更新された有向グラフは、例えば図9(b)などに示すように、テキスト文の先頭ノードから最終ノードまでの間に、複数のパスが存在し得ることになる。
 インデックス作成部235は、有向グラフ探索部234が探索を終えることにより得られる最終的な有向グラフに基づいて、収集されたリソースとの関連付けを示すインデックスを作成する。具体的には、インデックス作成部235は、更新された最終的な有向グラフに従い、そこから単語(トークン)ベースのN-gram(以下「単語N-gram」という。)(すなわち、単語の並び)を抽出し、該抽出した単語N-gramを見出し語としてリソースに関連付けることにより、インデックス241を作成する。本実施形態では、N≦3(ただし、Nは正数)、すなわち、1~3個の単語の並び(すなわち、1-gram、2-gram及び3-gram)がインデックス241の見出し語として用いられる。また、本実施形態は、単語N-gramを用いているが、これに限られるものではなく、従前のN-gramのように、文字単位の並び(すなわち、1文字、2文字、…)を用いることを排除する趣旨ではない。
 図6は、本発明の一実施形態に係る検索エンジンによるインデックスの作成処理を説明するためのフローチャートである。かかる処理は、例えば、コンピューティングデバイス上のプロセッサが、本実施形態に係る所定の検索エンジンプログラムを実行することにより、実現される。
 図6に示すように、検索エンジン20は、クローラ21よって収集されたリソースに含まれるテキスト文を受信する(S601)。例えば、入力インターフェース部231は、クローラ21によって収集されたリソースを受信すると、リソースに含まれるテキスト文をテキスト処理部232に入力する。検索エンジン20は、テキスト文を受信すると、テキスト文に対して形態素解析を行って、テキスト文をトークン化、すなわち、テキスト文から複数のトークンを切り出す(S602)。例えば、テキスト処理部232は、テキスト文の言語を判定し、該言語に応じた形態素解析処理により、テキスト文から複数のトークンを切り出す。
 次に、検索エンジン20は、切り出した複数のトークンに基づいて有向グラフを生成する(S603)。例えば、有向グラフ生成部233は、テキスト処理部232によって切り出された複数のトークンのそれぞれについて、該トークンをエッジのラベルとして、隣接するエッジをノードによって接続し、これによって、複数のトークンどうしの接続関係を表現した有向グラフを生成する。テキスト文から最初に生成された有向グラフを、ここでは、初期有向グラフと呼ぶものとする。図7は、図5に示した入力されたテキスト文から生成された初期有向グラフの一部を示している。すなわち、図7(a)に示すように、本実施形態の有向グラフは、個々のトークンをエッジのラベルとして定義し、かかるラベル付きエッジ及びノードにより表現されている。初期有向グラフは、図7に示すように、先頭ノードから続くパスは1つのみである。
 なお、本実施形態では、上述したように、個々のトークンを、有向グラフにおけるエッジのラベルとして定義した有向グラフが示されているが、これに限られるものではない。例えば、図7(b)に示すように、トークンもまたノードと定義し(つまり、2種類のノードが存在する。)、これら2種類のノードを単なるエッジで接続した有向グラフであっても良い。なお、このようなグラフは、自然言語処理の分野ではラティスと称されることもあり、本開示では、これを区別するものではない。
 図6に戻り、検索エンジン20は、辞書22を参照しながら有向グラフを探索し、探索の結果に従って該有向グラフを展開し、更新する(S604)。すなわち、検索エンジン20は、有向グラフの中から所定の語を探索の対象となる探索対象フレーズとして順番に設定し、これに基づいて、有向グラフ内をエッジ及びノードに従って探索しながら、該探索対象フレーズを辞書22中に発見するごとに、該発見した探索対象フレーズに関連付けられたフレーズに基づいて、有向グラフを展開し、更新する。なお、有向グラフの探索及び更新処理の詳細は、図8を用いて説明される。
 上述した有向グラフの探索及び更新処理の後、検索エンジン20は、更新された有向グラフに基づいて、収集されたリソースとの関連付けを示すインデックス241を作成する(S605)。例えば、インデックス作成部235は、更新された最終的な有向グラフに従い、そこから1-gramから3-gramまでの単語の並びをそれぞれ抽出し、該抽出した語の並びを見出し語として、収集されたリソースに関連付けることにより、例えば図2(b)に示したようなインデックス241を作成する。インデックス作成部235はまた、作成したインデックス241に対応するように、例えば図2(a)に示したようなリソース情報ファイルをデータベース24に登録する。これにより、後の検索クエリに対して、検索クエリの関連フレーズの範囲にまで拡張された見出し語からリソースが検索されるようになる。さらに、本実施形態では、インデックス作成部235は、インデックス241の作成に際し、収集されたリソースに更新された最終的な有向グラフを関連付け、リソースに関連付けた有向グラフをデータベース24に格納する。リソースに関連付けられた有向グラフは、検索クエリに基づいて検索が実行され、該リソースがヒットし、抽出された場合に、該検索によりヒットした根拠(例えば関連フレーズ)を提示するために用いられる。
 図8は、本発明の一実施形態に係る検索エンジンによるインデックスの作成処理を説明するためのフローチャートであり、より具体的には、図6に示した有向グラフの探索及び更新の処理の詳細を説明するためのフローチャートである。
 すなわち、図8に示すように、例えば、有向グラフ探索部234は、まず、現在の有向グラフを探索対象の有向グラフに設定し(S801)、続いて、有向グラフ中の現時点の探索箇所にある所定のトークンを探索対象フレーズとして設定する(S802)。探索の開始時点では、初期有向グラフが探索対象の有向グラフであり、初期有向グラフの先頭ノードに接続されたトークンが探索対象フレーズとして設定される。また、有向グラフの探索に伴い、有向グラフの中の所定のトークンが順次に設定される。探索対象フレーズは、1つ又はそれ以上のトークンである。
 有向グラフ探索部234は、次に、設定された探索対象フレーズに基づいて、辞書22を参照しながら有向グラフ内を探索する(S803)。例えば、有向グラフ探索部234は、設定された探索対象フレーズに基づいて、有向グラフ内をエッジ及びノードに従って順番に辿りながら、該探索対象フレーズが辞書22に登録されているか否かを判定する(S804)。有向グラフ内の探索は、例えば、KMP(クヌース-モリス-プラット)法に従って行われ得るが、これに限られるものではない。
 有向グラフ探索部234は、該探索対象フレーズが辞書22に登録されていると判定する場合(S804のYes)、すなわち、該探索対象フレーズを辞書22中で発見した場合、有向グラフ探索部234は、該有向グラフ内における該探索対象フレーズが顕出した箇所を特定し、該特定した箇所を有向グラフ生成部233に通知する(S805)。有向グラフ生成部233は、これを受けて、該有向グラフ内における該特定された箇所の前後のノードに、辞書22における該探索対象フレーズに関連付けられたフレーズを追加的に接続することにより、該有向グラフを更新する(S806)。フレーズは、典型的には、1つ以上のトークンとして切り出されて、有向グラフに接続される。その後、有向グラフ探索部234は、探索を続行するため、S801の処理に戻る。すなわち、有向グラフ探索部234は、現在の有向グラフを探索対象の有向グラフとして(S801)、その探索箇所を次に進め、そこのトークンを新たな探索対象フレーズに設定して、探索処理を進める(S802)。
 一方、有向グラフ探索部234は、該探索対象フレーズが辞書22中で発見されない場合(S804のNo)、有向グラフの終端ノードに到達したか否かを判定する(S807)。有向グラフ探索部234は、有向グラフの終端ノードに到達していないと判定する場合(S807のNo)、有向グラフ内の探索を続行するため、S802の処理に戻る。一方、有向グラフ探索部234は、有向グラフの最終ノードに到達したと判定する場合(S807のYes)、探索処理を終了する。
 以上のような処理により、検索エンジン20は、入力されたテキスト文に基づいて検索のためのインデックスを作成するに際して、相互に関連付けられた複数のフレーズが登録された辞書22を用いて、元のテキスト文に含まれるフレーズのみならず、関連フレーズ群にまで拡張した個々のフレーズに基づいてインデックスを作成することができるようになる。
 次に、検索エンジン20による有向グラフの展開処理の一例を説明する。図9は、本発明の一実施形態に係る検索エンジンにより有向グラフが展開される処理過程の一例を説明するための図である。本例では、検索エンジン20は、図4に示した辞書22に基づいて、図5に示したテキスト文を含むリソースに対してインデックス241を作成する際の有向グラフの展開の様子を示している。
 まず、検索エンジン20は、上述したように、入力されたテキスト文に基づいて、例えば図7(a)に示したような初期有向グラフを生成する。次に、検索エンジン20は、有向グラフの探索を開始し、その過程で、設定された探索対象フレーズ‘poly|adp|ribose|polymerase’を、辞書22中に発見したとする。検索エンジン20は、有向グラフ内における該探索対象フレーズ‘poly|adp|ribose|polymerase’の箇所の前後にある始端ノード及び終端ノードに、辞書22中のフレーズ‘poly|adp|ribose|polymerase’に関連付けられたフレーズ‘parp’及びフレーズ‘ポリ|adp|リボース|ポリメラーゼ’のそれぞれを並列に接続することにより、有向グラフを更新する(図9(a))。
 さらに、検索エンジン20は、有向グラフの探索を進め、有向グラフ内における‘adp|リボース’が探索対象フレーズとして設定されたときに、これを辞書22中に発見する。探索対象フレーズ‘adp|リボース’は、上述した探索の過程で、検索エンジン20によって有向グラフに追加された語である。検索エンジン20は、同様に、有向グラフ内における該探索対象フレーズ‘adp|リボース’の箇所の前後にある始端ノード及び終端ノードに、辞書22中のフレーズ‘adp|リボース’に関連付けられたフレーズ‘adenosine|diphosphate|ribose’を並列に接続することにより、有向グラフを更新する(図9(b))。このように、追加されたフレーズを含むパスについても、さらにパラフレーズが追加され得る。
 さらに、検索エンジン20は、有向グラフの探索を進め、有向グラフ内における‘parp|inhibitor’が探索対象フレーズとして設定されたときに、これを辞書22中に発見する。探索対象フレーズ‘parp|inhibitor’は、探索の過程で、検索エンジン20によって‘parp’が有向グラフに追加された結果、隣接する語‘inhibitor’との結合により得られた語である。検索エンジン20は、同様に、有向グラフ内における該探索対象フレーズ‘parp|inhibitor’の箇所の前後にある始端ノード及び終端ノードに、辞書22中のフレーズ‘parp|inhibitor’に関連付けられたフレーズ‘parp|阻害|剤’を並列に接続することにより、有向グラフを更新する(図9(c))。すなわち、フレーズ‘parp|阻害|剤’は、初期有向グラフにおける元のパス(poly→adp→ribose→polymerase→inhibitor)に並列的に接続されたことになる。
 検索エンジン20は、以上のような、有向グラフに対する探索動作を行うことにより、有向グラフを展開し、更新していく。この結果、更新された有向グラフは、初期有向グラフにおける元のパスに対して、いくつかの並列的なパスが形成されることになる。したがってこのような有向グラフに基づいて見出し語を抽出することにより、元のテキスト文に含まれるフレーズのみならず、関連フレーズ群にまで拡張した個々のフレーズ(パラフレーズ)に基づいてインデックスを作成することができるようになる。
 図10は、本発明の一実施形態に係る検索エンジンによる検索処理を説明するためのフローチャートである。かかる処理は、例えば、コンピューティングデバイス上のプロセッサが、所定の検索エンジンプログラムを実行することにより、実現される。
 図10に示すように、検索エンジン20は、クライアント30から検索クエリを受信する(S1001)。例えば、クライアント30は、例えば、ユーザが、ウェブブラウザ(図示せず)上に表示された検索画面に検索クエリを入力することにより、検索エンジン20に検索クエリを送信する。検索エンジンは、受信した検索クエリに対して所定の解析処理を行う(S1002)。例えば、クエリサーバ25は、クライアント30から受信した検索クエリに対して、N-gramの検索式を作成する。本実施形態では、N=3を最大値とするが、これに限られない。したがって、検索クエリが4つ以上の単語を含む場合には、クエリサーバ25は、3-gramの単語を抽出して、これらのAND検索を行う。例えば、検索クエリが‘platinum and parp inhibitor’である場合、検索式は、‘(platinum and parp) AND (and parp inhibitor)’となる。
 次に、検索エンジン20は、作成した検索式に基づいて、インデックス241を検索する(S1003)。例えば、クエリサーバ25は、作成した検索式に基づいて、インデックス241を検索し、インデックス241内の見出し語がヒットするか否かをチェックする。見出し語がヒットした場合、クエリサーバ25は、該見出し語に従ってデータベース24を参照し、見出し語に関連付けられたリソースの名称及びその位置情報などの情報を抽出し、該抽出した結果をクライアント30に返答する。例えば、クエリサーバ25は、検索式‘(platinum and parp) AND (and parp inhibitor)’に基づいてインデックス241を検索することにより、図5に示したようなテキスト文を含むリソースがヒットし、これを抽出することになる。クエリサーバ25は、抽出される結果が複数ある場合、これらを所定のスコア計算に基づくそのスコアに従ってランキングしても良い。また、本実施形態では、クエリサーバ25は、見出し語に関連付けられたリソースを抽出するに際し、該リソースに関連付けられた有向グラフに基づいて、該リソースがヒットした根拠となった関連フレーズ及び該リソースのテキスト文のフレーズを特定する(S1004)。検索根拠の特定処理の詳細については、図11を参照して説明される。
 そして、検索エンジン20は、検索根拠となったフレーズを特定した後、該検索根拠となったフレーズを含む検索結果をクライアントに送信する(S1005)。クライアント30は、これを受けて、検索クエリを入力した検索画面に検索結果を表示する。
 従来の検索エンジンは、収集したリソースのテキスト文に含まれるフレーズのみに基づく見出し語をインデックスに登録していたため、検索により該リソースが抽出されるためには、検索クエリが、該リソースに含まれていた見出し語を含む必要がある。例えば、従来の検索エンジンは、図5に示したようなテキスト文を含むリソースに対して、フレーズ‘parp inhibitor’を見出し語とするインデクスを作成することはない。したがって、クライアント30からの検索クエリが‘platinum and parp inhibitor’である場合、‘parp inhibitor’を含まないリソースは検索結果として提示されないか、仮に他の要因で提示される場合であっても、ランキングが低いものとして提示されるにすぎない。これに対して、本実施形態の検索エンジン20は、テキスト文に含まれるフレーズのみならず関連フレーズ群にまで拡張した個々のフレーズに基づく見出し語をインデックス241に登録することができる。したがって、クライアント30からの検索クエリが‘platinum and parp inhibitor’である場合であっても、‘parp inhibitor’を含まないリソースが検索結果として提示されるようになる。
 図11は、本発明の一実施形態に係る検索エンジンによる検索処理を説明するためのフローチャートであり、より具体的には、図10に示した検索根拠の特定処理の詳細を説明するためのフローチャートである。
 図11に示すように、まず、検索エンジン20は、検索によりヒットしたリソースの有向グラフを特定する(S1101)。例えば、クエリサーバ25は、図2に示したようなデータベース24のリソース情報ファイルを参照し、ヒットしたリソースのテキスト文に関連付けられた有向グラフIDを特定し、該特定した有向グラフIDに基づいて、データベース24に格納されている有向グラフを読み出す。なお、本実施形態では、検索エンジン20は、ヒットしたリソースに関連付けられて格納された有向グラフIDを用いているが、これに限られず、ヒットしたリソースについて、図8に示した探索及び更新処理に従って、有向グラフを再度生成するようにしても良い。
 次に、検索エンジン20は、検索クエリに基づいて、特定した有向グラフ内を探索し(S1102)、検索クエリが顕出した、有向グラフにおける箇所を特定する(S1103)。例えば、クエリサーバ25は、有向グラフにおける各パスをエッジ及びノードに従って順番に辿りながら、検索クエリに一致する箇所を特定する。特定される箇所は、1つのパスの全部又は一部であり、したがって、複数のエッジ及びノードを含み得る。探索は、例えば、KMP法に従って行われる。或いは、トライ木Tを用いて行われる。
 検索エンジン20は、次に、特定された箇所のパスが接続されている、有向グラフにおける元のパス上の分岐ノードを特定するとともに(S1104)、合流ノードを特定する(S1105)。元のパスとは、リソースのテキスト文から直接得られた有向グラフのパスであり、上述した初期有向グラフ(図7(a)参照)のパスに等しい。例えば、クエリサーバ25は、特定された箇所の前端ノードからテキスト文に基づく元のパスのノードに到達するまで、特定された箇所のパスを後ろ向きに(すなわち、エッジの向きとは逆方向に)辿り、到達したノードを分岐ノードとして特定する。また、クエリサーバ25は、特定された箇所の後端ノードから元のパスのノードに達するまで、特定された箇所のパスを前向きに(すなわち、エッジの向きの方向に)辿り、到達したノードを合流ノードとして特定する。なお、本例では、クエリサーバ25は、分岐ノードを特定した後に合流ノードを特定しているが、合流ノードを特定した後に分岐ノードを特定しても良いし、或いは、同時並行的にこれらを特定しても良い。
 検索エンジン20は、分岐ノード及び合流ノードを特定すると、特定された箇所のパス上で、分岐ノードから合流ノードまでフレーズを特定する(S1106)。例えば、クエリサーバ25は、ステップS1104においてパスを後ろ向きに辿る過程及びステップS1105において前向きに辿る過程で、エッジのラベルを抽出し、バッファに記憶しておき、該抽出し記憶したラベルに従ってフレーズを特定する。このステップS1106で特定されたフレーズが、検索によりヒットした根拠となった関連フレーズである。
 続いて、検索エンジン20は、同様に、元のパス上で、分岐ノードから合流ノードまでのフレーズを抽出する(S1106)。例えば、クエリサーバ25は、分岐ノードからエッジの向きに従って合流ノードまで、エッジのラベルを抽出し、バッファに記憶しておき、該抽出し記憶したラベルに従ってフレーズを特定する。このステップS1107で特定されたフレーズが、関連フレーズが生成される基となったテキスト文のフレーズである。
 なお、検索エンジン20は、有向グラフにおいて検索クエリが顕出した箇所ごとに、上記の検索根拠の特定処理を行い得る。
 以上のような処理により、検索エンジン20は、検索クエリに対してヒットしたリソースが、検索クエリのフレーズから直接的にヒットしたリソースではなく、その関連フレーズによってヒットしたリソースである場合であっても、検索によりヒットした根拠となった関連フレーズをユーザに提供することができるようになる。
 また、例えば複数のフレーズのOR検索を含む検索クエリに基づいて本実施形態のインデックス241に対して検索が行われた場合であっても、ユーザに検索根拠が提示されることで、ユーザは、複数のフレーズの中から、リソースのヒットに貢献したフレーズを容易に把握することができるようになる。また、検索クエリからユーザが予期しないリソースがヒットされた場合であっても、検索根拠が提示されるため、ユーザは、検索エンジン20が正常に機能していることを認識できるようになる。
 次に、検索エンジン20による検索根拠の特定処理の一例を説明する。図12A及び12Bは、本発明の一実施形態に係る検索エンジンにより検索されたリソースの有向グラフから検索根拠を特定するための処理過程の一例を説明するための図である。本例では、検索エンジン20は、図9に示した有向グラフに基づいて、検索根拠を特定する様子を示している。
 まず、検索エンジン20は、上述したように、データベース24のリソース情報ファイルからヒットしたリソースの有向グラフIDを特定し、例えば図12A(a)に示すような有向グラフをデータベース24から読み出して、検索クエリに含まれるフレーズ‘diphosphate ribose’に基づいて、有向グラフ内の探索を開始する。かかる探索過程において、検索エンジン20は、有向グラフにおけるある1つのパスに、検索クエリのフレーズに一致するフレーズを発見すると、有向グラフにおける該フレーズが顕出した箇所を特定する(図12A(b))。以下では、特定した箇所の前端のノードを前端ノードAとし、その後端のノードを後端ノードBとする。
 次に、検索エンジン20は、前端ノードAからテキスト文に基づく元のパスのノードに達するまで、特定された箇所のパスを逆方向に辿り、到達したノードを分岐ノードA’として特定するとともに、後端ノードBから元のパスのノードに達するまで、特定された箇所のパスを順方向に辿り、到達したノードを合流ノードB’として特定する(図12B(c))。
 そして、検索エンジン20は、分岐ノードA’から、特定した箇所を含むパスを経由した、合流ノードB’までのパスを辿って、フレーズ‘ポリ|adenosine|diphosphate|ribose|ポリメラーゼ’を特定する。該特定した箇所のフレーズが、検索クエリに関連するフレーズとしてリソースがヒットする根拠となった関連フレーズである。また、検索エンジン20は、リソースのテキスト文に基づく分岐ノードA’から合流ノードB’までの元のパスを辿って、フレーズ‘poly|adp|ribose|polymerase’を特定する(図12B(d))。元のパスの該特定したフレーズが、関連フレーズが生成される基となったテキスト文のフレーズである。
 以上のようにして、検索エンジン20は、検索根拠となったフレーズを特定した後、該検索根拠となったフレーズを含む検索結果をクライアントに送信する。クライアント30は、これを受けて、例えばウェブブラウザ上に検索結果を表示する。
 図13A~13Cは、本発明の一実施形態に係る情報検索システムにおけるクライアント上に表示される検索結果画面の例を示す図である。
 図13Aに示す例では、検索結果画面1300Aは、例えば、検索クエリ入力フィールド1301に入力された検索クエリに基づいて検索エンジン20によって検索されたリソース名1302及びそのリンク1303を含む。図13Aに示す例では、検索クエリ「“diphosphate ribose” OR “parp 阻害剤”」に対してヒットしたリソースとして、「がん治療薬」及びそのURLが表示されている。また、本実施形態では、検索結果画面は、本文表示領域1304及び検索根拠表示領域1305を含む。本文表示領域1304及び検索根拠表示領域1305は、例えば、左右に並べて配置される。本文表示領域1304は、検索クエリに対してヒットしたリソースにおけるテキスト文の少なくとも一部を表示する領域である。表示されるテキスト文は、例えば、検索クエリのフレーズに関連するテキスト文の少なくとも一部であり得る。検索根拠表示領域1305は、検索クエリに対してリソースがヒットした根拠となった関連フレーズを表示する領域である。関連フレーズなどは、ユーザの視認性向上のため、例えば色分け、斜線、太字、斜体、枠付きなどの手法によって強調表示される。図13Aに示す例では、検索クエリのフレーズに対してヒットしたリソースにおけるフレーズが、どの関連フレーズに関連付けられているかが示されている。言い換えれば、リソースにおけるテキスト文のどのフレーズがどのような関連フレーズに置き換わってヒットしたかが示されている。
 また、図13Bでは、本文表示領域1304’に、検索クエリに対してヒットしたリソースにおけるテキスト文の少なくとも一部と、検索クエリに対してリソースがヒットした根拠となった関連フレーズとが表示される検索結果画面1300Bの例が示される。関連フレーズなどは、ユーザの視認性向上のため、例えば、強調表示される。また、本例の検索結果画面1300Bは、検索根拠を表示するか否かをユーザが任意に選択することができるように、チェックボックス1306を含む。チェックボックス1306にチェックが入れられている場合、検索結果画面1300Bに、検索根拠が表示される。例えば、ユーザは、検索クエリを入力し、検索結果の提示を受けた後、検索根拠を確認したいと考える場合に、チェックボックス1306にチェックを入れ、それを表示させるようにすることができる。このようにすることで、ユーザは、検索結果画面1300Bを簡略表示させた後、必要な部分のみの検索根拠を選択的に表示させることができるようになる。
 また、図13Cでは、本文表示領域1304に、検索クエリに対してヒットしたリソースにおけるテキスト文の少なくとも一部が表示され、ユーザがポインタカーソル1307を操作して、ポインタカーソル1307を関連フレーズ上に重ねると、検索根拠表示領域1305’がポップアップされる検索結果画面1300Cの例が示される。例えば、どのフレーズに関連フレーズが関連付けられているかをユーザが把握できるように、該フレーズが例えば強調表示される。
 以上のように、本実施形態の検索結果画面は、検索クエリに対してヒットしたリソースにおけるテキスト文と、該リソースがヒットした根拠となった関連フレーズとを関連付けて表示するため、ユーザは、検索根拠となった関連フレーズを容易に認識できるようになる。
 次に、図8に示した有向グラフの探索及び更新の処理の他の例を説明する。本例では、探索は、有向グラフにおいて未だ探索が行われていないエッジ(トークン)に対してのみ、つまり、既に探索されたトークンに対する再度の探索を回避するように行われる。このために、本例では、順序付きノードにより構成される木構造を用いる。このような木構造は、トライ(trie)木又はプレフィックス木として知られる。すなわち、トライ木では、あるノードの配下の全ノードは、自身に対応する文字列(ここではトークン)に共通するプレフィックスを有する。本例では、トライ木におけるノードとノードとの間のエッジに、辞書22に登録されたフレーズを構成する個々の語が割り当てられる。以下では、理解の容易のため、辞書22の一部に、図14に示すようなフレーズが登録されているものとして説明する。
 本例の検索エンジン20は、辞書22に基づいて作成されたトライ木を備える。図15は、図14に示した辞書22に登録されたフレーズに基づいて作成されたトライ木の一例を説明するための図である。トライ木Tは、典型的には、コンピューティングデバイスのプロセッサにより解釈可能なある種のデータ構造ないしはデータ配列であり、例えば、1つ又は複数のファイルないしはテーブルとして構成されるが、これに限られるものではない。また、例えば、トライ木Tは、静的なファイルないしはテーブルとして構成され、その一部又は全部がメモリ上に常駐するのではなく、処理の実行中に、所定のアルゴリズムに従って、動的に構成されても良い。
 図15に示すように、トライ木Tは、ノードn0をルートとして、ノード間のエッジに、辞書22に登録されているフレーズの個々の単語が順番に割り当てられている。各ノードには例えば一意の番号が割り当てられる。ルートノードn0は、例えば「0」番が割り当てられる。同図では、便宜上、残りの各ノードに1~10の番号が割り当てられているものとする。また、図中、黒色で示されるノードは、フレーズ終端ノードであり、辞書22に登録されたフレーズを識別するためのフラグとして機能する。言い換えれば、ルートノードn0からフレーズ終端ノードまでのパスで示されるフレーズは、辞書22に登録されたフレーズである。例えば、図14に示したように、‘栄養’及び‘栄養|療法’は、それぞれ、辞書22に登録されているため、図15に示すトライ木では、ノードn3及びn9は、それぞれ、フレーズ終端ノードとなる。
 図16A及び16Bは、本発明の一実施形態に係る検索エンジンによるインデックスの作成処理の他の例を説明するためのフローチャートであり、より具体的には、有向グラフの探索及び更新処理のフローチャートを示している。
 図16Aに示すように、まず、有向グラフ生成部233は、例えば、初期有向グラフの各ノードに、トライ木Tのルートノードn0を表す番号(ルート番号)「0」を割り当てる(S1601)。なお、代替的に、初期有向グラフの各ノードへのルート番号の割り当ては、初期有向グラフの生成時に行われるようにしても良い(図6のS603参照)。
 次に、有向グラフ探索部234は、初期有向グラフを探索対象の有向グラフに設定し(S1602)、続いて、有向グラフの先頭ノードを1つ選択し、これを現在の探索ノードとして設定する(S1603)。選択された探索ノードは、探索済みのノードとして記憶される。このとき、有向グラフ探索部234は、探索ノードの位置及びフレーズを挿入すべき始端位置(以下「フレーズ挿入始端位置」という。)を図示しないキャッシュ領域にキャッシュする(S1604)。これにより、有向グラフ探索部234は、キャッシュされた内容に従って、未探索のノードの位置及び関連フレーズを追加すべき位置を特定することができる。
 有向グラフ探索部234は、次に、探索ノードに関連付けられたトークン(フレーズ)が、トライ木Tの対応するノードに従って検索(retrieve)されるか否かを判断する(S1605)。より具体的には、有向グラフ探索部234は、探索ノードに接続されたエッジのトークンを特定し、該特定したトークンが、該探索ノードに割り当てられた番号に対応するトライ木Tのノードに接続されたエッジのトークンと一致するか否かを判断する。有向グラフ探索部234は、該特定したトークンがトライ木Tにおいて検索された場合(S1605のYes)、有向グラフにおける該特定したトークンの下流ノードに、トライ木Tにおけるトークンの下流ノードに割り当てられた番号を追加的に割り当てる(図16BのS1606)。
 例えば、有向グラフにおける探索ノードに接続されたトークンが‘tpn’であったとする。この場合、有向グラフ探索部234は、トライ木Tにおいて、ルートノードn0に接続されたエッジのトークン‘tpn’を見つけ出し、該エッジに接続された下流ノードの番号「2」を、有向グラフにおけるトークン‘tpn’に接続された下流ノードに追加的に割り当てる(図17(b)参照)。
 次に、有向グラフ探索部234は、トライ木Tの該下流ノードがフレーズ終端ノードであるか否かを判断する(S1607)。有向グラフ探索部234は、該下流ノードが終端であると判断する場合(S1607のYes)、該下流ノードにさらに下流ノードがあるか否かを判断する(S1608)。有向グラフ探索部234が、さらに下流ノードがないと判断する場合(S1608のNo)、これを受けて、有向グラフ生成部233は、辞書22を参照して、該トークン(フレーズ)の関連フレーズを抽出し(S1609)、該抽出した関連フレーズを有向グラフの対応するノード間に追加的に接続することによって、有向グラフを更新する(S1610)。つまり、有向グラフ生成部233は、関連フレーズを含むパスを、キャッシュされたフレーズ挿入始端位置のノードと有向グラフにおけるトークンの下流ノード(挿入後端位置のノード)とに並列的に接続する。有向グラフ生成部233による有向グラフの更新後、有向グラフ探索部234は、有向グラフにおいて新たに追加された関連フレーズに接続されたノードに、ルートノードn0の番号「0」を割り当て(S1611)、S1603(図16A)の処理に戻る。
 一方、有向グラフ探索部234は、トライ木Tの該下流ノードがフレーズ終端ノードでないと判断する場合(S1607のNo)、次の探索ノードを設定するため、S1603の処理に戻る。加えて、有向グラフ探索部234は、トライ木Tの該下流ノードにさらに下流ノードがあると判断する場合もまた(S1608のYes)、次の探索ノードを設定するため、S1603の処理に戻る。
 また、S1605において、有向グラフ探索部234は、該特定したトークンがトライ木Tにおいて検索できなかった場合(S1605のNo)、有向グラフ内のすべてのノードを探索したか否かを判断する(S1612)。有向グラフ探索部234は、有向グラフ内のすべてのノードを探索していないと判断する場合(S1612のNo)、有向グラフ内の探索を続行するため、S1603の処理に戻る。一方、有向グラフ探索部234は、有向グラフ内のすべてのノードを探索したと判断する場合(S1612のYes)、探索処理を終了する。
 次に、上記のトライ木Tを用いた、検索エンジン20による有向グラフの展開処理の一例を説明する。図17は、本発明の一実施形態に係る検索エンジンにより有向グラフが展開される処理過程の他の例を説明するための図である。なお、同図中、白色で示されるノードは、探索の対象となるノード(未探索ノード)を示し、黒色で示されるノードは、探索済みのノードを示すものとする。
 上述したように、入力されたテキスト文に基づいて、初期有向グラフが生成されたとする。同図(a)は、初期有向グラフの一部を示している。初期有向グラフの各ノードには、ルート番号「0」が割り当てられている。有向グラフ探索部234は、有向グラフの探索過程で、白抜き矢印で示されるノードを探索ノードとして設定する。また、有向グラフ探索部234は、上述したように、探索ノード位置及びフレーズ挿入始端位置をキャッシュ領域にキャッシュする。
 次に、有向グラフ探索部234は、探索ノードに接続されたエッジのトークン‘tpn’が、該探索ノードに割り当てられた番号「0」に対応するトライ木Tのノードに接続されたエッジのトークンと一致するか否かを判断する。本例では、トライ木Tにおいて、ルートノードn0に接続されたエッジの1つにトークン‘tpn’があるため、有向グラフ探索部234は、有向グラフの該トークンの下流ノードに、トライ木Tの該トークンの下流ノードに割り当てられた番号「2」を追加的に割り当てる(同図(b))。
 次に、有向グラフ探索部234は、トライ木Tにおける該トークンの下流ノードがフレーズ終端ノードであると判断し、これを受けて、有向グラフ生成部233は、辞書22(図14)を参照して、該トークン(フレーズ)の関連フレーズ‘total|parenteral|nutrition’を、キャッシュされているフレーズ挿入始端位置に従って有向グラフに追加するとともに、新たに追加されたノードに、ルートノードn0の番号「0」を割り当てる(同図(c))。
 その後、有向グラフ探索部234は、同様にして、探索の処理を進め、同図(d)に示されるように、黒色で示されるノードについて探索が終了し、白抜き矢印で示されるノードを探索ノードとして設定したとする。ここで、有向グラフ探索部234は、トライ木T内の検索において、ノードn6からのエッジのトークン‘nutrition’に従い、下位ノードのノード番号「9」を、有向グラフの下位ノードに割り当てる。なお、有向グラフ探索部234は、ノードn6がフレーズ終端ノードであることから、辞書22を参照して、‘total|parenteral|nutrition’の関連フレーズ(トークン)‘tpn’のパスを接続することになるところ、関連フレーズ‘tpn’はフレーズ挿入位置にすでに存在するため、有向グラフ探索部234は、このパスの接続処理を行わない。これにより、有向グラフの展開処理において冗長なパスの追加が抑制される。
 続いて、有向グラフ探索部234は、同様に探索の処理を進め、トライ木Tのノードn4がフレーズ終端ノードであるため、辞書22を参照して、有向グラフにフレーズ挿入位置にトークン‘栄養’のパスを接続する(同図(e))。
 上記のようにして、有向グラフ探索部234による有向グラフの探索の結果、有向グラフ生成部233は、最終的に、同図(f)に示すような有向グラフを生成する。
 なお、上記の処理において、有向グラフ生成部233が行う処理の一部を有向グラフ探索部234が行うように構成しても良いし、有向グラフ探索部234が行う処理の一部を有向グラフ生成部233が行うように構成しても良い。
 以上のように本実施形態によれば、インデックス型検索エンジンにおいて、収集されたリソースを効率的に検索することができるインデックス241が作成される。これにより、ユーザは、インデックス241の作成の基となった収集されたリソースに含まれるフレーズ以外のフレーズによっても、該リソースにアクセスすることができるようになる。したがって、例えば医療分野のような専門分野において、特定のフレーズに基づいて、類義語などの関連フレーズ群を含むリソースを幅広く効率的に検索することができるようになる。
 また、例えばOR検索を含む検索クエリに基づいて本実施形態のインデックス241に対して検索が行われた場合であっても、ユーザに検索の根拠が提示されることで、ユーザは、複数のフレーズの中から、リソースのヒットに貢献したフレーズを容易に把握することができるようになる。また、検索クエリからユーザが予期しないリソースがヒットされた場合であっても、検索の根拠が提示されるため、ユーザは、検索エンジン20が正常に機能していることを認識できるようになる。
 上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
 例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加しても良い。
 また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
 本発明は、情報検索技術の分野に広く利用することができる。
1…情報検索システム
10…コンピュータネットワーク
20…検索エンジン
 21…クローラ
 22…辞書
 23…インデクサ
  231…入力インターフェース部
  232…テキスト処理部
  233…有向グラフ生成部
  234…有向グラフ探索部
  235…インデックス作成部
 24…データベース
 241…インデックス
 25…クエリサーバ
30…クライアント

Claims (20)

  1.  テキスト文を含むリソースに基づいて、データベースを検索するためのインデックスを作成する装置であって、
     特定の概念ごとに、相互に関連付けられた複数のフレーズを含む辞書と、
     前記リソースの入力を受け付ける入力インターフェース部と、
     前記受け付けたリソースのテキスト文から複数の語をトークンとして切り出すための処理を行うテキスト処理部と、
     前記テキスト文に従って、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフを生成する有向グラフ生成部と、
     探索対象フレーズに基づいて前記有向グラフ内を探索し、前記探索対象フレーズが前記辞書中に発見される場合に、前記有向グラフ内における前記探索対象フレーズが顕出した箇所を特定する有向グラフ探索部と、
     前記有向グラフ内における複数のトークンに基づいて、前記リソースとの関連付けを示すインデックスを作成するインデックス作成部と、を備え、
     前記有向グラフ探索部は、
     前記有向グラフ内における少なくとも1つのトークンを前記探索対象フレーズに設定し、前記設定した探索対象フレーズに基づいて前記辞書を参照し、
     前記有向グラフ生成部は、
     前記辞書に基づいて、前記探索対象フレーズに関連付けられた少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新する、
    装置。
  2.  前記有向グラフ生成部は、前記複数のトークンのうちの隣接するトークンどうしをノードによって接続した前記有向グラフを生成する、請求項1に記載の装置。
  3.  前記有向グラフ生成部は、前記有向グラフ内における前記顕出した箇所の前後のノードに、前記辞書中に発見された前記探索対象フレーズに関連付けられた前記少なくとも1つのフレーズを接続する、請求項2に記載の装置。
  4.  前記有向グラフ探索部は、前記有向グラフ生成部によって更新された有向グラフを探索する、請求項1に記載の装置。
  5.  前記有向グラフ探索部は、前記更新された有向グラフにおいて既に探索し終えたトークンに対する再探索が回避されるように、前記更新された有向グラフ内を探索する、請求項4に記載の装置。
  6.  前記有向グラフは、前記複数のトークンのうちの隣接するトークンどうしを接続する複数のノードを含み、
     前記有向グラフ探索部は、前記探索をし終えたトークンに関連付けられたノードを探索済みノードとして記憶し、前記探索済みノード以外のノードに接続されたトークンに対して再探索する、
    請求項5に記載の装置。
  7.  前記装置は、前記辞書に含まれる前記複数のフレーズに基づいて構成される木構造を示すデータ配列をさらに備え、前記木構造は、前記複数のフレーズのそれぞれに対応する順序付きノードを含み、
     前記有向グラフ探索部は、前記木構造を参照しながら、前記有向グラフ内を探索する、
    請求項1に記載の装置。
  8.  前記有向グラフ探索部は、前記探索対象フレーズが前記木構造における少なくとも1つの前記順序付きノードに対応する少なくとも1つのフレーズと一致する場合に、前記有向グラフ内に前記探索対象フレーズが顕出したと判断する、請求項7に記載の装置。
  9.  前記有向グラフ生成部は、前記一致する探索対象フレーズに関連付けられた、前記辞書における少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新する、請求項8に記載の装置。
  10.  前記インデックス作成部は、更新された前記有向グラフ内における複数のトークンに基づいてN-gramを抽出し、前記抽出したN-gramに基づいて、前記インデックスを作成する、請求項1に記載の装置。
  11.  前記インデックス作成部は、前記N-gramとして、単語ベースのN-gramを抽出する、請求項10に記載の装置。
  12.  請求項1に記載された装置により作成されたインデックスと、
     前記インデックスに関連付けられた前記リソースに関するリソース情報ファイルと、
     検索クエリに基づいて前記インデックスを検索し、該検索の結果に基づいて前記リソース情報ファイルから少なくとも1つのリソースを特定し、前記特定した少なくとも1つのリソースを示す検索結果を出力するクエリサーバと、を備える検索装置であって、
     前記クエリサーバは、前記特定した少なくとも1つのリソースから得られる、前記少なくとも1つのリソースにおけるフレーズに関連する所定の関連フレーズを含む有向グラフに基づいて、前記少なくとも1つのリソースが特定された根拠となった根拠フレーズ及び前記フレーズに関連付けられた前記少なくとも1つのリソースにおける元フレーズを特定し、
     前記検索結果は、前記根拠フレーズ及び前記元フレーズを含む、
    検索装置。
  13.  コンピューティングデバイスにより実行される、テキスト文を含むリソースに基づいてデータベースを検索するためのインデックスを作成するための方法であって、
     前記コンピューティングデバイスのプロセッサの制御の下、前記コンピューティングデバイスが、
     特定の概念ごとに、相互に関連付けられた複数のフレーズを含む辞書を、前記プロセッサによってアクセスされるメモリに展開することと、
     入力インターフェース部を介して、前記リソースの入力を受け付けることと、
     前記受け付けたリソースのテキスト文から複数の語をトークンとして切り出すためのテキスト処理を行うことと、
     前記テキスト文に従って、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフを生成し、前記プロセッサによってアクセスされるメモリに展開することと、
     探索対象フレーズに基づいて前記辞書を参照しながら前記有向グラフ内を探索することと、
     前記有向グラフ内における複数のトークンに基づいて、前記リソースとの関連付けを示すインデックスを作成して前記データベースに登録することと、を実行することを含み、
     前記有向グラフ内を探索することは、
     前記有向グラフ内における少なくとも1つのトークンを前記探索対象フレーズに設定し、前記設定した探索対象フレーズに基づいて前記辞書を参照し、前記探索対象フレーズが前記辞書中に発見された場合に、前記有向グラフ内における前記探索対象フレーズが顕出した箇所を特定することを含み、
     前記有向グラフを生成することは、
     前記辞書中に発見された前記探索対象フレーズに関連付けられた少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新することを含む、
    方法。
  14.  前記有向グラフを生成することは、前記複数のトークンのうちの隣接するトークンどうしをノードによって接続した前記有向グラフを生成することを含む、請求項13に記載の方法。
  15.  前記有向グラフを生成することは、前記有向グラフ内における前記顕出した箇所の前後のノードに、前記辞書中に発見された前記探索対象フレーズに関連付けられた前記少なくとも1つのフレーズを接続する、請求項14に記載の方法。
  16.  前記有向グラフを探索することは、前記更新された有向グラフを新たな探索対象の有向グラフとして探索する、請求項13に記載の方法。
  17.  前記インデックスを作成することは、更新された前記有向グラフ内における複数の語に基づいてN-gramを抽出し、前記抽出したN-gramに基づいて、前記インデックスを作成することを含む、請求項13に記載の方法。
  18.  前記インデックスを作成することは、前記N-gramとして、単語ベースのN-gramを抽出する、請求項17に記載の方法。
  19.  検索エンジンを含む検索装置により実行される情報検索方法であって、
     前記検索装置のプロセッサの制御の下、前記検索エンジンが、
     クライアントコンピュータから受信した検索クエリに基づいて、前記検索装置のデータベース上のインデックスを検索し、該検索の結果に基づいてリソース情報ファイルから少なくとも1つのリソースを特定することと、
     前記特定した少なくとも1つのリソースから得られる、前記少なくとも1つのリソースにおけるフレーズに関連する所定の関連フレーズを含む有向グラフを前記プロセッサによってアクセスされるメモリに展開し、前記メモリに展開された前記有向グラフに基づいて、前記少なくとも1つのリソースが特定された根拠となった根拠フレーズ及び前記フレーズに関連付けられた前記所定のリソースにおける元フレーズを特定することと、
     前記少なくとも1つのリソース並びに前記根拠フレーズ及び前記元フレーズを示す情報を検索結果として出力し、前記クライアントコンピュータに送信することと、を実行することを、
    を含む情報検索方法。
  20.  テキスト文を含むリソースに基づいて、データベースを検索するためのインデックスを作成する方法をコンピューティングデバイスに実現させるためのコンピュータ読み取り可能プログラムを非一時的に記録した記録媒体であって、
     前記方法は、
     特定の概念ごとに、相互に関連付けられた複数のフレーズを含む辞書を、前記装置のプロセッサによってアクセスされるメモリに展開することと、
     入力インターフェース部を介して、前記リソースの入力を受け付けることと、
     前記受け付けたリソースのテキスト文から複数の語をトークンとして切り出すためのテキスト処理を行うことと、
     前記テキスト文に従って、前記切り出した複数のトークンどうしの接続関係を表現した有向グラフを生成することと、
     探索対象フレーズに基づいて前記辞書を参照しながら前記有向グラフ内を探索することと、
     前記有向グラフ内における複数のトークンに基づいて、前記リソースとの関連付けを示すインデックスを作成することと、を含み、
     前記有向グラフ内を探索することは、
     前記有向グラフ内における少なくとも1つのトークンを前記探索対象フレーズに設定し、前記設定した探索対象フレーズに基づいて前記辞書を参照し、前記探索対象フレーズが前記辞書中に発見された場合に、前記有向グラフ内における前記探索対象フレーズが顕出した箇所を特定することを含み、
     前記有向グラフを生成することは、
     前記辞書中に発見された前記探索対象フレーズに関連付けられた少なくとも1つのフレーズに基づく新たなトークンを前記有向グラフに追加することによって、前記有向グラフを更新することを含む、
    記録媒体。
     
     
     
     
PCT/JP2019/008254 2018-03-05 2019-03-04 インデックスを用いた情報検索システム及び情報検索方法 WO2019172153A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201980012723.4A CN111699485A (zh) 2018-03-05 2019-03-04 使用索引的信息检索系统和信息检索方法
EP19763530.3A EP3764240B1 (en) 2018-03-05 2019-03-04 Information search system and information search method using index
KR1020207028264A KR102453183B1 (ko) 2018-03-05 2019-03-04 인덱스를 이용한 정보 검색 시스템 및 정보 검색 방법
US16/970,916 US11755833B2 (en) 2018-03-05 2019-03-04 Information search system and information search method using index
SG11202008506RA SG11202008506RA (en) 2018-03-05 2019-03-04 Information search system and information search method using index
US18/360,504 US20230376682A1 (en) 2018-03-05 2023-07-27 Information search system and information search method using index

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018-039167 2018-03-05
JP2018039167 2018-03-05
JP2018133752A JP6435467B1 (ja) 2018-03-05 2018-07-13 検索システム及び検索システムの動作方法
JP2018-133752 2018-07-13

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/970,916 A-371-Of-International US11755833B2 (en) 2018-03-05 2019-03-04 Information search system and information search method using index
US18/360,504 Continuation US20230376682A1 (en) 2018-03-05 2023-07-27 Information search system and information search method using index

Publications (1)

Publication Number Publication Date
WO2019172153A1 true WO2019172153A1 (ja) 2019-09-12

Family

ID=64655859

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/008254 WO2019172153A1 (ja) 2018-03-05 2019-03-04 インデックスを用いた情報検索システム及び情報検索方法

Country Status (7)

Country Link
US (2) US11755833B2 (ja)
EP (1) EP3764240B1 (ja)
JP (2) JP6435467B1 (ja)
KR (1) KR102453183B1 (ja)
CN (1) CN111699485A (ja)
SG (1) SG11202008506RA (ja)
WO (1) WO2019172153A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559926B (zh) * 2020-12-22 2023-10-03 北京百度网讯科技有限公司 搜索展示条目的上线处理方法、装置、设备、介质及产品
JP2022128934A (ja) * 2021-02-24 2022-09-05 富士通株式会社 データ特定プログラム、装置、及び方法
US11636110B1 (en) * 2021-10-29 2023-04-25 Snowflake Inc. Metadata search via N-Gram index

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290843A (ja) * 2000-02-04 2001-10-19 Fujitsu Ltd 文書検索装置及びその方法並びに文書検索プログラム及びそのプログラムを記録した記録媒体
JP2006048686A (ja) * 2004-07-26 2006-02-16 Google Inc フレーズに基づく文書説明の生成方法
JP2009223781A (ja) * 2008-03-18 2009-10-01 Nec Corp 情報推薦装置、情報推薦システム、情報推薦方法、プログラム及び記録媒体
JP2011180823A (ja) 2010-03-01 2011-09-15 National Institute Of Information & Communication Technology 機械翻訳装置、機械翻訳方法、およびプログラム
JP2015133151A (ja) 2008-07-28 2015-07-23 ヤフー! インコーポレイテッド コミュニティ横断検索
US20160085742A1 (en) * 2014-09-23 2016-03-24 Kaybus, Inc. Automated collective term and phrase index
US20160203130A1 (en) * 2013-08-30 2016-07-14 Unsilo A/S Method and system for identifying and evaluating semantic patterns in written language

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL107482A (en) * 1992-11-04 1998-10-30 Conquest Software Inc A method for solving questions in natural language from databases of full texts
US5715468A (en) * 1994-09-30 1998-02-03 Budzinski; Robert Lucius Memory system for storing and retrieving experience and knowledge with natural language
US7165058B2 (en) * 2001-12-27 2007-01-16 The Boeing Company Database analysis tool
US20040186705A1 (en) * 2003-03-18 2004-09-23 Morgan Alexander P. Concept word management
JP2004295301A (ja) * 2003-03-26 2004-10-21 Oki Electric Ind Co Ltd 文書検索装置
US7406459B2 (en) * 2003-05-01 2008-07-29 Microsoft Corporation Concept network
US8014997B2 (en) * 2003-09-20 2011-09-06 International Business Machines Corporation Method of search content enhancement
US20050283473A1 (en) * 2004-06-17 2005-12-22 Armand Rousso Apparatus, method and system of artificial intelligence for data searching applications
US9400838B2 (en) * 2005-04-11 2016-07-26 Textdigger, Inc. System and method for searching for a query
JP4803709B2 (ja) * 2005-07-12 2011-10-26 独立行政法人情報通信研究機構 単語用法差異情報取得プログラム及び同装置
US20070106499A1 (en) * 2005-08-09 2007-05-10 Kathleen Dahlgren Natural language search system
US7805392B1 (en) * 2005-11-29 2010-09-28 Tilera Corporation Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table
US20070162481A1 (en) * 2006-01-10 2007-07-12 Millett Ronald P Pattern index
RU2618375C2 (ru) * 2015-07-02 2017-05-03 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Расширение возможностей информационного поиска
CA2675216A1 (en) * 2007-01-10 2008-07-17 Nick Koudas Method and system for information discovery and text analysis
US9361365B2 (en) * 2008-05-01 2016-06-07 Primal Fusion Inc. Methods and apparatus for searching of content using semantic synthesis
JP5110201B2 (ja) 2009-03-17 2012-12-26 富士通株式会社 検索処理方法及び装置
US9594872B2 (en) * 2012-10-25 2017-03-14 Intelligent Medical Objects, Inc. Method and system for concept-based terminology management
US20140278362A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Entity Recognition in Natural Language Processing Systems
CN104462084B (zh) * 2013-09-13 2019-08-16 Sap欧洲公司 基于多个查询提供搜索细化建议
JP6176017B2 (ja) * 2013-09-17 2017-08-09 富士通株式会社 検索装置、検索方法、およびプログラム
US9390196B2 (en) * 2014-06-03 2016-07-12 International Business Machines Corporation Adjusting ranges of directed graph ontologies across multiple dimensions
US10509814B2 (en) * 2014-12-19 2019-12-17 Universidad Nacional De Educacion A Distancia (Uned) System and method for the indexing and retrieval of semantically annotated data using an ontology-based information retrieval model
US11030402B2 (en) * 2019-05-03 2021-06-08 International Business Machines Corporation Dictionary expansion using neural language models

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290843A (ja) * 2000-02-04 2001-10-19 Fujitsu Ltd 文書検索装置及びその方法並びに文書検索プログラム及びそのプログラムを記録した記録媒体
JP2006048686A (ja) * 2004-07-26 2006-02-16 Google Inc フレーズに基づく文書説明の生成方法
JP2009223781A (ja) * 2008-03-18 2009-10-01 Nec Corp 情報推薦装置、情報推薦システム、情報推薦方法、プログラム及び記録媒体
JP2015133151A (ja) 2008-07-28 2015-07-23 ヤフー! インコーポレイテッド コミュニティ横断検索
JP2011180823A (ja) 2010-03-01 2011-09-15 National Institute Of Information & Communication Technology 機械翻訳装置、機械翻訳方法、およびプログラム
US20160203130A1 (en) * 2013-08-30 2016-07-14 Unsilo A/S Method and system for identifying and evaluating semantic patterns in written language
US20160085742A1 (en) * 2014-09-23 2016-03-24 Kaybus, Inc. Automated collective term and phrase index

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
INOUE, TAKAFUMI ET AL.: "Phrase Index Holding Strategy in Full-Text Search System", THE FIRST FORUM ON DATA ENGINEERING AND INFORMATION MANAGEMENT - PROCEEDINGS OF DEIM FORUM, 25 December 2009 (2009-12-25), pages 1 - 5, XP009523000 *
SOSUKE AMANO; KIYOHARU AIZAWA; MAKOTO OGAWA: "Extraction of Food Category Representatives in Meal Name Data", IEICE TECHNICAL REPORT, vol. 114, no. 487 (IE2014-119), 24 February 2015 (2015-02-24), pages 147 - 152, XP009522998 *

Also Published As

Publication number Publication date
JP2019153267A (ja) 2019-09-12
CN111699485A (zh) 2020-09-22
EP3764240B1 (en) 2022-10-19
EP3764240A4 (en) 2021-12-08
US20230376682A1 (en) 2023-11-23
EP3764240A1 (en) 2021-01-13
JP2019153271A (ja) 2019-09-12
US11755833B2 (en) 2023-09-12
JP7240662B2 (ja) 2023-03-16
JP6435467B1 (ja) 2018-12-12
US20200394223A1 (en) 2020-12-17
KR102453183B1 (ko) 2022-10-07
SG11202008506RA (en) 2020-10-29
KR20200125697A (ko) 2020-11-04

Similar Documents

Publication Publication Date Title
Resnik et al. The web as a parallel corpus
KR102408082B1 (ko) 질문문 생성 장치 및 컴퓨터 프로그램
JP5224851B2 (ja) 検索エンジン、検索システム、検索方法およびプログラム
CN102236640B (zh) 命名实体的消歧
US7937395B2 (en) Systems and methods of displaying and re-using document chunks in a document development application
US8145632B2 (en) Systems and methods of identifying chunks within multiple documents
US20090055394A1 (en) Identifying key terms related to similar passages
US20230376682A1 (en) Information search system and information search method using index
JP3944102B2 (ja) 語義関連ネットワークを用いた文書検索システム
US20080040352A1 (en) Method for creating a disambiguation database
Sitender et al. Sansunl: a Sanskrit to UNL enconverter system
Bhoir et al. Question answering system: A heuristic approach
Yates et al. Extracting adverse drug reactions from forum posts and linking them to drugs
KR20230051364A (ko) 인덱스를 이용한 정보 검색 시스템 및 정보 검색 방법
Yunus et al. Semantic method for query translation.
JP6098725B2 (ja) 情報検索処理プログラム、装置、および方法
Paul et al. An affix removal stemmer for natural language text in nepali
JP2004514967A (ja) データベースをリンクする方法と装置
Charton et al. Improving Entity Linking using Surface Form Refinement.
WO2015177861A1 (ja) 教師データ作成装置及び方法
US20170220557A1 (en) Method, device, and computer program for providing a definition or a translation of a word belonging to a sentence as a function of neighbouring words and of databases
JP5148583B2 (ja) 機械翻訳装置、方法及びプログラム
dos Santos HealthSuggestions: moving beyond the beta version
JP4034503B2 (ja) 文書検索システムおよび文書検索方法
JP2013015967A (ja) 検索システム、索引作成装置、検索装置、索引作成方法、検索方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19763530

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20207028264

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019763530

Country of ref document: EP

Effective date: 20201005