WO2015015757A1 - 情報処理装置、及び、検索方法 - Google Patents

情報処理装置、及び、検索方法 Download PDF

Info

Publication number
WO2015015757A1
WO2015015757A1 PCT/JP2014/003851 JP2014003851W WO2015015757A1 WO 2015015757 A1 WO2015015757 A1 WO 2015015757A1 JP 2014003851 W JP2014003851 W JP 2014003851W WO 2015015757 A1 WO2015015757 A1 WO 2015015757A1
Authority
WO
WIPO (PCT)
Prior art keywords
attribute
leaf node
search
sequence
input attribute
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/JP2014/003851
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of WO2015015757A1 publication Critical patent/WO2015015757A1/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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Definitions

  • the present invention relates to an information processing apparatus and a search method, and more particularly to an information processing apparatus and a search method that perform a search by searching a tree structure.
  • Non-Patent Document 1 describes an example of a system that searches an attribute string using a tree structure.
  • multidimensional data that is a set of attributes is used.
  • the search device searches a registered attribute string that matches the attribute string (search attribute string) input as a query from the registered attribute string group (registered attribute string group).
  • the search device manages the registered attribute string group with a trie tree.
  • the attribute of the attribute column is associated with each hierarchy, and a node for performing matching determination of the attribute corresponding to the hierarchy is arranged.
  • Each node has an attribute value to be compared with the search data, and a link indicating a lower layer node to be traced next when the node matches the attribute value.
  • the trie tree has a leaf node that stores a registered attribute string in the lowest layer.
  • the search device omits (skips) the match determination process using the attention attribute.
  • the search device stores a search attribute string and a node searched in a hierarchy corresponding to a predetermined attention attribute. Then, when a new search attribute string is input, the search device compares each attribute from the beginning between the past search attribute string and the new search attribute string.
  • the search device starts searching for a new search attribute string from a node in the hierarchy corresponding to the attribute of interest.
  • the search is speeded up by skipping the matching determination process up to the attribute of interest.
  • Non-Patent Document 1 if the attribute value before the attention attribute changes between the past search data and the new search data, the matching determination process to the attention attribute is skipped. It is not possible to obtain the effect of speeding up the search.
  • An object of the present invention is to provide a search device and a search method capable of solving the above-described problems and speeding up the search in multi-dimensional data search using a tree structure.
  • An information processing apparatus is a search tree representing an attribute string in which attribute values of a predetermined number of attributes are arranged in a predetermined attribute order, and each attribute from the head of the attribute string is determined from a root node
  • the search tree storage means for storing the search tree sequentially associated with the hierarchy up to the leaf node, and calculated based on the change in the attribute value between the past input attribute sequence and the new input attribute sequence, A leaf node corresponding to the new input attribute sequence based on an inter-node distance between the leaf node corresponding to the past input attribute sequence and the leaf node corresponding to the new input attribute sequence in the search tree
  • a search method is a search tree representing an attribute string in which attribute values of a predetermined number of attributes are arranged in a predetermined attribute order, and each attribute from the top of the attribute string is moved from a root node
  • a search tree that is sequentially associated with the hierarchy up to the node is stored, and the past in the search tree calculated based on a change in an attribute value between a past input attribute string and a new input attribute string
  • the leaf node corresponding to the new input attribute sequence is identified based on the inter-node distance between the leaf node corresponding to the input attribute sequence and the leaf node corresponding to the new input attribute sequence.
  • the computer-readable recording medium is a search tree representing an attribute string in which attribute values of a predetermined number of attributes are arranged in a predetermined attribute order on the computer, from the top of the attribute string
  • a search tree that associates each attribute in the hierarchy from the root node to the leaf node in order is stored, and calculated based on the change in the attribute value between the past input attribute string and the new input attribute string , Corresponding to the new input attribute sequence based on the inter-node distance between the leaf node corresponding to the past input attribute sequence and the leaf node corresponding to the new input attribute sequence in the search tree.
  • the effect of the present invention is that the search can be speeded up in the search of multidimensional data using a tree structure.
  • an information processing system (hereinafter, also referred to as a search system) has an input attribute column (search attribute column 700 or , Input attribute string) is searched for registered attribute string 600.
  • search attribute column 700 or , Input attribute string In the attribute column, attribute values of a predetermined number of attributes are arranged according to a predetermined attribute order.
  • the attribute may be a character, or may be a pair of an attribute name and an attribute value that represents the characteristics of a specific target such as a user profile.
  • 4 and 5 are diagrams showing examples of attribute strings in the embodiment of the present invention.
  • FIG. 4 shows an example in which the attribute is a character.
  • the characters “a”, “a”, and “e” are associated with the attribute indexes “1”, “2”, and “3” indicating the attribute order.
  • FIG. 5 shows an example in which the attribute column is a set of attribute name / attribute value pairs.
  • the attribute index “1”, “2”, “3” is associated with the attribute name and attribute value pair ⁇ sex; male ⁇ , ⁇ age; 20s ⁇ , ⁇ hobby; music ⁇ . It is done.
  • FIG. 2 is a block diagram showing the configuration of the search system in the embodiment of the present invention.
  • the search system includes a search device 100, a value list input device 200, a registered attribute string input device 300, a search attribute string input device 400, and a search result output device 500.
  • the search apparatus 100 is an embodiment of the information processing apparatus of the present invention.
  • the value list input device 200 accepts attribute value information 111, which will be described later, from an input device such as a keyboard or a data file, and transmits it to the search device 100.
  • the registration attribute string input device 300 accepts the registration attribute string 600 by an input device such as a keyboard or a data file and transmits it to the search device 100.
  • the search attribute string input device 400 accepts the search attribute string 700 by an input device such as a keyboard or a data file, and transmits it to the search device 100.
  • the search device 100 searches the registered attribute column 600 that matches the search attribute column 700.
  • the search result output device 500 outputs (displays) the search result in the search device 100 using an output device such as a display or a data file.
  • the search device 100 includes a tree generation unit 110, a search tree storage unit 120, an influence value storage unit 140, a value index storage unit 150, a registration unit 160, a previous search information storage unit 180, and a search unit 190.
  • the tree generation unit 110 generates a search tree 121, influence value information 141, and value index information 151 based on the attribute value information 111.
  • the attribute value information 111 indicates a possible value of each attribute in the attribute column.
  • FIG. 6 is a diagram showing an example of the attribute value information 111 in the embodiment of the present invention.
  • the length of the attribute column is 3, indicating that “a” or “b” can be taken as the attribute value of the attribute index “1”.
  • the value index information 151 indicates a value index assigned to the attribute value of the attribute value information 111.
  • different attribute values are assigned in order from 1 to different attribute values for each attribute index.
  • FIG. 7 is a diagram showing an example of the value index information 151 in the embodiment of the present invention.
  • the value index information 151 in FIG. 7 corresponds to the attribute value information 111 in FIG.
  • value indexes “1” and “2” are assigned to the attribute values “a” and “b” of the attribute index “1”, respectively. Also, value indexes “1”, “2”, and “3” are assigned to the attribute values “a”, “b”, and “c” of the attribute index “2”, respectively. Value indexes “1” and “2” are assigned to the attribute values “e” and “f” of the attribute index “3”, respectively.
  • the value index storage unit 150 stores the value index information 151 generated by the tree generation unit 110.
  • the search tree 121 is a trie tree for performing an attribute string search.
  • the search tree 121 is generated based on attribute columns (attribute column list) related to all combinations of values that can be taken by each attribute.
  • the attribute column list is generated by selecting attribute values in ascending order of the value index for each attribute selected in ascending order of the attribute index.
  • FIG. 8 is a diagram showing an example of the attribute column list in the embodiment of the present invention.
  • the attribute column list in FIG. 8 corresponds to the attribute value information 111 in FIG.
  • FIG. 9 is a diagram showing an example of the search tree 121 in the embodiment of the present invention.
  • the search tree 121 in FIG. 9 corresponds to the attribute column list in FIG.
  • attribute indexes are associated with each layer from the top in ascending order.
  • nodes 122 (122-101, 201, 202, 301, 302,7) For performing attribute determination of the attribute index corresponding to the hierarchy are arranged.
  • Each node 122 is set with a link indicating an underlying node 122 (child node) to be traced when the attribute value matches the attribute value of the attribute string, together with the attribute value for determining the match.
  • an arrow between nodes indicates a link. The value given to the link indicates the attribute value for determining the match.
  • a root node (node 122-101) is arranged.
  • the root node is a node 122 for performing matching determination of the attribute with the attribute index “1”.
  • leaf nodes (nodes 122-401, 402,...) are arranged in the lowest hierarchy of the search tree 121.
  • information related to the registration attribute column 600 corresponding to the leaf node is set.
  • the information related to the registration attribute column 600 may be, for example, the registration attribute column 600 itself.
  • the information related to the registered attribute column 600 includes an identifier of the registered attribute column 600, a flag indicating that the registered attribute column 600 is registered, other information related to the registered attribute column 600, and a link to processing. Etc.
  • the node index is assigned to the leaf node from 1 in ascending order of the value index of the attribute column corresponding to the leaf node.
  • the node index indicates the position of the leaf node arranged in ascending order of the value index of the attribute column.
  • the value in parentheses of each leaf node indicates a node index.
  • the search tree storage unit 120 stores the search tree 121 generated by the tree generation unit 110.
  • the influence value information 141 includes information between leaf nodes for the previous search attribute column 700 and the new search attribute column 700 when the value of the attribute between the previous search attribute column 700 and the new search attribute column 700 changes. Indicates the magnitude of the influence on the inter-node distance (node index difference).
  • the attribute influence value Di of the attribute index i is calculated by, for example, Equation 1.
  • N is the length of the attribute string
  • nData (j) is the number of values that the attribute of the attribute index j can take.
  • FIG. 10 is a diagram showing an example of the influence value information 141 in the embodiment of the present invention.
  • the influence value information 141 in FIG. 10 corresponds to the attribute value information 111 in FIG.
  • the influence value storage unit 140 stores the influence value information 141 generated by the tree generation unit 110.
  • the registration unit 160 registers information related to the registration attribute column 600 in the search tree 121.
  • the previous search information storage unit 180 stores the previous search information 181.
  • FIG. 11 is a diagram showing an example of the previous search information 181 in the embodiment of the present invention.
  • the previous search information 181 includes the previous search attribute column 700 and the node index of the leaf node acquired for the search attribute column 700.
  • the search unit 190 Based on the previous search attribute column 700, the new search attribute column 700, and the influence value information 141, the search unit 190 inter-nodes between leaf nodes for the previous search attribute column 700 and the new search attribute column 700 Calculate the distance. Then, the search unit 190 acquires the node index of the leaf node for the new search attribute string 700 based on the inter-node distance.
  • the search unit 190 compares the previous search attribute column 700 with the new search attribute column 700, and acquires the attribute index of the attribute whose value has changed.
  • the search unit 190 acquires an influence value for the acquired attribute index from the influence value information 141.
  • the search unit 190 acquires the value index of the attribute of the previous search attribute column 700 and the new search attribute column 700 for the changed attribute from the value index information 151.
  • the search unit 190 calculates the product of the difference between the acquired value indexes and the influence value as the inter-node distance.
  • the search unit 190 uses the sum of products calculated for each changed attribute as the inter-node distance. .
  • the search unit 190 acquires the node index of the leaf node for the new search attribute column 700 by adding the calculated inter-node distance to the node index of the leaf node for the previous search attribute column 700.
  • the search unit 190 specifies the leaf node to which the acquired node index is assigned as the leaf node for the new search attribute string 700.
  • the search unit 190 specifies a leaf node for the new search attribute string 700 by executing a search on the search tree 121 when the previous search information 181 has not been set.
  • search device 100 the value list input device 200, the registered attribute string input device 300, the search attribute string input device 400, and the search result output device 500 may each be a computer that operates under control based on a program. .
  • FIG. 3 is a block diagram showing a configuration when the search device 100 is realized by a computer in the embodiment of the present invention.
  • the search device 100 includes a CPU (Central Processing Unit) 101, storage means (storage medium) 102, communication means 103, input means 104, and output means 105.
  • the CPU 101 executes a computer program.
  • the storage unit 102 stores data.
  • the communication unit 103 performs data communication with other devices.
  • the input unit 104 is, for example, a keyboard.
  • the output unit 105 is, for example, a display.
  • the CPU 101 executes a computer program for realizing the functions of the tree generation unit 110, the registration unit 160, and the search unit 190.
  • the storage unit 102 stores data of the search tree storage unit 120, the influence value storage unit 140, the value index storage unit 150, and the previous search information storage unit 180.
  • the communication unit 103 receives the attribute value information 111, the registration attribute column 600, and the search attribute column 700 from the value list input device 200, the registration attribute column input device 300, and the search attribute column input device 400, respectively. In addition, the communication unit 103 transmits the search result to the search result output device 500.
  • the input unit 104 may receive the attribute value information 111, the registration attribute column 600, and the search attribute column 700 from a user or the like, or the output unit 105 may output a search result to the user or the like.
  • a node 122-101 which is a root node is generated in the search tree 121 of FIG.
  • FIG. 12 is a flowchart showing tree generation processing according to the embodiment of the present invention.
  • Tree generation unit 110 receives attribute value information 111 from value list input device 200 (step S110).
  • the tree generation unit 110 receives the attribute value information 111 of FIG.
  • the tree generation unit 110 generates value index information 151 based on the attribute value information 111 (step S120).
  • the tree generation unit 110 stores the generated value index information 151 in the value index storage unit 150.
  • the tree generation unit 110 generates the value index information 151 in FIG. 7 based on the attribute value information 111 in FIG.
  • the tree generation unit 110 generates the influence value information 141 based on the value index information 151 (step S130).
  • the tree generation unit 110 stores the generated influence value information 141 in the influence value storage unit 140.
  • the tree generation unit 110 generates the influence value information 141 in FIG. 10 using the equation 1 based on the value index information 151 in FIG.
  • the tree generation unit 110 generates an attribute column list based on the attribute value information 111 and the value index information 151 (step S140).
  • the tree generation unit 110 generates the attribute column list in FIG. 8 based on the attribute value information 111 in FIG. 6 and the value index information 151 in FIG.
  • the tree generation unit 110 selects one attribute column from the generated attribute column list in ascending order of the value index (step S150).
  • the tree generation unit 110 sets the selected attribute column as the target attribute column and the root node as the target node (step S160), and executes node generation processing (step S170).
  • FIG. 13 is a flowchart showing node generation processing in the embodiment of the present invention.
  • the tree generation unit 110 determines whether or not the target attribute string is empty (step S171).
  • step S171 if the target attribute string is not empty (step S171 / N), the tree generation unit 110 divides the target attribute string into a head attribute and a remaining attribute string excluding the head attribute (step S172).
  • the tree generation unit 110 determines whether or not a link with respect to the value of the head attribute is set for the target node (step S173).
  • step S173 When the link to the value of the head attribute is not set in step S173 (step S173 / N), the tree generation unit 110 generates a child node of the target node, and a link indicating the generated child node in the target node Set.
  • the value of the head attribute is associated with the link (step S174).
  • the tree generation unit 110 sets the remaining attribute string excluding the head attribute from the target attribute string as a new target attribute string and the generated child node as a new target node (step S175).
  • step S173 When a link to the value of the head attribute is set in step S173 (step S173 / Y), the tree generation unit 110 sets the remaining attribute string excluding the head attribute from the target attribute string as a new target attribute string. To do. In addition, the tree generation unit 110 sets the child node indicated by the link as a new target node (step S176).
  • the tree generation unit 110 recursively executes node generation processing (step S171-) (step S177).
  • step S171 If the target attribute string is empty in step S171 (step S171 / Y), since the target node is a leaf node, the tree generation unit 110 assigns a node index to the target node (leaf node) (step S178). The node generation process is terminated. Here, the tree generation unit 110 assigns node indexes to leaf nodes in ascending order from 1.
  • the tree generation unit 110 selects the attribute column “aae” from the attribute column list of FIG. 8, and generates the node 122-201, the node 122-301, and the node 122-401 that are leaf nodes in FIG. To do.
  • the tree generation unit 110 assigns the node index “1” to the nodes 122-401.
  • the tree generation unit 110 executes Steps S150 to S170 for all attribute columns in the attribute column list (Step S180).
  • the tree generation unit 110 stores the generated search tree 121 in the search tree storage unit 120.
  • the tree generation unit 110 generates the search tree 121 in FIG. 9 based on the attribute string list in FIG.
  • FIG. 14 is a flowchart showing the registration process in the embodiment of the present invention.
  • the registration unit 160 receives the registration attribute string 600 from the registration attribute string input device 300 (step S210).
  • the registration unit 160 sets the received registration attribute column 600 as the target attribute column and the root node as the target node (step S220), and executes node registration processing (step S230).
  • FIG. 15 is a flowchart showing node registration processing in the embodiment of the present invention.
  • the registration unit 160 determines whether the target attribute string is empty (step S231).
  • step S231 when the target attribute string is not empty (step S231 / N), the registration unit 160 divides the target attribute string into a head attribute and a remaining attribute string excluding the head attribute (step S232).
  • the registration unit 160 acquires a child node for the head attribute based on the link associated with the value of the head attribute set in the target node (step S233).
  • the registration unit 160 sets the remaining attribute string excluding the top attribute of the target attribute string as a new target attribute string and the acquired child node as a new target node (step S234), and node registration processing (steps S231 to S231). ) Is recursively executed (step S235).
  • step S231 when the target attribute string is empty (step S231 / Y), the target node is a leaf node, so the registration unit 160 registers information related to the registration attribute string 600 in the target node (leaf node). (Step S236), the node registration process is terminated.
  • the registration unit 160 when the registration unit 160 receives the registration attribute string 600 “aae”, the registration unit 160 traces the node 122 in the order of the node 122-101, the node 122-201, the node 122-301, and the node 122-401 in FIG. . Then, the registration unit 160 registers the registration attribute string 600 “aae” in the nodes 122-401. Similarly, as illustrated in FIG. 9, the registration unit 160 adds the registration attribute strings 600 “aaf”, “ace”, “baf”, “bbf” to the nodes 122-402, 405, 408, 410, and 411. And “bce” are registered.
  • FIG. 16 is a flowchart showing search processing in the embodiment of the present invention.
  • the search unit 190 receives a new search attribute sequence 700 from the search attribute sequence input device 400 (step S310).
  • the search unit 190 determines whether or not the previous search information 181 has been set (step S320).
  • step S320 when the previous search information 181 has not been set (step S320 / N), the search unit 190 sets the new search attribute column 700 as the target attribute column and the root node as the target node (step S330). And the search part 190 performs a tree search process (step S340).
  • FIG. 17 is a flowchart showing a tree search process in the embodiment of the present invention.
  • the search unit 190 determines whether the target attribute string is empty (step S341).
  • step S341 when the target attribute string is not empty (step S341 / N), the search unit 190 divides the target attribute string into a head attribute and a remaining attribute string excluding the head attribute (step S342).
  • the search unit 190 acquires a child node for the head attribute based on the link associated with the value of the head attribute set in the target node (step S343).
  • the search unit 190 sets the remaining attribute string excluding the head attribute from the target attribute string as a new target attribute string and the acquired child node as a new target node (step S344), and performs a tree search process (steps S341 to S341). ) Is recursively executed (step S345).
  • step S341 if the target attribute string is empty (step S341 / Y), the target node is a leaf node, and therefore the search unit 190 corresponds the target node (leaf node) to the new search attribute string 700. It is specified as a leaf node (step S346).
  • the search unit 190 ends the tree search process.
  • the search unit 190 proceeds to the process of step S380.
  • the search unit 190 calculates the inter-node distance between the previous search attribute column 700 and the new search attribute column 700. (Step S350).
  • the search unit 190 calculates the inter-node distance based on the previous search attribute string 700, the new search attribute string 700, and the influence value information 141 included in the previous search information 181. That is, as described above, the search unit 190 calculates the product of the difference between the value index and the influence value related to the changed attribute as the inter-node distance.
  • the search unit 190 calculates the node index of the leaf node corresponding to the new search attribute string 700 based on the inter-node distance (step S360).
  • the search unit 190 obtains the node index of the leaf node by adding the calculated inter-node distance to the node index of the leaf node corresponding to the previous search attribute string 700 included in the previous search information 181. To do.
  • the search unit 190 identifies the node 122 to which the calculated node index is assigned as a leaf node corresponding to the new search attribute column 700 (step S370).
  • the search unit 190 sets a new search attribute column 700 in the search attribute column 700 of the previous search information 181 and sets the node index of the identified leaf node in the node index (step S380).
  • the search unit 190 outputs information related to the registered attribute column 600 registered in the identified leaf node to the search result output device 500 as a search result (step S390). Note that the search unit 190 may output “no registration” as the search result when the information related to the registration attribute column 600 is not registered in the identified leaf node.
  • the search unit 190 executes a tree search process.
  • the search unit 190 follows the node 122 in the order of the node 122-101, the node 122-201, the node 122-301, and the node 122-401. Then, the search unit 190 specifies the nodes 122-401 as leaf nodes corresponding to the search attribute string 700 “aae”. As shown in FIG. 11, the search unit 190 sets “aae” in the search attribute column 700 of the previous search information 181 and sets the node index “1” of the nodes 122-401 in the node index. Then, the search unit 190 outputs the registration attribute string 600 “aae” registered in the node 122-401 as a search result.
  • FIG. 18 is a diagram showing an example of search processing using the inter-node distance in the embodiment of the present invention.
  • the search unit 190 sets the search attribute string 700 “aae” of the previous search information 181 as The new search attribute column 700 “bce” is compared.
  • the search unit 190 acquires attribute indexes “1” and “2” of attributes whose values have changed. Further, the search unit 190 acquires influence values “6” and “2” for the attribute indexes “1” and “2” from the influence value information 141 in FIG.
  • the search unit 190 acquires the value indexes “2” and “3” for the new search attribute string 700 “bce” for the attributes of the attribute indexes “1” and “2” from the value index information 151 of FIG.
  • the search unit 190 acquires value indexes “1” and “1” for the previous search attribute column 700 “aae”. As illustrated in FIG. 18, the search unit 190 calculates the inter-node distance “10” based on the sum of the products of the value index difference and the influence value.
  • the search unit 190 adds the internode distance “10” to the node index “1” of the previous search information 181 to thereby add the node index “11” of the leaf node corresponding to the new search attribute string 700 “bce”. Is calculated.
  • the search unit 190 identifies the nodes 122-411 assigned the node index “11” as leaf nodes corresponding to the search attribute string 700 “bce”.
  • the search unit 190 sets “bce” in the search attribute column 700 of the previous search information 181 and sets the node index “11” of the nodes 122-411 in the node index.
  • the search unit 190 outputs the registered attribute string 600 “bce” registered in the nodes 122-411 as a search result.
  • the search unit 190 corresponds to the previous search attribute column 700 based on a change in the attribute value between the previous search attribute column 700 and the new search attribute column 700.
  • the inter-node distance between the leaf node and the leaf node corresponding to the new search attribute column 700 was calculated.
  • the search unit 190 may use a past search attribute string 700 before the previous time instead of the previous search attribute string 700.
  • the search unit 190 leaves corresponding to the past search attribute column 700 and the new search attribute column 700 based on the change of the attribute value between the past search attribute column 700 and the new search attribute column 700. Calculate the distance between nodes.
  • the search unit 190 acquires the node index of the new search attribute sequence 700 by adding the inter-node distance to the node index of the leaf node corresponding to the past search attribute sequence 700.
  • FIG. 1 is a block diagram showing a characteristic configuration of an embodiment of the present invention.
  • the search device (information processing device) 100 includes a search tree storage unit 120 and a search unit 190.
  • the search tree storage unit 120 is a search tree representing an attribute string in which attribute values of a predetermined number of attributes are arranged in a predetermined attribute order, and each attribute from the top of the attribute string is expressed from a root node to a leaf node.
  • the search tree 121 associated with the hierarchy in order is stored.
  • the search unit 190 corresponds to the past input attribute string and the new input attribute string in the search tree 121 calculated based on the change of the attribute value between the past input attribute string and the new input attribute string.
  • the leaf node corresponding to the new input attribute string is specified based on the inter-node distance between the leaf nodes.
  • the search unit 190 is a node between leaf nodes corresponding to the past search attribute sequence and the new search attribute sequence in the search tree 121 calculated based on the change of the attribute value between the search attribute sequences. This is because the leaf node corresponding to the new search attribute string is specified based on the distance.
  • the leaf node corresponding to the new search attribute string is identified and searched without tracing the search tree 121 regardless of which attribute changes between the past search attribute string and the new search attribute string. The result can be obtained.
  • the present invention can be applied to a search device or a database that searches an attribute string. Further, the present invention can be applied to a situation-dependent service such as a concierge service that requires real-time matching and real-time advertisement distribution by using user status information in an attribute column.
  • a situation-dependent service such as a concierge service that requires real-time matching and real-time advertisement distribution by using user status information in an attribute column.

