WO2019187120A1 - 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム - Google Patents

回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム Download PDF

Info

Publication number
WO2019187120A1
WO2019187120A1 PCT/JP2018/013909 JP2018013909W WO2019187120A1 WO 2019187120 A1 WO2019187120 A1 WO 2019187120A1 JP 2018013909 W JP2018013909 W JP 2018013909W WO 2019187120 A1 WO2019187120 A1 WO 2019187120A1
Authority
WO
WIPO (PCT)
Prior art keywords
candidate data
answer
answer candidate
faq
data
Prior art date
Application number
PCT/JP2018/013909
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 JP2020508887A priority Critical patent/JP7017177B2/ja
Priority to PCT/JP2018/013909 priority patent/WO2019187120A1/ja
Publication of WO2019187120A1 publication Critical patent/WO2019187120A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic 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
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Definitions

  • the present invention relates to an answer output program, an answer output method, an information processing apparatus, and a machine learning program.
  • chatbot is a computer system that uses artificial intelligence to interact with humans and exchange messages.
  • the rank data is determined at a predetermined timing. Then, for each shuffle target range, there is one that performs a shuffle that ignores the score and determines the order in which each site is displayed.
  • an object of the present invention is to optimize answer candidate data output for a question.
  • a plurality of answer candidate data corresponding to the question data is specified including a priority using a search algorithm, and an access history to past answer candidate data is specified.
  • the access rate by the question data for each of the plurality of answer candidate data is calculated based on the access history in each of the specified plurality of answer candidate data, and the calculated access rate.
  • the priority order of the plurality of answer candidate data is adjusted based on the answer, and one or more answer candidate data to be output is determined and output from the plurality of answer candidate data based on the adjusted priority order.
  • the correct search result item according to the past selection operation for each of the search result items arranged on the second and subsequent pages among the plurality of search result items arranged over a plurality of pages.
  • the first machine learning is executed using the specified search result item of the correct answer as correct teacher data, and the learning result of the first machine learning is applied to limit the number to a single screen.
  • Search result items are identified, an incorrect answer search result item is identified in accordance with the selection operation of the displayed search result items, and the identified incorrect answer search result item is used as incorrect answer teacher data.
  • a machine learning program is provided that executes the machine learning and applies the learning result of the second machine learning to select a search result item.
  • a search system in which a correct search result item is specified in accordance with a search result item selection operation in a situation where search results can be displayed over a plurality of pages, and machine learning is performed as correct answer teacher data.
  • the search process is executed in a state where the number of search result items can be displayed by limiting to the number that can be displayed on one screen, an incorrect answer search result item is selected according to the selection operation for the search item displayed on the one screen.
  • a machine learning program is provided in which machine learning is specified as incorrect answer teacher data.
  • a plurality of search result items are selected and presented in a limited number that can be displayed on one screen, and a search operation with a selection operation below a predetermined standard is performed for the presented search result items.
  • a machine learning program that machine learns result items as incorrect answer teacher data and makes it easy for other search result items that are not selected as candidates displayed on the one screen to appear as display candidates by search.
  • answer candidates to be output for a question can be optimized.
  • FIG. 1 is an explanatory diagram of an example of the answer output method according to the embodiment.
  • FIG. 2 is an explanatory diagram showing a system configuration example of the answer output system 200.
  • FIG. 3 is a block diagram illustrating a hardware configuration example of the information processing apparatus 101.
  • FIG. 4 is an explanatory diagram showing an example of the contents stored in the FAQ master 220.
  • FIG. 5 is an explanatory diagram showing an example of the contents stored in the chat log DB 230.
  • FIG. 6 is an explanatory diagram illustrating a screen example of the inquiry screen 600.
  • FIG. 7 is a block diagram illustrating a functional configuration example of the information processing apparatus 101.
  • FIG. 8 is an explanatory diagram of a specific example of flow line analysis source information.
  • FIG. 9 is an explanatory diagram showing an example of the stored contents of the flow line analysis result table 900.
  • FIG. 10 is an explanatory diagram (part 1) of a specific example of a mixing matrix.
  • FIG. 11 is an explanatory diagram (part 2) of the specific example of the mixing matrix.
  • FIG. 12 is an explanatory diagram showing an example of the contents stored in the overall correct rate table 1200.
  • FIG. 13 is an explanatory diagram showing a time-series change in the average overall accuracy rate.
  • FIG. 14 is an explanatory diagram (part 1) illustrating an example of a plurality of FAQs corresponding to a search word.
  • FIG. 15 is an explanatory diagram (part 1) of an example of FAQ reranking.
  • FIG. 16 is an explanatory diagram (part 2) illustrating an example of a plurality of FAQs corresponding to a search word.
  • FIG. 17 is an explanatory diagram (part 2) of an example of FAQ reranking.
  • FIG. 18 is a flowchart illustrating an example of an answer output processing procedure of the information processing apparatus 101.
  • FIG. 19 is a flowchart illustrating an example of a specific processing procedure of the adjustment processing.
  • FIG. 20 is a flowchart illustrating an example of the Level adjustment processing procedure of the information processing apparatus 101.
  • FIG. 1 is an explanatory diagram of an example of the answer output method according to the embodiment.
  • an information processing apparatus 101 is a computer that outputs answer candidate data for inputted question data.
  • the question data asks how to solve some problem.
  • the question data may be questions based on spoken language.
  • the question data may be expressed by a word or a combination of a plurality of words, or may be expressed by one or a plurality of sentences.
  • the answer candidate data is a candidate answer that indicates how to solve the question that has been asked, and a candidate answer to the question in spoken language.
  • the answer candidate data is, for example, FAQ. FAQ means “a frequently asked question”, and is a collection of question data and answer data with respect to question data predicted in advance.
  • FAQ search results are often presented over a plurality of pages.
  • the number of FAQs that can be displayed on each page is about 30.
  • chatbots there are many cases where there is no page concept for FAQ search results. When there is no way of thinking about the page, the first page is always the search result. In many cases, the number of FAQs arranged in the display frame of the chatbot is about 3 to 5.
  • the display of the FAQ search results in the chat bot is more important than the detailed arrangement of the FAQs in the display frame, and the FAQ expected by the user is contained in the display frame. Narrowing down is required.
  • a feature word is included, even if it has never been accessed in the past, it may be output as an answer candidate.
  • a candidate answer that has never been accessed in the past is likely not a valid answer to the question.
  • an answer output method for optimizing answer candidate data to be output for question data based on an access history to past answer candidate data will be described.
  • a processing example of the information processing apparatus 101 will be described.
  • the information processing apparatus 101 When the information processing apparatus 101 receives input of question data, the information processing apparatus 101 specifies a plurality of answer candidate data corresponding to the question data using a search algorithm, including the priority order.
  • the search algorithm may be any existing search algorithm, for example, one using similarity.
  • a search algorithm using similarity for example, the similarity between input question data and prepared question data is obtained, and answer candidate data including question data with high similarity is specified.
  • TF-IDF is used for calculating the similarity.
  • answer candidate data corresponding to question data is specified based on feature words included in answer candidate data.
  • the information processing apparatus 101 when specifying a plurality of answer candidate data, specifies first answer candidate data to be output candidates from a plurality of answer candidate data based on the priority order. To do. In addition, the information processing apparatus 101 specifies second answer candidate data other than the first answer candidate data among the plurality of answer candidate data.
  • the first answer candidate data is the FAQ displayed in the display frame, and the top 3 to 5 FAQs.
  • the second answer candidate data is a FAQ that has been truncated without being displayed in the display frame.
  • the answer candidate data 1 to 10 corresponding to the input question data X are specified including the priority order.
  • the answer candidate data 1 to 10 are referred to as “first answer candidate data”, and the answer candidate data 4 to 10 are referred to as “second answer candidate data”.
  • the information processing apparatus 101 refers to the storage unit 110 and calculates an access rate by the question data for each of the plurality of answer candidate data based on the access history in each of the plurality of identified answer candidate data.
  • the storage unit 110 stores an access history to past answer candidate data.
  • the history of access to past answer candidate data includes, for example, the correspondence between the question data input in the past and the selected answer candidate data among the answer candidates output when the question data is input. It is information to show.
  • the access rate based on the question data is an index value indicating the height of the rate at which the answer candidate data is selected when the answer candidate data is output with respect to the question data.
  • the information processing apparatus 101 adjusts the priority order of a plurality of answer candidate data based on the calculated access rate. Specifically, for example, the information processing apparatus 101 replaces a part or all of the first answer candidate data with a part or all of the second answer candidate data based on the calculated access rate. Adjust priority of answer candidate data.
  • the information processing apparatus 101 sets the answer candidate data in which the access rate is lower than the first threshold among the first answer candidate data, and the access rate of the second answer candidate data is the second. Replace with answer candidate data that exceeds the threshold.
  • the first and second threshold values can be set arbitrarily.
  • the first and second threshold values may be fixed values determined in advance, or may be dynamically adjusted according to the access history during operation.
  • the access rate a2 of the answer candidate data 2 of the first answer candidate data is below the first threshold
  • the access rate a7 of the answer candidate data 7 of the second answer candidate data is the first.
  • the information processing apparatus 101 replaces the answer candidate data 2 in the first answer candidate data with the answer candidate data 7 in the second answer candidate data.
  • the information processing apparatus 101 determines and outputs one or more answer candidate data to be output from among the plurality of answer candidate data based on the adjusted priority order. Specifically, for example, the information processing apparatus 101 replaces the answer candidate data whose access rate is lower than the first threshold with the answer candidate data whose access rate is higher than the second threshold. The answer candidate data to be output is determined. Then, the information processing apparatus 101 outputs the determined one or more answer candidate data as answer candidate data for the input question data.
  • the answer candidate data 1, 7, and 3 after the answer candidate data 2 of the first answer candidate data is replaced with the answer candidate data 7 are determined as a plurality of answer candidate data to be output. The Then, the answer candidate data 1, 7 and 3 are output as answer candidate data for the inputted question data X.
  • the priority order of each of a plurality of answer candidate data corresponding to the question data specified by the existing search algorithm is adjusted according to the access rate by the question data based on the past access history. can do.
  • answer candidate data that is extremely small in the number of past accesses when it is output for question data is prevented from being output, and answer candidate data that is output as a search result for question data is optimized. can do.
  • FIG. 2 is an explanatory diagram showing a system configuration example of the answer output system 200.
  • the answer output system 200 includes an information processing apparatus 101 and a plurality of terminals 201 (three in the example of FIG. 2).
  • the information processing apparatus 101 and the plurality of terminals 201 are connected via a wired or wireless network 210.
  • the network 210 is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or the like.
  • the information processing apparatus 101 has a FAQ master 220 and a chat log DB (Database) 230, and outputs answer candidate data corresponding to the question data.
  • FAQ may be described as an example of answer candidate data.
  • the information processing apparatus 101 is a server, for example.
  • the terminal 201 is a computer used by the user of the answer output system 200.
  • the user of the answer output system 200 is, for example, a user of the FAQ system.
  • the terminal 201 is, for example, a PC (Personal Computer), a smartphone, or a tablet PC.
  • FIG. 3 is a block diagram illustrating a hardware configuration example of the information processing apparatus 101.
  • the information processing apparatus 101 includes a CPU (Central Processing Unit) 301, a memory 302, an I / F (Interface) 303, a disk drive 304, and a disk 305. Each component is connected by a bus 300.
  • CPU Central Processing Unit
  • I / F Interface
  • the CPU 301 governs overall control of the information processing apparatus 101.
  • the CPU 301 may have a plurality of cores.
  • the memory 302 includes, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash ROM, and the like.
  • the flash ROM stores an OS (Operating System) program
  • the ROM stores an application program
  • the RAM is used as a work area of the CPU 301.
  • the program stored in the memory 302 is loaded into the CPU 301 to cause the CPU 301 to execute the coded process.
  • the I / F 303 is connected to the network 210 through a communication line, and is connected to an external computer (for example, the terminal 201 shown in FIG. 2) through the network 210.
  • the I / F 303 controls an interface between the network 210 and the inside of the apparatus, and controls data input / output from an external computer.
  • a modem or a LAN adapter may be employed as the I / F 303.
  • the disk drive 304 controls reading / writing of data with respect to the disk 305 according to the control of the CPU 301.
  • the disk 305 stores data written under the control of the disk drive 304. Examples of the disk 305 include a magnetic disk and an optical disk.
  • the information processing apparatus 101 may include, for example, an SSD (Solid State Drive), an input device, a display, and the like in addition to the above-described components.
  • the terminal 201 shown in FIG. 2 can be realized by the same hardware configuration as the information processing apparatus 101. However, the terminal 201 includes an input device, a display, and the like in addition to the above-described components.
  • the FAQ master 220 is realized by a storage device such as the memory 302 and the disk 305 shown in FIG.
  • FIG. 4 is an explanatory diagram showing an example of the contents stored in the FAQ master 220.
  • the FAQ master 220 has fields of FAQID, question, and answer, and stores FAQs (for example, FAQs 400-1 and 400-2) as records by setting information in each field.
  • the FAQ ID is an identifier for uniquely identifying the FAQ.
  • the question is question data indicating a question forming the FAQ.
  • the answer is answer data indicating an answer to the question.
  • the question and the answer may be expressed by a word or a combination of a plurality of words, and may be expressed by one or a plurality of sentences.
  • the FAQ 400-1 answers the question “FAQ” “001” “Warning sound (alarm sound) when using UPS” and answers “When the battery voltage falls below a certain value, The lamp is lit for the purpose of encouraging the replacement of the service life.
  • the chat log DB 230 is realized by a storage device such as the memory 302 and the disk 305 shown in FIG.
  • FIG. 5 is an explanatory diagram showing an example of the contents stored in the chat log DB 230.
  • the chat log DB 230 has fields for date, search word, and inquiry FAQ, and by setting information in each field, the chat log (for example, chat logs 500-1 and 500-2) is used as a record.
  • the chat log for example, chat logs 500-1 and 500-2
  • the date is the date on which the FAQ search was performed.
  • the date is a date when an input of a search word (question data) from the terminal 201 is accepted.
  • the date may include up to the time.
  • the search word is input question data.
  • the search word may be a word, a combination of a plurality of words, or one or a plurality of sentences.
  • the inquiry FAQ is the FAQ that has received a selection operation among the FAQs output for the search word, that is, the FAQ ID of the inquiry (selected) FAQ.
  • “NotFound” is set in the inquiry FAQ.
  • “NotFound” is set in the inquiry FAQ.
  • the FAQ selection operation of the inquiry FAQ “001” among the FAQs output for the search word “UPS warning sound” input on the date “2018/3/22” is performed. It shows that.
  • FIG. 6 is an explanatory diagram showing a screen example of the inquiry screen 600.
  • an inquiry screen 600 is an example of an operation screen for searching for FAQs or querying FAQs.
  • a box 601 is clicked on the inquiry screen 600, a search word can be input.
  • the button 602 when the button 602 is clicked on the inquiry screen 600, the FAQ corresponding to the search word input in the box 601 can be searched. Specifically, when the button 602 is clicked, the search word input in the box 601 is transmitted from the terminal 201 to the information processing apparatus 101.
  • the search result for the search word is transmitted from the information processing apparatus 101 to the terminal 201, and the searched FAQ is listed and displayed in the display frame 610 according to the priority order.
  • the top three FAQs with the highest priority are displayed in the display frame 610.
  • the input search word is displayed.
  • the top three FAQs 611 to 613 are displayed in the display frame 610.
  • the contents of the FAQ can be inquired.
  • the contents of the FAQ 611 (question data and answer data) can be inquired.
  • a selection result indicating that the FAQ has been selected is transmitted from the terminal 201 to the information processing apparatus 101.
  • an unselected result indicating that a selection operation indicating that there is no desired FAQ has been performed is transmitted from the terminal 201 to the information processing apparatus 101.
  • a selection operation indicating that there is no desired FAQ has been performed.
  • An unselected result indicating “” is transmitted from the terminal 201 to the information processing apparatus 101.
  • FIG. 7 is a block diagram illustrating a functional configuration example of the information processing apparatus 101.
  • the information processing apparatus 101 includes a reception unit 701, a specification unit 702, a calculation unit 703, an adjustment unit 704, a determination unit 705, an output unit 706, and a storage unit 710.
  • the accepting unit 701 to the output unit 706 are functions as control units. Specifically, for example, by causing the CPU 301 to execute a program stored in a storage device such as the memory 302 and the disk 305 illustrated in FIG. Alternatively, the function is realized by the I / F 303.
  • the processing result of each functional unit is stored in a storage device such as the memory 302 and the disk 305, for example.
  • the storage unit 710 is realized by a storage device such as the memory 302 and the disk 305, for example.
  • the storage unit 710 stores a FAQ master 220, a chat log DB 230, and the like.
  • the accepting unit 701 accepts input of question data.
  • the input of the question data is performed, for example, on the inquiry screen 600 shown in FIG. Specifically, for example, the receiving unit 701 receives a search word input in the box 601 of the inquiry screen 600 from the terminal 201, thereby receiving the input of the received search word as question data.
  • the input question data may be expressed as “search word”.
  • the specifying unit 702 uses a search algorithm to specify a plurality of answer candidate data corresponding to the input search word including the priority order.
  • the priority order is the order of display. Among a plurality of answer candidate data corresponding to the inputted question data, the data with a higher priority is displayed with priority.
  • the specifying unit 702 refers to the FAQ master 220 illustrated in FIG. 4 and uses the search algorithm using the similarity calculated using the TF-IDF method to input the search
  • a plurality of FAQs corresponding to the word are specified including the priority order.
  • the plurality of FAQs specified are, for example, FAQs whose similarity is equal to or higher than a threshold value.
  • the identifying unit 702 morphologically analyzes the input search word and divides it into morphemes.
  • the specifying unit 702 searches the FAQ master 220 for a FAQ corresponding to the decomposed morpheme using a search algorithm. Then, the specifying unit 702 specifies the searched search result (FAQ) including the priority order.
  • FAQ searched search result
  • the specifying unit 702 specifies first answer candidate data and second answer candidate data from among a plurality of answer candidate data based on the priority order.
  • the first answer candidate data is answer candidate data to be output candidates among a plurality of answer candidate data.
  • the second answer candidate data is answer candidate data other than the first answer candidate data among the plurality of answer candidate data.
  • the specifying unit 702 specifies the top N FAQs having higher priority among the plurality of FAQs corresponding to the input search word as the first answer candidate data, and the first answer Answer candidate data other than candidate data is specified as second answer candidate data.
  • the value of N can be arbitrarily set, and is set to about 3 to 5, for example.
  • the answer candidate data may be expressed as “FAQ”. Further, the first answer candidate data may be written as “first candidate” and the second answer candidate data may be written as “second candidate”.
  • the calculation unit 703 refers to the storage unit 710 that stores the access history to the past FAQ, and based on the access history in each of the specified plurality of FAQs, in the input search word for each of the plurality of FAQs Calculate access efficiency.
  • the calculation unit 703 refers to the chat log DB 230 illustrated in FIG. 5 and calculates the access efficiency in the input search word for each of the plurality of identified FAQs.
  • the access efficiency in the search word is an index value corresponding to the access rate based on the question data described in FIG. 1, and indicates the high rate at which the FAQ is selected when the FAQ is output for the search word. Show.
  • the chat log used when calculating the access efficiency may be, for example, all chat logs in the chat log DB 230, or a chat log within a predetermined period (for example, the date is within the last year). There may be.
  • the calculation unit 703 acquires from the chat log DB 230 a chat log in which any FAQ ID is set in the inquiry FAQ. Then, the calculation unit 703 performs a morphological analysis on the acquired search word of the chat log, and divides the search word into morphemes. Next, the calculation unit 703 generates, for each divided morpheme, flow line analysis source information that represents the search word including the morpheme and the inquiry FAQ in association with each other.
  • FIG. 8 is an explanatory diagram showing a specific example of flow line analysis source information.
  • flow line analysis source information 800 is information that represents morphemes, search words, and inquiry FAQs in association with each other.
  • a morpheme is a morpheme obtained by morphological analysis of a search word.
  • the search word is input question data.
  • the inquiry FAQ is the FAQ ID of the FAQ inquired (selected) among the FAQs output for the search word.
  • the calculation unit 703 calculates the access efficiency in the input search word for each of the plurality of identified FAQs based on the generated flow line analysis source information.
  • the calculation unit 703 calculates the access efficiency in the input search word for each of the plurality of identified FAQs based on the generated flow line analysis source information.
  • the calculation unit 703 refers to the flow line analysis source information 800 and calculates the individual access number and the total access number for each of the plurality of identified FAQs.
  • the individual access count of the FAQ indicates the number of times that the FAQ is selected when a search word including a morpheme of the search word input this time is input.
  • the total number of accesses to the FAQ indicates the number of times that the FAQ has been selected in the past not only for the search word input this time but also for all the search words.
  • the calculation unit 703 calculates the access efficiency in the search word based on the calculated number of individual accesses and the total number of accesses for each of the plurality of identified FAQs using the following formula (1).
  • the total number of accesses is the total number of accesses for each of the plurality of FAQs.
  • Access efficiency (number of individual accesses / total number of accesses) x (total number of accesses / total number of accesses) (1)
  • total number of accesses / total number of accesses is such that the access efficiency does not react sensitively to (individual access number / total number of accesses) for a FAQ with a small total number of accesses. It is an adjustment term for.
  • the calculated access efficiency is stored in a flow line analysis result table 900 as shown in FIG.
  • the flow line analysis result table 900 is realized by a storage device such as the memory 302 and the disk 305, for example.
  • the stored contents of the flow line analysis result table 900 will be described with reference to FIG.
  • the stored contents of the flow line analysis result table 900 will be described.
  • FIG. 9 is an explanatory diagram showing an example of the stored contents of the flow line analysis result table 900.
  • the flow line analysis result table 900 has fields of priority, FAQID, individual access number, total access number, and access efficiency. By setting information in each field, the flow line analysis result 900-1 ⁇ 900-10 are stored as records.
  • the priority order is the priority order of the FAQ.
  • FAQID is the FAQID of the FAQ.
  • the number of individual accesses is the number of FAQ individual accesses.
  • the total number of accesses is the total number of FAQ accesses.
  • the access efficiency is the access efficiency in the FAQ search word.
  • the adjustment unit 704 adjusts the priority order of the specified plurality of FAQs based on the calculated access efficiency. Specifically, for example, the adjustment unit 704 replaces a part or all of the first candidates with part or all of the second candidates based on the calculated access efficiency, and determines a plurality of identified FAQs. Adjust priority.
  • the adjustment unit 704 refers to the flow line analysis result table 900, and determines the FAQ whose access efficiency is lower than the BP (Bad Parameter) value among the first candidates, and the access efficiency among the second candidates. Is replaced with a FAQ that exceeds the GP (Good Parameter) value.
  • the BP value corresponds to, for example, the first threshold described in FIG.
  • the GP value corresponds to, for example, the second threshold described with reference to FIG.
  • the BP value is set to a value with which it can be determined that the access efficiency is poor when the access efficiency is lower than the BP value.
  • the GP value is set to a value that allows the access efficiency to be determined to be good when the access efficiency exceeds GP.
  • the BP value can be set using the following formula (2).
  • the GP value can be set using the following formula (3).
  • Level is a constant that can be arbitrarily set. In the initial state, for example, an initial value “0.8” is set in Level.
  • the adjustment unit 704 may randomly select any FAQ among the second candidates when there is no FAQ among the second candidates whose access efficiency exceeds the GP value. Then, the adjustment unit 704 may replace the FAQ in which the access efficiency is lower than the BP value among the first candidates with a randomly selected FAQ.
  • any existing method may be used as a method for randomly selecting (randomly extracting) the FAQ.
  • the determining unit 705 determines one or a plurality of FAQs to be output from a plurality of FAQs based on the adjusted priority order. Specifically, for example, the determination unit 705 replaces the FAQ whose access efficiency is lower than the BP value among the first candidates with the FAQ whose access efficiency is higher than the GP value among the second candidates. Are determined as FAQs to be output.
  • the output unit 706 outputs one or a plurality of FAQs to be output.
  • the sequential position where one or a plurality of FAQs included in the second candidate determined to be output by replacement by the adjusting unit 704 is included in, for example, the first candidate that is no longer output as a replacement target. It is the order position of FAQ.
  • the output unit 706 transmits information indicating the determined output target FAQ to the terminal 201 as a search result for the input search word.
  • the FAQ to be output is displayed in the display frame 610 of the inquiry screen 600 shown in FIG.
  • the accepting unit 701 accepts a selection result indicating the selected FAQ among the one or more output FAQs.
  • the FAQ is selected, for example, on the inquiry screen 600 shown in FIG.
  • the receiving unit 701 receives the selection result from the terminal 201 by receiving the selection result indicating the FAQ selected on the inquiry screen 600.
  • the accepted selection result is stored in the chat log DB 230, for example. Specifically, for example, when the reception unit 701 receives a selection result indicating the selected FAQ, the reception unit 701 associates the date when the selection result is received, the input search word, and the FAQ ID of the selected FAQ. And stored in the chat log DB 230.
  • the accepting unit 701 accepts an unselected result indicating that none of the output FAQs has been selected. Specifically, for example, the receiving unit 701 receives an unselected result from the terminal 201 by receiving an unselected result indicating that a selection operation indicating that there is no desired FAQ has been performed.
  • the received unselected result is stored in, for example, the chat log DB 230 shown in FIG. Specifically, for example, when accepting an unselected result, the accepting unit 701 stores the date when the unselected result is accepted, the input search word, and NotFound in association with each other in the chat log DB 230.
  • chat log DB 230 is also updated in the case of so-called zero hits in which no FAQ corresponding to the input search word is specified.
  • the specifying unit 702 stores the date when the search word is input, the input search word, and NotFound in association with each other in the chat log DB 230.
  • the adjustment unit 704 adjusts the number of FAQs exchanged between the first candidate and the second candidate based on the access history of the plurality of identified FAQs. Specifically, for example, when the adjustment unit 704 determines that the access efficiency has decreased from the access history of a plurality of FAQs, the adjustment unit 704 increases the number of FAQs exchanged between the first candidate and the second candidate. You may decide.
  • the access efficiency here corresponds to the access efficiency of the entire system for the FAQ output according to the search word.
  • the adjustment unit 704 determines that the access efficiency is increased from the access history of a plurality of FAQs, the adjustment unit 704 decreases the number of FAQs to be exchanged between the first candidate and the second candidate. Also good.
  • the adjustment unit 704 based on the result of replacing part or all of the first candidate with part or all of the second candidate, The total correct answer rate in the input search word is calculated.
  • the overall correct answer rate is an index value indicating how much FAQ for the search word, that is, the FAQ selected can be output.
  • the overall accuracy rate can be expressed by how correctly a plurality of FAQs corresponding to the search word can be classified into the first candidate and the second candidate.
  • the overall correct answer rate can be obtained from the information of the mixing matrix for the first candidate and the second candidate using the following equation (4).
  • ACC is the overall accuracy rate.
  • TP is the number of FAQs that are not replaced with the FAQs of the second candidate among the first candidates. In other words, TP is the number of FAQs that can be said to be correct as the first candidate among the first candidates.
  • TN is the number of FAQs that are not replaced with the FAQs of the first candidate among the second candidates. In other words, TN is the number of FAQs that can be said to be correct as the second candidate among the second candidates.
  • FN is the number of FAQs replaced with FAQs of the second candidate among the first candidates. In other words, FN is the number of FAQs that can be said to be incorrect as the first candidate among the first candidates.
  • the FP is the number of FAQs replaced with the FAQs of the first candidate among the second candidates. In other words, FP is the number of FAQs that can be said to be incorrect as the second candidate among the second candidates.
  • FIG. 10 is an explanatory diagram (part 1) illustrating a specific example of a mixing matrix.
  • the FAQ ID of the FAQ included in the first candidate is “152, 153, 214”.
  • the FAQ ID of the FAQ included in the second candidate is “213, 154, 245, 151, 215, 143, 142”.
  • FIG. 11 is an explanatory diagram (part 2) of a specific example of a mixing matrix.
  • the FAQ ID of the FAQ included in the first candidate is “121,466,457”.
  • the FAQ ID of the FAQ included in the second candidate is “19,455”. Further, it is assumed that the first candidate FAQ 457 is replaced with the second candidate FAQ 19.
  • the calculated overall accuracy rate is stored in an overall accuracy rate table 1200 as shown in FIG. 12 in association with the date, for example.
  • the overall accuracy rate table 1200 is realized by a storage device such as the memory 302 and the disk 305, for example.
  • FIG. 12 is an explanatory diagram showing an example of the stored contents of the overall correct rate table 1200.
  • the overall accuracy rate table 1200 has fields of date and overall accuracy rate, and information is set in each field, so that overall accuracy rate information (for example, overall accuracy rate information 1200-1 and 1200-2) is set. ) As a record.
  • the date is the date on which the FAQ search was performed.
  • the date is a date when an input of a search word (question data) from the terminal 201 is accepted.
  • the overall accuracy rate is the overall accuracy rate when the FAQ is searched.
  • the overall accuracy rate information 1200-1 indicates the overall accuracy rate “0.8” when the FAQ search is performed on the date “2018/3/22”. That is, the overall correct answer rate is accumulated in the FAQ search unit.
  • the adjustment unit 704 identifies time-series changes in the overall accuracy rate based on the calculated overall accuracy rate. Specifically, for example, the adjustment unit 704 refers to the overall accuracy rate table 1200 illustrated in FIG. 12 and calculates an average value of the overall accuracy rates (average overall accuracy rate) for each day.
  • the overall accuracy rate used when calculating the average overall accuracy rate may be an overall accuracy rate with a date within a predetermined period (for example, within the most recent year).
  • FIG. 13 is an explanatory diagram showing a time-series change in the average overall accuracy rate.
  • a graph 1300 shows a time-series change in the average overall accuracy rate for each day. It is plotted on the accuracy rate, horizontal axis: time).
  • the adjustment unit 704 determines a tendency of access efficiency as the entire system based on the calculated average overall correct answer rate for each day. Specifically, for example, the adjustment unit 704 performs regression analysis based on the calculated average overall accuracy rate for each day, and calculates the slope of a straight line (for example, the straight line 1301) representing the time series change of the overall accuracy rate. . Then, the adjustment unit 704 determines whether the access efficiency is increasing (increase) or the access efficiency is decreasing (decrease) based on the calculated slope of the straight line.
  • the adjustment unit 704 determines that the access efficiency tends to increase if the calculated slope of the straight line is equal to or greater than the predetermined value ⁇ .
  • the adjustment unit 704 determines that the access efficiency tends to decrease if the calculated slope of the straight line is equal to or less than the predetermined value ⁇ .
  • the predetermined values ⁇ and ⁇ can be arbitrarily set.
  • the adjustment unit 704 lowers the Level included in the above formula (2) and the above formula (3). Accordingly, the number of FAQs to be exchanged between the first candidate and the second candidate can be increased by actively performing the exchange between the first candidate and the second candidate.
  • the adjustment unit 704 increases the Level included in the above formula (2) and the above formula (3). Thereby, it is possible to suppress the exchange between the first candidate and the second candidate, and to reduce the number of FAQs exchanged between the first candidate and the second candidate.
  • the lowering level and the raising level of the level are set in advance and stored in a storage device such as the memory 302 and the disk 305.
  • Level adjustment is performed, for example, every certain period (for example, one day, one week, one month, etc.).
  • FAQ reranking example Next, an example of FAQ reranking will be described with reference to FIGS. First, an example of FAQ reranking when the search word “cancel” is input will be described with reference to FIGS. 14 and 15.
  • FIG. 14 is an explanatory diagram (part 1) illustrating an example of a plurality of FAQs corresponding to a search word.
  • FIG. 15 is an explanatory diagram (part 1) of an example of FAQ reranking.
  • ten FAQs corresponding to the search word “cancel” specified using a search algorithm using the TF-IDF method are displayed according to the priority order.
  • the access efficiency of each FAQ is calculated using the above formula (1) from the individual access count and the total access count of each FAQ.
  • the maximum access efficiency among the first candidates is “0.10”.
  • the adjustment unit 704 selects the FAQ 152 whose access efficiency is lower than the BP value among the first candidates as the FAQ to be replaced.
  • the adjustment unit 704 may select the FAQ with the highest access efficiency among the second candidates as the replacement target FAQ.
  • the adjustment unit 704 replaces the FAQ 152 of the first candidates with the FAQ 151 of the second candidates.
  • the priority order of the FAQ 152 is changed from “1” to “7”
  • the priority order of the FAQ 151 is changed from “7” to “1”
  • the priority order of the FAQ corresponding to the search word “cancel” is adjusted.
  • the determination unit 705 determines the first candidate after the replacement of the FAQ 152 of the first candidates with the FAQ 151 of the second candidates as an output target FAQ.
  • the FAQ to be output changes from “FAQ152, FAQ153, FAQ214” to “FAQ151, FAQ153, FAQ214”.
  • the FAQ 152 with the individual access number “0” can be replaced with the FAQ 151 with the individual access number “8”, which is more effective for the search word “cancel”. It is possible to output a FAQ.
  • the search word “payment method is” is a search word including a plurality of morphemes (payment, method).
  • FIG. 16 is an explanatory diagram (part 2) illustrating an example of a plurality of FAQs corresponding to a search word.
  • FIG. 17 is an explanatory diagram (part 2) of an example of FAQ reranking.
  • ten FAQs corresponding to the search word “payment method is” specified using a search algorithm using the TF-IDF method are displayed in accordance with the priority order.
  • the access efficiency of each FAQ is calculated using the above formula (1) from the individual access count and the total access count of each FAQ.
  • the maximum access efficiency among the first candidates is “0.03”.
  • the adjustment unit 704 selects FAQs 113 and 259 whose access efficiency is lower than the BP value among the first candidates as FAQs to be replaced.
  • the adjustment unit 704 selects the FAQ 261 whose access efficiency exceeds the GP value from the second candidates as the FAQ to be replaced. Then, the adjustment unit 704 replaces the FAQ 113 in the first candidate with the FAQ 261 in the second candidate. As a result, the priority order of the FAQ 113 is changed from “1” to “8”, and the priority order of the FAQ 261 is changed from “8” to “1”.
  • the adjustment unit 704 randomly selects one FAQ from the other FAQs other than the FAQ 261 among the second candidates.
  • FAQ 262 of the second candidates is selected.
  • the adjustment unit 704 replaces the FAQ 259 in the first candidate with the FAQ 262 in the second candidate.
  • the priority order of the FAQ 259 is changed from “3” to “4”
  • the priority order of the FAQ 262 is changed from “4” to “3”
  • the priority order of the FAQ corresponding to the search word “payment method is” is adjusted.
  • the determination unit 705 determines the first candidate after the replacement of the FAQ 113 and FAQ 259 of the first candidates with the FAQ 261 and FAQ 262 of the second candidates as the output target FAQ.
  • the FAQ to be output changes from “FAQ113, FAQ263, FAQ259” to “FAQ261, FAQ263, FAQ262”.
  • the FAQ 113 with the individual access number “0” as the FAQ with the priority “1” can be replaced with the FAQ 261 with the individual access number “2”.
  • a more effective FAQ can be output.
  • the FAQ with the priority “3” the FAQ 259 whose number of individual accesses is “0” can be replaced with the FAQ 262 randomly selected from the second candidates to wait for an access tendency to appear.
  • FIG. 18 is a flowchart illustrating an example of an answer output processing procedure of the information processing apparatus 101.
  • the information processing apparatus 101 determines whether or not an input of a search word has been accepted (step S1801).
  • the information processing apparatus 101 waits to accept an input of a search word (step S1801: No).
  • the information processing apparatus 101 When the information processing apparatus 101 receives an input of a search word (step S1801: Yes), the information processing apparatus 101 uses a search algorithm to specify a plurality of FAQs corresponding to the input search word including the priority order (Ste S1802). Next, the information processing apparatus 101 identifies the first candidate and the second candidate from the identified plurality of FAQs based on the priority order (step S1803).
  • the information processing apparatus 101 refers to the chat log DB 230 and calculates the access efficiency in the input search word for each of the identified plurality of FAQs (step S1804).
  • the information processing apparatus 101 calculates the BP value and the GP value based on the calculated access efficiency using the above formula (2) and the above formula (3) (step S1805).
  • the information processing apparatus 101 executes an adjustment process for adjusting the priority order of the plurality of identified FAQs (step S1806). Note that a specific processing procedure of the adjustment processing will be described later with reference to FIG.
  • the information processing apparatus 101 determines a FAQ to be output from a plurality of FAQs based on the adjusted priority order (step S1807).
  • the information processing apparatus 101 outputs the determined FAQ to be output as a search result for the input search word (step S1808).
  • the information processing apparatus 101 calculates the overall correct rate in the search word based on the result of the adjustment process in step S1805 (step S1809). Then, the information processing apparatus 101 stores the calculated overall accuracy rate in the overall accuracy rate table 1200 in association with the date of the current day (step S1810), and ends a series of processing according to the flowchart.
  • the information processing apparatus 101 If the FAQ is not identified in step S1802, the information processing apparatus 101 outputs a search result indicating that the FAQ has not been searched for the input search word. Further, when only one FAQ is specified, the information processing apparatus 101 outputs the specified FAQ as a search result for the input search word.
  • step S1806 Next, a specific processing procedure of the adjustment process in step S1806 will be described.
  • FIG. 19 is a flowchart showing an example of a specific processing procedure of the adjustment processing.
  • the information processing apparatus 101 determines whether there is an unselected FAQ whose access efficiency not selected from the first candidate is lower than the BP value (step S1901).
  • step S1901 when there is an unselected FAQ (step S1901: Yes), the information processing apparatus 101 selects an FAQ whose access efficiency not selected from the first candidate is lower than the BP value (step S1902). Next, the information processing apparatus 101 searches for a FAQ whose access efficiency exceeds the GP value among the second candidates (step S1903).
  • the information processing apparatus 101 determines whether or not a FAQ having an access efficiency exceeding the GP value has been searched (step S1904).
  • the FAQ is searched (step S1904: Yes)
  • the information processing apparatus 101 replaces the FAQ selected in step S1902 with the FAQ searched in step S1903 (step S1905), and returns to step S1901.
  • step S1904 when the FAQ is not searched (step S1904: No), the information processing apparatus 101 randomly selects one of the FAQs from the second candidate (step S1906). The information processing apparatus 101 replaces the FAQ selected in step S1902 with the FAQ selected in step S1906 (step S1907), and returns to step S1901.
  • step S1901 if there is no unselected FAQ whose access efficiency is lower than the BP value (step S1901: No), the information processing apparatus 101 returns to the step that called the adjustment process. Thereby, the priority order of a plurality of FAQs searched according to the search word can be adjusted.
  • Level adjustment processing procedure of the information processing apparatus 101 Next, the level adjustment processing procedure of the information processing apparatus 101 will be described with reference to FIG.
  • the Level adjustment processing is processing for adjusting Level included in the above formula (2) and the above formula (3), and is performed at regular intervals such as one day, one week, and one month.
  • FIG. 20 is a flowchart illustrating an example of the Level adjustment processing procedure of the information processing apparatus 101.
  • the information processing apparatus 101 refers to the overall accuracy rate table 1200 and calculates an average overall accuracy rate for each day (step S2001).
  • the information processing apparatus 101 performs regression analysis based on the calculated average overall correct answer rate for each day (step S2002).
  • the information processing apparatus 101 determines whether or not the access efficiency is increasing (step S2003).
  • the access efficiency tends to increase (step S2003: Yes)
  • the information processing apparatus 101 increases the level by a preset increase amount (step S2004), and ends the series of processes according to this flowchart.
  • step S2003 if the access efficiency does not tend to increase (step S2003: No), the information processing apparatus 101 determines whether the access efficiency is decreasing (step S2005). If the access efficiency is in a downward trend (step S2005: Yes), the information processing apparatus 101 lowers the Level by a preset reduction amount (step S2006), and ends the series of processes according to this flowchart. .
  • step S2005 when the access efficiency does not tend to decrease (step S2005: No), the information processing apparatus 101 ends the series of processes according to this flowchart.
  • the Level can be adjusted based on the tendency of the access efficiency of the entire system for the FAQ output according to the search word. As a result, it is possible to prevent the FAQ from being actively exchanged between the first candidate and the second candidate, or to frequently exchange the FAQ between the first candidate and the second candidate. In other words, it is possible to adjust the number of FAQs exchanged between the first candidate and the second candidate.
  • a plurality of FAQs corresponding to the search word are specified including a priority order using a search algorithm.
  • the search algorithm is, for example, an algorithm using similarity calculated using the TF-IDF method.
  • the access efficiency in the search word can be calculated for each of the identified plurality of FAQs with reference to the chat log DB 230. Then, according to the information processing apparatus 101, the priority order of a plurality of FAQs is adjusted based on the calculated access efficiency of each FAQ, and one of the plurality of FAQs output based on the adjusted priority order 1 or A plurality of FAQs can be determined and output.
  • the priority of the FAQ specified by the search algorithm using the TF-IDF method or the like is adjusted according to the access efficiency in the search word based on the past access history, and the FAQ output as the search result for the search word is set.
  • the access efficiency is an index value indicating the rate at which the FAQ is selected when the FAQ is output for the search word. For example, the access efficiency of the FAQ with a small number of past accesses when a search word identical or similar to the search word input this time is input becomes low.
  • the information processing apparatus 101 when specifying a plurality of FAQs, it is possible to specify a first candidate as an output candidate from the plurality of FAQs based on the priority order. Then, according to the information processing apparatus 101, based on the calculated access efficiency, a part or all of the first candidate is replaced with a part or all of the second candidate other than the first candidate among the plurality of FAQs.
  • the priority order of a plurality of FAQs can be adjusted. Specifically, for example, the information processing apparatus 101 can replace the FAQ whose access efficiency is lower than the BP value among the first candidates with the FAQ whose access efficiency is higher than the GP value among the second candidates.
  • the FAQ in which the selection operation is less than a predetermined standard is machine-learned as incorrect answer teacher data and displayed on one screen.
  • Other FAQs that are not selected as candidates can be easily displayed as display candidates by search.
  • the FAQ that is determined to have poor access efficiency among the first candidates is replaced with the FAQ that is determined to have good access efficiency among the second candidates, and the FAQ that is output as a search result for the search word is optimized. can do.
  • the information processing apparatus 101 when there is no FAQ in which the access efficiency exceeds the GP value among the second candidates, one of the second candidates is randomly selected, and the first candidate The FAQ whose access efficiency is lower than the BP value can be replaced with the selected FAQ.
  • the first candidate has a FAQ with poor access efficiency
  • the second candidate does not have a FAQ with good access efficiency
  • it can be forcibly replaced with any FAQ of the second candidate.
  • the number of FAQs to be exchanged between the first candidate and the second candidate can be adjusted based on the access history of a plurality of FAQs. Specifically, for example, when the information processing apparatus 101 determines that the access efficiency is decreasing from the access history of a plurality of FAQs, the information processing apparatus 101 sets the number of FAQs to be exchanged between the first candidate and the second candidate. Can be increased. Further, the information processing apparatus 101 can reduce the number of FAQs exchanged between the first candidate and the second candidate when it is determined from the access history of a plurality of FAQs that the access efficiency is increased. .
  • the number of FAQs exchanged between the first candidate and the second candidate can be adjusted based on the tendency of the access efficiency of the entire system with respect to the FAQ output according to the search word. For example, if the access efficiency of the entire system is in a downward trend, the FAQ can be adjusted so as to be actively exchanged between the first candidate and the second candidate. On the other hand, if the access efficiency of the entire system tends to increase, it can be adjusted so that the FAQ is not frequently exchanged between the first candidate and the second candidate.
  • the information processing apparatus 101 when one or a plurality of FAQs to be output are determined, a search is performed based on the result of replacing part or all of the first candidates with part or all of the second candidates each time.
  • the overall correct answer rate in the word can be calculated. Then, according to the information processing apparatus 101, it is possible to determine whether the access efficiency is decreasing or increasing based on the time-series change of the calculated overall accuracy rate.
  • the order position where one or a plurality of FAQs included in the second candidate determined to be output by replacement is included in the first candidate that is no longer output as the replacement target.
  • the order position of FAQs to be set can be used.
  • the FAQ output as the search result for the search word can be optimized based on the access efficiency of each FAQ at the time of the search.
  • the FAQ system is for chatbots with a small number of FAQs arranged in the display frame, it is possible to narrow down the FAQs expected by the user with high accuracy, and the convenience of the user can be improved.
  • FAQ search results may be arranged over a plurality of pages.
  • a button for switching pages is provided, the top N FAQs with high priority are displayed on the first page, and other FAQs are prioritized. You may display on the 2nd page according to order.
  • the information processing apparatus 101 causes the adjustment unit 704 to respond to past selection operations for each of the search result items arranged on the second and subsequent pages among the plurality of search result items arranged over the plurality of pages. To identify the correct search result item.
  • the search result item arranged on the first page corresponds to the first candidate described above.
  • Search result items arranged on the second page and thereafter correspond to the second candidate described above.
  • the correct search result item corresponds to the second candidate FAQ to be replaced with the first candidate FAQ.
  • the adjustment unit 704 refers to the flow line analysis result table 900, and selects the FAQ with the access efficiency exceeding the GP value from among the FAQs arranged on the second page and subsequent pages. As specified.
  • the information processing apparatus 101 uses the adjustment unit 704 to execute the first machine learning using the specified correct search result item as the correct teacher data. Specifically, for example, the adjustment unit 704 adjusts the priority order of a plurality of FAQs by replacing the identified search result item of the correct answer as the correct teacher data with the search result item arranged on the first page.
  • the search result item to be replaced on the first page is, for example, a FAQ whose access efficiency is lower than the BP value.
  • the information processing apparatus 101 applies the learning result of the first machine learning by the determination unit 705. Then, the information processing apparatus 101 causes the output unit 706 to display a plurality of search result items limited to the number that can be accommodated on one screen.
  • the plurality of search result items to be displayed are, for example, FAQs 611 to 613 shown in FIG. Specifically, for example, the determination unit 705 determines the search result item arranged on the first page as an output target FAQ. Then, the output unit 706 transmits information indicating the determined FAQ to be output to the terminal 201 as a search result for the search word.
  • the information processing apparatus 101 uses the adjustment unit 704 to specify an incorrect answer search result item according to the selection operation of the displayed search result items.
  • the adjustment unit 704 refers to the flow line analysis result table 900 and identifies, as the incorrect answer search result item, the FAQ whose access efficiency is lower than the BP value among the FAQs arranged on the first page. To do.
  • the information processing apparatus 101 uses the adjustment unit 704 to execute the second machine learning using the specified incorrect answer search result item as incorrect answer teacher data. Specifically, for example, the adjustment unit 704 replaces the specified incorrect answer search result item with incorrect answer teacher data with the search result item arranged on the second and subsequent pages, and prioritizes a plurality of FAQs. Adjust.
  • the search result item that is the target of page replacement after the second page is, for example, a FAQ in which the access efficiency exceeds the GP value.
  • the information processing apparatus 101 uses the determination unit 705 to apply the learning result of the second machine learning and select a search result item. Then, the information processing apparatus 101 causes the output unit 706 to display the selected search result item. Specifically, for example, the determination unit 705 determines the search result item arranged on the first page as an output target FAQ. Then, the output unit 706 transmits information indicating the determined FAQ to be output to the terminal 201 as a search result for the search word.
  • the FAQ output as the search results for the search words is optimized according to the access efficiency in the search words based on the past access history. be able to.
  • the answer output method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
  • This answer output program and machine learning program are read by a computer such as a hard disk, flexible disk, CD (Compact Disc) -ROM, MO (Magneto-Optical disk), DVD (Digital Versatile Disk), or USB (Universal Serial Bus) memory. It is recorded on a possible recording medium and executed by being read from the recording medium by a computer. Further, the answer output program and the machine learning program may be distributed through a network such as the Internet.
  • Information processing apparatus 110 710 Storage unit 200 Answer output system 201 Terminal 210 Network 220 FAQ master 230 Chat log DB 300 bus 301 CPU 302 Memory 303 I / F 304 disk drive 305 disk 600 inquiry screen 610 display frame 701 receiving unit 702 specifying unit 703 calculating unit 704 adjusting unit 705 determining unit 706 output unit 800 flow line analysis source information 900 flow line analysis result table 1200 overall accuracy rate table

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報処理装置(101)は、質問データの入力を受け付けた場合、検索アルゴリズムを用いて質問データに対応する複数の回答候補データを、優先順位を含めて特定する。情報処理装置(101)は、過去の回答候補データへのアクセス履歴を記憶する記憶部(110)を参照して、特定した複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、複数の回答候補データそれぞれに対する質問データによるアクセス率を算出する。情報処理装置(101)は、算出したアクセス率に基づいて、複数の回答候補データの優先順位を調整する。情報処理装置(101)は、調整後の優先順位に基づいて複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する。

