WO2022264385A1 - 検索方法、検索プログラムおよび情報処理装置 - Google Patents

検索方法、検索プログラムおよび情報処理装置 Download PDF

Info

Publication number
WO2022264385A1
WO2022264385A1 PCT/JP2021/023115 JP2021023115W WO2022264385A1 WO 2022264385 A1 WO2022264385 A1 WO 2022264385A1 JP 2021023115 W JP2021023115 W JP 2021023115W WO 2022264385 A1 WO2022264385 A1 WO 2022264385A1
Authority
WO
WIPO (PCT)
Prior art keywords
character string
string data
cluster
search
information
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2021/023115
Other languages
English (en)
French (fr)
Inventor
正弘 片岡
聡 尾上
量 松村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to PCT/JP2021/023115 priority Critical patent/WO2022264385A1/ja
Publication of WO2022264385A1 publication Critical patent/WO2022264385A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/35Clustering; Classification

Definitions

  • the present invention relates to a search method and the like.
  • a huge amount of text data is registered in the DB (Data Base), and it is required to appropriately search the DB for data similar to the input query specified by the user.
  • data retrieval is performed using a word vector dictionary that associates words with word vectors.
  • a word specified in an input query is compared with a word vector table to identify a word vector, which is compared with the vector of each word included in the text data to obtain a word corresponding to the input query. Search for information.
  • information corresponding to the input query is searched based on the word vector of the word specified in the input query and the vector of each word included in the text data. Since the dimensions are represented by floating-point values, the size of the inverted index becomes enormous, and the search time takes a long time.
  • An object of the present invention in one aspect is to provide a search method, search program, and information processing apparatus capable of suppressing the size of an inverted index and shortening search time.
  • the computer executes the following processing.
  • the computer When receiving character string data as a search condition, the computer identifies a cluster corresponding to the received character string data among a plurality of clusters included in the plurality of character string data.
  • the computer refers to a storage unit that stores information indicating each of a plurality of character string data contained in a search target database in association with one of a plurality of clusters, and character string data associated with the identified cluster. identify information that indicates The computer generates search results according to information indicating the specified character string data.
  • FIG. 1 is a diagram (1) for explaining the preparation phase processing of the information processing apparatus according to the first embodiment.
  • FIG. 2 is a diagram (2) for explaining the preparation phase processing of the information processing apparatus according to the first embodiment.
  • FIG. 3 is a diagram for explaining the search phase processing of the information processing apparatus according to the first embodiment.
  • FIG. 4 is a functional block diagram showing the configuration of the information processing apparatus according to the first embodiment.
  • FIG. 5 is a diagram showing an example of the data structure of the file table.
  • FIG. 6 is a flow chart showing processing of the preparation phase of the information processing apparatus according to the first embodiment.
  • FIG. 7 is a flow chart showing the processing of the search phase of the information processing apparatus according to the first embodiment.
  • FIG. 8 is a diagram for explaining processing in the preparation phase of the information processing apparatus according to the second embodiment.
  • FIG. 9 is a diagram (1) for explaining the search phase processing of the information processing apparatus according to the second embodiment.
  • FIG. 10 is a diagram (2) for explaining the search phase processing of the information processing apparatus according to the second embodiment.
  • FIG. 11 is a functional block diagram showing the configuration of the information processing apparatus according to the second embodiment.
  • FIG. 12 is a flow chart showing processing of the preparation phase of the information processing apparatus according to the second embodiment.
  • FIG. 13 is a flow chart showing the search phase process of the information processing apparatus according to the second embodiment.
  • FIG. 14 is a diagram illustrating an example of a hardware configuration of a computer that implements functions similar to those of the information processing apparatus of the embodiment.
  • the information processing apparatus sequentially executes the preparation phase process and the search phase process.
  • preparation phase processing and search phase processing executed by the information processing apparatus will be described in order.
  • FIG. 1 is a diagram (1) for explaining the processing of the preparation phase of the information processing apparatus according to the first embodiment.
  • the information processing device has a vector dictionary 141 that stores character strings and vectors corresponding to the character strings in association with each other.
  • a word is used as an example of the character string, but the character string is not limited to this, and the character string may be a sentence, a paragraph, or a sentence.
  • character strings are referred to as "words" as appropriate.
  • the vector "WV ⁇ ” is set for the word “horse”.
  • a vector “WV ⁇ ” is set for the word “ginseng”.
  • a vector “WV ⁇ ” is set for the word “like”.
  • a vector “WV ⁇ ” is set for the word "favorite”.
  • the information processing device performs clustering on the vectors set for each word in the vector dictionary 141, thereby classifying a plurality of similar vectors into the same cluster.
  • the information processing device may use, for example, the k-means method as clustering. Words corresponding to vectors classified into the same cluster are assigned the same cluster ID.
  • the information processing device executes such processing to generate the cluster table 142 .
  • the vector “WV ⁇ ” of the word “horse” is classified into the cluster with the cluster ID “G1”.
  • the vector “WV ⁇ ” of the word “ginseng” is classified into the cluster with the cluster ID “G2”.
  • the vector “WV ⁇ ” of the word “like” is classified into the cluster with the cluster ID "G3”.
  • the vector “WV ⁇ " of the word "favorite” is classified into the cluster with the cluster ID "G3".
  • the cluster table 142 associates words (character strings), cluster IDs, and vectors. For example, according to the clustering result 5, the word “horse” is associated with the cluster ID "G1". The cluster ID “G2" is associated with the word “carrot”. A cluster ID "G3" is associated with the words “like” and "favorite”.
  • FIG. 2 is a diagram (2) for explaining the preparation phase processing of the information processing apparatus according to the first embodiment.
  • the information processing device compares each word included in the cluster table 142 with the file table 143 to generate a transposed index 144 .
  • the file table 143 contains a plurality of document files that constitute text data.
  • a document file is set with character strings of sentence granularity.
  • a sentence includes multiple terms, and each term includes multiple sentences.
  • Each sentence contains multiple words.
  • Each document file has a document ID that uniquely identifies the document file.
  • the information processing device compares the word in the cluster table 142 with the character string of each document file in the file table 143, and if the word is hit, the cluster ID of the word, the file pointer, and the offset pointer are associated with each other and registered in the inverted index 144 .
  • the file pointer is set with the document ID of the document file containing the corresponding word.
  • the offset pointer is a document file containing the corresponding word, and position information (offset) of the word on the document file is set.
  • the offset is the number of words from the top word of the file to the corresponding word.
  • the number of characters from the first character of the file to the first character of the corresponding word may be used.
  • the word “horse” belonging to the cluster ID "G1” exists in the document file with the document ID "Doc1", and the offset from the first word to the word “horse” is "Po1-1".
  • the information processing device registers the cluster ID “G1”, the file pointer “Doc1”, and the offset pointer “Po1-1” in the inverted index 144 . If the word “horse” or the word belonging to the cluster ID "G1" exists in a plurality of document files, a set of a plurality of file pointers and offset pointers for one cluster ID "G1" It is registered in the transposed index 144 .
  • the information processing device generates the transposed index 144 by repeatedly executing the above process for each word set in the cluster table 142 .
  • FIG. 3 is a diagram for explaining the search phase processing of the information processing apparatus according to the first embodiment.
  • the information processing device receives an input query 50 .
  • Input query 50 includes multiple words. The example shown in FIG. 3 shows a case where the words “horse”, “carrot”, and “like” are included.
  • the information processing device compares each word of the input query 50 with the cluster table 142 shown in FIGS. 1 and 2 to identify cluster IDs corresponding to each word of the input query 50 . For example, the cluster ID corresponding to the word “horse” is "G1", the cluster ID corresponding to the word “carrot” is "G2", and the cluster ID corresponding to the word “like” is "G3".
  • the cluster ID identified from each word of the input query 50 is referred to as "specific cluster ID".
  • the information processing device identifies the document IDs corresponding to all specific cluster IDs based on the file pointers of the records of the inverted index 144 corresponding to the specific cluster IDs.
  • the specific cluster IDs are "G1", “G2”, and “G3”.
  • the document ID "Doc1” corresponds to the specific cluster IDs "G1", “G2”, and “G3”.
  • the document ID "Doc2” corresponds to the specific cluster IDs "G1", "G2", and "G3”.
  • the information processing device extracts the document file with the document ID "Doc1" and the document file with the document ID "Doc2" from the file table 143 and outputs them as the search results of the input query 50.
  • the information processing apparatus generates the transposed index 144 in the preparation phase.
  • the information processing device identifies cluster IDs corresponding to the words set in the input query 50 .
  • the information processing device refers to the inverted index 144 and generates a search result based on the document ID associated with the specific cluster ID.
  • the transposed index corresponding to each word vector of the input query 50 by associating the document ID and offset of the word with the cluster ID of the word vector, the size of the transposed index can be suppressed and the search time can be shortened. can.
  • FIG. 4 is a functional block diagram showing the configuration of the information processing apparatus according to the first embodiment.
  • this information processing apparatus 100 has a communication section 110 , an input section 120 , a display section 130 , a storage section 140 and a control section 150 .
  • the communication unit 110 is connected to an external device or the like by wire or wirelessly, and transmits and receives information to and from the external device or the like.
  • the communication unit 110 is implemented by a NIC (Network Interface Card) or the like.
  • the communication unit 110 may be connected to a network (not shown).
  • the input unit 120 is an input device that inputs various types of information to the information processing device 100 .
  • the input unit 120 corresponds to a keyboard, mouse, touch panel, or the like.
  • the user may operate the input unit 120 to input an input query or the like.
  • the display unit 130 is a display device that displays information output from the control unit 150 .
  • the display unit 130 corresponds to a liquid crystal display, an organic EL (Electro Luminescence) display, a touch panel, or the like. For example, search results corresponding to the input query are displayed on display unit 130 .
  • the storage unit 140 has a vector dictionary 141, a cluster table 142, a file table 143, an inverted index 144, and an input query 50.
  • the storage unit 140 is implemented by, for example, a semiconductor memory device such as RAM (Random Access Memory) or flash memory, or a storage device such as a hard disk or optical disc.
  • RAM Random Access Memory
  • flash memory or a storage device such as a hard disk or optical disc.
  • the vector dictionary 141 associates and holds words (character strings) and vectors.
  • the data structure of the vector dictionary 141 corresponds to the vector dictionary 141 shown in FIG.
  • Word vectors may be preset vectors, or vectors may be assigned using a technique called Poincare Embeddings.
  • Poincaré embedding for example, the technology described in the non-patent document "Valentin Khrulkov1 et al. 'Hyperbolic Image Embeddings' Georgia University, 2019 April 3" may be used.
  • Poincare embedding words are embedded in a space called the Poincare space, and vectors are assigned according to the embedded positions. Also, there is a feature that the more similar words are, the closer they are embedded in the Poincare space.
  • the cluster table 142 is a table used to identify clusters to which words belong.
  • the data structure of the cluster table 142 corresponds to the cluster table 142 shown in FIG.
  • the cluster table 142 is a table that associates words (character strings), cluster IDs, and vectors.
  • a cluster ID is information that uniquely identifies a cluster to which a word belongs.
  • the file table 143 has a plurality of document files that constitute text data.
  • FIG. 5 is a diagram showing an example of the data structure of the file table. As shown in FIG. 5, the file table 143 associates a plurality of document IDs forming text data with document files.
  • a document ID is information that uniquely identifies a document file.
  • a document file is set with character strings (text data) of sentence granularity.
  • the transposed index 144 is information for specifying the document file and the position where the words belonging to the cluster ID are located.
  • the data structure of the transposed index 144 corresponds to the transposed index 144 described with reference to FIG.
  • the inverted index 144 associates cluster IDs with sets (multiple sets) of file pointers and offset pointers.
  • the file pointer is set with the document ID of the document file containing the word corresponding to the cluster ID.
  • the offset pointer is a document file containing the corresponding word, and position information (offset) of the word on the document file is set.
  • the input query 50 is an input query specified from the outside. A plurality of words are set in the input query 50 .
  • the control unit 150 has a preprocessing unit 151 and a search unit 152 .
  • the control unit 150 is implemented by, for example, a CPU (Central Processing Unit) or an MPU (Micro Processing Unit). Also, the control unit 150 may be executed by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the preprocessing unit 151 executes processing for generating a cluster table 142 based on the vector dictionary 141 and processing for generating a transposed index 144 based on the cluster table 142 and file table 143 .
  • a process of generating the cluster table 142 by the preprocessing unit 151 based on the vector dictionary 141 will be described. Processing of the preprocessing unit 151 will be described with reference to FIG.
  • the preprocessing unit 151 clusters the vectors set for each word in the vector dictionary 141, thereby classifying a plurality of similar vectors into the same cluster.
  • the preprocessing unit 151 may use the k-means method as clustering. Words corresponding to vectors classified into the same cluster are assigned the same cluster ID. Words classified into the same cluster can be said to be similar words.
  • the preprocessing unit 151 associates words, cluster IDs, and vectors and registers them in the cluster table 142 .
  • the preprocessing unit 151 executes such processing to generate the cluster table 142 .
  • a process of generating the transposed index 144 by the preprocessing unit 151 based on the cluster table 142 and the file table 143 will be described. Processing of the preprocessing unit 151 will be described with reference to FIG.
  • the preprocessing unit 151 compares each word included in the cluster table 142 with the file table 143 to generate an inverted index 144 . For example, the preprocessing unit 151 selects a word in the cluster table 142, compares the selected word with the character strings of each document file in the file table 143, and if the word is hit, the corresponding word is A cluster ID, a file pointer, and an offset pointer are associated with each other and registered in the inverted index 144 .
  • the preprocessing unit 151 generates the transposed index 144 by repeatedly executing the above process for each word set in the cluster table 142 .
  • the search unit 152 receives the input query 50 and searches the file table 143 for document files corresponding to the input query 50 .
  • An example of the processing of the search unit 152 will be described below. Processing of the search unit 152 will be described with reference to FIG.
  • the search unit 152 Upon receiving the input query 50 , the search unit 152 registers the input query 50 in the storage unit 140 .
  • the search unit 152 may receive the input query 50 from the input unit 120 or may receive it from an external device via the communication unit 110 .
  • the search unit 152 Based on each word included in the input query 50 and the cluster table 142, the search unit 152 identifies a cluster ID (specific cluster ID) corresponding to each word. For example, if the input query 50 includes the words "horse”, “carrot” and “like”, the specific cluster IDs are "G1", "G2" and "G3".
  • the search unit 152 Based on the specific cluster ID and the inverted index 144, the search unit 152 identifies the document ID corresponding to each specific cluster ID. For example, the document ID “Doc1” corresponds to the specific cluster IDs “G1", “G2", and “G3". Also, the document ID “Doc2” corresponds to the specific cluster IDs "G1", “G2", and “G3”. Therefore, the search unit 152 identifies the document IDs “Doc1” and “Doc2” as document IDs corresponding to each specific cluster ID.
  • the search unit 152 extracts the document file corresponding to the specified document ID from the file table 143 and generates the extracted document file as the search result of the input query 50. Search unit 152 outputs the search result to display unit 130 for display.
  • FIG. 6 is a flow chart showing processing of the preparation phase of the information processing apparatus according to the first embodiment.
  • the preprocessing unit 151 of the information processing device 100 clusters the vectors of each word in the vector dictionary 141 (step S101).
  • the preprocessing unit 151 sets cluster IDs to the words and generates the cluster table 142 (step S102).
  • the preprocessing unit 151 generates the transposed index 144 based on the cluster table 142 and the file table 143 (step S103).
  • FIG. 7 is a flow chart showing the search phase process of the information processing apparatus according to the first embodiment.
  • the search unit 152 of the information processing device 100 receives an input query 50 and registers it in the storage unit 140 (step S201).
  • the search unit 152 identifies the word set in the input query 50 (step S202).
  • the search unit 152 identifies the specific cluster ID of the word set in the input query based on the cluster table 142 (step S203).
  • the search unit 152 identifies the document ID and offset corresponding to the specific cluster ID based on the specific cluster ID and the inverted index 144 (step S204).
  • the search unit 152 extracts the document file corresponding to the specified document ID and offset from the file table 143 and generates a search result (step S205).
  • the search unit 152 outputs the search result (step S206).
  • the information processing apparatus 100 generates the transposed index 144 in the preparation phase.
  • the information processing apparatus 100 identifies cluster IDs corresponding to the words set in the input query 50 .
  • the information processing apparatus 100 refers to the transposed index 144 and generates search results based on the document ID associated with the specific cluster ID. In this way, regarding the inverted index corresponding to each word of the input query 50, the size of the inverted index for searching including similar words is suppressed by associating the document ID and offset of the word with the cluster ID of the word vector. and shorten the search time.
  • the scope can be expanded to include source programs (instructions/variables), organic compounds (functional groups), genomes (amino acids/proteins), and images (outline PostScript). can.
  • the information processing apparatus 100 clusters the vectors of each word set in the vector dictionary 141, sets the same cluster ID for words included in the same cluster, and generates a cluster table 142. .
  • the same cluster ID can be assigned to similar words, and by using the cluster ID, a character string similar to the word set in the input query 50 can be searched at high speed while saving resources.
  • the information processing device 100 generates an inverted index 144 that associates the cluster ID with the file pointer and the offset pointer. This makes it possible to efficiently locate document files and words that have words that correspond to the cluster ID.
  • the pointer-type transposed index is shown in FIG. 2, a bitmap-type transposed index may be used. Each of the file bitmap and offset bitmap can be hashed to further constrain the size of the inverted index.
  • the information processing apparatus according to the second embodiment sequentially executes a preparation phase process and a search phase process.
  • preparation phase processing and search phase processing executed by the information processing apparatus will be described in order.
  • FIG. 8 is a diagram for explaining the preparation phase processing of the information processing apparatus according to the second embodiment.
  • the information processing apparatus clusters the vectors set for each word in the vector dictionary 241 according to the concept classification number (also called concept index) of the thesaurus dictionary.
  • concept classification number also called concept index
  • each word vector can be approximated and a cluster table 242a can be generated. This can be expressed by associating word vectors with Poincare space according to concept numbers.
  • the information processing device may perform Poincare embedding for each word in the vector dictionary 241, assign a vector to each word, and then perform clustering.
  • the information processing device After generating the cluster table 242a, the information processing device identifies the position on the vector space P for each vector set in the cluster table 242a, and finds the smallest region (for example, , spherical and cubic regions).
  • the information processing device identifies the center coordinates and radius of each of the identified areas A1, A2, and A3, associates them with the corresponding cluster ID, and registers them in the determination table 242b. For example, when the center coordinates of the area A1 are (x1, y1, z1) and the radius is "r1", the information processing device determines the cluster ID "G1", the center coordinates (x1, y1, z1), The radius "r1" is registered in the determination table 242b.
  • the information processing device sets the cluster ID "G2", the center coordinates (x2, y2, z2), the radius " r2” is registered in the determination table 242b.
  • the information processing device sets the cluster ID "G3", the center coordinates (x3, y3, z3), the radius " r3” is registered in the determination table 242b.
  • FIG. 9 is a diagram (1) for explaining the processing of the search phase of the information processing apparatus according to the second embodiment.
  • the information processing device receives an input query 60 .
  • Input query 60 includes multiple words.
  • the example shown in FIG. 9 shows a case where the input query 60 includes the words "horse”, “carrot”, and "like".
  • the information processing device uses the vector dictionary 241 to identify the vector of each word of the input query 60 . For example, let the vector of the word “horse” be “WV ⁇ ”, the vector of "carrot” be “WV ⁇ ”, and the vector of "like” be “WV ⁇ ”.
  • the information processing device compares the regions A1, A2, and A3 on the vector space P specified from the determination table 242b with the positions of the vectors "WV ⁇ ", “WV ⁇ ”, and “WV ⁇ ” of the words of the input query 60, respectively. and identify the cluster ID corresponding to the vector of words.
  • the vector "WV ⁇ " of the word “horse” is included in the area A1, so the cluster ID of the word “horse” is set to “G1". Since the vector "WV ⁇ " of the word “carrot” is included in the region A2, the cluster ID of the word “carrot” is set to “G2". Since the vector "WV ⁇ " of the word “like” is included in the area A3, the cluster ID of the word “like” is set to "G3".
  • the information processing device executes search processing based on the cluster IDs (specific cluster IDs) "G1", “G2", and “G3" obtained in the above process and the transposed index.
  • the processing of searching based on the specific cluster ID and the inverted index is the same as the processing of the information processing apparatus 100 .
  • FIG. 10 is a diagram (2) for explaining the search phase processing of the information processing apparatus according to the second embodiment.
  • the information processing device receives an input query 60 .
  • Input query 60 includes multiple words.
  • the example shown in FIG. 10 shows a case where the input query 60 includes the words "horse”, “carrot”, and "favorite".
  • the information processing device uses the vector dictionary 241 to identify the vector of each word of the input query 60 .
  • the vector of the word “horse” is “WV ⁇ ”
  • the vector of "carrot” is “WV ⁇ ”
  • the vector of "favorite” is "WV ⁇ ”.
  • the information processing device compares the regions A1, A2, and A3 on the vector space P specified from the determination table 242b with the positions of the vectors "WV ⁇ ", “WV ⁇ ”, and “WV ⁇ ” of the words of the input query 60, respectively. and identify the cluster ID corresponding to the vector of words.
  • the vector "WV ⁇ " of the word “horse” is included in the area A1, so the cluster ID of the word “horse” is set to “G1". Since the vector "WV ⁇ " of the word “carrot” is included in the region A2, the cluster ID of the word “carrot” is set to "G2".
  • the vector "WV ⁇ " of the word “favorite” is not included in any of the areas A1 to A3.
  • the information processing device compares the position of the vector "WV ⁇ ” with the distances to the areas A1 to A3 (distances to the surface), and identifies the area A3 closest to the position of the vector "WV ⁇ ”. .
  • the information processing device sets the cluster ID "G3" corresponding to the region A3 closest to the position of the vector "WV ⁇ " as the cluster ID of the word "favorite".
  • the information processing device executes search processing based on the cluster IDs (specific cluster IDs) "G1", “G2", and “G3" obtained in the above process and the transposed index.
  • the processing of searching based on the specific cluster ID and the inverted index is the same as the processing of the information processing apparatus 100 .
  • the information processing apparatus in the preparation phase, the information processing apparatus according to the second embodiment generates the determination table 242b that associates information (center coordinates and radius) of regions on the vector space P with cluster IDs. back.
  • the information processing device corresponds to each word set in the input query 60 based on the position of the vector of the word in the vector space and the area based on the determination table 242b.
  • a cluster ID is identified, and search results are generated in the same manner as in the first embodiment. In this way, by identifying the cluster ID from the position on the vector space corresponding to each word of the input query 60 and performing the search, the search time can be shortened.
  • FIG. 11 is a functional block diagram showing the configuration of the information processing apparatus according to the second embodiment.
  • this information processing apparatus 200 has a communication section 210 , an input section 220 , a display section 230 , a storage section 240 and a control section 250 .
  • the descriptions of the communication unit 210, the input unit 220, and the display unit 230 are the same as the descriptions of the communication unit 110, the input unit 120, and the display unit 130 described in the first embodiment.
  • the storage unit 240 has a vector dictionary 241, a cluster table 242a, a determination table 242b, a file table 243, an inverted index 244, and an input query 60.
  • the storage unit 240 is realized by, for example, a semiconductor memory device such as a RAM or flash memory, or a storage device such as a hard disk or an optical disk.
  • the vector dictionary 241 associates and holds words (character strings) and vectors.
  • the data structure of the vector dictionary 241 corresponds to the vector dictionary 241 shown in FIG.
  • the cluster table 242a is a table used when identifying the cluster to which a word belongs.
  • the data structure of the cluster table 242a corresponds to the cluster table 242a shown in FIG.
  • the cluster table 242a is a table that associates words (character strings), cluster IDs, and vectors.
  • a cluster ID is information that uniquely identifies a cluster to which a word belongs.
  • the determination table 242b is a table that holds information (center coordinates, radius) of the areas A1, A2, and A3 on the vector space P corresponding to the cluster ID.
  • the data structure of the determination table 242b corresponds to the determination table 242b shown in FIG.
  • the file table 243 has multiple document files.
  • the data structure of the file table 243 is the same as the file table 143 described in the first embodiment.
  • the transposed index 244 is information for specifying the document file and the position where the words belonging to the cluster ID are located.
  • the data structure of the transposed index 244 is similar to that of the transposed index 144 described in the first embodiment.
  • the input query 60 is an input query specified from the outside. A plurality of words are set in the input query 60 .
  • control unit 250 has a preprocessing unit 251 and a search unit 252 .
  • Control unit 250 is implemented by, for example, a CPU or MPU. Also, the controller 250 may be implemented by an integrated circuit such as an ASIC or FPGA.
  • the preprocessing unit 251 Based on the vector dictionary 241, the preprocessing unit 251 generates a cluster table 242a, based on the cluster table 242a, generates a determination table 242b, and based on the cluster table 242 and the file table 243, A process for generating the transposed index 144 is executed.
  • the processing by which the preprocessing unit 251 generates the cluster table 242a based on the vector dictionary 241 is the same as the processing of the preprocessing unit 151 described in the first embodiment.
  • a process for the preprocessing unit 251 to generate the determination table 242b based on the cluster table 242a will be described. Processing of the preprocessing unit 251 will be described with reference to FIG.
  • the preprocessing unit 251 After generating the cluster table 242a, the preprocessing unit 251 identifies the position on the vector space P for each vector set in the cluster table 242a, and determines the minimum area A1 that includes vectors corresponding to the same cluster ID. , A2, A3.
  • the preprocessing unit 251 identifies the center coordinates and radius of each of the identified areas A1, A2, and A3, associates them with the corresponding cluster ID, and registers them in the determination table 242b. For example, in the example described with reference to FIG. 8, the preprocessing unit 251 registers the cluster ID "G1", center coordinates (x1, y1, z1), and radius "r1" in the determination table 242b. The preprocessing unit 251 registers the cluster ID "G2", the center coordinates (x2, y2, z2), and the radius “r2" in the determination table 242b. The preprocessing unit 251 registers the cluster ID "G3", the center coordinates (x3, y3, z3), and the radius "r3" in the determination table 242b.
  • the preprocessing unit 251 generates the determination table 242b by executing the above process.
  • the processing by which the preprocessing unit 251 generates the transposed index 244 based on the cluster table 242 and the file table 243 is the same as the processing of the preprocessing unit 151 described in the first embodiment.
  • the search unit 252 receives an input query 60 and searches the file table 243 for document files corresponding to the input query 60 .
  • An example of the processing of the search unit 252 will be described below. Processing of the search unit 252 will be described with reference to FIGS. 9 and 10. FIG.
  • the search unit 252 Upon receiving the input query 60, the search unit 252 registers the input query 60 in the storage unit 240.
  • the input query 60 includes the words “horse”, “carrot”, and "like".
  • the search unit 252 uses the vector dictionary 241 to identify the vector of each word of the input query 60 . For example, let the vector of the word “horse” be “WV ⁇ ”, the vector of "carrot” be “WV ⁇ ”, and the vector of "like” be “WV ⁇ ".
  • the search unit 252 compares the regions A1, A2, and A3 on the vector space P specified from the determination table 242b with the positions of the vectors "WV ⁇ ", “WV ⁇ ”, and “WV ⁇ ” of the words of the input query 60, respectively. and identify the cluster ID corresponding to the vector of words.
  • the search unit 252 sets the cluster ID of the word “horse” to "G1" because the vector "WV ⁇ " of the word “horse” is included in the region A1. Since the vector “WV ⁇ ” of the word “ginseng” is included in the area A2, the search unit 252 sets the cluster ID of the word “ginseng” to “G2". Since the vector "WV ⁇ " of the word “like” is included in the region A3, the search unit 252 sets the cluster ID of the word “like" to "G3".
  • the search unit 252 executes search processing based on the cluster IDs (specific cluster IDs) "G1", “G2", and “G3" obtained in the above process and the transposed index 244.
  • the processing of searching based on the specific cluster ID and the transposed index 244 is the same as the processing of the searching unit 152 of the information processing apparatus 100 .
  • the input query 60 includes the words “pony”, “carrot”, and "like".
  • the search unit 252 uses the vector dictionary 241 to identify the vector of each word of the input query 60 . For example, let the vector of the word “pony” be “WV ⁇ ”, the vector of "carrot” be “WV ⁇ ”, and the vector of "like” be “WV ⁇ ".
  • the search unit 252 compares the regions A1, A2, and A3 on the vector space P specified from the determination table 242b with the positions of the vectors "WV ⁇ ", “WV ⁇ ”, and “WV ⁇ ” of the words of the input query 60, respectively. and identify the cluster ID corresponding to the vector of words.
  • the search unit 252 sets the cluster ID of the word “horse” to “G1" because the vector “WV ⁇ ” of the word “horse” is included in the region A1. Since the vector “WV ⁇ ” of the word “ginseng” is included in the area A2, the search unit 252 sets the cluster ID of the word “ginseng” to “G2”.
  • the search unit 252 calculates a vector using the CBOW function based on sentences and sentences containing the word “pony”. The calculated position of the vector "WV ⁇ ” is compared with the distances to the regions A1 to A3 (distances to the surface), and the region A1 closest to the position of the vector "WV ⁇ ” is specified. The search unit 252 sets the cluster ID “G1” corresponding to the region A1 closest to the position of the vector “WV ⁇ ” as the cluster ID of the word “pony”.
  • the search unit 252 executes search processing based on the cluster IDs (specific cluster IDs) "G1", “G2", and “G3" obtained in the above process and the transposed index 244.
  • the processing of searching based on the specific cluster ID and the transposed index 244 is the same as the processing of the searching unit 152 of the information processing apparatus 100 .
  • FIG. 12 is a flow chart showing processing of the preparation phase of the information processing apparatus according to the second embodiment.
  • the preprocessing unit 251 of the information processing device 200 sets a cluster ID for each word vector in the vector dictionary 241 according to the concept classification number of the thesaurus dictionary (step S301).
  • the preprocessing unit 251 executes Poincare embedding for a plurality of word vectors having the same cluster ID to generate the cluster table 242a (step S302).
  • the preprocessing unit 251 generates the transposed index 244 based on the cluster table 242a and the file table 243 (step S303).
  • the preprocessing unit 251 identifies the position on the vector space P for each vector set in the cluster table 242a, and identifies the minimum area containing vectors corresponding to the same cluster ID (step S304).
  • the preprocessing unit 251 registers the information of the cluster ID and the area information (center coordinates, radius) in the determination table 242b (step S305).
  • FIG. 13 is a flow chart showing the search phase processing of the information processing apparatus according to the second embodiment.
  • the search unit 252 of the information processing device 200 receives an input query 60 and registers it in the storage unit 240 (step S401).
  • the search unit 252 identifies vectors of words set in the input query 60 based on the vector dictionary 241 (step S402).
  • the search unit 252 identifies the specific cluster ID corresponding to the word on the vector space P based on the vector of each word and each region corresponding to the cluster ID identified from the determination table 242b (step S403). ).
  • the search unit 252 identifies the document ID and offset corresponding to the specific cluster ID based on the specific cluster ID and the inverted index 144 (step S404).
  • the search unit 252 extracts the document file corresponding to the specified document ID and offset from the file table 243 and generates a search result (step S405).
  • the search unit 252 outputs the search result (step S406).
  • the information processing apparatus 200 In the preparation phase, the information processing apparatus 200 generates a determination table 242b that associates information (center coordinates and radius) of regions on the vector space P with cluster IDs.
  • the information processing apparatus 200 matches each word set in the input query 60 to the word based on the position of the vector of the word in the vector space and the area based on the determination table 242b.
  • the cluster ID to be used is specified, and search results are generated in the same manner as in the first embodiment.
  • the inverted index corresponding to each word of the input query 60 by associating the document ID and offset of the word with the cluster ID of the word vector, the size of the inverted index for searching including similar words can be reduced. can be suppressed and search time can be shortened.
  • the scope can be expanded to include source programs (instructions/variables), organic compounds (functional groups), genomes (amino acids/proteins), and images (outline PostScript). can.
  • FIG. 14 is a diagram illustrating an example of a hardware configuration of a computer that implements functions similar to those of the information processing apparatus of the embodiment.
  • the computer 300 has a CPU 301 that executes various arithmetic processes, an input device 302 that receives data input from the user, and a display 303 .
  • the computer 300 also has a communication device 304 and an interface device 305 for exchanging data with an external device or the like via a wired or wireless network.
  • the computer 300 also has a RAM 306 that temporarily stores various information, and a hard disk device 307 . Each device 301 - 307 is then connected to a bus 308 .
  • the hard disk device 307 has a preprocessing program 307a and a search program 307b.
  • the CPU 301 also reads out the programs 307 a and 307 b and develops them in the RAM 306 .
  • the preprocessing program 307a functions as a preprocessing process 306a.
  • Search program 307b functions as search process 306b.
  • the processing of the preprocessing process 306a corresponds to the processing of the preprocessing unit 151 (251).
  • the processing of the search process 306b corresponds to the processing of the search unit 152 (252).
  • each program does not necessarily have to be stored in the hard disk device 307 from the beginning.
  • each program is stored in a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD, magneto-optical disk, IC card, etc. inserted into the computer 300 . Then, the computer 300 may read and execute the programs 307a and 307b.
  • a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD, magneto-optical disk, IC card, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報処理装置は、検索条件として文字列データを受け付けると、複数の文字列データに含まれる複数のクラスタのうち、受け付けた文字列データに応じたクラスタを特定する。情報処理装置は、検索対象のデータベースに含まれる複数の文字列データそれぞれを示す情報を複数のクラスタのいずれかに対応付けて記憶する記憶部を参照して、特定したクラスタに対応付けられた文字列データを示す情報を特定する。情報処理装置は、特定した文字列データを示す情報に応じた検索結果を生成する。

Description

検索方法、検索プログラムおよび情報処理装置
 本発明は、検索方法等に関する。
 DB(Data Base)には膨大なテキストデータが登録されており、かかるDBから、利用者に指定された入力クエリに類似するデータを適切に検索することが求められている。
 従来技術では、単語と単語のベクトルとを対応付けた単語ベクトル辞書を用いて、データ検索を行っている。たとえば、従来技術では、入力クエリに指定された単語と、単語ベクトルテーブルとを比較して、単語ベクトルを特定し、テキストデータに含まれる各単語のベクトルと比較を行って、入力クエリに対応する情報を検索する。
特開2019-204362号公報 特開2018-180789号公報 特開2020-086999号公報 国際公開第2020/213158号 特開2009-217436号公報
 上述した従来技術では、入力クエリに指定された単語の単語ベクトルと、テキストデータに含まれる各単語のベクトルとを基にして、入力クエリに対応する情報を検索しているが、単語ベクトルが多次元の浮動小数点数値で表現されているため、転置インデックスのサイズが膨大となり、検索時間に時間を要してしまう。
 1つの側面では、本発明は、転置インデックスのサイズを抑制し、検索時間を短縮することができる検索方法、検索プログラムおよび情報処理装置を提供することを目的とする。
 第1の案では、コンピュータに次の処理を実行させる。コンピュータは、検索条件として文字列データを受け付けると、複数の文字列データに含まれる複数のクラスタのうち、受け付けた文字列データに応じたクラスタを特定する。コンピュータは、検索対象のデータベースに含まれる複数の文字列データそれぞれを示す情報を複数のクラスタのいずれかに対応付けて記憶する記憶部を参照して、特定したクラスタに対応付けられた文字列データを示す情報を特定する。コンピュータは、特定した文字列データを示す情報に応じた検索結果を生成する。
 転置インデックスのサイズを抑制し、検索時間を短縮することができる。
図1は、本実施例1に係る情報処理装置の準備フェーズの処理を説明するための図(1)である。 図2は、本実施例1に係る情報処理装置の準備フェーズの処理を説明するための図(2)である。 図3は、本実施例1に係る情報処理装置の検索フェーズの処理を説明するための図である。 図4は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。 図5は、ファイルテーブルのデータ構造の一例を示す図である。 図6は、本実施例1に係る情報処理装置の準備フェーズの処理を示すフローチャートである。 図7は、本実施例1に係る情報処理装置の検索フェーズの処理を示すフローチャートである。 図8は、本実施例2に係る情報処理装置の準備フェーズの処理を説明するための図である。 図9は、本実施例2に係る情報処理装置の検索フェーズの処理を説明するための図(1)である。 図10は、本実施例2に係る情報処理装置の検索フェーズの処理を説明するための図(2)である。 図11は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図12は、本実施例2に係る情報処理装置の準備フェーズの処理を示すフローチャートである。 図13は、本実施例2に係る情報処理装置の検索フェーズの処理を示すフローチャートである。 図14は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
 以下に、本願の開示する検索方法、検索プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
 本実施例1に係る情報処理装置は、準備フェーズの処理と、検索フェーズの処理を順に実行する。以下において、情報処理装置が実行する準備フェーズの処理と、検索フェーズの処理を順に説明する。
 図1は、本実施例1に係る情報処理装置の準備フェーズの処理を説明するための図(1)である。情報処理装置は、文字列と、文字列に対応するベクトルとを対応付けて保持するベクトル辞書141を有する。本実施例1では、文字列の一例として単語を用いて説明するが、これに限定されるものではなく、文字列は、文、項、文章であってもよい。以下の説明では、適宜、文字列を「単語」と表記する。
 図1に示すベクトル辞書141の例では、単語「馬」にはベクトル「WVα」が設定される。単語「人参」にはベクトル「WVβ」が設定される。単語「好き」にはベクトル「WVγ」が設定される。単語「好物」にはベクトル「WVη」が設定される。
 情報処理装置は、ベクトル辞書141の各単語に設定されたベクトルに対して、クラスタリングを実行することで、類似する複数のベクトルを、同一のクラスタに分類する。情報処理装置は、クラスタリングとして、たとえば、k-means法を用いてもよい。同一のクラスタに分類されたベクトルに対応する単語には、同一のクラスタIDを割り当てる。情報処理装置は、係る処理を実行して、クラスタテーブル142を生成する。
 たとえば、クラスタリング結果5では、単語「馬」のベクトル「WVα」は、クラスタID「G1」のクラスタに分類されている。単語「人参」のベクトル「WVβ」は、クラスタID「G2」のクラスタに分類されている。単語「好き」のベクトル「WVγ」は、クラスタID「G3」のクラスタに分類されている。単語「好物」のベクトル「WVη」は、クラスタID「G3」のクラスタに分類されている。
 クラスタテーブル142は、単語(文字列)と、クラスタIDと、ベクトルとを対応付ける。たとえば、クラスタリング結果5によって、単語「馬」には、クラスタID「G1」が対応付けられる。単語「人参」には、クラスタID「G2」が対応付けられる。単語「好き」および「好物」には、クラスタID「G3」が対応付けられる。
 図2は、本実施例1に係る情報処理装置の準備フェーズの処理を説明するための図(2)である。情報処理装置は、クラスタテーブル142に含まれる各単語と、ファイルテーブル143とを比較して、転置インデックス144を生成する。
 ファイルテーブル143には、テキストデータを構成する複数のドキュメントファイルが含まれる。本実施例1では一例として、ドキュメントファイルには、文章の粒度の文字列が設定される。文章には、複数の項が含まれ、各項には、複数の文が含まれる。各文には、複数の単語が含まれる。各ドキュメントファイルには、ドキュメントファイルを一意に識別するドキュメントIDが設定されている。
 情報処理装置は、クラスタテーブル142の単語と、ファイルテーブル143の各ドキュメントファイルの文字列とを比較して、単語がヒットする場合には、該当する単語のクラスタIDと、ファイルポインタと、オフセットポインタとを対応付けて、転置インデックス144に登録する。
 ファイルポインタには、該当する単語を含むドキュメントファイルのドキュメントIDが設定される。オフセットポインタには、該当する単語を含むドキュメントファイルであって、かかるドキュメントファイル上における単語の位置情報(オフセット)が設定される。オフセットは、ファイルの先頭の単語から、該当する単語までを示す単語数である。なお、ファイルの先頭の文字から、該当する単語の先頭の文字を示す文字数であっても良い。
 たとえば、クラスタID「G1」に属する単語「馬」が、ドキュメントID「Doc1」のドキュメントファイルに存在し、先頭の単語から単語「馬」までのオフセットを「Po1-1」とする。この場合には、情報処理装置は、クラスタID「G1」、ファイルポインタ「Doc1」、オフセットポインタ「Po1-1」を、転置インデックス144に登録する。なお、単語「馬」やクラスタID「G1」に属する単語が、複数のドキュメントファイルに存在する場合には、1個のクラスタID「G1」に、複数のファイルポインタとオフセットポインタとの組が、転置インデックス144に登録される。
 情報処理装置は、クラスタテーブル142に設定された各単語について上記処理を繰り返し実行することで、転置インデックス144を生成する。
 図3は、本実施例1に係る情報処理装置の検索フェーズの処理を説明するための図である。情報処理装置は、入力クエリ50を受け付ける。入力クエリ50には、複数の単語が含まれる。図3に示す例では、単語「馬」、「人参」、「好き」が含まれる場合を示す。情報処理装置は入力クエリ50の各単語と、図1、2で示したクラスタテーブル142とを比較して、入力クエリ50の各単語に対応するクラスタIDをそれぞれ特定する。たとえば、単語「馬」に対応するクラスタIDは「G1」、単語「人参」に対応するクラスタIDは「G2」、単語「好き」に対応するクラスタIDは「G3」となる。以下の説明では、入力クエリ50の各単語から特定したクラスタIDを、「特定クラスタID」と表記する。
 情報処理装置は、特定クラスタIDに対応する転置インデックス144のレコードのファイルポインタを基にして、全特定クラスタIDに対応するドキュメントIDを特定する。ここでは、特定クラスタIDを「G1」、「G2」、「G3」とする。そうすると、ドキュメントID「Doc1」が、特定クラスタIDを「G1」、「G2」、「G3」に対応する。また、ドキュメントID「Doc2」が、特定クラスタIDを「G1」、「G2」、「G3」に対応する。
 この場合、情報処理装置は、ドキュメントID「Doc1」のドキュメントファイルと、ドキュメントID「Doc2」のドキュメントファイルとを、ファイルテーブル143から抽出し、入力クエリ50の検索結果として、出力する。
 上記のように、本実施例1に係る情報処理装置は、準備フェーズにおいて、転置インデックス144を生成しておく。情報処理装置は、入力クエリ50を受け付けると、入力クエリ50に設定された単語に対応するクラスタIDを特定する。情報処理装置は、転置インデックス144を参照し、特定クラスタIDに対応付けられたドキュメントIDを基にして、検索結果を生成する。このように、入力クエリ50の各単語ベクトルに対応する転置インデックスに関して、単語のドキュメントIDとオフセットを単語ベクトルのクラスタIDに対応付けることで、転置インデックスのサイズを抑制し、検索時間を短縮することができる。
 次に、本実施例1に係る情報処理装置の構成の一例について説明する。図4は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図4に示すように、この情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
 通信部110は、有線又は無線で外部装置等に接続され、外部装置等との間で情報の送受信を行う。たとえば、通信部110は、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークに接続されていてもよい。
 入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。たとえば、ユーザは、入力部120を操作して、入力クエリ等を入力してもよい。
 表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。たとえば、入力クエリに対応する検索結果が、表示部130に表示される。
 記憶部140は、ベクトル辞書141、クラスタテーブル142、ファイルテーブル143、転置インデックス144、入力クエリ50を有する。記憶部140は、たとえば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
 ベクトル辞書141は、単語(文字列)とベクトルとを対応付けて保持する。ベクトル辞書141のデータ構造は、図1で示したベクトル辞書141に対応する。
 単語のベクトルは、事前に設定されているベクトルを用いてもよいし、ポアンカレエンベッディング(Poincare Embeddings)と呼ばれる技術を用いて、ベクトルを割り当ててもよい。ポアンカレエンベッディングは、たとえば、非特許文献「Valentin Khrulkov1 et al.「Hyperbolic Image Embeddings」Cornell University,2019 April 3」等に記載された技術を用いればよい。
 ポアンカレエンベディングでは、ポアンカレ空間と呼ばれる空間に単語を埋め込み、埋め込んだ位置に応じたベクトルを割り当てる。また、類似する単語ほど、ポアンカレ空間において、近い位置に埋め込まれるという特徴がある。
 クラスタテーブル142は、単語の属するクラスタを特定する場合に用いられるテーブルである。クラスタテーブル142のデータ構造は、図1で示したクラスタテーブル142に対応する。図1で説明したように、クラスタテーブル142は、単語(文字列)と、クラスタIDと、ベクトルとを対応付けるテーブルである。クラスタIDは、単語が属するクラスタを一意に識別する情報である。
 ファイルテーブル143は、テキストデータを構成する複数のドキュメントファイルを有する。図5は、ファイルテーブルのデータ構造の一例を示す図である。図5に示すように、ファイルテーブル143は、テキストデータを構成する複数のドキュメントIDと、ドキュメントファイルとを対応付ける。ドキュメントIDは、ドキュメントファイルを一意に識別する情報である。ドキュメントファイルは、文章の粒度の文字列(テキストデータ)が設定される。
 転置インデックス144は、クラスタIDに属する単語が位置するドキュメントファイルおよび位置を特定するための情報である。転置インデックス144のデータ構造は、図3で説明した転置インデックス144に対応する。図3で説明したように、転置インデックス144は、クラスタIDと、ファイルポインタおよびオフセットポインタの組(複数の組)とを対応付ける。ファイルポインタには、クラスタIDに対応する単語が含まれるドキュメントファイルのドキュメントIDが設定される。オフセットポインタには、該当する単語を含むドキュメントファイルであって、かかるドキュメントファイル上における単語の位置情報(オフセット)が設定される。
 入力クエリ50は、外部から指定される入力クエリである。入力クエリ50には、複数の単語が設定される。
 図4の説明に戻る。制御部150は、前処理部151と、検索部152とを有する。制御部150は、たとえば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)により実現される。また、制御部150は、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実行されてもよい。
 前処理部151は、ベクトル辞書141を基にして、クラスタテーブル142を生成する処理、クラスタテーブル142およびファイルテーブル143を基にして、転置インデックス144を生成する処理を実行する。
 前処理部151が、ベクトル辞書141を基にして、クラスタテーブル142を生成する処理について説明する。前処理部151の処理を、図1を用いて説明する。
 前処理部151は、ベクトル辞書141の各単語に設定されたベクトルに対して、クラスタリングを実行することで、類似する複数のベクトルを、同一のクラスタに分類する。前処理部151は、クラスタリングとして、k-means法を用いてもよい。同一のクラスタに分類されたベクトルに対応する単語には、同一のクラスタIDを割り当てる。同一のクラスタに分類された各単語は、類似する単語であるといえる。
 前処理部151は、単語と、クラスタIDと、ベクトルとを対応付けて、クラスタテーブル142に登録する。前処理部151は、係る処理を実行して、クラスタテーブル142を生成する。
 前処理部151が、クラスタテーブル142およびファイルテーブル143を基にして、転置インデックス144を生成する処理について説明する。前処理部151の処理を、図2を用いて説明する。
 前処理部151は、クラスタテーブル142に含まれる各単語と、ファイルテーブル143とを比較して、転置インデックス144を生成する。たとえば、前処理部151は、クラスタテーブル142の単語を選択し、選択した単語と、ファイルテーブル143の各ドキュメントファイルの文字列とを比較して、単語がヒットする場合には、該当する単語のクラスタIDと、ファイルポインタと、オフセットポインタとを対応付けて、転置インデックス144に登録する。
 前処理部151は、クラスタテーブル142に設定された各単語について上記処理を繰り返し実行することで、転置インデックス144を生成する。
 検索部152は、入力クエリ50を受け付け、入力クエリ50に対応するドキュメントファイルを、ファイルテーブル143から検索する。以下において、検索部152の処理の一例について説明する。検索部152の処理を、図3を用いて説明する。
 検索部152は、入力クエリ50を受け付けると、入力クエリ50を記憶部140に登録する。検索部152は、入力クエリ50を、入力部120から受け付けてもよいし、通信部110を介して、外部装置から受け付けてもよい。検索部152は、入力クエリ50に含まれる各単語と、クラスタテーブル142とを基にして、各単語に対応するクラスタID(特定クラスタID)を特定する。たとえば、入力クエリ50に、単語「馬」、「人参」、「好き」が含まれている場合には、特定クラスタIDは、「G1」、「G2」、「G3」となる。
 検索部152は、特定クラスタIDと、転置インデックス144とを基にして、各特定クラスタIDに対応するドキュメントIDを特定する。たとえば、ドキュメントID「Doc1」が、特定クラスタIDを「G1」、「G2」、「G3」に対応する。また、ドキュメントID「Doc2」が、特定クラスタIDを「G1」、「G2」、「G3」に対応する。このため、検索部152は、ドキュメントID「Doc1」、「Doc2」を、各特定クラスタIDに対応するドキュメントIDとして特定する。
 検索部152は、特定したドキュメントIDに対応するドキュメントファイルを、ファイルテーブル143から抽出し、抽出したドキュメントファイルを、入力クエリ50の検索結果として生成する。検索部152は、検索結果を、表示部130に出力して表示させる。
 次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。図6は、本実施例1に係る情報処理装置の準備フェーズの処理を示すフローチャートである。図6に示すように、情報処理装置100の前処理部151は、ベクトル辞書141の各単語のベクトルに対してクラスタリングを実行する(ステップS101)。
 前処理部151は、クラスタリング結果を基にして、単語にクラスタIDを設定し、クラスタテーブル142を生成する(ステップS102)。
 前処理部151は、クラスタテーブル142と、ファイルテーブル143とを基にして、転置インデックス144を生成する(ステップS103)。
 図7は、本実施例1に係る情報処理装置の検索フェーズの処理を示すフローチャートである。図7に示すように、情報処理装置100の検索部152は、入力クエリ50を受け付け、記憶部140に登録する(ステップS201)。
 検索部152は、入力クエリ50に設定された単語を特定する(ステップS202)。検索部152は、クラスタテーブル142を基にして、入力クエリに設定された単語の特定クラスタIDを特定する(ステップS203)。
 検索部152は、特定クラスタIDと、転置インデックス144とを基にして、特定クラスタIDに対応するドキュメントIDとオフセットを特定する(ステップS204)。
 検索部152は、特定したドキュメントIDとオフセットに対応するドキュメントファイルを、ファイルテーブル143から抽出して、検索結果を生成する(ステップS205)。検索部152は、検索結果を出力する(ステップS206)。
 次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、準備フェーズにおいて、転置インデックス144を生成しておく。情報処理装置100は、入力クエリ50を受け付けると、入力クエリ50に設定された単語に対応するクラスタIDを特定する。情報処理装置100は、転置インデックス144を参照し、特定クラスタIDに対応付けられたドキュメントIDを基にして、検索結果を生成する。このように、入力クエリ50の各単語に対応する転置インデックスに関して、単語のドキュメントIDとオフセットを単語ベクトルのクラスタIDに対応付けることで類似する単語を含めた検索を行うための転置インデックスのサイズを抑制し、検索時間を短縮することができる。なお、文字列で表現されたテキスト(単語)に加え、ソースプログラム(命令・変数)や有機化合物(官能基)、ゲノム(アミノ酸・タンパク質)、画像(アウトラインPostScript)などに対象を拡大することができる。
 情報処理装置100は、ベクトル辞書141に設定された各単語のベクトルに対してクラスタリングを実行し、同一のクラスタに含まれる単語に対して、同一のクラスタIDを設定し、クラスタテーブル142を生成する。これによって、類似する単語に同一のクラスタIDを割り当てることができ、かかるクラスタIDを用いることで、入力クエリ50に設定された単語に類似する文字列を省資源で高速に検索することができる。
 情報処理装置100は、クラスタIDと、ファイルポインタおよびオフセットポインタとを対応付けた転置インデックス144を生成する。これによって、クラスタIDに対応する単語を有するドキュメントファイルおよび単語の位置を効率的に特定することができる。なお、図2ではポインタ型の転置インデックスを示したが、ビットマップ型の転置インデックスでも良い。ファイルビットマップとオフセットビットマップのそれぞれが、ハッシュ化され、さらに転置インデックスのサイズを抑制することができる。
 本実施例2に係る情報処理装置について説明する。本実施例2に係る情報処理装置は、準備フェーズの処理と、検索フェーズの処理を順に実行する。以下において、情報処理装置が実行する準備フェーズの処理と、検索フェーズの処理を順に説明する。
 図8は、本実施例2に係る情報処理装置の準備フェーズの処理を説明するための図である。情報処理装置は、実施例1の情報処理装置100の方法に加えて、ベクトル辞書241の各単語に設定されたベクトルに対して、シソーラス辞書の概念分類番号(コンセプトインデックスとも呼ばれる)に準じてクラスタリングIDを設定し、同一のクラスタリングIDを持つ複数の単語ベクトルにポアンカレエンベッディングを実行することで、各単語ベクトルを近似し、クラスタテーブル242aを生成することができる。これは単語ベクトルを概念番号に準じて、ポアンカレ空間に対応付けたと表現できる。たとえば、情報処理装置は、ベクトル辞書241の各単語にポアンカレエンベッディングを実行して、各単語にベクトルを割り当てた後、クラスタリングを実行してもよい。
 情報処理装置は、クラスタテーブル242aを生成した後に、クラスタテーブル242aに設定された各ベクトルに関して、ベクトル空間P上の位置を特定し、同一のクラスタIDに対応するベクトルを包含する最小の領域(たとえば、球状や立方体状の領域)を特定する。
 たとえば、クラスタID「G1」のベクトルを全て包含する最小の領域を「A1」とする。クラスタID「G2」のベクトルを全て包含する最小の領域を「A2」とする。クラスタID「G3」のベクトルを全て包含する最小の領域を「A3」とする。
 情報処理装置は、特定した各領域A1、A2、A3の中心座標、半径を特定し、該当するクラスタIDと対応付けて、判定テーブル242bに登録する。たとえば、情報処理装置は、領域A1の中心座標が(x1、y1、z1)であり、半径が「r1」である場合には、クラスタID「G1」、中心座標(x1、y1、z1)、半径「r1」を、判定テーブル242bに登録する。
 情報処理装置は、領域A2の中心座標が(x2、y2、z2)であり、半径が「r2」である場合には、クラスタID「G2」、中心座標(x2、y2、z2)、半径「r2」を、判定テーブル242bに登録する。
 情報処理装置は、領域A3の中心座標が(x3、y3、z3)であり、半径が「r3」である場合には、クラスタID「G3」、中心座標(x3、y3、z3)、半径「r3」を、判定テーブル242bに登録する。
 図9は、本実施例2に係る情報処理装置の検索フェーズの処理を説明するための図(1)である。情報処理装置は、入力クエリ60を受け付ける。入力クエリ60には、複数の単語が含まれる。図9に示す例では、入力クエリ60に、単語「馬」、「人参」、「好き」が含まれる場合を示す。
 情報処理装置は、ベクトル辞書241を用いて、入力クエリ60の各単語のベクトルを特定する。たとえば、単語「馬」のベクトルを「WVα」、「人参」のベクトルを「WVβ」、「好き」のベクトルを「WVγ」とする。
 情報処理装置は、判定テーブル242bから特定されるベクトル空間P上の領域A1、A2、A3と、入力クエリ60の各単語のベクトル「WVα」、「WVβ」、「WVγ」の位置とをそれぞれ比較し、単語のベクトルに対応するクラスタIDを特定する。
 たとえば、単語「馬」のベクトル「WVα」は、領域A1に含まれるため、単語「馬」のクラスタIDを「G1」に設定する。単語「人参」のベクトル「WVβ」は、領域A2に含まれるため、単語「人参」のクラスタIDを「G2」に設定する。単語「好き」のベクトル「WVγ」は、領域A3に含まれるため、単語「好き」のクラスタIDを「G3」に設定する。
 情報処理装置は、上記処理で求めたクラスタID(特定クラスタID)「G1」、「G2」、「G3」と、転置インデックスとを基にして、検索処理を実行する。特定クラスタIDと、転置インデックスとを基にして、検索を行う処理は、情報処理装置100の処理と同様である。
 図10は、本実施例2に係る情報処理装置の検索フェーズの処理を説明するための図(2)である。情報処理装置は、入力クエリ60を受け付ける。入力クエリ60には、複数の単語が含まれる。図10に示す例では、入力クエリ60に、単語「馬」、「人参」、「お気に入り」が含まれる場合を示す。
 情報処理装置は、ベクトル辞書241を用いて、入力クエリ60の各単語のベクトルを特定する。たとえば、単語「馬」のベクトルを「WVα」、「人参」のベクトルを「WVβ」、「お気に入り」のベクトルを「WVθ」とする。
 情報処理装置は、判定テーブル242bから特定されるベクトル空間P上の領域A1、A2、A3と、入力クエリ60の各単語のベクトル「WVα」、「WVβ」、「WVθ」の位置とをそれぞれ比較し、単語のベクトルに対応するクラスタIDを特定する。
 たとえば、単語「馬」のベクトル「WVα」は、領域A1に含まれるため、単語「馬」のクラスタIDを「G1」に設定する。単語「人参」のベクトル「WVβ」は、領域A2に含まれるため、単語「人参」のクラスタIDを「G2」に設定する。
 ここで、単語「お気に入り」のベクトル「WVθ」は、いずれの領域A1~A3にも含まれていない。この場合には、情報処理装置は、ベクトル「WVθ」の位置と、領域A1~A3までの距離(表面までの距離)をそれぞれ比較し、ベクトル「WVθ」の位置に最も近い領域A3を特定する。情報処理装置は、ベクトル「WVθ」の位置に最も近い領域A3に対応するクラスタID「G3」を、単語「お気に入り」のクラスタIDに設定する。
 情報処理装置は、上記処理で求めたクラスタID(特定クラスタID)「G1」、「G2」、「G3」と、転置インデックスとを基にして、検索処理を実行する。特定クラスタIDと、転置インデックスとを基にして、検索を行う処理は、情報処理装置100の処理と同様である。
 上記のように、本実施例2に係る情報処理装置は、準備フェーズにおいて、ベクトル空間P上の領域の情報(中心座標および半径)と、クラスタIDとを対応付けた判定テーブル242bを生成しておく。情報処理装置は、入力クエリ60を受け付けると、入力クエリ60に設定された各単語について、ベクトル空間上の単語のベクトルの位置と、判定テーブル242bに基づく領域とを基にして、単語に対応するクラスタIDを特定し、実施例1と同様にして、検索結果を生成する。このように、入力クエリ60の各単語に対応するベクトル空間上の位置から、クラスタIDを特定し、検索を行うことで、検索時間を短縮することができる。
 次に、本実施例2に係る情報処理装置の構成の一例について説明する。図11は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。図4に示すように、この情報処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
 通信部210、入力部220、表示部230に関する説明は、実施例1で説明した通信部110、入力部120、表示部130に関する説明と同様である。
 記憶部240は、ベクトル辞書241、クラスタテーブル242a、判定テーブル242b、ファイルテーブル243、転置インデックス244、入力クエリ60を有する。記憶部240は、たとえば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
 ベクトル辞書241は、単語(文字列)とベクトルとを対応付けて保持する。ベクトル辞書241のデータ構造は、図8で示したベクトル辞書241に対応する。
 クラスタテーブル242aは、単語の属するクラスタを特定する場合に用いられるテーブルである。クラスタテーブル242aのデータ構造は、図8で示したクラスタテーブル242aに対応する。図8で説明したように、クラスタテーブル242aは、単語(文字列)と、クラスタIDと、ベクトルとを対応付けるテーブルである。クラスタIDは、単語が属するクラスタを一意に識別する情報である。
 判定テーブル242bは、クラスタIDに対応するベクトル空間P上の領域A1、A2、A3の情報(中心座標、半径)を保持するテーブルである。判定テーブル242bのデータ構造は、図8で示した判定テーブル242bに対応する。
 ファイルテーブル243は、複数のドキュメントファイルを有する。ファイルテーブル243のデータ構造は、実施例1で説明したファイルテーブル143と同様である。
 転置インデックス244は、クラスタIDに属する単語が位置するドキュメントファイルおよび位置を特定するための情報である。転置インデックス244のデータ構造は、実施例1で説明した転置インデックス144と同様である。
 入力クエリ60は、外部から指定される入力クエリである。入力クエリ60には、複数の単語が設定される。
 図11の説明に戻る。制御部250は、前処理部251と、検索部252とを有する。制御部250は、たとえば、CPUやMPUにより実現される。また、制御部250は、例えばASICやFPGA等の集積回路により実行されてもよい。
 前処理部251は、ベクトル辞書241を基にして、クラスタテーブル242aを生成する処理、クラスタテーブル242aを基にして、判定テーブル242bを生成する処理、クラスタテーブル242およびファイルテーブル243を基にして、転置インデックス144を生成する処理を実行する。
 前処理部251が、ベクトル辞書241を基にして、クラスタテーブル242aを生成する処理は、実施例1で説明した、前処理部151の処理と同様である。
 前処理部251が、クラスタテーブル242aを基にして、判定テーブル242bを生成する処理について説明する。前処理部251の処理を、図8を用いて説明する。
 前処理部251は、クラスタテーブル242aを生成した後に、クラスタテーブル242aに設定された各ベクトルに関して、ベクトル空間P上の位置を特定し、同一のクラスタIDに対応するベクトルを包含する最小の領域A1、A2、A3を特定する。
 前処理部251は、特定した各領域A1、A2、A3の中心座標、半径を特定し、該当するクラスタIDと対応付けて、判定テーブル242bに登録する。たとえば、図8で説明した例では、前処理部251は、クラスタID「G1」、中心座標(x1、y1、z1)、半径「r1」を、判定テーブル242bに登録する。前処理部251は、クラスタID「G2」、中心座標(x2、y2、z2)、半径「r2」を、判定テーブル242bに登録する。前処理部251は、クラスタID「G3」、中心座標(x3、y3、z3)、半径「r3」を、判定テーブル242bに登録する。
 前処理部251は、上記処理を実行することで、判定テーブル242bを生成する。
 前処理部251が、クラスタテーブル242およびファイルテーブル243を基にして、転置インデックス244を生成する処理は、実施例1で説明した、前処理部151の処理と同様である。
 検索部252は、入力クエリ60を受け付け、入力クエリ60に対応するドキュメントファイルを、ファイルテーブル243から検索する。以下において、検索部252の処理の一例について説明する。検索部252の処理を、図9、図10を用いて説明する。
 検索部252は、入力クエリ60を受け付けると、入力クエリ60を記憶部240に登録する。図9に示す例では、入力クエリ60に、単語「馬」、「人参」、「好き」が含まれる。
 検索部252は、ベクトル辞書241を用いて、入力クエリ60の各単語のベクトルを特定する。たとえば、単語「馬」のベクトルを「WVα」、「人参」のベクトルを「WVβ」、「好き」のベクトルを「WVγ」とする。
 検索部252は、判定テーブル242bから特定されるベクトル空間P上の領域A1、A2、A3と、入力クエリ60の各単語のベクトル「WVα」、「WVβ」、「WVγ」の位置とをそれぞれ比較し、単語のベクトルに対応するクラスタIDを特定する。
 検索部252は、単語「馬」のベクトル「WVα」が、領域A1に含まれるため、単語「馬」のクラスタIDを「G1」に設定する。検索部252は、単語「人参」のベクトル「WVβ」が、領域A2に含まれるため、単語「人参」のクラスタIDを「G2」に設定する。検索部252は、単語「好き」のベクトル「WVγ」が、領域A3に含まれるため、単語「好き」のクラスタIDを「G3」に設定する。
 検索部252は、上記処理で求めたクラスタID(特定クラスタID)「G1」、「G2」、「G3」と、転置インデックス244とを基にして、検索処理を実行する。特定クラスタIDと、転置インデックス244とを基にして、検索を行う処理は、情報処理装置100の検索部152の処理と同様である。
 一方、図10に示す例では、入力クエリ60に、単語「ポニー」、「人参」、「好き」が含まれる。
 検索部252は、ベクトル辞書241を用いて、入力クエリ60の各単語のベクトルを特定する。たとえば、単語「ポニー」のベクトルを「WVθ」、「人参」のベクトルを「WVβ」、「好き」のベクトルを「WVγ」とする。
 検索部252は、判定テーブル242bから特定されるベクトル空間P上の領域A1、A2、A3と、入力クエリ60の各単語のベクトル「WVθ」、「WVβ」、「WVγ」の位置とをそれぞれ比較し、単語のベクトルに対応するクラスタIDを特定する。
 検索部252は、単語「馬」のベクトル「WVα」が、領域A1に含まれるため、単語「馬」のクラスタIDを「G1」に設定する。検索部252は、単語「人参」のベクトル「WVβ」は、領域A2に含まれるため、単語「人参」のクラスタIDを「G2」に設定する。
 ここで、固有名詞である単語「ポニー」はシソーラス辞書に含まれておらず、そのベクトル「WVθ」は、いずれの領域A1~A3にも含まれていない。この場合には、検索部252は、単語「ポニー」が含まれる文や文章をもとにCBOW関数を用いてベクトルが算出される。算出されたベクトル「WVθ」の位置と、領域A1~A3までの距離(表面までの距離)をそれぞれ比較し、ベクトル「WVθ」の位置に最も近い領域A1を特定する。検索部252は、ベクトル「WVθ」の位置に最も近い領域A1に対応するクラスタID「G1」を、単語「ポニー」のクラスタIDに設定する。
 検索部252は、上記処理で求めたクラスタID(特定クラスタID)「G1」、「G2」、「G3」と、転置インデックス244とを基にして、検索処理を実行する。特定クラスタIDと、転置インデックス244とを基にして、検索を行う処理は、情報処理装置100の検索部152の処理と同様である。
 次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。図12は、本実施例2に係る情報処理装置の準備フェーズの処理を示すフローチャートである。図12に示すように、情報処理装置200の前処理部251は、ベクトル辞書241の各単語のベクトルに対してシソーラス辞典の概念分類番号に準じて、クラスタIDを設定する(ステップS301)。
 前処理部251は、クラスタリング結果を基にして、同一のクラスタIDを持つ複数の単語ベクトルに対してポアンカレエンベッディングを実行し、クラスタテーブル242aを生成する(ステップS302)。前処理部251は、クラスタテーブル242aと、ファイルテーブル243とを基にして、転置インデックス244を生成する(ステップS303)。
 前処理部251は、クラスタテーブル242aに設定された各ベクトルに関して、ベクトル空間P上の位置を特定し、同一のクラスタIDに対応するベクトルを包含する最小の領域をそれぞれ特定する(ステップS304)。
 前処理部251は、クラスタIDと、領域の情報(中心座標、半径)との情報を判定テーブル242bに登録する(ステップS305)。
 図13は、本実施例2に係る情報処理装置の検索フェーズの処理を示すフローチャートである。図13に示すように、情報処理装置200の検索部252は、入力クエリ60を受け付け、記憶部240に登録する(ステップS401)。
 検索部252は、ベクトル辞書241を基にして、入力クエリ60に設定された単語のベクトルを特定する(ステップS402)。検索部252は、ベクトル空間P上において、各単語のベクトルと、判定テーブル242bから特定されるクラスタIDに対応する各領域とを基にして、単語に対応する特定クラスタIDを特定する(ステップS403)。
 検索部252は、特定クラスタIDと、転置インデックス144とを基にして、特定クラスタIDに対応するドキュメントIDとオフセットを特定する(ステップS404)。
 検索部252は、特定したドキュメントIDとオフセットに対応するドキュメントファイルを、ファイルテーブル243から抽出して、検索結果を生成する(ステップS405)。検索部252は、検索結果を出力する(ステップS406)。
 次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、準備フェーズにおいて、ベクトル空間P上の領域の情報(中心座標および半径)と、クラスタIDとを対応付けた判定テーブル242bを生成しておく。情報処理装置200は、入力クエリ60を受け付けると、入力クエリ60に設定された各単語について、ベクトル空間上の単語のベクトルの位置と、判定テーブル242bに基づく領域とを基にして、単語に対応するクラスタIDを特定し、実施例1と同様にして、検索結果を生成する。このように、入力クエリ60の各単語に対応する転置インデックスに関して、単語のドキュメントIDとオフセットを単語ベクトルのクラスタIDに対応付けることで、類似する単語を含めた検索を行うための転置インデックスのサイズを抑制し、検索時間を短縮することができる。なお、文字列で表現されたテキスト(単語)に加え、ソースプログラム(命令・変数)や有機化合物(官能基)、ゲノム(アミノ酸・タンパク質)、画像(アウトラインPostScript)などに対象を拡大することができる。
 次に、上記実施例に示した情報処理装置100(200)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図14は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
 図14に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置304と、インタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
 ハードディスク装置307は、前処理プログラム307a、検索プログラム307bを有する。また、CPU301は、各プログラム307a、307bを読み出してRAM306に展開する。
 前処理プログラム307aは、前処理プロセス306aとして機能する。検索プログラム307bは、検索プロセス306bとして機能する。
 前処理プロセス306aの処理は、前処理部151(251)の処理に対応する。検索プロセス306bの処理は、検索部152(252)の処理に対応する。
 なお、各プログラム307a,307bについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a,307bを読み出して実行するようにしてもよい。
 100,200  情報処理装置
 110,210  通信部
 120,220  入力部
 130,230  表示部
 140,240  記憶部
 150,250  制御部

Claims (12)

  1.  検索条件として文字列データを受け付けると、複数の文字列データに含まれる複数のクラスタのうち、受け付けた前記文字列データに応じたクラスタを特定し、
     検索対象のデータベースに含まれる複数の文字列データそれぞれを示す情報を前記複数のクラスタのいずれかに対応付けて記憶する記憶部を参照して、特定した前記クラスタに対応付けられた文字列データを示す情報を特定し、
     特定した前記文字列データを示す情報に応じた検索結果を生成する、
     処理をコンピュータが実行することを特徴とする検索方法。
  2.  複数の文字列データに設定された複数のベクトルに対して、クラスタリングを実行することで、前記複数のベクトルを複数のクラスタに分類し、分類したクラスタを識別する情報と、クラスタに属するベクトルに対応する文字列データが含まれる前記データベースの位置情報とを対応付けたインデックス情報を生成して、前記記憶部に登録する処理を更に実行することを特徴とする請求項1に記載の検索方法。
  3.  前記文字列データを示す情報を特定する処理は、前記受け付けた文字列データに応じたクラスタと、前記インデックス情報とを基にして、前記受け付けた前記文字列データに応じたクラスタに対応する、前記受け付けた文字列データが含まれる前記データベースの位置情報を、前記文字列データを示す情報として特定することを特徴とする請求項2に記載の検索方法。
  4.  前記クラスタを特定する処理は、前記検索条件として受け付けた文字列データに関するベクトル空間上の位置と、事前に設定された複数の文字列データのベクトル空間上の領域とを基にして、前記検索条件として受け付けた文字列データのクラスタを特定することを特徴とする請求項1に記載の検索方法。
  5.  検索条件として文字列データを受け付けると、複数の文字列データに含まれる複数のクラスタのうち、受け付けた前記文字列データに応じたクラスタを特定し、
     検索対象のデータベースに含まれる複数の文字列データそれぞれを示す情報を前記複数のクラスタのいずれかに対応付けて記憶する記憶部を参照して、特定した前記クラスタに対応付けられた文字列データを示す情報を特定し、
     特定した前記文字列データを示す情報に応じた検索結果を生成する、
     処理をコンピュータに実行させることを特徴とする検索プログラム。
  6.  複数の文字列データに設定された複数のベクトルに対して、クラスタリングを実行することで、前記複数のベクトルを複数のクラスタに分類し、分類したクラスタを識別する情報と、クラスタに属するベクトルに対応する文字列データが含まれる前記データベースの位置情報とを対応付けたインデックス情報を生成して、前記記憶部に登録する処理を更に実行することを特徴とする請求項5に記載の検索プログラム。
  7.  前記文字列データを示す情報を特定する処理は、前記受け付けた文字列データに応じたクラスタと、前記インデックス情報とを基にして、前記受け付けた前記文字列データに応じたクラスタに対応する、前記受け付けた文字列データが含まれる前記データベースの位置情報を、前記文字列データを示す情報として特定することを特徴とする請求項6に記載の検索プログラム。
  8.  前記クラスタを特定する処理は、前記検索条件として受け付けた文字列データに関するベクトル空間上の位置と、事前に設定された複数の文字列データのベクトル空間上の領域とを基にして、前記検索条件として受け付けた文字列データのクラスタを特定することを特徴とする請求項5に記載の検索プログラム。
  9.  検索条件として文字列データを受け付けると、複数の文字列データに含まれる複数のクラスタのうち、受け付けた前記文字列データに応じたクラスタを特定し、検索対象のデータベースに含まれる複数の文字列データそれぞれを示す情報を前記複数のクラスタのいずれかに対応付けて記憶する記憶部を参照して、特定した前記クラスタに対応付けられた文字列データを示す情報を特定し、特定した前記文字列データを示す情報に応じた検索結果を生成する検索部、
     を有することを特徴とする情報処理装置。
  10.  複数の文字列データに設定された複数のベクトルに対して、クラスタリングを実行することで、前記複数のベクトルを複数のクラスタに分類し、分類したクラスタを識別する情報と、クラスタに属するベクトルに対応する文字列データが含まれる前記データベースの位置情報とを対応付けたインデックス情報を生成して、前記記憶部に登録する前処理部を更に有することを特徴とする請求項9に記載の情報処理装置。
  11.  前記検索部は、前記受け付けた文字列データに応じたクラスタと、前記インデックス情報とを基にして、前記受け付けた前記文字列データに応じたクラスタに対応する、前記受け付けた文字列データが含まれる前記データベースの位置情報を、前記文字列データを示す情報として特定することを特徴とする請求項2に記載の検索方法。
  12.  前記検索部は、前記受け付けた文字列データに応じたクラスタと、前記インデックス情報とを基にして、前記受け付けた前記文字列データに応じたクラスタに対応する、前記受け付けた文字列データが含まれる前記データベースの位置情報を、前記文字列データを示す情報として特定することを特徴とする請求項10に記載の情報処理装置。
PCT/JP2021/023115 2021-06-17 2021-06-17 検索方法、検索プログラムおよび情報処理装置 Ceased WO2022264385A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/023115 WO2022264385A1 (ja) 2021-06-17 2021-06-17 検索方法、検索プログラムおよび情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/023115 WO2022264385A1 (ja) 2021-06-17 2021-06-17 検索方法、検索プログラムおよび情報処理装置

Publications (1)

Publication Number Publication Date
WO2022264385A1 true WO2022264385A1 (ja) 2022-12-22

Family

ID=84526961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/023115 Ceased WO2022264385A1 (ja) 2021-06-17 2021-06-17 検索方法、検索プログラムおよび情報処理装置

Country Status (1)

Country Link
WO (1) WO2022264385A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180052908A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Semantic reverse search indexing of publication corpus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180052908A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Semantic reverse search indexing of publication corpus

Similar Documents

Publication Publication Date Title
Dotan et al. Effect of tokenization on transformers for biological sequences
JP6239661B2 (ja) フォーマット維持ベースマスキングシステムおよび方法
JP7367754B2 (ja) 特定方法および情報処理装置
US20120331265A1 (en) Apparatus and Method for Accelerated Hardware Page Table Walk
WO2021135290A1 (zh) 基于知识图谱的信息可视化方法、装置、设备及存储介质
AU2021329818B2 (en) Techniques for data-enabled drug discovery
JP7176233B2 (ja) 検索方法、検索プログラムおよび検索装置
WO2022264385A1 (ja) 検索方法、検索プログラムおよび情報処理装置
JP2023115926A (ja) データ処理装置、学習装置、データ処理方法、学習方法、データ処理プログラム及び学習プログラム
JP7800692B2 (ja) 情報処理プログラム、情報処理方法および情報処理装置
WO2022130579A1 (ja) 類似度判定プログラム、類似度判定装置、及び、類似度判定方法
JP6393982B2 (ja) 空間分割方法、空間分割装置および空間分割プログラム
CN112949759B (zh) 文本聚类方法、装置、电子设备及计算机可读存储介质
JP7342972B2 (ja) 情報処理プログラム、情報処理方法および情報処理装置
JP5494066B2 (ja) 検索装置、検索方法および検索プログラム
JP2017111553A (ja) 画像認識装置及び画像認識装置の動作方法
JP6248774B2 (ja) 最近傍探索のための情報処理装置及び方法
WO2023058099A1 (ja) 処理方法、処理プログラムおよび情報処理装置
JP7626219B2 (ja) 情報処理プログラム、情報処理方法および情報処理装置
JP2018163586A (ja) 学習プログラム、学習方法および学習装置
US12346358B2 (en) Non-transitory computer-readable recording medium storing information processing program, information processing method, and information processing apparatus
JP2022002034A (ja) 抽出方法、抽出プログラム、及び、抽出装置
WO2021245926A1 (ja) 情報処理プログラム、情報処理方法および情報処理装置
JP7766901B2 (ja) 情報処理システム、情報処理方法および情報処理プログラム
JP2015022466A (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: 21946061

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21946061

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP