WO2016151690A1 - 文書検索装置、方法及びプログラム - Google Patents

文書検索装置、方法及びプログラム Download PDF

Info

Publication number
WO2016151690A1
WO2016151690A1 PCT/JP2015/058541 JP2015058541W WO2016151690A1 WO 2016151690 A1 WO2016151690 A1 WO 2016151690A1 JP 2015058541 W JP2015058541 W JP 2015058541W WO 2016151690 A1 WO2016151690 A1 WO 2016151690A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
query
query word
word
acquired
Prior art date
Application number
PCT/JP2015/058541
Other languages
English (en)
French (fr)
Inventor
優佳 小林
友美 坪田
Original Assignee
株式会社 東芝
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 東芝 filed Critical 株式会社 東芝
Priority to PCT/JP2015/058541 priority Critical patent/WO2016151690A1/ja
Priority to JP2017507156A priority patent/JP6305630B2/ja
Publication of WO2016151690A1 publication Critical patent/WO2016151690A1/ja
Priority to US15/421,404 priority patent/US10929446B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Definitions

  • Embodiments described herein relate generally to a document search apparatus, method, and program.
  • a technique is used in which words in the input sentence are acquired as query words and a document including the query words is output.
  • an unintended document such as a document in which the word corresponding to the query word is used in a different way from the user's intention may be included in the search result.
  • it is required to be able to search for a document that matches the user's intention.
  • the problem to be solved by the present invention is to provide a document search apparatus, method, and program capable of searching for a document that matches a user's intention.
  • a document search apparatus includes an acquisition unit, a morpheme analysis unit, a query word extraction unit, an intention estimation unit, a search expression list, an additional query word list, a query generation unit, and a search unit.
  • the acquisition unit acquires an input sentence from the user.
  • the morphological analysis unit extracts words by performing morphological analysis on the input sentence.
  • the query word extraction unit extracts a word used for the search from the extracted words as a query word.
  • the intention estimation unit estimates the search intention of the user based on the input sentence.
  • a plurality of search expressions are registered in the search expression list.
  • a plurality of additional query terms are registered in the additional query term list.
  • the query generation unit acquires a search expression corresponding to the estimated search intention from the search expression list, and sets a set of the acquired search expression and the extracted query word from the additional query word list. A corresponding additional query word is acquired, and a query is generated by applying the extracted query word and the acquired additional query word to the acquired search expression.
  • the search unit searches for documents that match the query.
  • FIG. 1 is a block diagram showing a document search device according to a first embodiment.
  • FIG. 6 is a diagram showing an example of a procedure for document search processing according to the first embodiment.
  • FIG. 10 is a diagram showing an example of a procedure for document search processing according to the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a procedure for document search processing according to a third embodiment.
  • Embodiments described herein relate generally to a document search apparatus that searches a document related to a recipe.
  • the search target is not limited to documents related to recipes. Note that, in the following embodiments, the same numbered portions are assumed to perform the same operation, and repeated description is omitted.
  • FIG. 1 schematically shows a document search apparatus 100 according to the first embodiment.
  • the document search apparatus 100 includes an acquisition unit 101, a morpheme analysis unit 102, a query word extraction unit 103, an intention estimation unit 104, a query generation unit 105, a search unit 106, a morpheme analysis dictionary 107, a search formula.
  • a list 108, an additional query word list 109, and a document database (DB) 110 are provided.
  • the acquisition unit 101 acquires an input sentence from the user.
  • a method for acquiring an input sentence for example, voice recognition, handwritten character recognition, keyboard input, or the like can be used.
  • voice recognition the acquisition unit 101 generates a character string (text) by performing voice recognition on a voice uttered by a user, and uses the character string as an input sentence.
  • the acquisition unit 101 may include an input device such as a microphone, a touch panel, or a keyboard, and may receive an input sentence from an external device.
  • the morphological analysis unit 102 extracts one or more words by performing morphological analysis on the input sentence using the morphological analysis dictionary 107. Information such as part of speech, basic form, and reading may be given to each word.
  • the query word extraction unit 103 extracts a word used for the search as a query word from the words extracted by the morpheme analysis unit 102.
  • a method for extracting a query word may be, for example, a determination by a rule such as extracting a word whose part of speech is a noun as a query word. It is also possible to manually list words that are inappropriate for use in the search in the stop word list and not extract words in the stop word list. For example, when the document search apparatus 100 is applied to a recipe search, the stop word is a word that is not useful for specifying a recipe such as “cooking”, “recipe”, and “taste”.
  • the intention estimation unit 104 estimates (understands) the user's search intention based on the input sentence.
  • the user's search intention is a tag that indicates what kind of search the user wants to perform according to the input sentence. There are several ways to estimate the intention.
  • the intention estimation unit 104 holds a search intention list in which a plurality of search intentions are registered, and acquires a search intention corresponding to the input sentence from the search intention list.
  • FIG. 2 shows an example of the search intention list.
  • the search intention is registered in association with a keyword or key phrase.
  • the keyword “allergy” is associated with the search intention “allergy-with” in order to estimate the search intention for the input sentence “I'm allergic to eggs”.
  • the intention estimation unit 104 outputs the search intention “allergy-with” when the input sentence includes the word “allergy”.
  • the phrase “XX is not put” is associated with the search intention “without-ingredient”.
  • the intention estimation unit 104 outputs the search intention “without-ingredient” when the input sentence includes the phrase “XX cannot be entered”.
  • a method is used in which a large amount of input sentences corresponding to each search intention are collected, a machine learning model is constructed using morphological analysis results, and the model is used for estimation.
  • the intention estimation method is not limited to these examples, and any method may be used.
  • the query generation unit 105 uses a search expression list 108 in which a plurality of search expressions indicating search conditions are registered and an additional query word list 109 in which a plurality of additional query words to be additionally used for the search are registered.
  • a query is generated based on the search intention estimated by the intention estimation unit 104. A method for generating a query will be described later.
  • the search unit 106 searches the document DB 110 for a document that matches the query generated by the query generation unit 105.
  • the document DB 110 stores documents to be searched.
  • a document is associated with a plurality of attributes.
  • FIG. 3 shows an example of a document DB 110 that stores documents related to recipes.
  • the document is title (cooking name), infrared (ingredient), genre (genre), comment (comment), favorite (for people who like XX), notfavor (for people who hate XX), etc. Is associated with the attribute.
  • the attribute value is manually set by the creator when the document is created.
  • notfavor is an attribute for dishes that do not like specific ingredients, but the value of the attribute "notfavor” is not given only to dishes that do not contain the target ingredients, but the target ingredients It is also given to dishes that have been devised but are easy to eat.
  • FIG. 3 shows an example of the search expression list 108.
  • the search formula is associated with the search intention.
  • the search expression is described by a set of search target attributes and search methods for the attributes.
  • the search expression may be described by one set, or may be described by a plurality of sets connected by AND or OR.
  • the search intention “title” is an intention for searching by dish name.
  • the search expression corresponding to the search intention “title” is “title LIKE% QUERY-WORD%”, and searches for documents in which the attribute “title” includes the query word (query word extracted by the query word extraction unit 103). To do.
  • the search intention “with-ingredient” is an intention for searching by specifying a material.
  • the search expression corresponding to the search intention “with-ingredient” is “ingredient LIKE% QUERY-WORD%”, and a document in which the query word is included in the attribute “ingredient” is searched.
  • the search intention “without-ingredient” is an intention to search for a dish that does not contain disliked ingredients.
  • the search expression corresponding to the search intention “without-ingredient” is “ingredient NOT LIKE% QUERY-WORD%”, and a document in which the query word is not included in the attribute “ingredient” is searched.
  • the search intention “allergy-with” is an intention to search for food allergies.
  • the search expression corresponding to the search intention “allergy-with” is “ingredient NOT LIKE% QUERY-WORD% AND ingredient NOT LIKE% product (QUERY-WORD, AND)%”, and the query word and product are attributed to “ingredient”.
  • Search for documents that do not contain QUERY-WORD, AND).
  • product QUERY-WORD, AND
  • the format of the function is, for example, FUNCTION (arg, symbol). FUNCTION contains the function name, and arg contains the argument.
  • the query generation unit 105 makes an inquiry to the additional query word list 109 with a combination of FUNCTION and arg.
  • the query generation unit 105 makes an inquiry to the additional query word list 109 with the combination of the function name and the query word, acquires the additional query word, and rewrites product (QUERY-WORD, AND) with the acquired additional query word.
  • QUERY-WORD product
  • People who are allergic generally cannot eat not only dishes containing allergic ingredients themselves, but also dishes containing processed products of allergic ingredients. Therefore, when the search intention is estimated to be “allergy-with”, a document in which the attribute “ingredient” does not include the query word and the processed product of the query word is searched.
  • search intention is “without-ingredient”, documents that do not contain the target food in the attribute “ingredient” are searched, and if the search intention is “allergy-with”, the target food itself in the attribute “ingredient” And documents that do not contain the processed product. Even people who don't like certain ingredients may not like the processed product. For example, even people who don't like tomatoes can eat ketchup and tomato sauce. If the search intention is estimated to be “without-ingredient”, it is not necessary to exclude processed products. On the other hand, if you are allergic, you may not be able to eat everything that contains the target ingredients, so you should also exclude processed products.
  • the search intention “try” is an intention to search for a dish devised to eat disliked ingredients.
  • the search expression corresponding to the search intention “try” is “ingredient LIKE% QUERY-WORD% AND notfavor LIKE% QUERY-WORD%”, the attribute “ingredient” contains the query word, and the attribute “notfavor” Search for documents that contain the query term.
  • the search intention “genre” is an intention for searching by a genre of dishes such as Western food and Japanese food.
  • FIG. 5 shows an example of the additional query word list 109.
  • the additional query word is associated with the function and the query word.
  • the search expression corresponding to the search intention “allergy-with” includes the function product (QUERY-WORD, AND).
  • the function “product” is a function for designating a processed product of QUERY-WORD. For example, when the extracted query word is “egg”, the function “product” returns “mayonnaise”, “bacon”, “wiener”, “hanpen”.
  • the function “similar” is a function for designating food having a similar texture and taste. For example, when the extracted query word is “broccoli”, the function “similar” returns “asparagus” that looks and feels similar.
  • Query generation is performed as follows, for example. First, the query generation unit 105 acquires a search expression corresponding to the estimated search intention from the search expression list 108. Subsequently, the query generation unit 105 determines whether the search expression includes a function. When the search expression does not include a function, the query generation unit 105 generates a query by applying a query word to the search expression. When the search expression includes a function, the query generation unit 105 acquires an additional query word corresponding to the combination of the function and the query word from the additional query word list. Then, the query generation unit 105 generates a query by applying a set of query terms and additional query terms to the search expression.
  • FIG. 6 shows an example of a search process procedure of the document search apparatus 100.
  • search intention list document DB 110
  • search expression list 108 search expression list 108
  • additional query word list 109 are those shown in FIGS.
  • step S601 the acquisition unit 101 acquires an input sentence input by a user for search.
  • the user inputs the text “I'm allergic to eggs” using the keyboard.
  • the morpheme analyzer 102 performs morpheme analysis on the input sentence.
  • the input sentence is divided into words (morphemes), and part-of-speech information is given to each word.
  • the input sentence “I'm allergic to eggs” is divided into “egg”, “allergy”, “what”, “yo”, and “ne”.
  • step S603 the query word extraction unit 103 extracts a word used for the search as a query word from the words obtained in step S601. For example, extraction is performed according to the rule of extracting nouns, and “egg” is extracted as a query word. The word “allergy” is also a noun, but the word “allergy” is not extracted because it is a stop word.
  • the intention estimation unit 104 estimates the user's search intention based on the input sentence. Since the input sentence “I'm allergic to eggs” contains the word “allergy”, the search intention “allergy-with” is output. The process of step S604 may be executed in parallel with the process of step S603, and may be executed before or after the process of step S603.
  • step S605 the query generation unit 105 refers to the search expression list 108 with the search intention estimated in step S604, and acquires the search expression.
  • the search expression list 108 is referred to with the search intention “allergy-with”, the following search expression is obtained.
  • step S606 the QUERY-WORD in the search expression is replaced with the query word extracted in step S603.
  • step S603 “egg” is extracted as the query word, and the search expression is as follows. ingredient NOT LIKE% egg% AND ingredient NOT LIKE% product (egg, AND)%
  • step S607 it is determined whether or not a function is included in the search expression. If the search expression includes a function, the process proceeds to step S608; otherwise, the process proceeds to step S609.
  • the query generation unit 105 refers to the additional query word list 109 with the combination of the function and the query word, and acquires the additional query word.
  • the search formula in this example includes the function “product”.
  • the additional query word list 109 is referenced by a set of the function “product” and the query word “egg”, “mayonnaise”, “bacon”, “wiener”, and “hanpen” are acquired as additional query words.
  • the function part of the search expression is rewritten with the acquired additional query word.
  • the search formula is as follows. ingredient NOT LIKE% egg% AND ingredient NOT LIKE% Mayonnaise, Bacon, Wiener, Hanpen%
  • step S609 the search unit 106 searches the document DB 110 for a document that matches the query.
  • the search unit 106 acquires a search result including “low allergen croquette” and “pig ginger”.
  • ⁇ Omelette '' and ⁇ croquette '' that include ⁇ egg '' in the attribute ⁇ ingredient '', ⁇ pilaf '' that includes ⁇ bacon '' in the attribute ⁇ ingredient '', and ⁇ oden '' that includes ⁇ hanpen '' in the attribute ⁇ ingredient '' Excluded from search results.
  • the search result is presented to the user by screen display or reading.
  • the sentence “Don't enter because you hate eggs” is input.
  • the sentence input by the user “Do not enter because you hate eggs” is acquired by the acquisition unit 101.
  • the input sentence “Don't enter because you don't like eggs” is divided into words (morphemes) by the morphological analysis unit 102, and part-of-speech information and the like are given to each word.
  • the query word extraction unit 103 extracts the query word. Extraction is performed on a rule basis, and “egg” is extracted as a query word.
  • the search intention is estimated by the intention estimation unit 104 based on the input sentence. In this example, the search intention “without-ingredient” is output.
  • the query generation unit 105 refers to the search expression list 108 with the search intention “without-ingredient” and acquires the next search expression.
  • ingredient NOT LIKE% QUERY-WORD% QUERY-WORD is replaced with the acquired query word, and the search expression is as follows.
  • search expression includes a function.
  • this search expression is given to the search unit 106 as a query.
  • the search unit 106 makes an inquiry to the document DB 110 using the above search formula. “Omelettes” and “croquettes” that contain “eggs” in the attribute “ingredient” are excluded, and “low allergen croquettes”, “pig ginger”, “oden”, and “pilaf” are output as search results.
  • the document search apparatus 100 can regard the second input sentence as a refined search for the first search result.
  • the query generation unit 105 generates a query connecting the search expression based on the first input sentence and the search expression based on the second input sentence.
  • the document search apparatus estimates the user's search intention based on the input sentence, creates a query according to the search intention, and searches for documents that match the query. . Thereby, it is possible to search for a document suitable for the user's intention.
  • FIG. 7 schematically shows a document search apparatus 700 according to the second embodiment.
  • the document search apparatus 700 includes an acquisition unit 101, a morpheme analysis unit 102, a query word extraction unit 103, an intention estimation unit 104, a query generation unit 105, a search unit 106, a morpheme analysis dictionary 107, a search formula.
  • a list 708, an additional query word list 109, a document DB 110, and a response sentence generation unit 701 are provided.
  • descriptions of the same parts and operations as in the first embodiment will be omitted as appropriate.
  • FIG. 8 shows an example of the search expression list 708.
  • the search expression list 708 shown in FIG. 8 includes items of search intention candidates and response sentence data in addition to the items of the search expression list 108 shown in FIG.
  • the search intention candidate is a search intention candidate that can be estimated from the search intention estimated from the input sentence.
  • search intention corresponding to each search expression is registered as a search intention candidate.
  • search intention based on the input sentence “dish using potatoes” is “with-ingredient”, and the search expression “ingredient LIKE% potato%” is uniquely determined.
  • search intention based on the input sentence “Cooking without eggs” is “without-ingredient”, but from this input sentence, like the input sentence "Do not enter because you hate eggs” Whether the user wants to search for “a dish that does not include only the eggs” or an input sentence such as “I am allergic to eggs” cannot determine whether to search for “a dish that does not contain eggs and processed eggs”.
  • search intention “without-ingredient” is associated with not only these two search expressions but also the search intentions “dont-eat” and “allergy-with” that uniquely correspond to the two search expressions.
  • search intention “dont-eat” and “try” are associated with search intention “dont-like” based on the input sentence “I hate bell peppers”.
  • the item “response text data” stores data used when generating a response text. It is not necessary to describe response sentence data for a search intention in which a value is set for the search intention candidate.
  • the part “QUERY-WORD” in the response sentence data is used in place of the actual query word acquired from the input sentence.
  • the response sentence generation unit 701 generates a response sentence to be output to the user in order to narrow down candidates when there are a plurality of search expression candidates corresponding to the search intention estimated by the intention estimation unit 104.
  • the response sentence generation unit 701 uses the search expression list 108 and the query word extracted by the query word extraction part 103 to generate a response sentence that queries the user.
  • the response sentence may be guided by voice using voice synthesis, or may be displayed on the screen.
  • FIG. 9 shows an example of the search processing procedure of the document search apparatus 700.
  • the search intention list, the document DB 110, the search expression list 108, and the additional query word list 109 are those shown in FIGS.
  • step S904 the intention estimation unit 104 estimates the user's search intention based on the input sentence.
  • the search intention “without-ingredient” is output.
  • step S905 it is determined whether or not one search expression is determined. When a plurality of search intention candidates are associated with the search intention estimated by the intention estimation unit 104, one search expression is not determined. In this case, the process proceeds to step S906. Referring to the search expression list 108, search intention “without-ingredient” is associated with search intention candidates “dont-eat” and “allergy-with”. This indicates that there are two search expression candidates.
  • step S906 the response sentence generation unit 701 generates a response sentence using response sentence data corresponding to each of the plurality of search intention candidates.
  • the response sentence generation unit 701 first acquires response sentence data of search intention candidates shown below. [Search for unused dishes because I hate QUERY-WORD] [Search for dishes that do not use the QUERY-WORD allergen]
  • QUERY-WORD in the above sentence is replaced with the query word acquired in step S903.
  • [Search for unused dishes because I hate eggs] [Search for dishes that do not use egg allergens]
  • these sentences are connected to generate a response sentence. “Would you like to search for dishes that you do n’t use because you do n’t like eggs, or do you search for dishes that do n’t use egg allergens?”
  • This response sentence is notified to the user by voice or screen display.
  • the user inputs a sentence indicating either of the candidates. For example, a sentence such as “Those not used because they dislike eggs” or “Because they are allergic to eggs” is input.
  • the user's search intention can be determined as either the search intention “dont-eat” or the search intention “allergy-with”.
  • the search expression can be uniquely determined by prompting the user to input a clear sentence again.
  • the search intention is estimated as “dont-like”, the search intention candidates “dont-eat” and “try” are output, and the search expression is again It becomes impossible to narrow down to one. Since the search intention candidates output from the first input sentence were “dont-eat” and “allergy-with”, the search intention included in both is narrowed down and “dont-eat” is output. In this way, the search expression can be uniquely dropped even when the input sentence is ambiguous.
  • step S905 When the search formula is determined in step S905, the process proceeds to step S907.
  • the processing from step S907 to S912 is the same as the processing from step S605 to S610 in FIG.
  • the search intention “dont-like” is output in step S904.
  • the search intention “dont-like” is associated with the search intention candidates “dont-eat” and “try”. Since there are a plurality of search intention candidates, the response sentence generation unit 701 generates a response sentence.
  • the response sentence generation unit 701 first acquires response sentence data of search intention candidates. [Search for unused dishes because I hate QUERY-WORD] [Search for dishes that make QUERY-WORD easy to eat]
  • the response sentence generation unit 701 replaces the QUERY-WORD in the sentence with the query word acquired in step S903. [Search for unused dishes because I hate peppers] [Search for foods that make peppers easy to eat]
  • the response sentence generation unit 701 generates a response sentence by connecting the obtained sentences. “Would you like to find a dish that you do n’t use because you do n’t like peppers, or a dish that makes it easier to eat peppers?” This response sentence is notified to the user by reading it out or displaying it on the screen.
  • the user inputs a sentence indicating either of the candidates. For example, a sentence such as “what I don't use because I don't like peppers” or “what makes peppers easy to eat” is input.
  • the document search apparatus 700 can determine whether the search intention is “dont-eat” or “try” by analyzing the input sentence in the same manner. In this way, the ambiguous text is re-entered into a clear text, so that it can be uniquely put into the search formula.
  • the document search apparatus makes an inquiry to the user to narrow down the search formula when the search formula is not determined from the user's input sentence.
  • the search expression can be narrowed down to one.
  • a document that matches the user's intention can be searched.
  • the last input sentence does not contain the word “egg” that was included in the first input sentence.
  • the document search apparatus cannot perform a correct search even if only the last input sentence is processed.
  • the query word is stored in the memory until it is used in the search expression, and when “QUERY-WORD” in the search expression is replaced with the query word, not only the query word extracted from the immediately preceding input sentence but also the query word is used. Also use query terms stored in memory.
  • FIG. 9 shows an example of the procedure of search processing according to the third embodiment.
  • the processes in steps S1001 to S1003, S1005 to S1011, S1013, and S1014 in FIG. 10 are the same as the processes in steps S901 to S912 in FIG. 9, respectively, and thus description of these processes will be omitted as appropriate.
  • step S1004 When the input sentence is acquired (step S1001) and the query word is extracted (step S1003), the query word is stored in the memory (step S1004).
  • the search is not executed with the first input sentence, and a response sentence for selecting a search intention candidate is presented to the user (step S1007). Thereafter, when the user performs the second input, the search intention is determined as “dont-eat” (step S1005).
  • step S1005 When a query word is extracted from the second input sentence, this query word is also stored in the memory. Thereafter, the query word stored in the memory is embedded in the search expression (step S1009).
  • the query is generated, all query words are deleted from the memory (step S1012). By doing so, it is not necessary to input the same query word many times.
  • the query word is stored in the memory until it is used in the search expression.
  • the search can be appropriately executed.
  • the response sentence generation unit 701 shown in FIG. 7 can inform the user not only of the search intention candidate but also what kind of search the system performs. For example, the following exchange is performed.
  • the user may input again to narrow down the result.
  • the document search apparatus 700 regards the second input sentence as a refined search for the first search result, and the response sentence generation unit 701 sets the 1
  • the user is notified that the search is performed by connecting the search expression based on the second input sentence and the search expression based on the second input sentence. In this case, for example, the following exchange is performed.
  • the document DB is provided in the document search apparatus.
  • the document DB may be provided in an external device connected to the document search device via a network such as the Internet.
  • the instructions shown in the processing procedure shown in the above embodiment can be executed based on a program that is software.
  • the general-purpose computer system stores this program in advance and reads this program, so that it is possible to obtain the same effect as that obtained by the document search apparatus of the above-described embodiment.
  • the instructions described in the above-described embodiments are, as programs that can be executed by a computer, magnetic disks (flexible disks, hard disks, etc.), optical disks (CD-ROM, CD-R, CD-RW, DVD-ROM, DVD). ⁇ R, DVD ⁇ RW, etc.), semiconductor memory, or a similar recording medium. As long as the recording medium is readable by the computer or the embedded system, the storage format may be any form.
  • the computer reads the program from the recording medium and causes the CPU to execute instructions described in the program based on the program, the same operation as that of the document search apparatus of the above-described embodiment can be realized.
  • the computer acquires or reads the program, it may be acquired or read through a network.
  • the OS operating system
  • database management software database management software
  • MW middleware
  • a part of each process for performing may be executed.
  • the recording medium in the present embodiment is not limited to a medium independent of a computer or an embedded system, but also includes a recording medium in which a program transmitted via a LAN or the Internet is downloaded and stored or temporarily stored.
  • the number of recording media is not limited to one, and when the processing in this embodiment is executed from a plurality of media, it is included in the recording medium in this embodiment, and the configuration of the media may be any configuration.
  • the computer or the embedded system in the present embodiment is for executing each process in the present embodiment based on a program stored in a recording medium.
  • the computer or the embedded system includes a single device such as a personal computer or a microcomputer.
  • the system may be any configuration such as a system connected to the network.
  • the computer in this embodiment is not limited to a personal computer, but includes an arithmetic processing device, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions in this embodiment by a program. ing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 一実施形態に係る文書検索装置は、取得部、形態素解析部、クエリー語抽出部、意図推定部、検索式リスト、追加クエリー語リスト、クエリー生成部、及び検索部を備える。取得部は、ユーザから入力文を取得する。形態素解析部は、入力文に対して形態素解析を行うことにより単語を抽出する。クエリー語抽出部は、単語の中から、検索に使用する単語をクエリー語として抽出する。意図推定部は、入力文に基づいてユーザの検索意図を推定する。クエリー生成部は、複数の検索式が登録された検索式リストから、検索意図に対応する検索式を取得し、複数の追加クエリー語が登録された追加クエリー語リストから、検索式とクエリー語との組に対応する追加クエリー語を取得し、検索式にクエリー語及び追加クエリー語を適用することによりクエリーを生成する。検索部は、クエリーに適合する文書を検索する。