Description

回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム
 本発明は、回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラムに関する。
 近年、チャットボットと呼ばれる技術を利用したFAQ(Frequently Asked Question)システムを導入するコールセンサが増えている。チャットボットは、人工知能を利用して、人間との対話やメッセージのやりとりを行うコンピュータシステムである。
 先行技術としては、ヒットした各サイトについて、所定のアルゴリズムでそれぞれ計算したスコアに応じた順位データを基礎として、各サイトを表示する順位を決定する際、あらかじめ決められたタイミングで、順位データに対して、シャッフル対象範囲ごとに、スコアを無視するシャッフルを行い、各サイトを表示する順位を決定するものがある。
特開2010-134885号公報
 しかしながら、従来技術では、入力された質問に対して出力する回答候補を最適化することが難しい。例えば、既存の検索アルゴリズムでは、過去に一度もアクセスされていないものについても回答候補として出力されてしまうことがある。
 一つの側面では、本発明は、質問に対して出力する回答候補データを最適化することを目的とする。
 1つの実施態様では、質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、回答出力プログラムが提供される。
 また、1つの実施態様では、複数ページに渡って配置した複数の検索結果アイテムのうち、第2ページ以降のページに配置した検索結果アイテムのそれぞれに対する過去の選択操作に応じて正解の検索結果アイテムを特定して、特定した該正解の検索結果アイテムを正解教師データとして第1の機械学習を実行し、前記第1の機械学習の学習結果を適用して、1画面に収まる数に制限した複数の検索結果アイテムを表示し、表示した該複数の検索結果アイテムの選択操作に応じて不正解の検索結果アイテムを特定して、特定した該不正解の検索結果アイテムを不正解教師データとして第2の機械学習を実行し、前記第2の機械学習の学習結果を適用して、検索結果アイテムを選択する、機械学習プログラムが提供される。
 また、1つの実施態様では、検索結果を複数ページに渡って表示可能な状況における検索結果アイテムの選択操作に応じて正解検索結果アイテムを特定して、正解教師データとして機械学習された検索システムで、1画面で表示可能な数に制限して検索結果アイテムを表示可能な状況において検索処理を実行させた場合に、前記1画面で表示された検索アイテムに対する選択操作に応じて不正解検索結果アイテムを特定して、不正解教師データとして機械学習する、機械学習プログラムが提供される。
 また、1つの実施態様では、1画面で表示可能な数に制限して複数の検索結果アイテムを選択して提示し、提示した前記複数の検索結果アイテムについて、選択操作が所定の基準を下回る検索結果アイテムを不正解教師データとして機械学習して、前記1画面で表示される候補として選択されなかった他の検索結果アイテムが検索による表示候補にあがりやすくする、機械学習プログラムが提供される。
 本発明の一側面によれば、質問に対して出力する回答候補を最適化することができる。