Landscapes

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

Abstract

 木構造を用いた多次元データの検索において、検索を高速化する。 検索装置(100)は、探索木記憶部(120)と検索部(190)とを含む。探索木記憶部(120)は、所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木(121)を記憶する。検索部(190)は、過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、探索木(121)における、過去の入力属性列に対応する葉ノードと新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、新たな入力属性列に対応する葉ノードを特定する。

Description

情報処理装置、及び、検索方法
 本発明は、情報処理装置、及び、検索方法に関し、特に、木構造の探索により検索を行う情報処理装置、及び、検索方法に関する。
 木構造を用いて属性列を検索するシステムの一例が、非特許文献1に記載されている。
 非特許文献1に記載される多次元データ検索装置では、属性の集合である多次元データ(属性列)が用いられる。検索装置は、登録されている属性列群(登録属性列群)の中から、クエリとして入力された属性列(検索属性列)に合致する登録属性列を検索する。
 検索装置は、登録属性列群をトライ木で管理する。トライ木では、各階層に属性列の属性が対応付けられ、当該階層に対応する属性の一致判定を行うためのノードが配置される。各ノードは、検索データと比較を行う属性値、及び当該属性値と一致した場合に、次に辿る下層のノードを示すリンクを持つ。さらに、トライ木は、最下層に登録属性列を格納する葉ノードを持つ。検索装置は、検索属性列が入力されると、根ノードから、各ノードの属性値と検索属性列の属性値が一致するかどうかの判定を、葉ノードにたどり着くまで繰り返す。
 また、検索装置は、注目属性を用いて一致判定処理を省略(スキップ)する。検索装置は、検索を行うたびに、検索属性列と所定の注目属性に対応する階層で探索したノードとを記憶する。そして、検索装置は、新たな検索属性列が入力されると、過去の検索属性列と新たな検索属性列との間で、先頭からの各属性を比較する。ここで、注目属性より前の属性までの各属性値が同じであれば、新たな検索属性列の先頭から注目属性までを探索するノードは、過去の検索属性列と同一である。従って、この場合、検索装置は、注目属性に対応する階層のノードから新たな検索属性列の探索を開始する。
 以上のように、非特許文献1に記載される検索装置では、注目属性までの一致判定処理をスキップすることにより、検索が高速化される。
小林他、「多属性の照合を実現する拡張トライ木方式の提案と評価」、2012年電子情報通信学会通信ソサイエティ大会通信講演論文集2、2012年、p.365
 しかしながら、非特許文献1に記載の多次元データ検索装置では、過去の検索データと新たな検索データとの間で、注目属性より前の属性値が変化すると、注目属性までの一致判定処理をスキップできず、検索の高速化の効果が得られない。
 本発明の目的は、上述の課題を解決し、木構造を用いた多次元データの検索において、検索を高速化できる、検索装置、及び、検索方法を提供することである。
 本発明の一態様における情報処理装置は、所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶する探索木記憶手段と、過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する検索手段と、を備える。
 本発明の一態様における検索方法は、所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶し、過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する。
 本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶し、過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する、処理を実行させるプログラムを格納する。
 本発明の効果は、木構造を用いた多次元データの検索において、検索を高速化できることである。
本発明の実施の形態の特徴的な構成を示すブロック図である。 本発明の実施の形態における、検索システムの構成を示すブロック図である。 本発明の実施の形態における、検索装置100がコンピュータにより実現される場合の構成を示すブロック図である。 本発明の実施の形態における、属性列の例を示す図である。 本発明の実施の形態における、属性列の他の例を示す図である。 本発明の実施の形態における、属性値情報111の例を示す図である。 本発明の実施の形態における、値インデックス情報151の例を示す図である。 本発明の実施の形態における、属性列リストの例を示す図である。 本発明の実施の形態における、探索木121の例を示す図である。 本発明の実施の形態における、影響値情報141の例を示す図である。 本発明の実施の形態における、前回検索情報181の例を示す図である。 本発明の実施の形態における、木生成処理を示すフローチャートである。 本発明の実施の形態における、ノード生成処理を示すフローチャートである。 本発明の実施の形態における、登録処理を示すフローチャートである。 本発明の実施の形態における、ノード登録処理を示すフローチャートである。 本発明の実施の形態における、検索処理を示すフローチャートである。 本発明の実施の形態における、木探索処理を示すフローチャートである。 本発明の実施の形態における、ノード間距離を用いた検索処理の例を示す図である。
 本発明の実施の形態について説明する。
 はじめに、本発明の実施の形態における、属性列について説明する。
 本発明の実施の形態においては、情報処理システム(以下、検索システムとも言う)は、登録されている属性列(登録属性列600)の中から、入力された属性列(検索属性列700、または、入力属性列)に合致する登録属性列600を検索する。属性列では、所定数の属性の属性値が、所定の属性順に従って配置される。属性は、文字でもよいし、ユーザプロファイル等、特定の対象の性質を表す属性名と属性値の組でもよい。
 図4、図5は、本発明の実施の形態における、属性列の例を示す図である。
 図4は、属性が文字の場合の例である。この場合、属性列では、属性順を示す属性インデックス「1」、「2」、「3」に、文字「a」、「a」、「e」が対応づけられる。
 図5は、属性列が属性名と属性値の組の集合の場合の例である。この場合、属性列では、属性インデックス「1」、「2」、「3」に、属性名と属性値の組{性別;男性}、{年齢;20代}、{趣味;音楽}が対応づけられる。
 次に、本発明の実施の形態の構成について説明する。
 図2は、本発明の実施の形態における、検索システムの構成を示すブロック図である。
 図2を参照すると、本発明の実施の形態における検索システムは、検索装置100、値リスト入力装置200、登録属性列入力装置300、検索属性列入力装置400、及び、検索結果出力装置500を含む。検索装置100は、本発明の情報処理装置の一実施形態である。
 値リスト入力装置200は、後述する属性値情報111を、キーボード等の入力デバイスや、データファイルにより受け付け、検索装置100に送信する。
 登録属性列入力装置300は、登録属性列600を、キーボード等の入力デバイスや、データファイルにより受け付け、検索装置100に送信する。
 検索属性列入力装置400は、検索属性列700を、キーボード等の入力デバイスや、データファイルにより受け付け、検索装置100に送信する。
 検索装置100は、検索属性列700に合致する登録属性列600を検索する。
 検索結果出力装置500は、検索装置100における検索結果を、ディスプレイ等の出力デバイスや、データファイルにより出力(表示)する。
 検索装置100は、木生成部110、探索木記憶部120、影響値記憶部140、値インデックス記憶部150、登録部160、前回検索情報記憶部180、及び、検索部190を含む。
 木生成部110は、属性値情報111をもとに、探索木121、影響値情報141、及び、値インデックス情報151を生成する。
 ここで、属性値情報111は、属性列における各属性のとりうる値を示す。図6は、本発明の実施の形態における、属性値情報111の例を示す図である。
 図6の例では、属性列の長さは3であり、属性インデックス「1」の属性値として「a」または「b」を取りうることが示されている。また、属性インデックス「2」の属性値として「a」、「b」、及び、「c」のいずれかを取りうること、属性インデックス「3」の属性値として「e」または「f」を取りうることが示されている。
 値インデックス情報151は、属性値情報111の属性値に付与された値インデックスを示す。値インデックスには、属性インデックスごとに、異なる属性値に1から順に異なる値が付与される。
 図7は、本発明の実施の形態における、値インデックス情報151の例を示す図である。図7の値インデックス情報151は、図6の属性値情報111に対応する。
 図7の例では、属性インデックス「1」の属性値「a」、「b」に対して、値インデックス「1」、「2」がそれぞれ付与されている。また、属性インデックス「2」の属性値「a」、「b」、「c」に対して、値インデックス「1」、「2」、「3」がそれぞれ付与されている。属性インデックス「3」の属性値「e」、「f」に対して、値インデックス「1」、「2」がそれぞれ付与されている。
 値インデックス記憶部150は、木生成部110により生成された値インデックス情報151を記憶する。
 探索木121は、属性列の検索を行うためのトライ木である。
 本発明の実施の形態においては、探索木121は、各属性のとりうる値の全組み合わせに係る属性列(属性列リスト)をもとに生成される。属性列リストは、属性インデックスの昇順で選択された属性ごとに、値インデックスの昇順に属性値を選択することにより生成される。
 図8は、本発明の実施の形態における、属性列リストの例を示す図である。図8の属性列リストは、図6の属性値情報111に対応する。
 図9は、本発明の実施の形態における、探索木121の例を示す図である。図9の探索木121は、図8の属性列リストに対応する。
 探索木121では、最上位からの各階層に、属性インデックスが昇順に対応付けられる。各階層には、当該階層に対応する属性インデックスの属性の一致判定を行うためのノード122(122-101、201、202、301、302、…)が配置される。各ノード122には、一致判定を行う属性値とともに、当該属性値と属性列の属性値とが一致した場合に辿るべき、下層のノード122(子ノード)を示すリンクが設定される。図9の例では、ノード間の矢印がリンクを示す。リンクに付与された値が、一致判定を行う属性値を示す。
 探索木121の最上位の階層には、根(ルート)ノード(ノード122-101)が配置される。根ノードは、属性インデックス「1」の属性の一致判定を行うためのノード122である。また、探索木121の最下位の階層には、葉ノード(ノード122-401、402、…)が配置される。葉ノードには、当該葉ノードに対応する登録属性列600に係る情報が設定される。ここで、登録属性列600に係る情報は、例えば、当該登録属性列600自体でもよい。また、登録属性列600に係る情報は、当該登録属性列600の識別子、当該登録属性列600が登録されていることを示すフラグ、当該登録属性列600に関連する他の情報、処理へのリンク等でもよい。
 また、葉ノードには、葉ノードに対応する属性列の値インデックスの昇順に、1からノードインデックスが付与される。ノードインデックスは、属性列の値インデックスの昇順に配置された葉ノードの位置を示す。図9の例では、各葉ノードの括弧内の値が、ノードインデックスを示す。
 探索木記憶部120は、木生成部110により生成された探索木121を記憶する。
 影響値情報141は、前回の検索属性列700と新たな検索属性列との間である属性の値が変化した場合の、前回の検索属性列700と新たな検索属性列700に対する葉ノード間のノード間距離(ノードインデックスの差分)への影響の大きさを示す。
 属性インデックスiの属性の影響値Diは、例えば、数1式により算出される。