Description

文書検索装置、方法及びプログラム
 本発明の実施形態は、文書検索装置、方法及びプログラムに関する。
 自然言語文を入力して行う文書検索では、入力文中の単語をクエリー語として取得し、そのクエリー語を含む文書を出力する手法が用いられている。しかしながら、この手法では、クエリー語で文書全体を検索するので、クエリー語に対応する単語がユーザの意図と異なる用い方で使用されている文書などの意図しない文書が検索結果に含まれることがある。文書検索技術においては、ユーザの意図に合った文書を検索できることが求められている。
特開2002-342361号公報 特開2014-132464号公報
 本発明が解決しようとする課題は、ユーザの意図に合った文書を検索することができる文書検索装置、方法及びプログラムを提供することである。
 一実施形態に係る文書検索装置は、取得部、形態素解析部、クエリー語抽出部、意図推定部、検索式リスト、追加クエリー語リスト、クエリー生成部、及び検索部を備える。取得部は、ユーザから入力文を取得する。形態素解析部は、前記入力文に対して形態素解析を行うことにより単語を抽出する。クエリー語抽出部は、前記抽出された単語の中から、検索に使用する単語をクエリー語として抽出する。意図推定部は、前記入力文に基づいて前記ユーザの検索意図を推定する。検索式リストには、複数の検索式が登録されている。追加クエリー語リストには、複数の追加クエリー語が登録されている。クエリー生成部は、前記検索式リストから、前記推定された検索意図に対応する検索式を取得し、前記追加クエリー語リストから、前記取得された検索式と前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式に前記抽出されたクエリー語及び前記取得された追加クエリー語を適用することによりクエリーを生成する。検索部は、前記クエリーに適合する文書を検索する。
第1の実施形態に係る文書検索装置を示すブロック図。 図1に示した意図推定部が保持する検索意図リストの例を示す図。 図1に示した文書DBの例を示す図。 図1に示した検索式リストの例を示す図。 図1に示した追加クエリー語リストの例を示す図。 第1の実施形態に係る文書検索処理の手順例を示す図。 第2の実施形態に係る文書検索装置を示すブロック図。 図7に示した検索式リストの例を示す図。 第2の実施形態に係る文書検索処理の手順例を示す図。 第3の実施形態に係る文書検索処理の手順例を示す図。
 以下、図面を参照しながら実施形態を説明する。実施形態は、レシピに関する文書を検索する文書検索装置に関する。検索対象は、レシピに関する文書に限定されない。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
 (第1の実施形態)
 図1は、第1の実施形態に係る文書検索装置100を概略的に示している。文書検索装置100は、図1に示されるように、取得部101、形態素解析部102、クエリー語抽出部103、意図推定部104、クエリー生成部105、検索部106、形態素解析辞書107、検索式リスト108、追加クエリー語リスト109、及び文書データベース(DB)110を備える。
 取得部101は、ユーザから入力文を取得する。入力文を取得する方法としては、例えば、音声認識、手書き文字認識、キーボード入力などを利用することができる。例えば、音声認識を用いる場合、取得部101は、ユーザが発した音声に対して音声認識を行うことにより文字列(テキスト)を生成し、この文字列を入力文とする。取得部101は、マイクロホン、タッチパネル、キーボードなどの入力装置を備えてもよく、外部装置から入力文を受け取ってもよい。
 形態素解析部102は、形態素解析辞書107を使用して入力文に対して形態素解析を行うことにより、1又は複数の単語を抽出する。各単語には、品詞、基本形、読みなどの情報が付与されてもよい。
 クエリー語抽出部103は、形態素解析部102により抽出された単語の中から、検索に使用する単語をクエリー語として抽出する。クエリー語を抽出する方法は、例えば、品詞が名詞である単語をクエリー語として抽出するなどのルールによる判断であり得る。検索に使用するのに不適切な単語を人手でストップワードリストにリストアップしておき、ストップワードリストに入っている単語を抽出しないようにしてもよい。例えば文書検索装置100をレシピ検索に適用する場合、ストップワードは、「料理」、「レシピ」、「味」などのレシピを特定するのに役立たない単語である。
 意図推定部104は、入力文に基づいてユーザの検索意図を推定(理解)する。ユーザの検索意図とは、入力文によってユーザがどのような検索をしたいかを表すタグである。意図を推定する方法はいくつか考えられる。
 一例では、意図推定部104は、複数の検索意図が登録されている検索意図リストを保持し、検索意図リストから、入力文に対応する検索意図を取得する。図2は、検索意図リストの一例を示す。図2に示される検索意図リストでは、検索意図はキーワード又はキーフレーズに対応付けて登録されている。「卵アレルギーなんだよね」という入力文に対して検索意図を推定するために、キーワード「アレルギー」が検索意図「allergy-with」に対応付けられている。意図推定部104は、入力文が「アレルギー」という単語を含む場合に、検索意図「allergy-with」を出力する。さらに、「卵は入れないで」という入力文に対して検索意図を推定するために、「○○は入れない」というフレーズが検索意図「without-ingredient」に対応付けられている。意図推定部104は、入力文が「○○は入れない」というフレーズを含む場合に、検索意図「without-ingredient」を出力する。
 他の例では、検索意図それぞれに対応する入力文を大量に集めておき、形態素解析結果などを使用して機械学習モデルを構築してモデルによって推定を行う方法が用いられる。意図推定方法は、これらの例に限らず、いかなる方法であってもよい。
 クエリー生成部105は、検索条件を示す複数の検索式が登録された検索式リスト108と検索に追加的に使用する複数の追加クエリー語が登録された追加クエリー語リスト109とを使用して、意図推定部104により推定された検索意図に基づいてクエリーを生成する。クエリーを生成する方法については後述する。
 検索部106は、文書DB110から、クエリー生成部105により生成されたクエリーに適合する文書を検索する。文書DB110は、検索対象の文書を格納している。文書は、複数の属性に対応付けられている。図3は、レシピに関する文書を格納する文書DB110の一例を示す。文書DB110では、文書は、title(料理名)、ingredient(材料)、genre(ジャンル)、comment(コメント)、favor(○○が好きな人向け)、notfavor(○○が嫌いな人向け)などの属性に対応付けられている。属性の値は、文書作成時に作成者が手動で設定する。例えば、「ピラフ」は野菜をみじん切りにするためピーマンが嫌いな人でも食べられると考えられるので、属性「notfavor」にピーマンが格納される。属性「notfavor」は、特定の食材が嫌いな人向けの料理という属性であるが、属性「notfavor」の値は、対象の食材が入っていない料理だけに付与されるわけではなく、対象の食材が入っているが食べやすく工夫されている料理にも付与される。
 クエリー生成方法について詳細に説明する。 
 図3は、検索式リスト108の一例を示している。図3に示される検索式リスト108では、検索式が検索意図に対応付けられている。検索式は、検索対象の属性と属性に対する検索方法のセットで記述されている。検索式は、1つのセットで記述される場合もあれば、AND又はORでつながった複数のセットで記述される場合もある。
 検索意図「title」は、料理名で検索するための意図である。検索意図「title」に対応する検索式は、「title LIKE %QUERY-WORD%」であり、属性「title」にクエリー語(クエリー語抽出部103により抽出されたクエリー語)が含まれる文書を検索する。検索意図「with-ingredient」は、材料を指定して検索するための意図である。検索意図「with-ingredient」に対応する検索式は、「ingredient LIKE %QUERY-WORD%」であり、属性「ingredient」にクエリー語が含まれる文書を検索する。検索意図「without-ingredient」は、嫌いな食材を含まない料理を検索するための意図である。検索意図「without-ingredient」に対応する検索式は、「ingredient NOT LIKE %QUERY-WORD%」であり、属性「ingredient」にクエリー語が含まれない文書を検索する。
 検索意図「allergy-with」は、食物アレルギー対応の料理を検索するための意図である。検索意図「allergy-with」に対応する検索式は、「ingredient NOT LIKE %QUERY-WORD% AND ingredient NOT LIKE %product(QUERY-WORD, AND)%」であり、属性「ingredient」にクエリー語とproduct(QUERY-WORD, AND)が含まれない文書を検索する。product(QUERY-WORD, AND)は、追加クエリー語リスト109から追加クエリー語を取得するためのファンクションである。ファンクションの書式は、例えば、FUNCTION(arg, symbol)である。FUNCTIONにはファンクション名が入り、argには引数が入る。クエリー生成部105は、FUNCTIONとargの組で追加クエリー語リスト109に問い合わせを行う。symbolは、追加クエリー語リスト109が複数の追加クエリー語を返した場合に、それらの追加クエリー語をつなぐ演算子を指定する。クエリー生成部105は、ファンクション名とクエリー語の組で追加クエリー語リスト109に問い合わせを行って追加クエリー語を取得し、取得した追加クエリー語でproduct(QUERY-WORD, AND)を書き換える。アレルギーを持つ人は、一般に、アレルギー食材そのものが材料に含まれている料理だけでなく、アレルギー食材の加工品が含まれている料理も食べることができない。そこで、検索意図が「allergy-with」と推定された場合、属性「ingredient」にクエリー語とクエリー語の加工品が含まれない文書が検索される。
 検索意図が「without-ingredient」である場合、属性「ingredient」に対象の食材が含まれない文書が検索され、検索意図が「allergy-with」である場合、属性「ingredient」に対象の食材そのものとその加工品が含まれない文書が検索される。特定の食材が嫌いな人でも、その加工品は嫌いではない場合がある。例えば、トマトが嫌いな人でもケチャップやトマトソースは食べられる場合があり、検索意図が「without-ingredient」と推定された場合、加工品まで除外する必要はないと考えられる。それに対してアレルギーの場合は対象の食材を原材料に含んだものはすべて食べられない場合が多いので、加工品も合わせて除外すべきである。
 検索意図「try」は、嫌いな食材を食べるために工夫された料理を検索するための意図である。検索意図「try」に対応する検索式は、「ingredient LIKE %QUERY-WORD% AND notfavor LIKE %QUERY-WORD%」であり、属性「ingredient」にクエリー語が含まれ、かつ、属性「notfavor」にクエリー語が含まれる文書を検索する。検索意図「genre」は、洋食、和食などの料理のジャンルで検索するための意図である。検索意図「genre」に対応する検索式は、「genre=%QUERY-WORD%」であり、属性「genre」の値がクエリー語と等しい文書を検索する。
 図5は、追加クエリー語リスト109の一例を示している。図5に示される追加クエリー語リスト109では、追加クエリー語がファンクション及びクエリー語に対応付けられている。上述したように、検索意図「allergy-with」に対応する検索式は、product(QUERY-WORD, AND)というファンクションを含む。ファンクション「product」は、QUERY-WORDの加工品を指定するファンクションである。例えば、抽出されたクエリー語が「卵」である場合、ファンクション「product」は、「マヨネーズ」、「ベーコン」、「ウインナー」、「はんぺん」を返す。ファンクション「similar」は、食感や味が似ている食べ物を指定するファンクションである。例えば、抽出されたクエリー語が「ブロッコリー」である場合、ファンクション「similar」は、見た目や食感が似ている「アスパラガス」を返す。
 クエリー生成は、例えば、次のように行われる。まず、クエリー生成部105は、検索式リスト108から、推定された検索意図に対応する検索式を取得する。続いて、クエリー生成部105は、検索式がファンクションを含むか否かを判断する。検索式がファンクションを含まない場合、クエリー生成部105は、検索式にクエリー語を適用してクエリーを生成する。検索式がファンクションを含む場合、クエリー生成部105は、追加クエリー語リストから、ファンクションとクエリー語の組に対応する追加クエリー語を取得する。そして、クエリー生成部105は、検索式にクエリー語と追加クエリー語の組を適用してクエリーを生成する。
 次に、文書検索装置100の動作について説明する。 
 図6は、文書検索装置100の検索処理の手順例を示している。ここでは、「卵アレルギーなんだよね」という文が入力された場合を例に挙げて説明する。検索意図リスト、文書DB110、検索式リスト108、追加クエリー語リスト109はそれぞれ、図2、3、4、5に示されるものを用いるとする。
 ステップS601では、取得部101は、ユーザが検索のために入力した入力文を取得する。例えば、ユーザがキーボードを用いてテキスト「卵アレルギーなんだよね」を入力する。ステップS602では、形態素解析部102は入力文に対して形態素解析を行う。入力文は単語(形態素)に分割され、単語それぞれに品詞情報などが付与される。入力文「卵アレルギーなんだよね」は、「卵」、「アレルギー」、「なんだ」、「よ」、「ね」に分割される。
 ステップS603では、クエリー語抽出部103は、ステップS601で得られた単語の中から、検索に使用する単語をクエリー語として抽出する。例えば、名詞を抽出するというルールに従って抽出が行われ、「卵」がクエリー語として抽出される。単語「アレルギー」も名詞であるが、単語「アレルギー」はストップワードであるので抽出されない。ステップS604では、意図推定部104は、入力文に基づいてユーザの検索意図を推定する。入力文「卵アレルギーなんだよね」には「アレルギー」という単語が含まれているので、検索意図「allergy-with」が出力される。ステップS604の処理は、ステップS603の処理と並列に実行されてもよく、ステップS603の処理の前に又は後に実行されてもよい。
 ステップS605では、クエリー生成部105は、ステップS604で推定された検索意図で検索式リスト108を参照し、検索式を取得する。検索意図「allergy-with」で検索式リスト108を参照すると、次の検索式が得られる。 
 ingredient NOT LIKE %QUERY-WORD%
 AND
 ingredient NOT LIKE %product(QUERY-WORD, AND)%
 ステップS606では、上記検索式中のQUERY-WORDがステップS603で抽出されたクエリー語で置換される。ステップS603では、クエリー語として「卵」が抽出されており、検索式は下記になる。
 ingredient NOT LIKE %卵%
 AND
 ingredient NOT LIKE %product(卵, AND)%
 ステップS607では、検索式にファンクションが含まれるか否かが判断される。検索式にファンクションが含まれる場合、ステップS608に進み、そうでなければ、ステップS609に進む。
 ステップS608では、クエリー生成部105は、ファンクションとクエリー語の組で追加クエリー語リスト109を参照し、追加クエリー語を取得する。本例の検索式はファンクション「product」を含む。ファンクション「product」とクエリー語「卵」の組で追加クエリー語リスト109を参照すると、「マヨネーズ」、「ベーコン」、「ウインナー」、「はんぺん」が追加クエリー語として取得される。検索式のファンクション部分は、取得された追加クエリー語で書き換えられる。検索式は下記になる。 
 ingredient NOT LIKE %卵%
 AND
 ingredient NOT LIKE %マヨネーズ,ベーコン,ウインナー,はんぺん%
 この検索式をSQL構文として正しく書き換えると下記になる。 
 ingredient NOT LIKE %卵%
 AND
 ingredient NOT LIKE %マヨネーズ%
 AND
 ingredient NOT LIKE %ベーコン%
 AND
 ingredient NOT LIKE %ウインナー%
 AND
 ingredient NOT LIKE %はんぺん%
 複数の追加クエリー語が取得された場合は上記のように式が展開される。式同士を結合する演算子は、ファンクション内で指定されていた「AND」を使用する。上記の検索式がクエリーとして検索部106に与えられる。
 ステップS609では、検索部106は、文書DB110からクエリーに適合する文書を検索する。本例では、検索部106は、「低アレルゲンコロッケ」、「豚のしょうが焼き」を含む検索結果を取得する。属性「ingredient」に「卵」が含まれる「オムレツ」及び「コロッケ」、属性「ingredient」に「ベーコン」が含まれる「ピラフ」、属性「ingredient」に「はんぺん」が含まれる「おでん」は、検索結果から除外される。ステップS610では、検索結果が画面表示や読み上げなどでユーザに提示される。
 次に、「卵嫌いだから入れないで」という文が入力される場合について説明する。まず、ユーザが入力した文「卵嫌いだから入れないで」が取得部101によって取得される。次に、入力文「卵嫌いだから入れないで」が形態素解析部102によって単語(形態素)に分割され、単語それぞれに品詞情報などが付与される。次に、クエリー語抽出部103によってクエリー語が抽出される。ルールベースで抽出が行われ、「卵」がクエリー語として抽出される。次に、検索意図が意図推定部104によって入力文に基づいて推定される。この例では、検索意図「without-ingredient」が出力される。クエリー生成部105は、検索意図「without-ingredient」で検索式リスト108を参照し、次の検索式を取得する。 
 ingredient NOT LIKE %QUERY-WORD%
 QUERY-WORDは取得したクエリー語で置換され、検索式は下記になる。 
 ingredient NOT LIKE %卵%
 次に、検索式がファンクションを含むか否かが判断される。この例では、ファンクションが含まれていないので、この検索式がクエリーとして検索部106に与えられる。
 検索部106は、上記の検索式を使用して文書DB110に問い合わせる。属性「ingredient」に「卵」が含まれる「オムレツ」及び「コロッケ」は除外され、「低アレルゲンコロッケ」、「豚のしょうが焼き」、「おでん」、「ピラフ」が検索結果として出力される。
 このようにして、同じ単語「卵」を使用している「卵アレルギーなんだよね」と「卵嫌いだから入れないで」という2つの文に対し、ユーザの意図に合った検索結果を提示することができる。
 ユーザは、1回目の検索で得られた結果に多数の文書が含まれる場合、結果を絞り込むためにもう一度入力することがある。文が入力され検索が実施された後で、もう一度文が入力された場合、文書検索装置100は2回目の入力文は1回目の検索結果に対する絞り込み検索とみなすことができる。この場合、クエリー生成部105は、1回目の入力文に基づく検索式と2回目の入力文に基づく検索式をつなげたクエリーを生成する。
 以上のように、第1の実施形態に係る文書検索装置は、入力文に基づいてユーザの検索意図を推定し、その検索意図に応じたクエリーを作成し、そのクエリーに適合する文書を検索する。それにより、ユーザに意図に合った文書を検索することができる。
 (第2の実施形態)
 図7は、第2の実施形態に係る文書検索装置700を概略的に示している。文書検索装置700は、図7に示されるように、取得部101、形態素解析部102、クエリー語抽出部103、意図推定部104、クエリー生成部105、検索部106、形態素解析辞書107、検索式リスト708、追加クエリー語リスト109、文書DB110、及び応答文生成部701を備える。第2の実施形態では、第1の実施形態と同じ部分、動作についての説明を適宜省略する。
 検索式リスト708では、検索条件を示す複数の検索式が登録されている。図8は、検索式リスト708の一例を示す。図8に示される検索式リスト708は、図4に示される検索式リスト108の項目に加えて、検索意図候補及び応答文データという項目を含む。検索意図候補は、入力文から推定される検索意図から推定され得る検索意図の候補である。本実施形態では、検索式が一意に決定される検索意図と、検索式が複数考えられる検索意図がある。
 検索式が複数考えられる検索意図については、検索式それぞれに対応する検索意図が検索意図候補として登録される。例えば、入力文「じゃがいもを使った料理」に基づく検索意図は「with-ingredient」であり、「ingredient LIKE %じゃがいも%」という検索式が一意に決定される。これに対し、入力文「卵を使っていない料理」に基づく検索意図は「without-ingredient」であるが、この入力文からは、「卵嫌いだから入れないで」という入力文のように、「卵そのものだけを含まない料理」を検索したいのか、「卵アレルギーなんだよね」という入力文のように、「卵と卵加工品を含まない料理」を検索したいのかを判断することができない。すなわち、検索意図が「without-ingredient」と推定された場合、2つの検索式が考えられる。検索意図「without-ingredient」には、これら2つの検索式だけでなく、2つの検索式に一意に対応する検索意図「dont-eat」と「allergy-with」が対応付けられる。同様に、入力文「ピーマンが嫌い」に基づく検索意図「dont-like」には、検索意図「dont-eat」と「try」が対応付けられる。「応答文データ」の項目は応答文を生成する際に使用するデータを格納する。検索意図候補に値が設定されている検索意図に対しては応答文データを記述する必要はない。応答文データの中の「QUERY-WORD」という部分は、入力文から取得した実際のクエリー語に置き換えて使用される。
 応答文生成部701は、意図推定部104により推定された検索意図に対応する検索式の候補が複数ある場合に、候補を絞り込むためにユーザに出力する応答文を生成する。応答文生成部701は、検索式リスト108とクエリー語抽出部103により抽出されたクエリー語とを使用して、ユーザに問い返す応答文を生成する。応答文は、音声合成を使用して音声で案内してもよいし、画面に表示してもよい。
 図9は、文書検索装置700の検索処理の手順例を示している。ここでは、ユーザが「卵を使っていない料理」という文を入力した場合を例に挙げて説明する。検索意図リスト、文書DB110、検索式リスト108、追加クエリー語リスト109はそれぞれ、図2、3、8、5に示されるものを用いるとする。
 図9のステップS901~S903の処理は、図6のステップS601~603の処理と同じであるので、説明を省略する。入力文「卵を使っていない料理」は、単語「卵」、「を」、「使っ」、「て」、「い」、「ない」、「料理」に分割される。これらの単語の中から単語「卵」がクエリー語として抽出される。「料理」はストップワードリストに登録されているので選択されない。
 ステップS904では、意図推定部104は、入力文に基づいてユーザの検索意図を推定する。本例では、検索意図「without-ingredient」が出力される。ステップS905では、検索式が1つに決まるか否かが判断される。意図推定部104により推定された検索意図に複数の検索意図候補が対応付けられている場合は、検索式が1つに決まらない。この場合、ステップS906に進む。検索式リスト108を参照すると、検索意図「without-ingredient」には検索意図候補「dont-eat」と「allergy-with」が対応付けられている。これは、検索式の候補が2つあることを示す。
 ステップS906では、応答文生成部701は、複数の検索意図候補それぞれに対応する応答文データを使用して応答文を生成する。本例では、応答文生成部701は、まず、下記に示す検索意図候補の応答文データを取得する。 
 [QUERY-WORDが嫌いだから使っていない料理を検索]
 [QUERY-WORDのアレルゲンを使っていない料理を検索]
 次に、上記文中のQUERY-WORDをステップS903で取得されたクエリー語で置き換える。 
 [卵が嫌いだから使っていない料理を検索]
 [卵のアレルゲンを使っていない料理を検索]
 最後に、これらの文章をつなげて応答文を生成する。 
 「卵が嫌いだから使っていない料理を検索しますか。それとも、卵のアレルゲンを使っていない料理を検索しますか。」
 この応答文は、音声又は画面表示でユーザに通知される。ユーザは、候補のどちらかを指す文を入力する。例えば、「卵が嫌いだから使っていないもの」又は「卵アレルギーだから」といった文が入力される。この入力文を同様にして解析することで、ユーザの検索意図が検索意図「dont-eat」と検索意図「allergy-with」のいずれかに決定することができる。このようにして、最初に入力された文があいまいである場合に、ユーザに明確な文を入力し直すように促すことで、検索式を一意に決定することができる。
 ユーザが応答文を受けて文「卵が嫌い」と入力した場合、検索意図が「dont-like」と推定され、検索意図候補「dont-eat」と「try」が出力され、再び検索式が1つに絞り込めなくなる。最初の入力文から出力された検索意図候補が「dont-eat」と「allergy-with」だったので、どちらにも含まれる検索意図に絞り込み、「dont-eat」が出力される。このように、あいまいな入力文の繰り返しでも検索式を一意に落とし込むことができる。
 ステップS905において検索式が決定されると、ステップS907に進む。ステップS907からS912の処理は、図6のステップS605からS610の処理と同じであるので、説明を省略する。
 次に、「ピーマン嫌いなんだよね」という文が入力された場合について説明する。この場合、ステップS904において検索意図「dont-like」が出力される。検索式リスト108を参照すると、検索意図「dont-like」は、検索意図候補「dont-eat」と「try」に対応付けられている。検索意図候補が複数あるので、応答文生成部701が応答文を生成する。応答文生成部701は、まず、検索意図候補の応答文データを取得する。 
 [QUERY-WORDが嫌いだから使っていない料理を検索]
 [QUERY-WORDを食べやすくする料理を検索]
 次に、応答文生成部701は、上記文中のQUERY-WORDをステップS903で取得されたクエリー語で置き換える。 
 [ピーマンが嫌いだから使っていない料理を検索]
 [ピーマンを食べやすくする料理を検索]
 最後に、応答文生成部701は、得られた文章をつなげて応答文を生成する。 
  「ピーマンが嫌いだから使っていない料理を検索しますか。それとも、ピーマンを食べやすくする料理を検索しますか。」
 この応答文は、読み上げたり、画面に表示したりしてユーザに通知される。ユーザは、候補のどちらかを指す文を入力する。例えば、「ピーマンが嫌いだから使っていないもの」又は「ピーマンを食べやすくしたもの」といった文が入力される。文書検索装置700は、この入力文を同様にして解析することで、検索意図「dont-eat」と「try」のどちらなのかを決定することができる。このようにして、あいまいだった文章が明確な文章に入力しなおされるので、検索式に一意に落とし込むことができる。
 以上のように、第2の実施形態に係る文書検索装置は、ユーザの入力文から検索式が1つに決まらない場合に、検索式を絞り込むためにユーザに問い合わせを行う。これにより、検索式を1つに絞り込むことができるようになる。その結果、ユーザの意図に合った文書を検索することができる。
 (第3の実施形態)
 第2の実施形態に係る文書検索装置700において、下記のようなやりとりが行われたとする。
 ユーザ:「卵を使ってない料理」(クエリー語:卵)
 システム:「卵が嫌いだから使っていない料理を検索しますか。それとも、卵のアレルゲンを使っていない料理を検索しますか。」
 ユーザ:「嫌いなんだ」
 最後の入力文には、最初の入力文に含まれていた単語「卵」が入っていない。この場合、文書検索装置は最後の入力文だけを処理しても正しい検索を行うことはできない。本実施形態では、クエリー語は検索式に使われるまではメモリーに格納し、検索式中の「QUERY-WORD」をクエリー語で置き換える際は、直前の入力文から抽出されたクエリー語だけでなく、メモリーに格納されているクエリー語も使用する。
 図9は、第3の実施形態に係る検索処理の手順例を示している。図10のステップS1001~S1003、S1005~S1011、S1013、S1014の処理はそれぞれ図9のステップS901~S912の処理と同じであるので、これらの処理についての説明を適宜省略する。
 入力文が取得され(ステップS1001)、クエリー語が抽出されると(ステップS1003)、そのクエリー語がメモリーに格納される(ステップS1004)。上記の例では、1回目の入力文では検索は実行されず、検索意図候補を選択するための応答文がユーザに提示される(ステップS1007)。その後、ユーザが2回目の入力を行った際に検索意図が「dont-eat」と決定される(ステップS1005)。2回目の入力文からクエリー語が抽出された場合、このクエリー語もメモリーに格納される。その後、検索式に、メモリーに格納されているクエリー語を埋め込む(ステップS1009)。クエリーが生成されると、クエリー語がメモリーから全て削除される(ステップS1012)。このようにすることで同じクエリー語を何度も入力する必要がなくなる。
 以上のように、第3の実施形態によれば、クエリー語は検索式に使われるまではメモリーに格納される。これにより、ユーザが応答文に応答する際に前回入力した単語を省略したとしても、検索を適切に実行することができる。
 (第4の実施形態)
 図7に示される応答文生成部701は、検索意図の候補を問い合わせるときだけでなく、システムがどんな検索を実施するのかをユーザに知らせることもできる。例えば、下記のようなやりとりが行われる。 
 ユーザ:「コロッケが食べたい」
 システム:「コロッケという料理名の料理を検索します」
  title LIKE %コロッケ% で検索
  検索結果:低アレルゲンコロッケ、コロッケ
 ユーザは、1回目の検索で得られた結果に多数の文書が含まれる場合、結果を絞り込むためにもう一度入力することがある。文が入力され検索が実施された後で、もう一度文が入力された場合、文書検索装置700は2回目の入力文は1回目の検索結果に対する絞り込み検索とみなし、応答文生成部701は、1回目の入力文に基づく検索式と2回目の入力文に基づく検索式をつなげて検索を行うことをユーザに通知する。この場合、例えば、下記のようなやりとりが行われる。
 ユーザ:「コロッケが食べたい」
 システム:「コロッケという料理名の料理を検索します」
  title LIKE %コロッケ% で検索
  検索結果:低アレルゲンコロッケ、コロッケ
 ユーザ:「卵アレルギーなんだよね」
 システム:「検索結果の中から、卵のアレルゲンを使っていない料理を検索します。」
  title LIKE %コロッケ% AND
  (ingredient NOT LIKE %卵% AND ingredient NOT LIKE %マヨネーズ% AND ingredient NOT LIKE %ベーコン% AND ingredient NOT LIKE %ウインナー% AND ingredient NOT LIKE %はんぺん%) で検索
  検索結果:低アレルゲンコロッケ
 このような絞り込み検索を行うことで、図3に示される文書DB110によれば、「低アレルゲンコロッケ」が出力される。
 第4の実施形態によれば、どのような検索を実施するのかをユーザに知らせることができる。
 上述したいずれの実施形態においても、文書DBは文書検索装置内に備わっている。これに代えて、文書DBは、インターネットなどのネットワークを介して文書検索装置に接続される外部装置に設けられていてもよい。
 また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の文書検索装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD-ROM、CD-R、CD-RW、DVD-ROM、DVD±R、DVD±RWなど)、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータ又は組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の文書検索装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。 
 また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。 
 さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記録媒体も含まれる。 
 また、記録媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
 なお、本実施形態におけるコンピュータ又は組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。 
 また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1.  ユーザから入力文を取得する取得部と、
     前記入力文に対して形態素解析を行うことにより単語を抽出する形態素解析部と、
     前記抽出された単語の中から、検索に使用する単語をクエリー語として抽出するクエリー語抽出部と、
     前記入力文に基づいて前記ユーザの検索意図を推定する意図推定部と、
     複数の検索式が登録された検索式リストと、
     複数の追加クエリー語が登録された追加クエリー語リストと、
     前記検索式リストから、前記推定された検索意図に対応する検索式を取得し、前記追加クエリー語リストから、前記取得された検索式と前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式に前記抽出されたクエリー語及び前記取得された追加クエリー語を適用することによりクエリーを生成するクエリー生成部と、
     前記クエリーに適合する文書を検索する検索部と、
     を具備する文書検索装置。
  2.  前記クエリー生成部は、前記取得された検索式が、追加クエリー語を取得するためのファンクションを含む場合、前記追加クエリー語リストから、前記ファンクションと前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式において前記ファンクションを前記取得された追加クエリー語で置き換える、請求項1に記載の文書検索装置。
  3.  前記推定された検索意図に対応する検索式の候補が複数ある場合に、当該候補を絞り込むために前記ユーザに出力する応答文を生成する応答文生成部をさらに具備する、請求項1に記載の文書検索装置。
  4.  前記取得部は、前記応答文を受けて前記ユーザが入力した他の入力文を取得し、前記クエリー語抽出部は、前記他の入力文に基づく他のクエリー語を抽出し、前記クエリー生成部は、前記抽出されたクエリー語及び前記抽出された他のクエリー語を用いてクエリーを生成する、請求項3に記載の文書検索装置。
  5.  前記ユーザが他の入力文を入力した場合、前記クエリー生成部は、前記他の入力文に基づく他のクエリーを生成し、前記クエリーと前記他のクエリーとをつなげたクエリーを生成する、請求項1に記載の文書検索装置。
  6.  前記意図推定部は、複数の検索意図がキーワード又はキーフレーズに対応付けて登録された検索意図リストを保持し、当該検索意図リストから、入力文に対応する検索意図を取得する、請求項1に記載の文書検索装置。
  7.  前記クエリー生成部は、前記取得された検索式が、追加クエリー語を取得するためのファンクションを含む場合、前記追加クエリー語リストから、前記ファンクションと前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式に前記抽出されたクエリー語及び前記取得された追加クエリー語を適用することにより前記クエリーを生成し、前記取得された検索式が前記ファンクションを含まない場合、前記取得された検索式に前記抽出されたクエリー語を適用することにより前記クエリーを生成する、請求項1に記載の文書検索装置。
  8.  ユーザから入力文を取得し、
     前記入力文に対して形態素解析を行うことにより単語を抽出し、
     前記抽出された単語の中から、検索に使用する単語をクエリー語として抽出し、
     前記入力文に基づいて前記ユーザの検索意図を推定し、
     複数の検索式が登録された検索式リストから、前記推定された検索意図に対応する検索式を取得し、複数の追加クエリー語が登録された追加クエリー語リストから、前記取得された検索式と前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式に前記抽出されたクエリー語及び前記取得された追加クエリー語を適用することによりクエリーを生成し、
     前記クエリーに適合する文書を検索する、文書検索方法。
  9.  コンピュータを、
     ユーザから入力文を取得する手段と、
     前記入力文に対して形態素解析を行うことにより単語を抽出する手段と、
     前記抽出された単語の中から、検索に使用する単語をクエリー語として抽出する手段と、
     前記入力文に基づいて前記ユーザの検索意図を推定する手段と、
     複数の検索式が登録された検索式リストから、前記推定された検索意図に対応する検索式を取得し、複数の追加クエリー語が登録された追加クエリー語リストから、前記取得された検索式と前記抽出されたクエリー語との組に対応する追加クエリー語を取得し、前記取得された検索式に前記抽出されたクエリー語及び前記取得された追加クエリー語を適用することによりクエリーを生成する手段と、
     前記クエリーに適合する文書を検索する手段として機能させるための文書検索プログラム。
PCT/JP2015/058541 2015-03-20 2015-03-20 文書検索装置、方法及びプログラム WO2016151690A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2015/058541 WO2016151690A1 (ja) 2015-03-20 2015-03-20 文書検索装置、方法及びプログラム
JP2017507156A JP6305630B2 (ja) 2015-03-20 2015-03-20 文書検索装置、方法及びプログラム
US15/421,404 US10929446B2 (en) 2015-03-20 2017-01-31 Document search apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/058541 WO2016151690A1 (ja) 2015-03-20 2015-03-20 文書検索装置、方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/421,404 Continuation US10929446B2 (en) 2015-03-20 2017-01-31 Document search apparatus and method

Publications (1)

Publication Number Publication Date
WO2016151690A1 true WO2016151690A1 (ja) 2016-09-29

Family

ID=56977022

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/058541 WO2016151690A1 (ja) 2015-03-20 2015-03-20 文書検索装置、方法及びプログラム

Country Status (3)

Country Link
US (1) US10929446B2 (ja)
JP (1) JP6305630B2 (ja)
WO (1) WO2016151690A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461889A (zh) * 2022-02-09 2022-05-10 北京百度网讯科技有限公司 数据搜索的方法、装置、电子设备及程序产品
US11526507B2 (en) 2017-05-18 2022-12-13 Salesforce, Inc. Neural network based translation of natural language queries to database queries

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210165678A1 (en) * 2018-01-29 2021-06-03 Hewlett-Packard Development Company, L.P. Language-specific downstream workflows

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108584A (ja) * 2001-09-28 2003-04-11 Casio Comput Co Ltd 情報検索システム及びプログラム
JP2003132060A (ja) * 2001-10-23 2003-05-09 Just Syst Corp 検索支援装置、検索支援方法、及び検索支援プログラム
JP2004234288A (ja) * 2003-01-30 2004-08-19 Nippon Telegr & Teleph Corp <Ntt> Web検索方法及び装置、Web検索プログラム並びにそのプログラムを記録した記録媒体
JP2014109897A (ja) * 2012-11-30 2014-06-12 Toshiba Corp 情報処理装置およびコンテンツ検索方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3099756B2 (ja) * 1996-10-31 2000-10-16 富士ゼロックス株式会社 文書処理装置、単語抽出装置及び単語抽出方法
JP2002183195A (ja) 2000-12-18 2002-06-28 Ntt Advanced Technology Corp 概念検索方式
JP2002342361A (ja) 2001-05-15 2002-11-29 Mitsubishi Electric Corp 情報検索装置
JP2006091994A (ja) 2004-09-21 2006-04-06 Toshiba Corp 文書情報処理装置および方法、文書情報処理プログラム
JP3669508B1 (ja) 2005-02-24 2005-07-06 松下電器産業株式会社 料理検索装置
JP4650072B2 (ja) * 2005-04-12 2011-03-16 富士ゼロックス株式会社 質問応答システム、およびデータ検索方法、並びにコンピュータ・プログラム
JP2007299159A (ja) 2006-04-28 2007-11-15 Toshiba Corp コンテンツ検索装置
JP2009140170A (ja) * 2007-12-05 2009-06-25 Toshiba Corp 情報提供方法および情報提供サーバ
JP4587236B2 (ja) * 2008-08-26 2010-11-24 Necビッグローブ株式会社 情報検索装置、情報検索方法、およびプログラム
JP5296014B2 (ja) * 2010-06-22 2013-09-25 ヤフー株式会社 検索装置、方法及びプログラム
CN102567408B (zh) 2010-12-31 2014-06-04 阿里巴巴集团控股有限公司 推荐搜索关键词的方法和装置
KR20140089876A (ko) 2013-01-07 2014-07-16 삼성전자주식회사 대화형 인터페이스 장치 및 그의 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108584A (ja) * 2001-09-28 2003-04-11 Casio Comput Co Ltd 情報検索システム及びプログラム
JP2003132060A (ja) * 2001-10-23 2003-05-09 Just Syst Corp 検索支援装置、検索支援方法、及び検索支援プログラム
JP2004234288A (ja) * 2003-01-30 2004-08-19 Nippon Telegr & Teleph Corp <Ntt> Web検索方法及び装置、Web検索プログラム並びにそのプログラムを記録した記録媒体
JP2014109897A (ja) * 2012-11-30 2014-06-12 Toshiba Corp 情報処理装置およびコンテンツ検索方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526507B2 (en) 2017-05-18 2022-12-13 Salesforce, Inc. Neural network based translation of natural language queries to database queries
CN114461889A (zh) * 2022-02-09 2022-05-10 北京百度网讯科技有限公司 数据搜索的方法、装置、电子设备及程序产品

Also Published As

Publication number Publication date
US10929446B2 (en) 2021-02-23
JPWO2016151690A1 (ja) 2017-05-25
JP6305630B2 (ja) 2018-04-04
US20170140037A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
US10558754B2 (en) Method and system for automating training of named entity recognition in natural language processing
CN104252533B (zh) 搜索方法和搜索装置
US9020805B2 (en) Context-based disambiguation of acronyms and abbreviations
US8719246B2 (en) Generating and presenting a suggested search query
Malandrakis et al. Distributional semantic models for affective text analysis
US20160062982A1 (en) Natural language processing system and method
US20140280314A1 (en) Dimensional Articulation and Cognium Organization for Information Retrieval Systems
KR101136007B1 (ko) 문서 감성 분석 시스템 및 그 방법
JP6505421B2 (ja) 情報抽出支援装置、方法およびプログラム
US20230014700A1 (en) Pre-emptive graph search for guided natural language interactions with connected data systems
JP2008140359A (ja) 評価情報抽出装置、評価情報抽出方法およびそのプログラム
WO2016121048A1 (ja) 文章生成装置及び方法
Rodrigues et al. Advanced applications of natural language processing for performing information extraction
JP6305630B2 (ja) 文書検索装置、方法及びプログラム
JP7047380B2 (ja) 生成プログラム、生成方法及び情報処理装置
CN114138969A (zh) 文本处理方法及装置
CN114391142A (zh) 使用结构化和非结构化数据的解析查询
JP2010198278A (ja) 評判情報分類装置、評判情報分類方法及びプログラム
Radoev et al. AMAL: answering french natural language questions using DBpedia
JP7122773B2 (ja) 辞書構築装置、辞書の生産方法、およびプログラム
US11017172B2 (en) Proposition identification in natural language and usage thereof for search and retrieval
JPWO2018025317A1 (ja) 自然言語処理装置及び自然言語処理方法
JP2004220226A (ja) 検索文書のための文書分類方法及び装置
JP4341077B2 (ja) 文書処理装置、文書処理方法、および、文書処理プログラム
JP2008140204A (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: 15886247

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017507156

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15886247

Country of ref document: EP

Kind code of ref document: A1