図1は、実施の形態にかかる回答出力方法の一実施例を示す説明図である。 図2は、回答出力システム200のシステム構成例を示す説明図である。 図3は、情報処理装置101のハードウェア構成例を示すブロック図である。 図4は、FAQマスタ220の記憶内容の一例を示す説明図である。 図5は、チャットログDB230の記憶内容の一例を示す説明図である。 図6は、問い合わせ画面600の画面例を示す説明図である。 図7は、情報処理装置101の機能的構成例を示すブロック図である。 図8は、動線分析元情報の具体例を示す説明図である。 図9は、動線分析結果テーブル900の記憶内容の一例を示す説明図である。 図10は、混合行列の具体例を示す説明図(その1)である。 図11は、混合行列の具体例を示す説明図(その2)である。 図12は、全体正解率テーブル1200の記憶内容の一例を示す説明図である。 図13は、平均全体正解率の時系列変化を示す説明図である。 図14は、検索ワードに対応する複数のFAQの一例を示す説明図(その1)である。 図15は、FAQのリランキング例を示す説明図(その1)である。 図16は、検索ワードに対応する複数のFAQの一例を示す説明図(その2)である。 図17は、FAQのリランキング例を示す説明図(その2)である。 図18は、情報処理装置101の回答出力処理手順の一例を示すフローチャートである。 図19は、調整処理の具体的処理手順の一例を示すフローチャートである。 図20は、情報処理装置101のLevel調整処理手順の一例を示すフローチャートである。
 以下に図面を参照して、本発明にかかる回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラムの実施の形態を詳細に説明する。
(実施の形態)
 図1は、実施の形態にかかる回答出力方法の一実施例を示す説明図である。図1において、情報処理装置101は、入力された質問データに対して回答候補データを出力するコンピュータである。質問データは、何らかの問題の解決方法を問うものである。また、質問データは、話し言葉による問いかけであってもよい。質問データは、単語または複数の単語の組み合わせによって表現されてもよく、また、1または複数の文章によって表現されてもよい。
 回答候補データは、質問された問題の解決方法を示す回答の候補や、話し言葉による問いかけに対する回答の候補である。回答候補データは、例えば、FAQである。FAQは、「頻繁に尋ねられる質問」の意味であり、あらかじめ予想される質問データに対して、質問データと回答データとをまとめたものである。
 ここで、オペレータ向けのFAQシステムでは、FAQの検索結果は、複数ページに渡って提示されることが多い。また、各ページに表示可能なFAQの数は、30個程度である。これに対して、チャットボットを利用したFAQシステムでは、FAQの検索結果に対して、ページの考え方がない場合が多い。ページの考え方がない場合、常に第1ページが検索結果となる。また、チャットボットの表示枠に並べられるFAQの数は、3~5個程度であることが多い。
 表示枠に並べられるFAQの数が少なければ、ユーザは、一度に検索結果の内容を俯瞰できる。このため、チャットボットにおけるFAQの検索結果の表示は、表示枠での各FAQの細かい並びよりも、表示枠にユーザが期待するFAQが入っていることが重要であり、より検索精度の高いFAQの絞り込みが求められる。
 ところが、既存の検索アルゴリズムでは、入力された質問に対して出力する回答候補を最適化することが難しい。例えば、TF(Term Frequency)-IDF(Inverse Document Frequency)を利用した検索アルゴリズムでは、特徴語に基づいた回答候補が出力される。
 このため、TF-IDFを利用した検索アルゴリズムでは、特徴語が含まれていれば、過去に一度もアクセスされていないものについても回答候補として出力されてしまうことがある。過去に一度もアクセスされていない回答候補は、質問に対する有効な回答ではない可能性が高い。
 そこで、本実施の形態では、過去の回答候補データへのアクセス履歴をもとに、質問データに対して出力する回答候補データを最適化する回答出力方法について説明する。以下、情報処理装置101の処理例について説明する。
 (1)情報処理装置101は、質問データの入力を受け付けた場合、検索アルゴリズムを用いて質問データに対応する複数の回答候補データを、優先順位を含めて特定する。ここで、検索アルゴリズムは、既存のいかなる検索アルゴリズムであってもよく、例えば、類似度を利用したものがある。
 類似度を利用した検索アルゴリズムでは、例えば、入力された質問データと、あらかじめ用意された質問データとの類似度を求め、類似度の高い質問データを含む回答候補データを特定する。類似度の計算には、例えば、TF-IDFが利用される。TF-IDFを利用した検索アルゴリズムでは、例えば、回答候補データに含まれる特徴語に基づいて、質問データに対応する回答候補データを特定する。
 具体的には、例えば、情報処理装置101は、複数の回答候補データを特定する際に、優先順位に基づいて、複数の回答候補データの中から出力候補とする第1の回答候補データを特定する。また、情報処理装置101は、複数の回答候補データのうち、第1の回答候補データ以外の第2の回答候補データを特定する。
 例えば、チャットボットを利用した既存のFAQシステムでは、第1の回答候補データは、表示枠に表示されるFAQであり、上位3~5個のFAQである。一方、第2の回答候補データは、表示枠に表示されずに切り捨てられていたFAQである。
 図1の例では、入力された質問データXに対応する回答候補データ1~10が優先順位を含めて特定された場合を想定する。また、回答候補データ1~10のうち、回答候補データ1~3を「第1の回答候補データ」とし、回答候補データ4~10を「第2の回答候補データ」とする。
 (2)情報処理装置101は、記憶部110を参照して、特定した複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、複数の回答候補データそれぞれに対する質問データによるアクセス率を算出する。ここで、記憶部110は、過去の回答候補データへのアクセス履歴を記憶する。
 過去の回答候補データへのアクセス履歴は、例えば、過去に入力された質問データと、当該質問データが入力された際に出力された回答候補のうちの選択された回答候補データとの対応関係を示す情報である。また、質問データによるアクセス率は、質問データに対して回答候補データを出力した際に当該回答候補データが選択される割合の高さを示す指標値である。
 図1の例では、回答候補データ1~10にそれぞれに対する質問データXによるアクセス率a1~a10が算出された場合を想定する。
 (3)情報処理装置101は、算出したアクセス率に基づいて、複数の回答候補データの優先順位を調整する。具体的には、例えば、情報処理装置101は、算出したアクセス率に基づいて、第1の回答候補データの一部または全部を、第2の回答候補データの一部または全部と入れ替えて複数の回答候補データの優先順位を調整する。
 より詳細に説明すると、例えば、情報処理装置101は、第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、第2の回答候補データのうちアクセス率が第2の閾値を上回る回答候補データと入れ替える。第1および第2の閾値は、任意に設定可能である。例えば、第1および第2の閾値は、あらかじめ決められた固定値であってもよく、また、運用中のアクセス履歴に応じて動的に調整することにしてもよい。
 図1の例では、第1の回答候補データのうちの回答候補データ2のアクセス率a2が第1の閾値を下回り、第2の回答候補データのうちの回答候補データ7のアクセス率a7が第2の閾値を上回る場合を想定する。この場合、情報処理装置101は、第1の回答候補データのうちの回答候補データ2を、第2の回答候補データのうちの回答候補データ7と入れ替える。
 (4)情報処理装置101は、調整後の優先順位に基づいて複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する。具体的には、例えば、情報処理装置101は、アクセス率が第1の閾値を下回る回答候補データをアクセス率が第2の閾値を上回る回答候補データと入れ替えた後の第1の回答候補データを、出力する1または複数の回答候補データに決定する。そして、情報処理装置101は、決定した1または複数の回答候補データを、入力された質問データに対する回答候補データとして出力する。
 図1の例では、第1の回答候補データのうちの回答候補データ2が回答候補データ7と入れ替えられた後の回答候補データ1,7,3が、出力する複数の回答候補データに決定される。そして、回答候補データ1,7,3が、入力された質問データXに対する回答候補データとして出力される。
 このように、情報処理装置101によれば、既存の検索アルゴリズムにより特定した質問データに対応する複数の回答候補データそれぞれの優先順位を、過去のアクセス履歴に基づく質問データによるアクセス率に応じて調整することができる。これにより、例えば、質問データに対して出力されたときの過去のアクセス回数が極端に少ない回答候補データが出力されてしまうのを防いで、質問データに対する検索結果として出力する回答候補データを最適化することができる。
(回答出力システム200のシステム構成例)
 つぎに、図1に示した情報処理装置101を含む回答出力システム200のシステム構成例について説明する。回答出力システム200は、例えば、チャットボットを利用したFAQシステム、検索システムに適用される。
 図2は、回答出力システム200のシステム構成例を示す説明図である。図2において、回答出力システム200は、情報処理装置101と、複数の端末201(図2の例では、3台)と、を含む。回答出力システム200において、情報処理装置101および複数の端末201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
 ここで、情報処理装置101は、FAQマスタ220、チャットログDB(Database)230を有し、質問データに対応する回答候補データを出力する。以下の説明では、回答候補データとして「FAQ」を例に挙げて説明する場合がある。情報処理装置101は、例えば、サーバである。
 なお、FAQマスタ220およびチャットログDB230の記憶内容については、図4および図5を用いて後述する。
 端末201は、回答出力システム200のユーザが使用するコンピュータである。回答出力システム200のユーザは、例えば、FAQシステムの利用者である。端末201は、例えば、PC(Personal Computer)、スマートフォン、タブレット型PCなどである。
(情報処理装置101のハードウェア構成例)
 図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
 ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
 I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した端末201)に接続される。そして、I/F303は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
 ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
 なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、図2に示した端末201についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、端末201は、上述した構成部のほかに、入力装置、ディスプレイ等を有する。
(FAQマスタ220の記憶内容)
 つぎに、図4を用いて、情報処理装置101が有するFAQマスタ220の記憶内容について説明する。FAQマスタ220は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
 図4は、FAQマスタ220の記憶内容の一例を示す説明図である。図4において、FAQマスタ220は、FAQID、質問および回答のフィールドを有し、各フィールドに情報を設定することで、FAQ(例えば、FAQ400-1,400-2)をレコードとして記憶する。
 ここで、FAQIDは、FAQを一意に識別する識別子である。質問は、FAQを形成する質問を示す質問データである。回答は、質問に対する回答を示す回答データである。質問および回答は、単語または複数の単語の組み合わせによって表現されてもよく、また、1または複数の文章によって表現されてもよい。
 例えば、FAQ400-1は、FAQID「001」の質問「UPS使用中に警告音(アラーム音)が鳴るようになりました。」と、回答「バッテリーの電圧が一定値より下回った場合に、バッテリーの寿命交換を促す目的でランプが点灯し、・・・」と、を含む。
(チャットログDB230の記憶内容)
 つぎに、図5を用いて、情報処理装置101が有するチャットログDB230の記憶内容について説明する。チャットログDB230は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
 図5は、チャットログDB230の記憶内容の一例を示す説明図である。図5において、チャットログDB230は、日付、検索ワードおよび照会FAQのフィールドを有し、各フィールドに情報を設定することで、チャットログ(例えば、チャットログ500-1,500-2)をレコードとして記憶する。
 ここで、日付は、FAQの検索が行われた日付である。例えば、日付は、端末201からの検索ワード(質問データ)の入力を受け付けた日付である。日付には、時刻まで含めることにしてもよい。検索ワードは、入力された質問データである。検索ワードは、単語または複数の単語の組み合わせであってもよいし、1または複数の文章であってもよい。
 照会FAQは、検索ワードに対して出力されたFAQのうち選択操作を受け付けたFAQ、すなわち、照会(選択)されたFAQのFAQIDである。なお、検索ワードに対して出力されたFAQのうち、いずれのFAQも選択されなかった場合、または、「この中にない。」といった所望のFAQがないことを示す選択操作が行われた場合、照会FAQには「NotFound」が設定される。また、検索ワードに対して1件もFAQが出力されなかった、いわゆる、0件ヒットの場合も、照会FAQには「NotFound」が設定される。
 例えば、チャットログ500-1は、日付「2018/3/22」に入力された検索ワード「UPS警告音」に対して出力されたFAQのうち照会FAQ「001」のFAQの選択操作が行われたことを示す。
(問い合わせ画面600の画面例)
 つぎに、図2に示した端末201に表示される問い合わせ画面600の画面例について説明する。以下の説明では、端末201に表示される操作画面のボックス、ボタン等をユーザが選択する操作として、クリック操作を行う場合を例に挙げて説明する。
 図6は、問い合わせ画面600の画面例を示す説明図である。図6において、問い合わせ画面600は、FAQを検索したり、FAQを照会したりする操作画面の一例である。問い合わせ画面600において、ボックス601をクリックすると、検索ワードを入力することができる。
 また、問い合わせ画面600において、ボタン602をクリックすると、ボックス601に入力された検索ワードに対応するFAQを検索することができる。具体的には、ボタン602をクリックすると、ボックス601に入力された検索ワードが、端末201から情報処理装置101に送信される。
 この結果、情報処理装置101から端末201に検索ワードに対する検索結果が送信され、検索されたFAQが表示枠610に優先順位に従ってリスト化されて表示される。ここでは、表示枠610には、優先順位が高い上位3件のFAQが表示される。また、ボックス620には、入力された検索ワードが表示される。
 図6の例では、検索ワード「UPS警告音」に対応するFAQが検索された結果、上位3件のFAQ611~613が表示枠610に表示されている。問い合わせ画面600において、FAQ611~613のいずれかのFAQをクリックすると、当該FAQの内容を照会することができる。例えば、FAQ611をクリックすると、FAQ611の内容(質問データと回答データ)を照会することができる。
 また、表示枠610に表示されたいずれかのFAQがクリックされると、当該FAQが選択されたことを示す選択結果が、端末201から情報処理装置101に送信される。ただし、FAQ614がクリックされると、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果が、端末201から情報処理装置101に送信される。さらに、表示枠610に表示されたいずれのFAQもクリックされず、新たな検索ワードが入力されて次の検索が行われた場合も、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果が、端末201から情報処理装置101に送信される。
(情報処理装置101の機能的構成例)
 図7は、情報処理装置101の機能的構成例を示すブロック図である。図7において、情報処理装置101は、受付部701と、特定部702と、算出部703と、調整部704と、決定部705と、出力部706と、記憶部710と、を含む。受付部701~出力部706は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。記憶部710は、例えば、メモリ302、ディスク305などの記憶装置により実現される。具体的には、例えば、記憶部710は、FAQマスタ220、チャットログDB230などを記憶する。
 受付部701は、質問データの入力を受け付ける。質問データの入力は、例えば、図6に示した問い合わせ画面600において行われる。具体的には、例えば、受付部701は、端末201から、問い合わせ画面600のボックス601に入力された検索ワードを受信することにより、受信した検索ワードを質問データとして入力を受け付ける。
 以下の説明では、入力された質問データを「検索ワード」と表記する場合がある。
 特定部702は、検索アルゴリズムを用いて、入力された検索ワードに対応する複数の回答候補データを、優先順位を含めて特定する。優先順位は、表示する際の順位である。入力された質問データに対応する複数の回答候補データのうち、優先順位が高いものが優先して表示される。
 具体的には、例えば、特定部702は、図4に示したFAQマスタ220を参照して、TF-IDF法を用いて計算される類似度を利用した検索アルゴリズムを用いて、入力された検索ワードに対応する複数のFAQを、優先順位を含めて特定する。特定される複数のFAQは、例えば、類似度が閾値以上のFAQである。
 より詳細に説明すると、例えば、特定部702は、入力された検索ワードを形態素解析して形態素に分割する。つぎに、特定部702は、検索アルゴリズムを用いて、FAQマスタ220から、分解した形態素に対応するFAQを検索する。そして、特定部702は、検索した検索結果(FAQ)を、優先順位を含めて特定する。
 また、特定部702は、優先順位に基づいて、複数の回答候補データの中から第1の回答候補データと第2の回答候補データとを特定する。ここで、第1の回答候補データは、複数の回答候補データのうち、出力候補とする回答候補データである。第2の回答候補データは、複数の回答候補データのうち、第1の回答候補データ以外の回答候補データである。
 具体的には、例えば、特定部702は、入力された検索ワードに対応する複数のFAQのうち、優先順位が高い上位N個のFAQを第1の回答候補データとして特定し、第1の回答候補データ以外の回答候補データを第2の回答候補データとして特定する。Nの値は、任意に設定可能であり、例えば、3~5程度に設定される。
 以下の説明では、回答候補データを「FAQ」と表記する場合がある。また、第1の回答候補データを「第1候補」と表記し、第2の回答候補データを「第2候補」と表記する場合がある。
 算出部703は、過去のFAQへのアクセス履歴を記憶する記憶部710を参照して、特定された複数のFAQのそれぞれにおけるアクセス履歴に基づいて、複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。
 具体的には、例えば、算出部703は、図5に示したチャットログDB230を参照して、特定された複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。ここで、検索ワードにおけるアクセス効率は、図1で説明した質問データによるアクセス率に相当する指標値であり、検索ワードに対してFAQを出力した際に当該FAQが選択される割合の高さを示す。ここでは、アクセス効率が高いほど、FAQが選択される割合が高いことを示す。
 なお、アクセス効率を算出する際に用いるチャットログは、例えば、チャットログDB230内の全てのチャットログであってもよく、また、所定期間内(例えば、日付が直近1年以内)のチャットログであってもよい。
 より詳細に説明すると、例えば、算出部703は、チャットログDB230から、照会FAQにいずれかのFAQIDが設定されたチャットログを取得する。そして、算出部703は、取得したチャットログの検索ワードを形態素解析して、検索ワードを形態素に分割する。つぎに、算出部703は、分割した形態素ごとに、当該形態素を含む検索ワードと、照会FAQとを対応付けて表す動線分析元情報を生成する。
 ここで、図8を用いて、動線分析元情報の具体例について説明する。
 図8は、動線分析元情報の具体例を示す説明図である。図8において、動線分析元情報800は、形態素と検索ワードと照会FAQとを対応付けて表す情報である。形態素は、検索ワードを形態素解析して得られた形態素である。検索ワードは、入力された質問データである。照会FAQは、検索ワードに対して出力されたFAQのうち照会(選択)されたFAQのFAQIDである。
 そして、算出部703は、生成した動線分析元情報に基づいて、特定された複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する。以下、図8に示したような動線分析元情報800に基づいて、検索ワードにおけるアクセス効率を算出する具体的な処理内容の一例について説明する。
 まず、算出部703は、動線分析元情報800を参照して、特定された複数のFAQそれぞれについて、個別アクセス数および全体アクセス数を算出する。ここで、FAQの個別アクセス数は、今回入力された検索ワードの形態素を含む検索ワードが入力された際に当該FAQが選択された回数を示す。FAQの全体アクセス数は、今回入力された検索ワードだけでなく、全ての検索ワードを対象として過去に当該FAQが選択された回数を示す。
 つぎに、算出部703は、特定された複数のFAQそれぞれについて、下記式(1)を用いて、算出した個別アクセス数および全体アクセス数に基づいて、検索ワードにおけるアクセス効率を算出する。ただし、全体アクセス数合計は、複数のFAQそれぞれの全体アクセス数の合計である。
  アクセス効率=(個別アクセス数/全体アクセス数)×(全体アクセス数/全体アクセス数合計)・・・(1)
 なお、上記式(1)における(全体アクセス数/全体アクセス数合計)は、全体アクセス数が少ないFAQについて、(個別アクセス数/全体アクセス数)に対してアクセス効率が過敏に反応しないようにするための調整項である。
 算出されたアクセス効率は、例えば、図9に示すような動線分析結果テーブル900に記憶される。動線分析結果テーブル900は、例えば、メモリ302、ディスク305などの記憶装置により実現される。
 ここで、図9を用いて、動線分析結果テーブル900の記憶内容について説明する。ここでは、検索ワード「キャンセル」が入力された場合を例に挙げて、動線分析結果テーブル900の記憶内容について説明する。
 図9は、動線分析結果テーブル900の記憶内容の一例を示す説明図である。図9において、動線分析結果テーブル900は、優先順位、FAQID、個別アクセス数、全体アクセス数およびアクセス効率のフィールドを有し、各フィールドに情報を設定することで、動線分析結果900-1~900-10をレコードとして記憶する。
 ここで、優先順位は、FAQの優先順位である。FAQIDは、FAQのFAQIDである。個別アクセス数は、FAQの個別アクセス数である。全体アクセス数は、FAQの全体アクセス数である。アクセス効率は、FAQの検索ワードにおけるアクセス効率である。
 図7の説明に戻り、調整部704は、算出されたアクセス効率に基づいて、特定された複数のFAQの優先順位を調整する。具体的には、例えば、調整部704は、算出されたアクセス効率に基づいて、第1候補の一部または全部を、第2候補の一部または全部と入れ替えて、特定された複数のFAQの優先順位を調整する。
 より詳細に説明すると、例えば、調整部704は、動線分析結果テーブル900を参照して、第1候補のうちアクセス効率がBP(Bad Parameter)値を下回るFAQを、第2候補のうちアクセス効率がGP(Good Parameter)値を上回るFAQと入れ替える。
 BP値は、例えば、図1で説明した第1の閾値に対応する。GP値は、例えば、図1で説明した第2の閾値に対応する。BP値には、アクセス効率がBP値を下回っていると、アクセス効率が悪いと判断できる値に設定される。また、GP値には、アクセス効率がGPを上回っていると、アクセス効率がよいと判断できる値に設定される。
 具体的には、例えば、BP値は、下記式(2)を用いて設定することができる。また、GP値は、下記式(3)を用いて設定することができる。ただし、Levelは、任意に設定可能な定数である。初期状態では、Levelには、例えば、初期値「0.8」が設定される。
  BP値=第1候補のうちの最大アクセス効率×(1-Level)・・・(2)
  GP値=第1候補のうちの最大アクセス効率×Level・・・(3)
 また、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQがない場合には、第2候補のうちのいずれかのFAQをランダムに選択することにしてもよい。そして、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQを、ランダムに選択したFAQと入れ替えることにしてもよい。
 なお、FAQをランダムに選択(無作為抽出)する方法としては、既存のいかなる方法を用いることにしてもよい。
 決定部705は、調整後の優先順位に基づいて、複数のFAQの中から、出力対象の1または複数のFAQを決定する。具体的には、例えば、決定部705は、第1候補のうちのアクセス効率がBP値を下回るFAQを、第2候補のうちのアクセス効率がGP値を上回るFAQと入れ替えた後の第1候補を、出力対象のFAQに決定する。
 出力部706は、決定された出力対象の1または複数のFAQを出力する。この際、調整部704による入れ替えによって出力すると決定された第2候補に含まれる1または複数のFAQの出力される順序位置は、例えば、入れ替え対象となって出力されなくなった第1候補に含まれるFAQの順序位置である。
 具体的には、例えば、出力部706は、決定された出力対象のFAQを示す情報を、入力された検索ワードに対する検索結果として端末201に送信する。この結果、端末201において、例えば、図6に示した問い合わせ画面600の表示枠610に、出力対象のFAQが選択可能に表示される。
 また、受付部701は、出力された1または複数のFAQのうち選択されたFAQを示す選択結果を受け付ける。FAQの選択は、例えば、図6に示した問い合わせ画面600において行われる。具体的には、例えば、受付部701は、端末201から、問い合わせ画面600において選択されたFAQを示す選択結果を受信することにより、当該選択結果を受け付ける。
 受け付けた選択結果は、例えば、チャットログDB230に記憶される。具体的には、例えば、受付部701は、選択されたFAQを示す選択結果を受け付けると、当該選択結果を受け付けた日付と、入力された検索ワードと、選択されたFAQのFAQIDとを対応付けて、チャットログDB230に記憶する。
 また、受付部701は、出力された1または複数のFAQのうちいずれのFAQも選択されなかったことを示す未選択結果を受け付ける。具体的には、例えば、受付部701は、端末201から、所望のFAQがないことを示す選択操作が行われたことを示す未選択結果を受信することにより、当該未選択結果を受け付ける。
 受け付けた未選択結果は、例えば、図5に示したチャットログDB230に記憶される。具体的には、例えば、受付部701は、未選択結果を受け付けると、当該未選択結果を受け付けた日付と、入力された検索ワードと、NotFoundとを対応付けて、チャットログDB230に記憶する。
 なお、入力された検索ワードに対応するFAQが1つも特定されなかった、いわゆる、0件ヒットの場合もチャットログDB230は更新される。この場合、例えば、特定部702は、検索ワードが入力された日付と、入力された検索ワードと、NotFoundとを対応付けて、チャットログDB230に記憶する。
 また、調整部704は、特定された複数のFAQのアクセス履歴に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整する。具体的には、例えば、調整部704は、複数のFAQのアクセス履歴からアクセス効率が減少していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を増加させることにしてもよい。
 ここでのアクセス効率は、検索ワードに応じて出力したFAQに対するシステム全体としてのアクセス効率に相当する。また、調整部704は、例えば、複数のFAQのアクセス履歴からアクセス効率が増加していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を減少させることにしてもよい。
 より詳細に説明すると、例えば、まず、調整部704は、出力対象のFAQが決定されると、第1候補の一部または全部を第2候補の一部または全部と入れ替えた結果に基づいて、入力された検索ワードにおける全体正解率を算出する。ここで、全体正解率は、検索ワードに対してどれだけ妥当なFAQ、すなわち、選択されるFAQを出力できたかを示す指標値である。
 例えば、全体正解率は、検索ワードに対応する複数のFAQを、第1候補と第2候補とにどれだけ正しく分類することができたかによって表すことができる。具体的には、例えば、全体正解率は、下記式(4)を用いて、第1候補、第2候補についての混合行列の情報から求めることができる。
 ただし、ACCは、全体正解率である。TPは、第1候補のうち第2候補のFAQと入れ替えられなかったFAQの数である。換言すれば、TPは、第1候補のうち、第1候補として正解であるといえるFAQの数である。TNは、第2候補のうち第1候補のFAQと入れ替えられなかったFAQの数である。換言すれば、TNは、第2候補のうち、第2候補として正解であるといえるFAQの数である。FNは、第1候補のうち第2候補のFAQと入れ替えられたFAQの数である。換言すれば、FNは、第1候補のうち、第1候補として不正解であるといえるFAQの数である。FPは、第2候補のうち第1候補のFAQと入れ替えられたFAQの数である。換言すれば、FPは、第2候補のうち、第2候補として不正解であるといえるFAQの数である。
  ACC=(TP+TN)/(TP+TN+FN+FP)・・・(4)
 ここで、図10および図11を用いて、全体正解率の算出例について説明する。
 図10は、混合行列の具体例を示す説明図(その1)である。図10において、第1候補に含まれるFAQのFAQIDを「152,153,214」とする。また、第2候補に含まれるFAQのFAQIDを「213,154,245,151,215,143,142」とする。また、第1候補のFAQ152が、第2候補のFAQ151と入れ替えられたとする。
 この場合、混合行列1000の情報は、「TP=2,FN=1,TN=6,FP=1」となる。このため、全体正解率は、「ACC=(2+6)/10=0.8」となる。
 図11は、混合行列の具体例を示す説明図(その2)である。図11において、第1候補に含まれるFAQのFAQIDを「121,466,457」とする。また、第2候補に含まれるFAQのFAQIDを「19,455」とする。また、第1候補のFAQ457が、第2候補のFAQ19と入れ替えられた場合を想定する。
 この場合、混合行列1100の情報は、「TP=2,FN=1,TN=1,FP=1」となる。このため、全体正解率は、「ACC=(2+1)/5=0.6」となる。
 算出された全体正解率は、例えば、日付と対応付けて、図12に示すような全体正解率テーブル1200に記憶される。全体正解率テーブル1200は、例えば、メモリ302、ディスク305などの記憶装置により実現される。
 図12は、全体正解率テーブル1200の記憶内容の一例を示す説明図である。図12において、全体正解率テーブル1200は、日付および全体正解率のフィールドを有し、各フィールドに情報を設定することで、全体正解率情報(例えば、全体正解率情報1200-1,1200-2)をレコードとして記憶する。
 ここで、日付は、FAQの検索が行われた日付である。例えば、日付は、端末201からの検索ワード(質問データ)の入力を受け付けた日付である。全体正解率は、FAQの検索が行われたときの全体正解率である。例えば、全体正解率情報1200-1は、日付「2018/3/22」にFAQの検索が行われたときの全体正解率「0.8」を示す。すなわち、全体正解率は、FAQの検索単位に蓄積される。
 つぎに、調整部704は、算出した全体正解率に基づいて、全体正解率の時系列変化を特定する。具体的には、例えば、調整部704は、図12に示した全体正解率テーブル1200を参照して、日ごとの全体正解率の平均値(平均全体正解率)を算出する。平均全体正解率を算出する際に用いる全体正解率は、日付が所定期間内(例えば、直近1年以内)の全体正解率であってもよい。
 図13は、平均全体正解率の時系列変化を示す説明図である。図13において、グラフ1300は、日ごとの平均全体正解率の時系列変化を示すものであり、調整部704によって算出された日ごとの平均全体正解率を、直交座標系(縦軸:平均全体正解率、横軸:時間)にプロットしたものである。
 調整部704は、算出した日ごとの平均全体正解率に基づいて、システム全体としてのアクセス効率の傾向を判定する。具体的には、例えば、調整部704は、算出した日ごとの平均全体正解率に基づき回帰分析を行って、全体正解率の時系列変化を表す直線(例えば、直線1301)の傾きを算出する。そして、調整部704は、算出した直線の傾きに基づいて、アクセス効率が上昇傾向(増加)にあるか、アクセス効率が下降傾向(減少)にあるかを判定する。
 例えば、調整部704は、算出した直線の傾きが所定値α以上であれば、アクセス効率が上昇傾向にあると判定する。一方、調整部704は、算出した直線の傾きが所定値β以下であれば、アクセス効率が下降傾向にあると判定する。なお、所定値α,βは、任意に設定可能である。
 そして、アクセス効率が下降傾向にあると判断した場合、調整部704は、上記式(2)および上記式(3)に含まれるLevelを下げる。これにより、第1候補と第2候補との間で入れ替えが積極的に行われるようにして、第1候補と第2候補との間で入れ替えるFAQの数を増加させることができる。
 一方、アクセス効率が上昇傾向にあると判断した場合、調整部704は、上記式(2)および上記式(3)に含まれるLevelを上げる。これにより、第1候補と第2候補との間で入れ替えが行われるのを抑制して、第1候補と第2候補との間で入れ替えるFAQの数を減少させることができる。
 なお、Levelの下げ幅、上げ幅は、あらかじめ設定されてメモリ302、ディスク305などの記憶装置に記憶されている。また、Levelの調整は、例えば、一定期間(例えば、1日、1週間、1ヶ月など)ごとに行われる。
(FAQのリランキング例)
 つぎに、図14~図17を用いて、FAQのリランキング例について説明する。まず、図14および図15を用いて、検索ワード「キャンセル」が入力された場合のFAQのリランキング例について説明する。
 図14は、検索ワードに対応する複数のFAQの一例を示す説明図(その1)である。また、図15は、FAQのリランキング例を示す説明図(その1)である。図14において、TF-IDF法を利用した検索アルゴリズムを用いて特定された、検索ワード「キャンセル」に対応する10個のFAQが優先順位に従って表示されている。
 ここでは、第1候補は、優先順位が高い上位3個のFAQとする(N=3)。また、各FAQのアクセス効率は、各FAQの個別アクセス数、全体アクセス数から上記式(1)を用いて算出されているものとする。第1候補のうちの最大アクセス効率は、「0.10」である。また、Levelを「Level=0.8」とする。
 この場合、BP値は、上記式(2)から、「BP=0.10×(1-0.8)=0.02」となる。このため、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQ152を入れ替え対象のFAQとして選択する。また、GP値は、上記式(3)から、「GP=0.10×0.8=0.08」となる。このため、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQ151を入れ替え対象のFAQとして選択する。
 なお、第2候補のうちアクセス効率がGP値を上回るFAQが複数存在する場合がある。この場合、調整部704は、例えば、第2候補のうちアクセス効率が最大のFAQを入れ替え対象のFAQとして選択することにしてもよい。
 そして、調整部704は、第1候補のうちのFAQ152を、第2候補のうちのFAQ151と入れ替える。この結果、FAQ152の優先順位が「1」から「7」になり、FAQ151の優先順位が「7」から「1」になり、検索ワード「キャンセル」に対応するFAQの優先順位が調整される。
 この場合、決定部705は、第1候補のうちのFAQ152を、第2候補のうちのFAQ151と入れ替えた後の第1候補を、出力対象のFAQに決定する。この結果、図15に示すように、出力対象のFAQが、「FAQ152,FAQ153,FAQ214」から「FAQ151,FAQ153,FAQ214」に変化する。
 これにより、優先順位「1」のFAQとして、個別アクセス数が「0」であったFAQ152を、個別アクセス数が「8」のFAQ151と入れ替えることができ、検索ワード「キャンセル」に対してより有効なFAQを出力することが可能となる。
 つぎに、図16および図17を用いて、検索ワード「支払い方法は」が入力された場合のFAQのリランキング例について説明する。検索ワード「支払い方法は」は、複数の形態素(支払、方法)を含む検索ワードである。
 図16は、検索ワードに対応する複数のFAQの一例を示す説明図(その2)である。また、図17は、FAQのリランキング例を示す説明図(その2)である。図16において、TF-IDF法を利用した検索アルゴリズムを用いて特定された、検索ワード「支払い方法は」に対応する10個のFAQが優先順位に従って表示されている。
 ここでは、第1候補は、優先順位が高い上位3個のFAQとする(N=3)。また、各FAQのアクセス効率は、各FAQの個別アクセス数、全体アクセス数から上記式(1)を用いて算出されているものとする。第1候補のうちの最大アクセス効率は、「0.03」である。また、Levelを「Level=0.8」とする。
 この場合、BP値は、上記式(2)から、「BP=0.03×(1-0.8)=0.006」となる。このため、調整部704は、第1候補のうちアクセス効率がBP値を下回るFAQ113,FAQ259を入れ替え対象のFAQとして選択する。また、GP値は、上記式(3)から、「GP=0.03×0.8=0.024」となる。
 このため、調整部704は、第2候補のうちアクセス効率がGP値を上回るFAQ261を入れ替え対象のFAQとして選択する。そして、調整部704は、第1候補のうちのFAQ113を、第2候補のうちのFAQ261と入れ替える。この結果、FAQ113の優先順位が「1」から「8」になり、FAQ261の優先順位が「8」から「1」になる。
 ここで、FAQ261以外には、第2候補のうちアクセス効率がGP値を上回るFAQが存在しない。この場合、調整部704は、第2候補のうちFAQ261を除く他のFAQからいずれかのFAQをランダムに選択する。ここでは、第2候補のうちのFAQ262が選択された場合を想定する。
 そして、調整部704は、第1候補のうちのFAQ259を、第2候補のうちのFAQ262と入れ替える。この結果、FAQ259の優先順位が「3」から「4」になり、FAQ262の優先順位が「4」から「3」になり、検索ワード「支払い方法は」に対応するFAQの優先順位が調整される。
 この場合、決定部705は、第1候補のうちのFAQ113,FAQ259を、第2候補のうちのFAQ261,FAQ262と入れ替えた後の第1候補を、出力対象のFAQに決定する。この結果、図17に示すように、出力対象のFAQが、「FAQ113,FAQ263,FAQ259」から「FAQ261,FAQ263,FAQ262」に変化する。
 これにより、優先順位「1」のFAQとして、個別アクセス数が「0」であったFAQ113を、個別アクセス数が「2」のFAQ261と入れ替えることができ、検索ワード「支払い方法は」に対してより有効なFAQを出力することが可能となる。また、優先順位「3」のFAQとして、個別アクセス数が「0」であったFAQ259を、第2候補からランダムに選択したFAQ262と入れ替えてアクセス傾向が現れるのを待つことができる。
(情報処理装置101の回答出力処理手順)
 つぎに、図18を用いて、情報処理装置101の回答出力処理手順について説明する。
 図18は、情報処理装置101の回答出力処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、情報処理装置101は、検索ワードの入力を受け付けたか否かを判断する(ステップS1801)。ここで、情報処理装置101は、検索ワードの入力を受け付けるのを待つ(ステップS1801:No)。
 そして、情報処理装置101は、検索ワードの入力を受け付けた場合(ステップS1801:Yes)、検索アルゴリズムを用いて、入力された検索ワードに対応する複数のFAQを、優先順位を含めて特定する(ステップS1802)。つぎに、情報処理装置101は、優先順位に基づいて、特定した複数のFAQの中から第1候補と第2候補とを特定する(ステップS1803)。
 そして、情報処理装置101は、チャットログDB230を参照して、特定した複数のFAQそれぞれに対する、入力された検索ワードにおけるアクセス効率を算出する(ステップS1804)。つぎに、情報処理装置101は、上記式(2)および上記式(3)を用いて、算出したアクセス効率に基づいて、BP値およびGP値を算出する(ステップS1805)。
 そして、情報処理装置101は、特定した複数のFAQの優先順位を調整する調整処理を実行する(ステップS1806)。なお、調整処理の具体的な処理手順については、図19を用いて後述する。
 つぎに、情報処理装置101は、調整後の優先順位に基づいて、複数のFAQの中から、出力対象のFAQを決定する(ステップS1807)。そして、情報処理装置101は、決定した出力対象のFAQを、入力された検索ワードに対する検索結果として出力する(ステップS1808)。
 つぎに、情報処理装置101は、ステップS1805の調整処理の結果に基づいて、検索ワードにおける全体正解率を算出する(ステップS1809)。そして、情報処理装置101は、当日の日付と対応付けて、算出した全体正解率を全体正解率テーブル1200に記憶して(ステップS1810)、本フローチャートによる一連の処理を終了する。
 これにより、検索ワードに対する検索結果として出力するFAQを最適化することができる。なお、ステップS1802において、FAQが特定されなかった場合には、情報処理装置101は、入力された検索ワードに対してFAQが検索されなかったことを示す検索結果を出力する。また、FAQが1個のみ特定された場合には、情報処理装置101は、特定したFAQを入力された検索ワードに対する検索結果として出力する。
 つぎに、ステップS1806の調整処理の具体的な処理手順について説明する。
 図19は、調整処理の具体的処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、情報処理装置101は、第1候補から選択されていないアクセス効率がBP値を下回る未選択のFAQがあるか否かを判断する(ステップS1901)。
 ここで、未選択のFAQがある場合(ステップS1901:Yes)、情報処理装置101は、第1候補から選択されていないアクセス効率がBP値を下回るFAQを選択する(ステップS1902)。つぎに、情報処理装置101は、第2候補のうちアクセス効率がGP値を上回るFAQを検索する(ステップS1903)。
 そして、情報処理装置101は、アクセス効率がGP値を上回るFAQが検索されたか否かを判断する(ステップS1904)。ここで、FAQが検索された場合(ステップS1904:Yes)、情報処理装置101は、ステップS1902において選択したFAQを、ステップS1903において検索したFAQと入れ替えて(ステップS1905)、ステップS1901に戻る。
 一方、FAQが検索されなかった場合(ステップS1904:No)、情報処理装置101は、第2候補からいずれかのFAQをランダムに選択する(ステップS1906)。そして、情報処理装置101は、ステップS1902において選択したFAQを、ステップS1906において選択したFAQと入れ替えて(ステップS1907)、ステップS1901に戻る。
 また、ステップS1901において、アクセス効率がBP値を下回る未選択のFAQがない場合(ステップS1901:No)、情報処理装置101は、調整処理を呼び出したステップに戻る。これにより、検索ワードに応じて検索された複数のFAQの優先順位を調整することができる。
(情報処理装置101のLevel調整処理手順)
 つぎに、図20を用いて、情報処理装置101のLevel調整処理手順について説明する。Level調整処理は、上記式(2)および上記式(3)に含まれるLevelを調整する処理であり、例えば、1日、1週間、1ヶ月などの一定期間ごとに行われる。
 図20は、情報処理装置101のLevel調整処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、情報処理装置101は、全体正解率テーブル1200を参照して、日ごとの平均全体正解率を算出する(ステップS2001)。つぎに、情報処理装置101は、算出した日ごとの平均全体正解率に基づいて、回帰分析を実行する(ステップS2002)。
 そして、情報処理装置101は、アクセス効率が上昇傾向にあるか否かを判断する(ステップS2003)。ここで、アクセス効率が上昇傾向にある場合(ステップS2003:Yes)、情報処理装置101は、あらかじめ設定された上げ幅分、Levelを上げて(ステップS2004)、本フローチャートによる一連の処理を終了する。
 また、ステップS2003において、アクセス効率が上昇傾向にない場合(ステップS2003:No)、情報処理装置101は、アクセス効率が下降傾向にあるか否かを判断する(ステップS2005)。ここで、アクセス効率が下降傾向にある場合(ステップS2005:Yes)、情報処理装置101は、あらかじめ設定された下げ幅分、Levelを下げて(ステップS2006)、本フローチャートによる一連の処理を終了する。
 また、ステップS2005において、アクセス効率が下降傾向にない場合(ステップS2005:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
 これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向に基づいて、Levelを調整することができる。この結果、第1候補と第2候補との間でFAQの入れ替えが積極的に行われるようにしたり、第1候補と第2候補との間でFAQの入れ替えが頻繁に行われるのを抑制したりして、第1候補と第2候補との間で入れ替えるFAQの数を調整することが可能となる。
 以上説明したように、実施の形態にかかる情報処理装置101によれば、検索ワードの入力を受け付けた場合、検索アルゴリズムを用いて検索ワードに対応する複数のFAQを、優先順位を含めて特定することができる。検索アルゴリズムは、例えば、TF-IDF法を用いて計算される類似度を利用したアルゴリズムである。また、情報処理装置101によれば、チャットログDB230を参照して、特定した複数のFAQそれぞれについて、検索ワードにおけるアクセス効率を算出することができる。そして、情報処理装置101によれば、算出した各FAQのアクセス効率に基づいて、複数のFAQの優先順位を調整し、調整後の優先順位に基づいて、複数のFAQの中から出力する1または複数のFAQを決定して出力することができる。
 これにより、過去のアクセス履歴に基づく検索ワードにおけるアクセス効率に応じて、TF-IDF法等を利用した検索アルゴリズムにより特定したFAQの優先順位を調整して、検索ワードに対する検索結果として出力するFAQを最適化することができる。アクセス効率は、検索ワードに対してFAQを出力した際に当該FAQが選択される割合の高さを示す指標値である。例えば、今回入力された検索ワードと同一または類似の検索ワードが入力された際の過去のアクセス数が少ないFAQのアクセス効率は低くなる。
 また、情報処理装置101によれば、複数のFAQを特定する際に、優先順位に基づいて、複数のFAQの中から出力候補とする第1候補を特定することができる。そして、情報処理装置101によれば、算出したアクセス効率に基づいて、第1候補の一部または全部を、複数のFAQのうち第1候補以外の第2候補の一部または全部と入れ替えて、複数のFAQの優先順位を調整することができる。具体的には、例えば、情報処理装置101は、第1候補のうちアクセス効率がBP値を下回るFAQを、第2候補のうちアクセス効率がGP値を上回るFAQと入れ替えることができる。
 換言すれば、情報処理装置101によれば、提示した複数のFAQ(検索結果アイテム)について、選択操作が所定の基準を下回るFAQを不正解教師データとして機械学習して、1画面で表示される候補として選択されなかった他のFAQが検索による表示候補にあがりやすくすることができる。
 これにより、第1候補のうちアクセス効率が悪いと判断されたFAQを、第2の候補のうちアクセス効率が良いと判断されたFAQと入れ替えて、検索ワードに対する検索結果として出力するFAQを最適化することができる。
 また、情報処理装置101によれば、第2候補のうちアクセス効率がGP値を上回るFAQがない場合には、第2候補のうちのいずれかのFAQをランダムに選択し、第1候補のうちアクセス効率がBP値を下回るFAQを、選択したFAQと入れ替えることができる。
 これにより、第1候補にアクセス効率が悪いFAQがあれば、第2候補にアクセス効率が良いFAQがなくても、第2候補のいずれかのFAQと強制的に入れ替えることができ、FAQの並びが固定化されるのを防いで学習効率を向上させることができる。このため、例えば、検索ワードに対するFAQのアクセス傾向が現れていないようなときに、ランダムに選択したFAQを出力してアクセス傾向が現れるのを待つことができる。
 また、情報処理装置101によれば、複数のFAQのアクセス履歴に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整することができる。具体的には、例えば、情報処理装置101は、複数のFAQのアクセス履歴から、アクセス効率が下降していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を増加させることができる。また、情報処理装置101は、複数のFAQのアクセス履歴から、アクセス効率が上昇していると判定した場合に、第1候補と第2候補との間で入れ替えるFAQの数を減少させることができる。
 これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向に基づいて、第1候補と第2候補との間で入れ替えるFAQの数を調整することができる。例えば、システム全体のアクセス効率が下降傾向にあれば、第1候補と第2候補との間でFAQの入れ替えが積極的に行われるように調整することができる。一方、システム全体のアクセス効率が上昇傾向にあれば、第1候補と第2候補との間でFAQの入れ替えが頻繁に行われないように調整することができる。
 また、情報処理装置101によれば、出力する1または複数のFAQを決定すると、その都度、第1候補の一部または全部を第2候補の一部または全部と入れ替えた結果に基づいて、検索ワードにおける全体正解率を算出することができる。そして、情報処理装置101によれば、算出した全体正解率の時系列変化に基づいて、アクセス効率が下降または上昇しているかを判定することができる。
 これにより、検索ワードに応じて出力したFAQに対するシステム全体のアクセス効率の傾向を判定することができる。
 また、情報処理装置101によれば、入れ替えによって出力すると決定された第2候補に含まれる1または複数のFAQの出力される順序位置を、入れ替え対象となって出力されなくなった第1候補に含まれるFAQの順序位置とすることができる。
 これらのことから、実施の形態にかかる情報処理装置101によれば、検索ワードに対する検索結果として出力するFAQを、検索時点での各FAQのアクセス効率をもとに最適化することができる。これにより、例えば、過去に一度もアクセスされていないようなFAQが出力されるのを防ぐことができる。このため、表示枠に並べられるFAQの数が少ないチャットボット向けのFAQシステムであっても、ユーザが期待するFAQを高精度に絞り込むことが可能となり、ユーザの利便性の向上を図ることができる。
 なお、上述した説明では、FAQの検索結果を複数ページに渡って配置しない、すなわち、FAQの検索結果に対して、ページの考え方を採用しない場合を例に挙げて説明したが、これに限らない。例えば、回答出力システム200において、FAQの検索結果を複数ページに渡って配置することにしてもよい。
 例えば、図6に示したような問い合わせ画面600において、ページの切り替えを行うためのボタンを設け、優先順位が高い上位N件のFAQを1ページ目に表示し、それ以外のFAQについては、優先順位に従って2ページ目に表示することにしてもよい。
 この場合、情報処理装置101は、調整部704により、複数ページに渡って配置した複数の検索結果アイテムのうち、第2ページ以降のページに配置した検索結果アイテムのそれぞれに対する過去の選択操作に応じて正解の検索結果アイテムを特定する。
 ここで、複数ページに渡って配置した複数の検索結果アイテムのうち、第1ページに配置した検索結果アイテムは、上述した第1候補に対応する。第2ページ以降に配置した検索結果アイテムは、上述した第2候補に対応する。また、正解の検索結果アイテムは、第1候補のFAQと入れ替える第2候補のFAQに対応する。具体的には、例えば、調整部704は、動線分析結果テーブル900を参照して、第2ページ以降のページに配置したFAQのうちアクセス効率がGP値を上回るFAQを、正解の検索結果アイテムとして特定する。
 そして、情報処理装置101は、調整部704により、特定した該正解の検索結果アイテムを正解教師データとして第1の機械学習を実行する。具体的には、例えば、調整部704は、特定した該正解の検索結果アイテムを正解教師データとして、第1ページに配置した検索結果アイテムと入れ替えて、複数のFAQの優先順位を調整する。第1ページの入れ替え対象となる検索結果アイテムは、例えば、アクセス効率がBP値を下回るFAQである。
 つぎに、情報処理装置101は、決定部705により、第1の機械学習の学習結果を適用する。そして、情報処理装置101は、出力部706により、1画面に収まる数に制限した複数の検索結果アイテムを表示する。表示される複数の検索結果アイテムは、例えば、図6に示したFAQ611~613である。具体的には、例えば、決定部705は、第1ページに配置した検索結果アイテムを、出力対象のFAQに決定する。そして、出力部706は、決定された出力対象のFAQを示す情報を、検索ワードに対する検索結果として端末201に送信する。
 また、情報処理装置101は、調整部704により、表示した該複数の検索結果アイテムの選択操作に応じて不正解の検索結果アイテムを特定する。具体的には、例えば、調整部704は、動線分析結果テーブル900を参照して、第1ページに配置したFAQのうちアクセス効率がBP値を下回るFAQを、不正解の検索結果アイテムとして特定する。
 そして、情報処理装置101は、調整部704により、特定した該不正解の検索結果アイテムを不正解教師データとして第2の機械学習を実行する。具体的には、例えば、調整部704は、特定した該不正解の検索結果アイテムを不正解教師データとして、第2ページ以降のページに配置した検索結果アイテムと入れ替えて、複数のFAQの優先順位を調整する。第2ページ以降のページの入れ替え対象となる検索結果アイテムは、例えば、アクセス効率がGP値を上回るFAQである。
 つぎに、情報処理装置101は、決定部705により、第2の機械学習の学習結果を適用して、検索結果アイテムを選択する。そして、情報処理装置101は、出力部706により、選択された検索結果アイテムを表示する。具体的には、例えば、決定部705は、第1ページに配置した検索結果アイテムを、出力対象のFAQに決定する。そして、出力部706は、決定された出力対象のFAQを示す情報を、検索ワードに対する検索結果として端末201に送信する。
 これにより、FAQの検索結果を複数ページに渡って配置するFAQシステムであっても、過去のアクセス履歴に基づく検索ワードにおけるアクセス効率に応じて、検索ワードに対する検索結果として出力するFAQを最適化することができる。
 なお、本実施の形態で説明した回答出力方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本回答出力プログラム、機械学習プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本回答出力プログラム、機械学習プログラムは、インターネット等のネットワークを介して配布してもよい。
 101 情報処理装置
 110,710 記憶部
 200 回答出力システム
 201 端末
 210 ネットワーク
 220 FAQマスタ
 230 チャットログDB
 300 バス
 301 CPU
 302 メモリ
 303 I/F
 304 ディスクドライブ
 305 ディスク
 600 問い合わせ画面
 610 表示枠
 701 受付部
 702 特定部
 703 算出部
 704 調整部
 705 決定部
 706 出力部
 800 動線分析元情報
 900 動線分析結果テーブル
 1200 全体正解率テーブル

Claims (15)

  1.  質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
     過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
     算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
     調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
     処理をコンピュータに実行させることを特徴とする回答出力プログラム。
  2.  前記複数の回答候補データを特定する際に、優先順位に基づいて前記複数の回答候補データの中から出力候補とする第1の回答候補データを特定し、
     算出した前記アクセス率に基づいて出力候補とする前記第1の回答候補データの一部または全部を、前記複数の回答候補データのうち前記第1の回答候補データ以外の第2の回答候補データの一部または全部と入れ替えて前記複数の回答候補データの優先順位を調整する、
     ことを特徴とする請求項1に記載の回答出力プログラム。
  3.  前記第1の回答候補データを特定する際に、前記複数の回答候補データのアクセス履歴に基づいて前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を調整する、
     ことを特徴とする請求項2に記載の回答出力プログラム。
  4.  前記複数の回答候補データのアクセス履歴から前記アクセス率が減少していると判定した場合に、前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を増加させる、
     ことを特徴とする請求項3に記載の回答出力プログラム。
  5.  前記複数の回答候補データのアクセス履歴から前記アクセス率が増加していると判定した場合に、前記第1の回答候補データと前記第2の回答候補データとの間で入れ替える回答候補データの数を減少させる、
     ことを特徴とする請求項3に記載の回答出力プログラム。
  6.  前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する際に、入れ替えによって出力すると決定された前記第2の回答候補データに含まれる1または複数の回答候補データの出力される順序位置は、入れ替え対象となって出力されなくなった前記第1の回答候補データに含まれる回答候補データの順序位置である、
     ことを特徴とする請求項2に記載の回答出力プログラム。
  7.  前記検索アルゴリズムは、回答候補データに含まれる特徴語に基づいて、前記質問データに対応する回答候補データを特定するアルゴリズムである、
     ことを特徴とする請求項1に記載の回答出力プログラム。
  8.  前記第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、前記第2の回答候補データのうちアクセス率が第2の閾値を上回る回答候補データと入れ替える、ことを特徴とする請求項2に記載の回答出力プログラム。
  9.  前記第2の回答候補データのうちアクセス率が前記第2の閾値を上回る回答候補データがない場合には、前記第2の回答候補データのうちのいずれかの回答候補データをランダムに選択し、
     前記第1の回答候補データのうちアクセス率が第1の閾値を下回る回答候補データを、選択した前記回答候補データと入れ替える、ことを特徴とする請求項8に記載の回答出力プログラム。
  10.  出力する1または複数の回答候補データを決定すると、前記第1の回答候補データの一部または全部を前記第2の回答候補データの一部または全部と入れ替えた結果に基づいて、前記質問データにおける全体正解率を算出し、
     算出した前記全体正解率の時系列変化に基づいて、前記アクセス率が減少または増加しているかを判定する、
     ことを特徴とする請求項4または5に記載の回答出力プログラム。
  11.  質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
     過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
     算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
     調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
     処理をコンピュータが実行することを特徴とする回答出力方法。
  12.  質問データの入力を受け付けた場合、検索アルゴリズムを用いて前記質問データに対応する複数の回答候補データを、優先順位を含めて特定し、
     過去の回答候補データへのアクセス履歴を記憶する記憶部を参照して、特定した前記複数の回答候補データのそれぞれにおけるアクセス履歴に基づいて、前記複数の回答候補データそれぞれに対する前記質問データによるアクセス率を算出し、
     算出した前記アクセス率に基づいて前記複数の回答候補データの優先順位を調整し、
     調整後の優先順位に基づいて前記複数の回答候補データの中から出力する1または複数の回答候補データを決定して出力する、
     制御部を有することを特徴とする情報処理装置。
  13.  複数ページに渡って配置した複数の検索結果アイテムのうち、第2ページ以降のページに配置した検索結果アイテムのそれぞれに対する過去の選択操作に応じて正解の検索結果アイテムを特定して、特定した該正解の検索結果アイテムを正解教師データとして第1の機械学習を実行し、
     前記第1の機械学習の学習結果を適用して、1画面に収まる数に制限した複数の検索結果アイテムを表示し、
     表示した該複数の検索結果アイテムの選択操作に応じて不正解の検索結果アイテムを特定して、特定した該不正解の検索結果アイテムを不正解教師データとして第2の機械学習を実行し、
     前記第2の機械学習の学習結果を適用して、検索結果アイテムを選択する、
     処理をコンピュータに実行させることを特徴とする機械学習プログラム。
  14.  検索結果を複数ページに渡って表示可能な状況における検索結果アイテムの選択操作に応じて正解検索結果アイテムを特定して、正解教師データとして機械学習された検索システムで、1画面で表示可能な数に制限して検索結果アイテムを表示可能な状況において検索処理を実行させた場合に、前記1画面で表示された検索アイテムに対する選択操作に応じて不正解検索結果アイテムを特定して、不正解教師データとして機械学習する、
     処理をコンピュータに実行させることを特徴とする機械学習プログラム。
  15.  1画面で表示可能な数に制限して複数の検索結果アイテムを選択して提示し、
     提示した前記複数の検索結果アイテムについて、選択操作が所定の基準を下回る検索結果アイテムを不正解教師データとして機械学習して、前記1画面で表示される候補として選択されなかった他の検索結果アイテムが検索による表示候補にあがりやすくする、
     処理をコンピュータに実行させることを特徴とする機械学習プログラム。
PCT/JP2018/013909 2018-03-30 2018-03-30 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム WO2019187120A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020508887A JP7017177B2 (ja) 2018-03-30 2018-03-30 回答出力プログラム、回答出力方法および情報処理装置
PCT/JP2018/013909 WO2019187120A1 (ja) 2018-03-30 2018-03-30 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/013909 WO2019187120A1 (ja) 2018-03-30 2018-03-30 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム

Publications (1)

Publication Number Publication Date
WO2019187120A1 true WO2019187120A1 (ja) 2019-10-03

Family

ID=68059714

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/013909 WO2019187120A1 (ja) 2018-03-30 2018-03-30 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム

Country Status (2)

Country Link
JP (1) JP7017177B2 (ja)
WO (1) WO2019187120A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228585A (ja) * 2002-02-05 2003-08-15 Just Syst Corp ファイル管理方法とこの方法を利用可能なファイル管理装置
JP2005190453A (ja) * 2003-12-02 2005-07-14 Osaka Gas Co Ltd 検索結果表示システムおよび検索結果表示プログラム
JP2007080040A (ja) * 2005-09-15 2007-03-29 Fujitsu Support & Service Kk ヘルプデスク支援方法及び装置並びにヘルプデスク支援プログラム
JP2010086150A (ja) * 2008-09-30 2010-04-15 Yahoo Japan Corp 地域情報検索装置、地域情報検索装置の制御方法、地域情報検索システム、および地域情報検索システムの制御方法
JP2013117921A (ja) * 2011-12-05 2013-06-13 Nippon Telegr & Teleph Corp <Ntt> ランキング関数学習装置、方法、及びプログラム
JP2014228970A (ja) * 2013-05-20 2014-12-08 株式会社Nttドコモ コンテンツ検索結果提供装置及びコンテンツ検索結果提供方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228585A (ja) * 2002-02-05 2003-08-15 Just Syst Corp ファイル管理方法とこの方法を利用可能なファイル管理装置
JP2005190453A (ja) * 2003-12-02 2005-07-14 Osaka Gas Co Ltd 検索結果表示システムおよび検索結果表示プログラム
JP2007080040A (ja) * 2005-09-15 2007-03-29 Fujitsu Support & Service Kk ヘルプデスク支援方法及び装置並びにヘルプデスク支援プログラム
JP2010086150A (ja) * 2008-09-30 2010-04-15 Yahoo Japan Corp 地域情報検索装置、地域情報検索装置の制御方法、地域情報検索システム、および地域情報検索システムの制御方法
JP2013117921A (ja) * 2011-12-05 2013-06-13 Nippon Telegr & Teleph Corp <Ntt> ランキング関数学習装置、方法、及びプログラム
JP2014228970A (ja) * 2013-05-20 2014-12-08 株式会社Nttドコモ コンテンツ検索結果提供装置及びコンテンツ検索結果提供方法

Also Published As

Publication number Publication date
JP7017177B2 (ja) 2022-02-08
JPWO2019187120A1 (ja) 2020-12-03

Similar Documents

Publication Publication Date Title
US11429859B2 (en) Systems and processes for bias removal in a predictive performance model
US11853018B2 (en) Determining causal models for controlling environments
US10942905B2 (en) Systems and methods for cleansing automated robotic traffic
US10719767B2 (en) Computer implemented system for automating the generation of a business decision analytic model
CA3080464A1 (en) Question and answer system and associated method
CN109445884B (zh) 一种功能标签展示方法及终端设备
US8762177B2 (en) Systems and methods for identifying patient preferences with respect to medical treatment attributes
US10706359B2 (en) Method and system for generating predictive models for scoring and prioritizing leads
US20200380043A1 (en) Recording medium, response processing method, response processing apparatus, and response processing system
JPWO2009020092A1 (ja) 関連情報検索システム及び関連情報検索方法
WO2019187120A1 (ja) 回答出力プログラム、回答出力方法、情報処理装置および機械学習プログラム
US8055670B2 (en) System and method for the generation of replacement titles for content items
JP6617605B2 (ja) 需要量予測プログラム、需要量予測方法、及び情報処理装置
CN115454804A (zh) 结构化查询语言的检测方法、装置和电子设备
WO2020250597A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7200577B2 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム。
JP2019079438A (ja) 回答出力プログラム、回答出力方法および情報処理装置
CN118132566B (zh) 数据库索引优化方法
US11429646B2 (en) Non-transitory computer-readable storage medium storing information presentation program, information presentation device, and information presentation method of controlling to display information regarding trouble shooting
US20130031096A1 (en) System and method for the intelligent suggestion and evaluation of content
KR20220165085A (ko) 학습 성과 예측 방법 및 장치
KR20230133116A (ko) 투자 정보 제공 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
CN116932738A (zh) 排障知识库推荐的方法、装置、设备及介质
KR20200002331A (ko) 기술적 지표를 활용한 추천 종목 선정 방법 그를 위한 시스템
JPWO2021095262A5 (ja)

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020508887

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 18911789

Country of ref document: EP

Kind code of ref document: A1