Figure JPOXMLDOC01-appb-M000001
 ここで、Nは属性列の長さ、nData(j)は、属性インデックスjの属性のとりうる値の数を示す。
 図10は、本発明の実施の形態における、影響値情報141の例を示す図である。図10の影響値情報141は、図6の属性値情報111に対応する。
 図10では、例えば、前回の検索属性列700と新たな検索属性列との間で属性インデックス「1」の属性値が変化した場合に、前回の検索属性列700と新たな検索属性列700に対する葉ノード間の距離が「6」の倍数で変化することを示している。
 影響値記憶部140は、木生成部110により生成された影響値情報141を記憶する。
 登録部160は、探索木121に登録属性列600に係る情報を登録する。
 前回検索情報記憶部180は、前回検索情報181を記憶する。
 図11は、本発明の実施の形態における、前回検索情報181の例を示す図である。
 前回検索情報181は、前回の検索属性列700、及び、当該検索属性列700に対して取得された葉ノードのノードインデックスを含む。
 検索部190は、前回の検索属性列700、新たな検索属性列700、及び、影響値情報141をもとに、前回の検索属性列700と新たな検索属性列700に対する葉ノード間のノード間距離を算出する。そして、検索部190は、ノード間距離もとに、新たな検索属性列700に対する葉ノードのノードインデックスを取得する。
 ここで、検索部190は、前回の検索属性列700と新たな検索属性列700とを比較し、値が変化した属性の属性インデックスを取得する。検索部190は、影響値情報141から、取得した属性インデックスに対する影響値を取得する。検索部190は、値インデックス情報151から、変化した属性について、前回の検索属性列700と新たな検索属性列700の当該属性の値インデックスを取得する。検索部190は、取得した値インデックスの差と影響値との積をノード間距離として算出する。
 なお、前回の検索属性列700と新たな検索属性列700との間で、複数の属性が変化した場合、検索部190は、変化した属性の各々について算出した積の合計をノード間距離として用いる。
 そして、検索部190は、前回の検索属性列700に対する葉ノードのノードインデックスに、算出されたノード間距離を加算することにより、新たな検索属性列700に対する葉ノードのノードインデックスを取得する。検索部190は、取得したノードインデックスが付与された葉ノードを、新たな検索属性列700に対する葉ノードとして特定する。
 検索部190は、前回検索情報181が設定されていない場合、探索木121上の探索を実行することにより、新たな検索属性列700に対する葉ノードを特定する。
 なお、検索装置100、値リスト入力装置200、登録属性列入力装置300、検索属性列入力装置400、及び、検索結果出力装置500は、それぞれ、プログラムに基づく制御によって動作するコンピュータであってもよい。
 図3は、本発明の実施の形態における、検索装置100がコンピュータにより実現される場合の構成を示すブロック図である。この場合、検索装置100は、CPU(Central Processing Unit)101、記憶手段(記憶媒体)102、通信手段103、入力手段104、及び、出力手段105を含む。CPU101は、コンピュータプログラムを実行する。記憶手段102は、データを記憶する。通信手段103は、他の装置等とデータ通信を行う。入力手段104は、例えば、キーボード等である。出力手段105は、例えば、ディスプレイ等である。
 CPU101は、木生成部110、登録部160、及び、検索部190の機能を実現するためのコンピュータプログラムを実行する。記憶手段102は、探索木記憶部120、影響値記憶部140、値インデックス記憶部150、及び、前回検索情報記憶部180のデータを記憶する。通信手段103は、値リスト入力装置200、登録属性列入力装置300、検索属性列入力装置400から、それぞれ、属性値情報111、登録属性列600、検索属性列700を受信する。また、通信手段103は検索結果出力装置500へ、検索結果を送信する。なお、入力手段104が、ユーザ等から、属性値情報111、登録属性列600、検索属性列700を受け付ける、あるいは、出力手段105が、ユーザ等へ検索結果を出力してもよい。
 次に、本発明の実施の形態の動作について説明する。
 以下、本発明の実施の形態の動作として、木生成処理と、登録処理、及び、検索処理を説明する。
 はじめに、本発明の実施の形態の木生成処理について説明する。
 ここでは、図9の探索木121において、根ノードである、ノード122-101が生成されていると仮定する。
 図12は、本発明の実施の形態における、木生成処理を示すフローチャートである。
 木生成部110は、値リスト入力装置200より属性値情報111を受信する(ステップS110)。
 例えば、木生成部110は、図6の属性値情報111を受信する。
 木生成部110は、属性値情報111をもとに値インデックス情報151を生成する(ステップS120)。木生成部110は、生成した値インデックス情報151を、値インデックス記憶部150に保存する。
 例えば、木生成部110は、図6の属性値情報111をもとに、図7の値インデックス情報151を生成する。
 木生成部110は、値インデックス情報151をもとに、影響値情報141を生成する(ステップS130)。木生成部110は、生成した影響値情報141を、影響値記憶部140に保存する。
 例えば、木生成部110は、図7の値インデックス情報151をもとに、数1式を用いて、図10の影響値情報141を生成する。
 木生成部110は、属性値情報111と値インデックス情報151をもとに、属性列リストを生成する(ステップS140)。
 例えば、木生成部110は、図6の属性値情報111と図7の値インデックス情報151とをもとに、図8の属性列リストを生成する。
 木生成部110は、生成した属性列リストから、値インデックスの昇順に、属性列を1つ選択する(ステップS150)。
 木生成部110は、選択した属性列を対象属性列、根ノードを対象ノードに設定して(ステップS160)、ノード生成処理を実行する(ステップS170)。
 図13は、本発明の実施の形態における、ノード生成処理を示すフローチャートである。
 木生成部110は、対象属性列が空かどうかを判定する(ステップS171)。
 ステップS171において、対象属性列が空でない場合(ステップS171/N)、木生成部110は、対象属性列を先頭属性と先頭属性を除いた残りの属性列とに分ける(ステップS172)。
 木生成部110は、対象ノードに、先頭属性の値に対するリンクが設定されているかどうかを判定する(ステップS173)。
 ステップS173で、先頭属性の値に対するリンクが設定されていない場合(ステップS173/N)、木生成部110は、対象ノードの子ノードを生成するとともに、対象ノードに、生成した子ノードを示すリンクを設定する。当該リンクには、先頭属性の値が関連付けられる(ステップS174)。
 木生成部110は、対象属性列から先頭属性を除いた残りの属性列を新たな対象属性列、生成した子ノードを新たな対象ノードに設定する(ステップS175)。
 ステップS173で、先頭属性の値に対するリンクが設定されている場合(ステップS173/Y)、木生成部110は、対象属性列から先頭属性を除いた残りの属性列を新たな対象属性列に設定する。また、木生成部110は、当該リンクにより示される子ノードを新たな対象ノードに設定する(ステップS176)。
 木生成部110は、ノード生成処理(ステップS171~)を再帰的に実行する(ステップS177)。
 ステップS171において、対象属性列が空である場合(ステップS171/Y)、対象ノードは葉ノードであるため、木生成部110は、対象ノード(葉ノード)にノードインデックスを付与し(ステップS178)、ノード生成処理を終了する。ここで、木生成部110は、葉ノードにノードインデックスを1から昇順に付与する。
 例えば、木生成部110は、図8の属性列リストから属性列「aae」を選択し、図9における、ノード122-201、ノード122-301、及び、葉ノードであるノード122-401を生成する。木生成部110は、ノード122-401にノードインデックス「1」を付与する。
 木生成部110は、属性列リストの全ての属性列について、ステップS150~S170を実行する(ステップS180)。
 木生成部110は、生成した探索木121を、探索木記憶部120に保存する。
 例えば、木生成部110は、図8の属性列リストをもとに、図9の探索木121を生成する。
 次に、本発明の実施の形態の登録処理について説明する。
 図14は、本発明の実施の形態における、登録処理を示すフローチャートである。
 登録部160は、登録属性列入力装置300から登録属性列600を受信する(ステップS210)。
 登録部160は、受信した登録属性列600を対象属性列、根ノードを対象ノードに設定して(ステップS220)、ノード登録処理を実行する(ステップS230)。
 図15は、本発明の実施の形態における、ノード登録処理を示すフローチャートである。
 登録部160は、対象属性列が空かどうかを判定する(ステップS231)。
 ステップS231において、対象属性列が空でない場合(ステップS231/N)、登録部160は、対象属性列を先頭属性と先頭属性を除いた残りの属性列とに分ける(ステップS232)。
 登録部160は、対象ノードに設定された、先頭属性の値に関連づけられたリンクをもとに、先頭属性に対する子ノードを取得する(ステップS233)。登録部160は、対象属性列の先頭属性を除いた残りの属性列を新たな対象属性列、取得した子ノードを新たな対象ノードに設定して(ステップS234)、ノード登録処理(ステップS231~)を再帰的に実行する(ステップS235)。
 ステップS231において、対象属性列が空である場合(ステップS231/Y)、対象ノードは葉ノードであるため、登録部160は、対象ノード(葉ノード)に登録属性列600に係る情報を登録し(ステップS236)、ノード登録処理を終了する。
 例えば、登録部160は、登録属性列600「aae」を受信した場合、図9において、ノード122-101、ノード122-201、ノード122-301、及び、ノード122-401の順にノード122を辿る。そして、登録部160は、ノード122-401に、登録属性列600「aae」を登録する。同様に、登録部160は、図9に示すように、ノード122-402、405、408、410、及び、411に、登録属性列600「aaf」、「ace」、「baf」、「bbf」、及び、「bce」を登録する。
 次に、本発明の実施の形態の検索処理について説明する。
 図16は、本発明の実施の形態における、検索処理を示すフローチャートである。
 検索部190は、検索属性列入力装置400から新たな検索属性列700を受信する(ステップS310)。
 検索部190は、前回検索情報181が設定されているかどうかを判定する(ステップS320)。
 ステップS320において、前回検索情報181が設定されていない場合(ステップS320/N)、検索部190は、新たな検索属性列700を対象属性列、根ノードを対象ノードに設定する(ステップS330)。そして、検索部190は、木探索処理を実行する(ステップS340)。
 図17は、本発明の実施の形態における、木探索処理を示すフローチャートである。
 検索部190は、対象属性列が空かどうかを判定する(ステップS341)。
 ステップS341において、対象属性列が空でない場合(ステップS341/N)、検索部190は、対象属性列を先頭属性と先頭属性を除いた残りの属性列とに分ける(ステップS342)。
 検索部190は対象ノードに設定された、先頭属性の値に関連づけられたリンクをもとに、先頭属性に対する子ノードを取得する(ステップS343)。検索部190は、対象属性列から先頭属性を除いた残りの属性列を新たな対象属性列、取得した子ノードを新たな対象ノードに設定して(ステップS344)、木探索処理(ステップS341~)を再帰的に実行する(ステップS345)。
 ステップS341において、対象属性列が空である場合(ステップS341/Y)、対象ノードは葉ノードであるため、検索部190は、対象ノード(葉ノード)を、新たな検索属性列700に対応する葉ノードとして特定する(ステップS346)。検索部190は、木探索処理を終了する。
 検索部190は、ステップS380の処理へ進む。
 一方、ステップS320において、前回検索情報181が設定されている場合(ステップS320/Y)、検索部190は、前回の検索属性列700と新たな検索属性列700との間のノード間距離を算出する(ステップS350)。ここで、検索部190は、前回検索情報181に含まれる前回の検索属性列700、新たな検索属性列700、及び、影響値情報141をもとに、ノード間距離を算出する。すなわち、検索部190は、上述のように、変化した属性に係る、値インデックスの差と影響値との積を、ノード間距離として算出する。
 検索部190は、ノード間距離をもとに、新たな検索属性列700に対応する葉ノードのノードインデックスを算出する(ステップS360)。ここで、検索部190は、前回検索情報181に含まれる前回の検索属性列700に対応する葉ノードのノードインデックスに、算出されたノード間距離を加算することにより、葉ノードのノードインデックスを取得する。
 検索部190は、算出されたノードインデックスが付与されたノード122を新たな検索属性列700に対応する葉ノードとして特定する(ステップS370)。
 検索部190は、前回検索情報181の検索属性列700に、新たな検索属性列700を設定し、ノードインデックスに、特定した葉ノードのノードインデックスを設定する(ステップS380)。
 検索部190は、特定した葉ノードに登録されている登録属性列600に係る情報を、検索結果として検索結果出力装置500に出力する(ステップS390)。なお、検索部190は、特定した葉ノードに登録属性列600に係る情報が登録されていない場合、「登録なし」を、検索結果として出力してもよい。
 例えば、初期状態として前回検索情報181が設定されていないときに、新たな検索属性列700「aae」を受信した場合、検索部190は、木探索処理を実行する。検索部190は、図9において、ノード122-101、ノード122-201、ノード122-301、及び、ノード122-401の順にノード122を辿る。そして、検索部190は、ノード122-401を、検索属性列700「aae」に対応する葉ノードとして特定する。検索部190は、図11のように、前回検索情報181の検索属性列700に「aae」を設定し、ノードインデックスにノード122-401のノードインデックス「1」を設定する。そして、検索部190は、ノード122-401に登録されている登録属性列600「aae」を、検索結果として出力する。
 図18は、本発明の実施の形態における、ノード間距離を用いた検索処理の例を示す図である。
 次に、図11の前回検索情報181が設定されているときに、新たな検索属性列700「bce」を受信した場合、検索部190は、前回検索情報181の検索属性列700「aae」と新たな検索属性列700「bce」とを比較する。検索部190は、値が変化した属性の属性インデックス「1」、「2」を取得する。また、検索部190は、図10の影響値情報141から、属性インデックス「1」、「2」に対する影響値「6」、「2」を取得する。検索部190は、図7の値インデックス情報151から、属性インデックス「1」、「2」の属性について、新たな検索属性列700「bce」に対する値インデックス「2」、「3」を取得する。また、検索部190は、前回の検索属性列700「aae」に対する値インデックス「1」、「1」を取得する。検索部190は、図18に示すように、値インデックスの差分と影響値との積の合計により、ノード間距離「10」を算出する。
 そして、検索部190は、前回検索情報181のノードインデックス「1」にノード間距離「10」を加算することにより、新たな検索属性列700「bce」に対応する葉ノードのノードインデック「11」を算出する。検索部190は、ノードインデック「11」が付与されたノード122-411を、検索属性列700「bce」に対応する葉ノードとして特定する。検索部190は、前回検索情報181の検索属性列700に「bce」を設定し、ノードインデックスにノード122-411のノードインデックス「11」を設定する。検索部190は、ノード122-411に登録されている登録属性列600「bce」を、検索結果として出力する。
 以上により、本発明の実施の形態の動作が完了する。
 なお、本発明の実施の形態では、検索部190は、前回の検索属性列700と新たな検索属性列700との間の属性値の変化をもとに、前回の検索属性列700に対応する葉ノードと新たな検索属性列700に対応する葉ノードとの間のノード間距離を算出した。しかしながら、検索部190は、前回の検索属性列700の代わりに、前回より前の過去の検索属性列700を用いてもよい。この場合、検索部190は、過去の検索属性列700と新たな検索属性列700との間の属性値の変化をもとに過去の検索属性列700と新たな検索属性列700に対応する葉ノード間のノード間距離を算出する。そして、検索部190は、過去の検索属性列700に対応する葉ノードのノードインデックスに、ノード間距離を加算することにより、新たな検索属性列700のノードインデックスを取得する。
 次に、本発明の実施の形態の特徴的な構成を説明する。図1は、本発明の実施の形態の特徴的な構成を示すブロック図である。
 図1を参照すると、検索装置(情報処理装置)100は、探索木記憶部120と検索部190とを含む。
 探索木記憶部120は、所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木121を記憶する。
 検索部190は、過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、探索木121における、過去の入力属性列と新たな入力属性列に対応する葉ノード間のノード間距離をもとに、新たな入力属性列に対応する葉ノードを特定する。
 本発明の実施の形態によれば、木構造を用いた多次元データの検索において、検索を高速化できる。その理由は、検索部190が、検索属性列間の属性値の変化をもとに算出された、探索木121における、過去の検索属性列と新たな検索属性列に対応する葉ノード間のノード間距離をもとに、新たな検索属性列に対応する葉ノードを特定するためである。
 これにより、過去の検索属性列と新たな検索属性列との間で、どの属性が変化した場合でも、探索木121を辿ることなく、新たな検索属性列に対応する葉ノードを特定し、検索結果を得ることができる。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2013年8月2日に出願された日本出願特願2013-161305を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、属性列の検索を行う検索装置やデータベースに適用できる。また、本発明は、属性列にユーザの状態情報を用いることにより、リアルタイムなマッチングが必要なコンシェルジュサービスやリアルタイム広告配信等の状況依存サービスに適用できる。
 100  検索装置
 110  木生成部
 111  属性値情報
 120  探索木記憶部
 121  探索木
 140  影響値記憶部
 141  影響値情報
 150  値インデックス記憶部
 151  値インデックス情報
 160  登録部
 180  前回検索情報記憶部
 181  前回検索情報
 190  検索部
 200  値リスト入力装置
 300  登録属性列入力装置
 400  検索属性列入力装置
 500  検索結果出力装置

Claims (15)

  1.  所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶する探索木記憶手段と、
     過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する検索手段と、
    を備えた情報処理装置。
  2.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記探索木における、前記過去の入力属性列と前記新たな入力属性列との間の属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分であり、
     前記検索手段は、前記過去の入力属性列に対応する葉ノードの位置に、前記算出されたノード間距離を加えることにより、前記新たな入力属性列に対応する葉ノードの位置を取得する、
    請求項1に記載の情報処理装置。
  3.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記所定数の属性の各々について、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分の合計値である、
    請求項2に記載の情報処理装置。
  4.  前記探索木は、前記所定数の属性の各々のとりうる属性値の組み合わせに係る属性列を表す探索木であり、
     前記所定数の属性の各々毎に、とりうる属性値の各々にインデックスが付与され、
     前記所定数の属性の各々についての、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分は、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値のインデックスの変化量に、属性列における当該属性の次の属性から末尾の属性までの各々のとりうる属性値の数の積を乗じることによって算出される、
    請求項3に記載の情報処理装置。
  5.  さらに、登録属性列に係る情報を、当該登録属性列に対応する葉ノードに関連付ける登録手段を含み、
     前記検索手段は、前記新たな入力属性列に対応する葉ノードに関連付けられた前記登録属性列に係る情報を出力する、
    請求項1乃至4のいずれかに記載の情報処理装置。
  6.  所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶し、
     過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する、
    検索方法。
  7.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記探索木における、前記過去の入力属性列と前記新たな入力属性列との間の属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分であり、
     前記新たな入力属性列に対応する葉ノードを特定する場合、前記過去の入力属性列に対応する葉ノードの位置に、前記算出されたノード間距離を加えることにより、前記新たな入力属性列に対応する葉ノードの位置を取得する、
    請求項6に記載の検索方法。
  8.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記所定数の属性の各々について、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分の合計値である、
    請求項7に記載の検索方法。
  9.  前記探索木は、前記所定数の属性の各々のとりうる属性値の組み合わせに係る属性列を表す探索木であり、
     前記所定数の属性の各々毎に、とりうる属性値の各々にインデックスが付与され、
     前記所定数の属性の各々についての、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分は、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値のインデックスの変化量に、属性列における当該属性の次の属性から末尾の属性までの各々のとりうる属性値の数の積を乗じることによって算出される、
    請求項8に記載の検索方法。
  10.  さらに、登録属性列に係る情報を、当該登録属性列に対応する葉ノードに関連付け、
     前記新たな入力属性列に対応する葉ノードに関連付けられた前記登録属性列に係る情報を出力する、
    請求項6乃至9のいずれかに記載の検索方法。
  11.  コンピュータに、
     所定数の属性の各々の属性値を所定の属性順で配置した属性列を表す探索木であって、属性列の先頭からの各属性を根ノードから葉ノードまでの階層に順番に対応付けた探索木を記憶し、
     過去の入力属性列と新たな入力属性列との間の属性値の変化をもとに算出された、前記探索木における、前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離をもとに、前記新たな入力属性列に対応する葉ノードを特定する、
    処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
  12.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記探索木における、前記過去の入力属性列と前記新たな入力属性列との間の属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分であり、
     前記新たな入力属性列に対応する葉ノードを特定する場合、前記過去の入力属性列に対応する葉ノードの位置に、前記算出されたノード間距離を加えることにより、前記新たな入力属性列に対応する葉ノードの位置を取得する、
    処理を実行させる請求項11に記載のプログラムを格納する、コンピュータが読み取り可能な記録媒体。
  13.  前記過去の入力属性列に対応する葉ノードと前記新たな入力属性列に対応する葉ノードとの間のノード間距離は、前記所定数の属性の各々について、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値の変化量に応じて決定される、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分の合計値である、
    請求項12に記載のプログラムを格納する、コンピュータが読み取り可能な記録媒体。
  14.  前記探索木は、前記所定数の属性の各々のとりうる属性値の組み合わせに係る属性列を表す探索木であり、
     前記所定数の属性の各々毎に、とりうる属性値の各々にインデックスが付与され、
     前記所定数の属性の各々についての、前記過去の入力属性列に対応する葉ノードの位置と前記新たな入力属性列に対応する葉ノードの位置との差分は、前記過去の入力属性列と前記新たな入力属性列との間の当該属性に係る属性値のインデックスの変化量に、属性列における当該属性の次の属性から末尾の属性までの各々のとりうる属性値の数の積を乗じることによって算出される、
    請求項13に記載のプログラムを格納する、コンピュータが読み取り可能な記録媒体。
  15.  さらに、登録属性列に係る情報を、当該登録属性列に対応する葉ノードに関連付け、
     前記新たな入力属性列に対応する葉ノードに関連付けられた前記登録属性列に係る情報を出力する、
    処理を実行させる請求項11乃至14のいずれかに記載のプログラムを格納する、コンピュータが読み取り可能な記録媒体。
PCT/JP2014/003851 2013-08-02 2014-07-22 情報処理装置、及び、検索方法 Ceased WO2015015757A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-161305 2013-08-02
JP2013161305 2013-08-02

Publications (1)

Publication Number Publication Date
WO2015015757A1 true WO2015015757A1 (ja) 2015-02-05

Family

ID=52431317

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/003851 Ceased WO2015015757A1 (ja) 2013-08-02 2014-07-22 情報処理装置、及び、検索方法

Country Status (1)

Country Link
WO (1) WO2015015757A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184857A (ja) * 1997-12-25 1999-07-09 Nec Corp 木構造情報検索装置及び検索方法並びに検索方法を実行させるためのプログラムを記録した記録媒体
WO2013108333A1 (ja) * 2012-01-18 2013-07-25 日本電気株式会社 検索装置、検索方法、及び、検索プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184857A (ja) * 1997-12-25 1999-07-09 Nec Corp 木構造情報検索装置及び検索方法並びに検索方法を実行させるためのプログラムを記録した記録媒体
WO2013108333A1 (ja) * 2012-01-18 2013-07-25 日本電気株式会社 検索装置、検索方法、及び、検索プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUJI KOBAYASHI: "Proposition and Evaluation of an Extensional Trie Tree for Numerous Attributes", 2012 NEN IEICE COMMUNICATIONS SOCIETY CONFERENCE KOEN RONBUNSHU 2, 28 August 2012 (2012-08-28), pages 365 *

Similar Documents

Publication Publication Date Title
CN111460311B (zh) 基于字典树的搜索处理方法、装置、设备和存储介质
CN108804633B (zh) 基于行为语义知识网络的内容推荐方法
RU2694001C2 (ru) Способ и система создания параметра качества прогноза для прогностической модели, выполняемой в алгоритме машинного обучения
CN110347940A (zh) 用于优化兴趣点标签的方法和装置
JP6608972B2 (ja) ソーシャルネットワークに基づいてグループを探索する方法、デバイス、サーバ及び記憶媒体
CN105550368A (zh) 一种高维数据的近似最近邻检索方法及检索系统
CN110188131A (zh) 一种频繁模式挖掘方法及装置
CN106411683B (zh) 一种关键社交信息的确定方法及装置
CN117194778A (zh) 基于属性图数据的预测规则生成方法、装置、设备及介质
CN107391577B (zh) 一种基于表示向量的作品标签推荐方法和系统
JP6072922B2 (ja) 文字列検索装置、文字列検索方法および文字列検索プログラム
CN109472282B (zh) 一种基于极少训练样本的深度图像哈希方法
CN113010769A (zh) 基于知识图谱的物品推荐方法、装置、电子设备及介质
CN103984754A (zh) 一种搜索系统和搜索方法
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
Xie et al. PANDA: toward partial topology-based search on large networks in a single machine
CN112905809B (zh) 知识图谱学习方法和系统
WO2011016281A2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
WO2015015757A1 (ja) 情報処理装置、及び、検索方法
JP2012252694A (ja) オントロジースキーマーに基づくインスタンス経路の探索方法及び装置
JP5981382B2 (ja) 部分木併合装置、部分木併合方法および部分木併合プログラム
JP7121706B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
CN107944045A (zh) 基于t分布哈希的图像检索方法及系统
KR102062139B1 (ko) 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치
JP6281287B2 (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: 14832296

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: 14832296

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP