WO2020111329A1 - 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템 - Google Patents

유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템 Download PDF

Info

Publication number
WO2020111329A1
WO2020111329A1 PCT/KR2018/015002 KR2018015002W WO2020111329A1 WO 2020111329 A1 WO2020111329 A1 WO 2020111329A1 KR 2018015002 W KR2018015002 W KR 2018015002W WO 2020111329 A1 WO2020111329 A1 WO 2020111329A1
Authority
WO
WIPO (PCT)
Prior art keywords
question
user
similar
similarity
answer
Prior art date
Application number
PCT/KR2018/015002
Other languages
English (en)
French (fr)
Inventor
현성준
유진혁
박상환
Original Assignee
주식회사 라이크어로컬
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 라이크어로컬 filed Critical 주식회사 라이크어로컬
Priority to PCT/KR2018/015002 priority Critical patent/WO2020111329A1/ko
Publication of WO2020111329A1 publication Critical patent/WO2020111329A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to an automatic answering method and system using similar user matching. More specifically, the present invention relates to a system for analyzing a user's disposition and providing an answer to a user's intention in a question based on the user's disposition, and a system for performing the method.
  • the desired answers are often different depending on the user despite the same questions. That is, it is necessary to grasp the user's intention in the question and provide the information desired by the user in a customized manner.
  • the technical problem to be solved by the present invention is to provide an automatic answering method and system using similar user matching.
  • an automatic answering system that analyzes a question input from a user and automatically generates an answer matches a similar user similar to the user among the questioners included in the collected data
  • User matching unit to;
  • a question matching unit that matches similar questions similar to the input question among the questions included in the collected data;
  • an answer that detects an answer to the similar question as an answer to the input question, based on a user similarity indicating the similarity between the user and the similar user and a question similarity indicating the similarity between the input question and the similar question.
  • Detection unit It may include.
  • a user classification unit for classifying a plurality of users included in the collected data into at least one user group;
  • the user matching unit may further include a user group similar to the user among the classified user groups, and the similar user to a user belonging to the similar user group.
  • a question/answer shaping unit for generating a standardized question by removing keywords from a plurality of questions included in the collected data; And an input unit receiving input of whether to use a canonicalization question from the user and receiving a keyword corresponding to the selected canonicalization question when using the canonicalization question.
  • the answer detection unit calculates a priority of an answer based on the sum of the question similarity and the user similarity, and detects an answer to the input question based on the priority of the answer. have.
  • the answer detection unit may calculate a user similarity weight based on the user's history, and correct the user similarity reflected in the priority using the user similarity weight.
  • the answer detection unit may apply the user similarity weight as the history of the user increases.
  • the answer detection unit may calculate a question similarity weight based on the keyword of the input question, and correct the question similarity reflected in the priority using the question similarity weight.
  • the answer detection unit may calculate the frequency of the keywords included in the answer to the similar question, and apply the higher the question similarity weight as the frequency of the keyword is biased toward a specific keyword.
  • the question matching unit matches the similar question with a question having the same standardized question as the input question among the questions included in the collected data, and at least one of a nomination included in the question, the title of the question, and the content of the question Based on one, the similarity of the question can be calculated.
  • the question matching unit may exclude the question including the specific keyword from the similar question when the input question includes an expression for excluding a specific keyword.
  • the question matching unit may assign a weight greater than the title of the question and the content of the question to the place name included in the question.
  • the user matching unit based on the number of logs of the user, the reference number of logs, and the Pearson correlation coefficient between the user and the plurality of similar user candidates, for the plurality of similar user candidates that have entered the similarity question, the User similarity can be calculated.
  • an automatic answering method for automatically generating an answer by analyzing a question input from a user matches similar users similar to the user among questioners included in the collected data User matching step; A question matching step of matching similar questions similar to the input question among questions included in the collected data; And an answer that detects an answer to the similar question as an answer to the input question, based on a user similarity indicating the similarity between the user and the similar user and a question similarity indicating the similarity between the input question and the similar question.
  • Detection step It may include.
  • the question matching step matches the similar question to a question having the same standardized question as the input question among the questions included in the collected data, and among the names included in the question, the title of the question and the content of the question Based on at least one, the similarity of the question can be calculated.
  • a user group analysis is performed to match a group of similar users, to detect a similar question similar to the input user question, and to detect the content of the detected similar question as an answer to the input question By outputting it, the likelihood that the user intends to output an answer increases, and the user can increase the satisfaction or reliability of the answer.
  • the acquisition time of the answers to the questions can be shortened, and the possibility of utilization as a real-time query response system increases. It is also possible to provide the user with travel information or performance information through the question and answer system. In other words, information reflecting the subjective evaluation of the user can be processed to provide customized information.
  • 1 is a view for explaining the type of question in the question and answer system.
  • FIG. 2 is a view for explaining an automatic answering system according to an embodiment of the present invention.
  • FIG. 3 is a view for explaining in more detail the process of selecting an answer to be automatically provided by the automatic answering system according to an embodiment of the present invention.
  • 4 to 7 are diagrams for explaining a system for automatically answering travel information according to another embodiment of the present invention.
  • FIGS. 8 to 9 are flowcharts for explaining a method for providing an automatic answer according to an embodiment of the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.
  • first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component.
  • the term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.
  • 1 is a view for explaining the type of question in the question and answer system.
  • two types of questions and answers (101, 102) are shown.
  • One is a question (101) that asks about the capital of the Republic of Korea, and the other is a question (102) that asks about places to travel other than Seoul.
  • the question (101) asking the capital of Korea is generally similar.
  • the question 102 asking about the travel area can be seen that various answers have been registered.
  • FIG. 2 is a view for explaining an automatic answering system according to an embodiment of the present invention.
  • the automatic answering system 200 includes a question/answer collecting unit 210, a question/answer shaping unit 220, a question matching unit 230, and a user information collecting unit 260, a user classification unit 270, a user matching unit 280, and an answer detection unit 290.
  • the question/answer collecting unit 210 and the question/answer shaping unit 220 are in charge of collecting and answering questions and answers from the Q&A system 100 in advance to generate a standardized question.
  • the questions and answers collected by the Q&A system 100 will be referred to as unstructured questions in order to help understanding of the invention.
  • the Q&A system 100 is a system in which users' questions and answers are registered. For example, Naver's intellectuals ( http://kin.naver.com ), the following tips ( http://tip.daum.net ), Yahoo's Answer ( http://answers.yahoo.com ), etc.
  • the same service is an example of the Q&A system 100.
  • the Q&A system 100 is a concept including both information stored in the form of questions and answers.
  • social network service may be an example of the Q&A system 100.
  • the tweet of Twitter http://twitter.com
  • various data such as a blog, a specific company's homepage, and news may be an example of the Q&A system 100. That is, any place where there is data that can be extracted in the form of questions and answers can be an example of the Q&A system 100.
  • the Q&A system 100 may be operated by a subject operating the automatic answering system 200 or may be an external system.
  • one operating entity operates the Q&A system 100 where users can register questions and answers to each other while the Q&A system ( After standardizing the questions and answers registered in 100), if other users ask similar questions, the answers of the standardized questions can be matched through the automatic answering system 200 to automatically provide answers even if other users do not answer. have.
  • the question/answer collection unit 210 crawls the data of the external Q&A system 100. Subsequently, the data collected by the question/answer shaping unit 220 can be standardized to provide an automatic answering service. After collecting the unstructured questions from the internal system or the external system, it is necessary to formalize them.
  • a canonicalized question can be created by extracting a keyword from a non-canonicalized question and clustering similar questions except the keyword. For this, various natural language processing algorithms can be used. From the sentence of the question, a word can be extracted through a morpheme analyzer, the part of speech is judged, and among them, keywords can be extracted based on important parts of speech, such as nouns and verbs.
  • Generating a standardized question can provide convenience in the process of asking a user a question, and increase satisfaction in the process of providing an answer.
  • the user can ask a question by filling in only the portion of the keyword that requires input in the canonicalization question. That is, the user can select a standardized question such as "Please recommend an OO restaurant near OO” and then enter a keyword such as "Gangnam” or "Spaghetti” as a keyword. Or simply select the same standardized question and enter keywords such as "Hongdae” and "Japanese food” as keywords to complete the question.
  • the accuracy of analysis of questions can be improved by using standardized questions.
  • the user can use the automatic answering system 200 through unstructured questions, when using the automatic answering system 200 through standardized questions, as the accuracy of analysis of the question increases, the user can provide the intended answer. The likelihood is high and this can increase user satisfaction and reliability.
  • the similarity of questions to be described later is calculated to some extent in advance, there is an effect that the accuracy of the automatic answer becomes higher.
  • the time required to analyze the question can be reduced, and the acquisition time of the answer to the question can be shortened. Through this, the possibility of utilization as a real-time query response system can be increased.
  • the canonicalized question when generating a canonicalized question using an unformalized question, canonicalized question can be generated by dividing it into categories so that users can more easily search for the canonicalized question.
  • the user can simply ask a question by selecting a category he or she wants to ask, selecting one of the canonicalized questions belonging to the corresponding category, and entering an empty keyword.
  • the process of generating the formalized question is not essential, and the user may directly input an unstructured question such as "Please tell me a cafe with good atmosphere near Sillim Station" in the automatic answering system 200. Even if an unstructured question is input in this way, a keyword can be extracted and matched with a question-answer stored in the automatic answering system 200 to automatically provide an answer to the user.
  • the question/answer collecting unit in FIG. 2 ( 210) and the question/answer shaping unit 220 are marked with a dotted line.
  • the question/answer collection unit 210 collects questions and answers from the internal/external Q&A system 100 and stores them in the database (not shown) of the automatic answering system 200, the questioner terminal 300 later If you ask a standardized question or a non-standardized question through, you can measure the similarity to the existing question stored in the database and automatically provide an answer without waiting for another user's answer.
  • the answer desired by the user may vary depending on whether the question 101 asks for an objective fact or the question 102 asks for a subjective evaluation. Therefore, when matching the question-answer data stored in the database with the unstructured question entered by the interrogator or the unstructured question with only the keyword, the answer is automatically provided and the user's tendency is determined and the answer is not simply matched. Need to match.
  • the user information collection unit 260 may collect the user's personal information and the user's histories.
  • the user's personal information means information such as the user's gender, age, and residential area, and the user history may be a log of activities of users using the automatic answering system 200. In other words, it may be content read by the user, questions and answers viewed by the user, or content previously answered by the user to other users.
  • the user classifying unit 270 may cluster a user based on the collected user information to create a user group, and compare users belonging to the same group to match the user with users of similar tendencies. For example, in the automatic answering system 200 that provides movie information, the user's movie viewing history, histories that users have rated on the movie, etc. are collected, a group of users who like action movies, users of melody movies You can classify groups, groups of users who like thriller movies, and more. And when the user asks, "What movie do you have to watch these days?" Each group can provide different answers even though it is the same question.
  • a user group can be created in advance, and a user with a similar tendency can be selected by matching the user who asked the question with the user group.
  • the process of collecting user information and classifying the users may also be performed as a pre-processing process.
  • the process of collecting the user's information and classifying the user is an essential process, it can be seen in FIG. 2 that the user information collection unit 260 and the user classification unit 270 have been processed by a solid line.
  • a user's question is registered through the interrogator terminal 300, a user group that has been classified in advance with the user who asked the question in the user matching unit 280 Match the, and the question matching unit 230 matches a question collected by the user and a previously collected question.
  • the priority of the answer is calculated by the answer detection unit 290 based on the question similarity matched by the question matching unit 230 and the user similarity matched by the user matching unit 280. And finally, the answer to be automatically provided to the questioner can be selected. At this time, the answer with the highest priority may be selected and provided, or a plurality of answers may be provided, but a plurality of answers may be arranged and provided according to the priority.
  • the question similarity may be adjusted to be reflected more, or the user similarity may be reflected more. In each case, whether to further reflect the question similarity or the user similarity will be described in more detail in FIG. 3 later.
  • FIG. 3 is a view for explaining in more detail the process of selecting an answer to be automatically provided by the automatic answering system according to an embodiment of the present invention.
  • the automatic answering system 200 proposed in the present invention was examined through FIG. 2.
  • the automatic answering system 200 proposed in the present invention collects question-answer data through the Q&A system 100 in advance and stores it in a database.
  • the process of formalizing the question can be selectively performed.
  • the user who asked the question can be collected and the users can be classified into a plurality of groups.
  • a query similar to the entered question is searched in the database, and a group of users having a similar tendency with the corresponding questioner is searched. Thereafter, the question similarity between the question stored in the database and the entered question is calculated, and the user similarity between the user who asked the question stored in the database and the corresponding questioner is calculated. Then, the priority of the answer is calculated based on the question similarity and the user similarity, and the answer is automatically provided based on this.
  • FIG. 3 the process of calculating the priority for selecting an answer is illustrated in FIG. 3.
  • a question 102 asking for a subjective evaluation a question “Please recommend a region where you can travel without Seoul” is stored in the database in advance.
  • the user who asked the corresponding question stored in the database is User A, and a total of three users B, C, and D respectively answered the question of User A in the Q&A system 100.
  • user A can see that user C has selected the answer “Chuncheon is good ⁇ ” from user C.
  • the automatic answering system 200 compares the group to which the user E belongs and the group of questioners of the questions stored in the database to match the user group, compares the questioners belonging to the user group matched with the questioner, and calculates user similarity, User E can compare a question and a question stored in a database to calculate the question similarity.
  • the answer detection unit 290 calculates the priority of the answer based on the user similarity and the question similarity.
  • FIG. 3 shows a case of calculating the priority by simply summing the user similarity and the question similarity.
  • priority can be calculated by various formulas.
  • the priority may be calculated using the user similarity weight and the question similarity weight. This can be expressed as an equation.
  • Equation 1 is also an example to help the understanding of the invention, and is not intended to limit the invention. Therefore, the user similarity weight and the question similarity weight may be reflected in different ways. For example, the user similarity may be multiplied by the user similarity weight rather than multiplied by the user similarity and the user similarity weight. In that case, it will be expressed as Equation 2 below.
  • priority can be calculated based on user similarity and question similarity, and an answer can be automatically provided based on the priority.
  • the automatic answering system 200 provides an automatic answer of “Chuncheon” based on the answer of the user C, which is the answer selected by the user A, to the question of the user E “recommend a destination near Seoul”. can see.
  • weights may be applied to the calculated user similarity and question similarity, respectively.
  • the user similarity weight is an index indicating the reliability of the calculated user similarity
  • the question similarity weight is an index indicating the reliability of the calculated question similarity.
  • the weight of the question similarity may be differently applied according to whether the question is a question 101 asking for an objective fact or a question 102 asking a subjective evaluation.
  • the question 101 asking for an objective fact since there is less need for a different answer depending on the user, an automatic answer can be provided by applying a high question similarity weight.
  • the users are divided into groups and matched based on the user's personal information or the user's history. At this time, the more information about the user, the more the user's history, the more reliable the matching. Therefore, if the user's history is large, an automatic answer can be provided by applying a high user similarity weight.
  • the automatic answering system 200 has an advantage of providing answers in real time.
  • the automatic answering system 200 proposed in the present invention has been described above.
  • the automatic answering system 200 proposed in the present invention may be more useful to automatically answer the question 102 asking for a subjective evaluation than the question 101 asking for an objective fact.
  • the description will be continued with a specific example of an automatic answering system for travel information.
  • 4 to 7 are diagrams for explaining a system for automatically answering travel information according to another embodiment of the present invention.
  • Travel information is a field where the question 102 asking the subjective evaluation described above is most applicable. This is because questions related to travel, such as destinations and lodging establishments, require different answers depending on the preferences of each user.
  • questions related to travel such as destinations and lodging establishments, require different answers depending on the preferences of each user.
  • a process in which a Chinese traveler is provided with necessary travel information through an automatic answer while traveling in Korea will be described.
  • Table 1 is an example of a Q&A system 100 in which questions/answers in Chinese are obtained. Referring to Table 1, A total of 7 Q&A systems (100) are used to collect questions/answers (210) related to Korean travel in Chinese. You can see that about 280,000 questions and answers have been collected.
  • Q&A system 100 provides external API In some cases, data can be sent through the corresponding API or through a web crawler if no external API is provided. Can be collected.
  • the canonicalization question is divided into categories to the user's terminal 300. You can see what is provided through the application. Travel information, restaurants, Categorize formal questions through categories such as accommodation, location, shopping, beauty, culture, etc. Just entering a keyword can provide convenience to ask a simple question. At this time, the question of formalization It can be continuously updated.
  • Automatic answering system 200 The user can preferentially provide the standardization question of the category that the user is interested in. have. Also, when there are multiple canonicalization questions belonging to the same category, which canonicalization question is given priority It is also possible to personalize what is provided to the user. To do this, the user enters the field of interest when signing up Can receive Or the automatic answering system 200 does not simply provide an automatic answering service, but travels In the case of a portal that provides information, what travel information the user has viewed mainly in the portal By analyzing, you can grasp the field of interest to users.
  • the regularization that the user mainly uses It is also possible to view the question as the user's interest and to provide a standardized question sorted by it. or Analyze the content of questions/answers of the Q&A system 100 that the user has inquired mainly to grasp the user's interests. Can be.
  • pre-processing of the user is performed in addition to pre-processing of the question.
  • the automatic answering system 200 that provides information about the information may be provided as part of a service in the travel information portal. have.
  • personal information such as gender, age, residential area of the user who subscribed to the travel information portal
  • contents provided by the corresponding travel information portal such as what contents the user browsed History information can be collected.
  • Collected data Data includes answer -Author's ID-Response time answer_comment -Commenter-Time to comment answer_like -Answers and likes answer_modify_log -Response modification time attendance -Attendance time contents -Content location-Creation time contents_comment -Comment writing time contents_like -Liked users and content contents_stored -Saved users and content contents_view_log -Users who viewed content and contents-Hours viewed event_comment -Commenting users and events-Commenting time event_like -Events Liked users and events event_participation -Participating users and events-Participating user's real name-Participating user's birthday-Participating user's gender-Participating user's country-Participating user's passport number-Participating user's phone number-Participating user's email-Application date event_stored
  • the user classification unit 270 may classify the user through machine learning. Through machine learning, features to be used for user classification can be selected from various features illustrated in Table 2.
  • the service may be provided through the automatic answering system 200.
  • the user selects a standardized question through an application installed on the terminal 300 and inputs a specific keyword, the question is completed. Alternatively, you can enter the unstructured question freely without selecting a formal question.
  • the user analyzes the morphemes in one question, extracts keywords, and calculates the similarity of the question by comparing with the keywords of about 280,000 questions registered in the database.
  • the similarity of a keyword is, the more similar a question is, so it is possible to calculate the similarity of questions by comparing keywords with each question.
  • Elastic Search is a Lucene-based search engine. Provides a professional search engine with distributed multi-tenant support, along with HTTP web interface and schema-free JSON documents. Elastic Search is developed in Java and is released as open source under the Apache license terms. Elastic Search is developed with a data collection and log parsing engine named Logstash, and an analysis and visualization platform named Kibana. These three products are designed for use as an interlocking solution and are called "Elastic Stack" (formerly ELK Stack).
  • a question with a high number of views of a question may calculate a higher question similarity than a case with a low number of views of a question.
  • the high number of queries is due to the high probability of quality questions and answers.
  • the similarity of questions can be applied differently depending on how long the date and time when the questions and answers are to be prepared is from the current time.
  • the similarity of a question can be calculated as the old question-answer is lower.
  • the question similarity can be applied differently based on whether the questioner has read the question. This is because the answer to the question is often not the answer desired by the questioner if the question is asked again even though the question has already been read.
  • the user similarity is calculated. Specifically, the gender of the user who wrote the question, country, identity, login information, content access information, and the like are compared with that of the question writer. At this time, for convenience of calculation, the user similarity is not calculated by comparing the questioner and the database's question creator 1:1, but first, the user group is checked first, and only the query creator belonging to the group similar to the questioner is searched for user similarity. Can be calculated. By comparing user groups first, the real-time performance of the automatic answering system can be improved.
  • Pearson correlation analysis evaluates the linear relationship between two metric variables. If a change in one variable is proportionally related to a change in another variable, it can be used because it has a linear relationship. However, this is an example for calculating user similarity, and other correlation analysis methods may be applied.
  • the priority of the answer may be calculated by reflecting the question similarity weight and the user similarity weight, respectively.
  • the user similarity weight is an index indicating the reliability of the user similarity. Previously, it was explained that information about a user is collected and used to calculate user similarity. At this time, it can be seen that the more users the user has accumulated, the higher the reliability of the calculated user similarity. In this sense, the user similarity weight can be calculated by the following equation.
  • User similarity weight number of logs of the user / number of base logs
  • the reference log number may be any value. For example, a value that is considered to be a sufficient number of logs to grasp a user's tendency, and a value such as 500 may be set.
  • the distribution of the log number of the user may be analyzed to make the statistical value the reference log number.
  • the average value of the number of logs of the user may be determined as the reference number of logs. If the average number of logs of a user who subscribes to the travel information portal is about 430, and the number of logs of the user who asked the question is 250, the user does not accumulate enough user information to understand the user's disposition.
  • the question similarity weight is also an index indicating the reliability of the question similarity.
  • User similarity is an indicator created to reflect the subjective evaluation of a question, so question similarity is an indicator that the higher the priority of the answer, the more objective the question is. That is, the question similarity weight has a high value in the case of the question 101 asking for an objective fact, depending on whether it is a question 101 asking for an objective fact or a question 102 asking for a subjective evaluation described in FIG. 1.
  • the question similarity weight is determined according to whether the question is a question 101 asking for an objective fact or a question 102 asking a subjective opinion.
  • the process of grasping the nature of the question can be grasped through the distribution diagram of the answer to the question as seen in FIG. 1. Analyzing the questions collected in the database in advance, extracting keywords from the answers and finding the frequency of the keywords shows the same pattern as the normal distribution. In this case, the more biased the answer is to a specific keyword, that is, the higher the frequency of a specific keyword and the lower the frequency of other keywords, it can be regarded as a question that asks an objective fact. This can be expressed as an equation.
  • Question similarity weight frequency of most keywords / total number of answers
  • the question similarity weight may be set as described above so that the question similarity is reflected more than the user similarity as the question 101 asking for an objective fact. At this time, as shown in Equation 4, the question similarity weight has a value between 0 and 1.
  • the question similarity weight may be set by combining a plurality of questions and a plurality of answers.
  • the questions can be clustered.
  • the similarity questions are composed of clusters, and the frequency of answers to each question is analyzed to calculate the question similarity weights of the questions in the cluster. In this case, if the questions belong to the same cluster, the question similarity weights have the same value.
  • each similarity weight is to provide an answer by further reflecting the question similarity or further reflecting the user similarity according to the nature of the question, through which the user's satisfaction with the answer can be increased.
  • the question matching unit 230 may calculate a question similarity for a similar question similar to the input question based on the canonicalized question corresponding to the input question from the user.
  • the question matching unit 230 may match similar questions by selecting a question having the same standardized question as the input question from among questions included in the collected data. Thereafter, the question matching unit 230 may calculate a question similarity between the input question and the similar question by using at least one of the names included in the questions, the titles of the questions, and the contents of the questions.
  • the question matching unit 230 may prevent the question including the specific keyword from being included in the similar question.
  • expressions such as “excluding Seoul”, “not Gangnam” and “except Hongdae” can be regarded as expressions for excluding Seoul, Gangnam and Hongdae from the results, respectively.
  • the question matching unit 230 may prevent a question including the specific keyword from being included in a similar question with respect to expressions for excluding a predetermined specific keyword. More specifically, the question matching unit 230 may select a question having a standardized question and, when matching the similar question, may prevent the question including the specific keyword from being included in the similar question.
  • the question matching unit 230 may assign a larger weight to the names included in the questions.
  • the weight of the question is greater than the title and content of the question. You can calculate the similarity of questions by placing.
  • Equation 5 the question similarity
  • q is the input question
  • Q is one of the similar questions
  • p is a formalization question corresponding to the question
  • sim1 and sim2 are similarity functions represented by values of 0 or more and 1 or less
  • l is included in the question Nomination
  • t is the title and content of the question.
  • the question matching unit 230 calculates the question similarity only when the input question and the similar question have the same standardized question. In addition, it can be seen that the question matching unit 230 assigns a weight 30 higher than the title and content of the question to the place name included in the question.
  • the question matching unit 230 may quantify the degree of similarity between ql and Ql to a value of 0 or more and 1 or less by using sim1 (ql, Ql), which is a similarity measurement function in relation to the place name included in the question. , Using the similarity measurement function sim2(qt, Qt) in relation to the title and content of the question, the degree of similarity between qt and Qt can be quantified to a value of 0 or more and 1 or less.
  • the similarity functions sim1 and sim2 may calculate the similarity according to a predetermined similarity determination criterion.
  • the user matching unit 280 calculates the user similarity based on the number of user logs, the reference log number, and the Pearson correlation coefficient between the user and the plurality of similar user candidates, for a plurality of similar user candidates that have entered the similarity question. can do.
  • the user matching unit 280 may calculate a weight by dividing the number of logs of the user by a reference log number, and calculate the user similarity using the weight and the Pearson correlation coefficient between the user and a plurality of similar user candidates can do.
  • the user matching unit 280 may calculate the user similarity by multiplying the weight and the Pearson correlation coefficient between the user and a plurality of similar user candidates.
  • a process of updating a training model of machine learning that calculates question similarity and user similarity according to feedback of a user who is provided with an automatic answer to a question through the automatic answering system 200 can be seen.
  • a function of receiving feedback through an asterisk for an automatic answer may be provided to the interrogator 300.
  • the training model of machine learning for calculating the question similarity and the user similarity can be updated.
  • FIGS. 8 to 9 are flowcharts for explaining a method for providing an automatic answer according to an embodiment of the present invention.
  • FIG. 8 illustrates a process of inputting a question from a user through a non-standardized question or a standardized question.
  • FIG. 9 illustrates a process of automatically providing answers through user matching and question matching on a question input by a user.
  • the informalization question is input from the user (S1052). If it is determined not to use the canonicalization question, a category is input from the user (S1053).
  • the category is provided in a plurality of categories, and the user can input at least one category among the plurality of categories.
  • a formalization question corresponding to the input category is output (S1054).
  • the user may check the output canonicalization question and input keywords corresponding to the canonicalization question. That is, a keyword corresponding to a canonicalization question is input from the user (S1055). If the canonicalization question is not used, the non-canonical question entered by the user is generated as the entire question, and thus an automatic answer is provided using the canonicalized question.
  • a question is input from a user through the process of FIG. 8 (S1100).
  • similar user groups are matched through user analysis (S1200).
  • the user group is pre-classified as a plurality of users included in the pre-built collection data into at least one user group and stored in the database, and the similar user group asks questions among at least one user group through user analysis.
  • the user who entered the question and the similar user group are matched.
  • the similar questions and answers of the matched similar user groups are detected (S1300).
  • similar questions similar to the input question may be detected from among the questions of the similar user group matched, and an output or submitted answer may be detected as an answer to the input question in response to the detected similar question.
  • the detected answer is output as an answer to the entered question so that the user can check it.
  • a similar user group is matched through user analysis, a similar question similar to the user question entered through question analysis of the matched similar user group is detected, and detected
  • the possibility of outputting the answer intended by the user increases, and the user can increase the satisfaction or reliability of the answer.
  • the time to obtain an answer to the question can be shortened, and the possibility of utilization as a real-time query response system increases.
  • the priority of the answer may be calculated by reflecting the question similarity weight and the user similarity weight, and based on this, an automatic answer may be provided to the user. Through this, even if the same question is asked, an automatic answering service providing different answers according to a user may be provided.
  • the question matching step matches similar questions with questions having the same standardized question as the input questions among questions included in the collected data, and based on at least one of the nomination included in the question, the title of the question, and the content of the question, Question similarity can be calculated.

Landscapes

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

Abstract

본 발명의 일 실시예에 따른, 사용자로부터 입력된 질문을 분석하여 자동으로 답변을 생성하는 자동 답변 시스템은, 수집 데이터에 포함된 질문자 중 상기 사용자와 유사한 유사 사용자를 매칭하는 사용자 매칭부; 상기 수집 데이터에 포함된 질문 중 상기 입력된 질문과 유사한 유사 질문을 매칭하는 질문 매칭부; 및 상기 사용자와 상기 유사 사용자의 유사도를 나타내는 사용자 유사도와 상기 입력된 질문과 상기 유사 질문의 유사도를 나타내는 질문 유사도에 기초하여, 상기 유사 질문에 대한 답변을 상기 입력된 질문에 대한 답변으로 검출하는 답변 검출부; 를 포함할 수 있다.

Description

유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템
본 발명은 유사 사용자 매칭을 이용한 자동 답변 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 사용자의 성향을 분석하고, 사용자의 성향에 기초하여 질문에 담긴 사용자의 의도에 맞는 답변을 제공하는 방법 및 그 방법을 수행하는 시스템에 관한 것이다.
인터넷 및 각종 네트워크가 널리 보급되면서 웹사이트 상에 각종 검색엔진 및 정보검색 사이트가 제공되고 있으며 사용자들로서는 이를 이용하여 웹상의 각종 문서 등에 존재하는 다양한 정보를 쉽고 빠르게 획득하고 있다. 또한, 최근에는 이와 같이 문서형태로 검색정보를 제공하는 기존의 검색엔진에 진일보하여 사용자의 질문을 분석하여 질문에 해당되는 답변을 제공하는 질의 응답 시스템이 개발되어 시행되고 있다.
이 때, 사용자가 의도하는 정보를 정확하게 획득하기 위해서는 답변의 기초가 되는 데이터가 충분하게 마련되어 체계적으로 정리되어 있어야 하며, 검색엔진을 통한 질문의 분석이 정확해야 이루어져야 한다. 따라서, 자동 답변의 신뢰성을 높이기 위해 질문의 형식을 단순화시키거나 정형화시키고 이를 이용하고자 하는 사용자 니즈가 증가하고 있으며, 데이터를 수집하고 분류하기 위한 여러 가지 방법들이 제시되고 있는 실정이다.
또한 정형화 된 질문과 답변을 통해 사용자에게 정보를 제공하는 과정에 있어서도, 동일한 질문인데도 불구하고 사용자에 따라 원하는 답변이 다른 경우가 종종 있다. 즉 질문에 담긴 사용자의 의도를 파악해서, 사용자가 원하는 정보를 맞춤형으로 제공할 필요가 있다.
본 발명이 해결하고자 하는 기술적 과제는 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른, 사용자로부터 입력된 질문을 분석하여 자동으로 답변을 생성하는 자동 답변 시스템은, 수집 데이터에 포함된 질문자 중 상기 사용자와 유사한 유사 사용자를 매칭하는 사용자 매칭부; 상기 수집 데이터에 포함된 질문 중 상기 입력된 질문과 유사한 유사 질문을 매칭하는 질문 매칭부; 및 상기 사용자와 상기 유사 사용자의 유사도를 나타내는 사용자 유사도와 상기 입력된 질문과 상기 유사 질문의 유사도를 나타내는 질문 유사도에 기초하여, 상기 유사 질문에 대한 답변을 상기 입력된 질문에 대한 답변으로 검출하는 답변 검출부; 를 포함할 수 있다.
바람직하게는, 수집 데이터에 포함된 복수의 사용자를 적어도 하나의 사용자 그룹으로 분류하는 사용자 분류부; 를 더 포함하고, 상기 사용자 매칭부는, 상기 분류된 사용자 그룹 중 상기 사용자와 유사한 사용자 그룹을 매칭하고, 상기 유사한 사용자 그룹에 속한 사용자에 대해서 상기 유사 사용자를 매칭할 수 있다.
바람직하게는, 수집 데이터에 포함된 복수의 질문에서 키워드를 제거하여, 정형화 질문을 생성하는 질문/답변 정형화부; 및 상기 사용자로부터 정형화 질문의 이용 여부를 입력받고, 정형화 질문을 이용하는 경우 선택된 정형화 질문에 대응하는 키워드를 입력받는 입력부;를 더 포함할 수 있다.
바람직하게는, 상기 답변 검출부는, 상기 질문 유사도와 상기 사용자 유사도를 합산한 값에 기초하여 답변의 우선 순위를 연산하고, 상기 답변의 우선 순위에 기초하여 상기 입력된 질문에 대한 답변을 검출할 수 있다.
바람직하게는, 상기 답변 검출부는, 상기 사용자의 이력에 기초하여 사용자 유사도 가중치를 산출하고, 상기 사용자 유사도 가중치를 이용하여 상기 우선 순위에 반영되는 상기 사용자 유사도를 보정할 수 있다.
바람직하게는, 상기 답변 검출부는, 상기 사용자의 이력이 많을수록 상기 사용자 유사도 가중치를 높게 적용할 수 있다.
바람직하게는, 상기 답변 검출부는, 상기 입력된 질문의 키워드에 기초하여 질문 유사도 가중치를 산출하고, 상기 질문 유사도 가중치를 이용하여 상기 우선 순위에 반영되는 상기 질문 유사도를 보정할 수 있다.
바람직하게는, 상기 답변 검출부는, 상기 유사한 질문에 대한 답변에 포함된 키워드의 빈도를 연산하고, 상기 키워드의 빈도가 특정 키워드에 편중될수록 상기 질문 유사도 가중치를 높게 적용할 수 있다.
바람직하게는, 상기 질문 매칭부는 상기 수집 데이터에 포함된 질문 중에서 상기 입력된 질문과 동일한 정형화 질문을 갖는 질문으로 상기 유사 질문을 매칭하고, 질문에 포함된 지명, 질문의 제목 및 질문의 내용 중 적어도 하나에 기초하여, 상기 질문 유사도를 산출할 수 있다.
바람직하게는, 상기 질문 매칭부는 상기 입력된 질문에 특정 키워드를 배제하기 위한 표현이 포함되어 있을 때, 상기 유사 질문으로부터 상기 특정 키워드를 포함하는 질문을 배제할 수 있다.
바람직하게는, 상기 질문 매칭부는 상기 질문 유사도를 산출할 때, 상기 질문에 포함된 지명에 대하여 상기 질문의 제목 및 상기 질문의 내용보다 큰 가중치를 부여할 수 있다.
바람직하게는, 상기 사용자 매칭부는 상기 유사 질문을 입력한 복수의 유사 사용자 후보에 대하여, 상기 사용자의 로그 수, 기준 로그 수 및 상기 사용자와 상기 복수의 유사 사용자 후보 간의 피어슨 상관계수에 기초하여, 상기 사용자 유사도를 산출할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른, 사용자로부터 입력된 질문을 분석하여 자동으로 답변을 생성하는 자동 답변 방법은, 수집 데이터에 포함된 질문자 중 상기 사용자와 유사한 유사 사용자를 매칭하는 사용자 매칭 단계; 상기 수집 데이터에 포함된 질문 중 상기 입력된 질문과 유사한 유사 질문을 매칭하는 질문 매칭 단계; 및 상기 사용자와 상기 유사 사용자의 유사도를 나타내는 사용자 유사도와 상기 입력된 질문과 상기 유사 질문의 유사도를 나타내는 질문 유사도에 기초하여, 상기 유사 질문에 대한 답변을 상기 입력된 질문에 대한 답변으로 검출하는 답변 검출 단계; 를 포함할 수 있다.
바람직하게는, 상기 질문 매칭 단계는 상기 수집 데이터에 포함된 질문 중에서 상기 입력된 질문과 동일한 정형화 질문을 갖는 질문으로 상기 유사 질문을 매칭하고, 질문에 포함된 지명, 질문의 제목 및 질문의 내용 중 적어도 하나에 기초하여, 상기 질문 유사도를 산출할 수 있다.
본 발명에 따른 효과는 다음과 같다.
본 발명에서 제안하는 자동 답변 방법을 이용하면 사용자 분석을 통해 유사 사용자 그룹을 매칭하고, 입력된 사용자 질문과 유사한 유사 질문을 검출하고, 검출된 유사 질문의 답변 내용을 입력된 질문에 대한 답변으로 검출하여 출력함으로써, 사용자가 의도하는 답변을 출력할 가능성이 높아지며, 사용자로 하여금 답변의 만족도 또는 신뢰성을 높일 수 있다.
또한, 유사 사용자 그룹과 유사 질문 및 답변을 이용함으로, 질문에 대한 답변의 획득 시간이 단축될 수 있으며, 실시간 질의 응답 시스템으로의 활용 가능성이 높아진다. 이러한 질의 응답 시스템을 통해서 사용자에게 여행 정보나 공연 정보 등을 제공할 수도 있다. 즉 사용자의 주관적인 평가가 반영되는 정보를 가공해서 맞춤형으로 정보를 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 질의 응답 시스템에서 질문의 종류를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 자동 답변 시스템을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 자동 답변 시스템에서 자동으로 제공할 답변을 선택하는 과정을 보다 자세히 설명하기 위한 도면이다.
도 4 내지 도 7은 본 발명의 다른 실시예에 따른 여행 정보 자동 답변 시스템을 설명하기 위한 도면이다.
도 8 내지 도 9는 본 발명의 일 실시예에 따른 자동 답변 제공 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 질의 응답 시스템에서 질문의 종류를 설명하기 위한 도면이다.
도 1을 참고하면 두 종류의 질문과 답변(101, 102)가 도시되어 있다. 하나는 대한민국의 수도를 묻는 질문(101)이며, 다른 하나는 서울 이외에 여행 갈만한 지역을 묻는 질문(102)이다. 두 질문의 답변에서 확인할 수 있듯이, 대한민국의 수도를 묻는 질문(101)은 전반적으로 답변이 유사한 내용이다. 이에 비해서 여행 지역을 묻는 질문(102)은 다양한 답변이 등록된 것을 볼 수 있다.
이 두 질문의 차이점은 하나는 객관적인 사실을 묻는 질문(101)이며, 다른 하나는 주관적인 평가를 묻는 질문(102)이라는 점이다. 객관적인 사실을 묻는 질문(101)는 질문자나 답변자와 무관하게 답변의 내용이 정해지는 경우가 많으나, 주관적인 평가를 묻는 질문(102)은 질문자에 따라서 원하는 답변이 다른 경우가 많다.
"홍대 근처 맛집을 추천해주세요."와 같은 질문이나 "요새 개봉한 영화 중에 볼만한 영화는 뭐가 있나요?"와 같은 질문은 질문자에 따라서 원하는 답변이 다를 수 있기 때문에, 답변에 대한 만족도가 달라질 수 밖에 없다. 그러므로 질의 응답 시스템에서는 고객의 만족도를 높이기 위해서는 사용자의 성향을 파악하고 해당 사용자의 질의에 보다 적절한 답변을 추천할 필요가 있다.
도 2는 본 발명의 일 실시예에 따른 자동 답변 시스템을 설명하기 위한 도면이다.
도 2를 참고하면, 본 발명의 일 실시예에 따른 자동 답변 시스템(200)은 질문/답변 수집부(210), 질문/답변 정형화부(220), 질문 매칭부(230), 사용자 정보 수집부(260), 사용자 분류부(270), 사용자 매칭부(280) 및 답변 검출부(290)를 포함할 수 있다.
질문/답변 수집부(210)와 질문/답변 정형화부(220)는 사전에 Q&A 시스템(100)에서 질문과 답변을 수집해서 이를 전처리 하여 정형화 질문을 생성하는 과정을 담당한다. 이하 발명의 이해를 돕기 위해서 Q&A 시스템(100)에서 수집한 질문과 답변을 비정형화 질문이라 칭하기로 한다.
Q&A 시스템(100)이란 사용자들의 질문과 답변이 등록된 시스템이다. 예를 들면, 네이버의 지식인(http://kin.naver.com), 다음의 팁(http://tip.daum.net), 야후의 앤서즈(http://answers.yahoo.com) 등과 같은 서비스가 Q&A 시스템(100)의 일 예이다. 그러나 포털 사이트의 이러한 Q&A 서비스 외에도 Q&A 시스템(100)은 질문과 답변 형태의 정보가 저장된 것을 모두 포함하는 개념이다. 그런 의미에서 SNS(Social network service)도 Q&A 시스템(100)의 일 예가 될 수 있다. 예를 들면 트위터(http://twitter.com)의 트윗(tweet)도 질의/응답 형태로 트윗이 등록된 경우라면 Q&A 시스템(100)이라 볼 수 있다. 그 외에도 블로그나 특정 회사의 홈페이지, 뉴스 등등 다양한 데이터들이 Q&A 시스템(100)의 일 예가 될 수 있다. 즉 질문과 답변의 형태로 추출이 가능한 데이터가 있는 곳이라면 모두 Q&A 시스템(100)의 예가 될 수 있다.
이러한 Q&A 시스템(100)은 자동 답변 시스템(200)을 운영하는 주체가 운영하는 것일 수도 있고 외부의 시스템일 수도 있다. 동일한 운영 주체가 Q&A 시스템(100)과 자동 답변 시스템(200)은 운영하는 경우에는, 한 운영 주체가 사용자가 서로 질문과 답변을 등록할 수 있는 Q&A 시스템(100)을 운영하는 한편, Q&A 시스템(100)에 등록된 질문과 답변을 정형화 한 후, 다른 사용자들이 유사한 질문을 물어보면 자동 답변 시스템(200)을 통해서 정형화 질문의 답변을 매칭해서 다른 사용자들이 답변을 하지 않더라도 자동으로 답변을 제공할 수 있다.
반면에 자동 답변 시스템(200)을 운영하는 주체가 Q&A 시스템(100)의 운영 주체와 다른 경우에는, 질문/답변 수집부(210)에서 외부의 Q&A 시스템(100)의 데이터를 크롤링(crawling) 한 후, 질문/답변 정형화부(220)가 수집한 데이터를 정형화하여 자동 답변 서비스를 제공할 수 있다. 이처럼 내부 시스템 또는 외부 시스템에서 비정형화 질문을 수집한 후에는 이를 정형화 하는 과정이 필요하다.
정형화 질문을 생성하는 과정은 비정형화 질문에서 키워드를 추출하고, 키워드를 제외한 나머지 부분이 유사한 질문을 클러스터링 하여 정형화 질문을 만들 수 있다. 이를 위해서 다양한 자연어 처리 알고리즘이 사용될 수 있다. 질문의 문장에서 형태소 분석기를 통해 단어를 추출하고, 단어의 품사를 판단하고, 그 중에서 명사나 동사와 같은 중요 품사를 기준으로 키워드로 추출할 수 있다.
예를 들면 "홍대역 근처 족발집 맛집 추천해주세요." "강남역 근처 횟집 추천해주세요." 등과 같은 비정형화 질문을 수집하고, 첫번째 문장에서는 "홍대역", "근처", "족발집", "맛집", "추천"을 단어로 추출하고, 두번째 문장에서는 "강남역", "근처", "횟집", "추천"을 단어로 추출하고, 키워드를 제거하고 남은 문장을 클러스터링 하는 과정을 통해 질문을 정형화 하면 "OO 근처의 OO 맛집을 추천해주세요"와 같은 정형화 질문을 생성할 수 있다.
정형화된 질문을 생성하면 사용자에게 질문을 하는 과정에서도 편의성을 제공할 수 있고, 답변을 제공하는 과정에서도 만족도를 높일 수 있다. 키워드를 생략한 정형화 질문을 사용자에게 제공하면 사용자는 정형화 질문에서 입력이 필요한 키워드 부분만 채우는 것만으로도 질문이 가능하다. 즉 사용자가 "OO 근처의 OO 맛집을 추천해주세요"와 같은 정형화 질문을 선택한 후 키워드로 "강남", "스파게티"와 같은 키워드를 입력하는 것만으로도 질문이 가능하다. 또는 동일한 정형화 질문을 선택한 후 키워드로 "홍대", "일식"과 같은 키워드를 입력하는 것 만으로도 간단하게 질문이 완성된다.
또한 정형화 질문을 이용함으로써 질문의 분석의 정확도를 높일 수 있다. 사용자가 비정형 질문을 통해서도 자동 답변 시스템(200)을 이용할 수 있지만, 정형화 질문을 통해서 자동 답변 시스템(200)을 이용하는 경우에는, 질문에 대한 분석의 정확도가 높아짐에 따라 사용자가 의도하는 답변을 제공할 가능성이 높아지며 이를 통해 사용자의 만족도와 신뢰성을 높일 수 있다. 즉 정형화 질문을 이용하는 경우 후술할 질문 유사도가 사전에 어느 정도 연산이 되어 있기 때문에 자동 답변의 정확도가 더 높아지는 효과가 있다.
또한, 기 생성된 정형화 질문을 이용함으로써, 질문을 분석하는데 소요되는 시간을 줄일 수 있으며, 질문에 대한 답변의 획득 시간이 단축될 수 있다. 이를 통해, 실시간 질의 응답 시스템으로의 활용 가능성이 높아질 수 있다.
그리고 비정형화 질문을 이용하여 정형화 질문을 생성할 때, 사용자들이 보다 정형화 질문의 탐색이 용이하도록 정형화 질문을 카테고리로 나누어서 생성할 수 있다. 사용자가 자신이 질문하고 싶은 카테고리를 선택하고, 해당 카테고리에 속한 정형화 질문 중 어느 한 질문을 선택한 후 비어 있는 키워드를 입력하는 방식으로 간단하게 질문을 할 수 있다.
다만, 정형화 질문을 생성하는 과정은 필수적인 것은 아니며, 사용자는 자동 답변 시스템(200)에 "신림역 근처 분위기 좋은 카페 알려주세요"와 같은 비정형화 질문을 직접 입력할 수도 있다. 이렇게 비정형화 질문을 입력하더라도 키워드를 추출하고 자동 답변 시스템(200)에 저장된 질문-답변과 매칭을 하여 사용자에게 자동으로 답변을 제공할 수 있다.
물론 사전에 데이터베이스에 등록된 질문과 자동 답변 시스템(200)에 사용자가 새롭게 입력한 질문 각각에 대해서 n:n 관계로 유사한 질문을 매칭할 수 있으나, 이 경우에는 많은 연산을 필요로 하게 된다. 그러므로 실시간성을 확보하기 위해서 사전에 질문의 그룹을 생성하고, 사용자의 질문과 질문의 그룹을 매칭해서 유사한 질문을 선별할 수 있다. 이때 질문의 그룹이 바로 정형화 질문에 해당한다.
앞서 설명한 것처럼 질문/답변 수집부(210)와 질문/답변 정형화부(220)에서 비정형화 질문을 수집해서 정형화 질문을 생성하는 전처리 과정은 필수적인 과정은 아니기 때문에, 도 2에서 질문/답변 수집부(210)와 질문/답변 정형화부(220)를 점선으로 묶어서 표시하였다. 다만, 자동 답변 시스템(200)의 사용자 편의성과 만족도를 높이기 위해서는 질문을 정형화 하는 과정을 수행하는 것이 바람직하다.
질문/답변 수집부(210)가 내부/외부의 Q&A 시스템(100)으로부터 질문과 답변을 수집하고 이를 자동 답변 시스템(200)의 데이터베이스(미도시)에 저장하면, 추후에 질문자가 단말기(300)를 통해서 정형화 질문 또는 비정형화 질문을 하면 다른 사용자의 답변을 기다리지 않아도 데이터베이스 저장된 기존의 질문과 유사도를 측정하여 자동으로 답변을 제공할 수 있다.
이때 앞서 도 1에서 설명한 것처럼 객관적인 사실을 묻는 질문(101)인지 주관적인 평가를 묻는 질문(102)인지에 따라 동일한 질문에도 사용자가 원하는 답변이 달라질 수 있음을 살펴보았다. 그러므로 데이터베이스에 저장된 질문-답변의 데이터와 질문자가 전체를 입력한 비정형화 질문 또는 키워드만 입력한 정형화 질문을 매칭하여 답변을 자동으로 제공할 때 단순히 질문만 매칭할 것이 아니라 사용자의 성향을 파악하고 답변을 매칭할 필요가 있다.
사용자의 성향을 파악하기 위해서는 사용자 정보 수집부(260)가 사용자의 개인 정보와 사용자의 이력들을 수집할 수 있다. 사용자의 개인 정보는 사용자의 성별, 나이, 주거 지역 등과 같은 정보를 의미하며, 사용자 이력이란 자동 답변 시스템(200)을 이용한 사용자들의 활동 로그일 수 있다. 즉 사용자가 열람한 컨텐츠, 사용자가 조회한 질문과 답변, 사용자가 이전에 다른 사용자에게 답변한 내용 등이 될 수 있다.
사용자 분류부(270)는 수집된 사용자 정보에 기초하여 사용자를 클러스터링하여 사용자 그룹을 생성하고, 동일한 그룹에 속한 사용자들을 비교하여 사용자를 유사한 성향의 사용자들과 매칭할 수 있다. 예를 들면 영화 정보를 제공하는 자동 답변 시스템(200)에서는 사용자들의 영화 관람 이력, 사용자들이 영화에 평점을 남긴 이력 등을 수집하고, 액션 영화를 좋아하는 사용자의 그룹, 멜로 영화를 좋아하는 사용자의 그룹, 스릴러 영화를 좋아하는 사용자의 그룹 등을 분류할 수 있다. 그리고 사용자가 "요즘 볼 만한 영화는 뭐가 있나요?"라는 질문을 하면 각 그룹에 따라 동일한 질문임에도 서로 다른 답변을 제공할 수 있다.
물론 사용자 각각에 대해서 n:n 관계로 유사한 사용자를 매칭할 수 있으나, 이 경우에는 많은 연산을 필요로 하게 된다. 그러므로 실시간성을 확보하기 위해서 사전에 사용자의 그룹을 생성하고, 질문을 한 사용자와 사용자의 그룹을 매칭해서 사용자와 유사한 성향의 사용자를 선별할 수 있다.
앞서 질문/답변을 수집하고 이를 정형화 하는 과정이 전처리 과정인 것처럼, 사용자의 정보를 수집하고 사용자를 분류하는 과정도 전처리 과정으로 수행될 수 있다. 다만, 사용자의 정보를 수집하고 사용자를 분류하는 과정은 필수적인 과정이기 때문에, 도 2에서 사용자 정보 수집부(260)와 사용자 분류부(270)가 실선으로 묶음 처리가 된 것을 볼 수 있다.
이러한 질문에 대한 전처리 과정과 사용자에 대한 전처리 과정을 수행한 후, 질문자 단말기(300)를 통해서 사용자의 질문이 등록되면, 사용자 매칭부(280)에서 질문을 한 사용자와 사전에 분류가 된 사용자 그룹을 매칭하고, 질문 매칭부(230)에서는 사용자가 한 질문과 사전에 수집된 질문을 매칭한다.
질문 매칭부(230)에서 매칭한 질문 유사도와 사용자 매칭부(280)에서 매칭한 사용자 유사도에 기초해서 답변 검출부(290)에서 답변의 우선 순위를 연산한다. 그리고 최종으로 질문자에게 자동으로 제공할 답변을 선별할 수 있다. 이때 우선 순위가 가장 높은 답변을 하나 선정해서 제공할 수도 있고, 또는 복수 개의 답변을 제공하되 우선 순위에 따라 복수 개의 답변을 정렬해서 제공할 수 있다.
이 과정에서 답변의 우선 순위를 연산할 때, 질문 유사도 가중치와 사용자 유사도 가중치에 기초하여, 질문 유사도가 더 많이 반영되도록 조절하거나 사용자 유사도가 더 많이 반영되도록 조절할 수 있다. 각각 어느 경우에 질문 유사도를 더 반영할지 사용자 유사도를 더 반영할지에 대해서는 추후 도 3에서 보다 자세히 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 자동 답변 시스템에서 자동으로 제공할 답변을 선택하는 과정을 보다 자세히 설명하기 위한 도면이다.
도 2를 통해서 본 발명에서 제안하는 자동 답변 시스템(200)에 대해서 살펴보았다. 본 발명에서 제안하는 자동 답변 시스템(200)은 사전에 Q&A 시스템(100)을 통해서 질문-답변의 데이터를 수집해서 데이터베이스에 저장한다. 이 과정에서 사용자의 편의성과 만족도를 높이기 위해서 질문을 정형화 하는 과정을 선택적으로 수행할 수 있다. 이렇게 질문에 대한 전처리를 수행하는 것과는 별개로 질문을 한 사용자 정보를 수집하고 사용자를 복수 개의 그룹으로 분류할 수 있다.
다음으로 특정 사용자가 질문을 입력하면 입력된 질문과 유사한 질문을 데이터베이스에서 조회하고, 해당 질문자와 유사한 성향의 사용자의 그룹을 조회한다. 그 후 데이터베이스에 저장된 질문과 입력된 질문 사이의 질문 유사도를 연산하고, 데이터베이스에 저장된 질문을 한 사용자와 해당 질문자 사이의 사용자 유사도를 연산한다. 그리고 질문 유사도와 사용자 유사도에 기초하여 답변의 우선 순위를 연산하고 이에 기초해서 자동으로 답변을 제공한다.
이때, 답변을 선택하기 위한 우선 순위를 연산하는 과정이 도 3에 도시되어 있다. 도 3을 참고하면, 주관적 평가를 묻는 질문(102)으로 "서울 말고 여행할 수 있는 지역을 추천해주세요"라는 질문이 사전에 데이터베이스에 저장되어 있다. 데이터베이스에 저장된 해당 질문을 한 사용자는 사용자 A이며, Q&A 시스템(100)에서 사용자 A의 질문에 대해 총 3명의 사용자 B, C, D가 각각 답변을 하였다. 그리고 사용자 A는 각각의 답변 중에서 사용자 C가 한 "춘천이 좋습니다~"라는 답변을 선택한 것을 볼 수 있다.
이와 같은 질문-답변 데이터가 자동 답변을 위해서 데이터베이스에 저장되어 있는 상황에서 사용자 E가 "서울 근교 여행지를 추천해주세요"라는 질문을 했다고 가정해보자. 이 경우 자동 답변 시스템(200)에서는 사용자 E가 속한 그룹과 데이터베이스에 저장된 질문들의 질문자의 그룹을 비교해서 사용자 그룹을 매칭하고, 질문자와 매칭된 사용자 그룹에 속한 질문자를 비교해서 사용자 유사도를 연산하고, 사용자 E가 한 질문과 데이터베이스에 저장된 질문들을 비교해서 질문 유사도를 연산할 수 있다. 다음으로 답변 검출부(290)가 사용자 유사도와 질문 유사도에 기초해서 답변의 우선 순위를 연산한다. 도 3의 예에서는 사용자 유사도와 질문 유사도를 단순히 합산하는 방식으로 우선 순위를 연산하는 경우를 도시하였다.
다만, 도 3의 합산 외에도 다양한 수식에 의해서 우선 순위를 연산할 수 있다. 이 과정에서 사용자 유사도 가중치와 질문 유사도 가중치를 이용하여 우선 순위를 연산할 수도 있다. 이를 수학식으로 표현하면 다음과 같다.
[수학식 1]
답변 우선 순위 = 사용자 유사도 * 사용자 유사도 가중치 + 질문 유사도 * 질문 유사도 가중치
다만, 수학식 1 또한 발명의 이해를 돕기 위한 일 예일뿐, 발명을 제한하고자 하는 것은 아니므로 다른 방식으로 사용자 유사도 가중치와 질문 유사도 가중치를 반영할 수 있다. 예를 들면 사용자 유사도와 사용자 유사도 가중치를 곱하는 방식이 아니라 사용자 유사도에 사용자 유사도 가중치만큼 지수승을 해서 반영할 수도 있다. 그 경우에는 다음의 수학식 2와 같이 표현될 것이다.
[수학식 2]
답변 우선 순위 = 사용자 유사도 ^ 사용자 유사도 가중치 + 질문 유사도 ^ 질문 유사도 가중치
이처럼 다양한 수식에 의해서 사용자 유사도와 질문 유사도에 기초하여 우선 순위를 연산하고 우선 순위에 기초해서 자동으로 답변을 제공할 수 있다. 도 3을 참고하면 "서울 근교 여행지를 추천해주세요"라는 사용자 E의 질문에 대해서 사용자 A가 선택한 답변인 사용자 C의 답변에 기초해서 자동 답변 시스템(200)이 "춘천"이라는 자동 답변을 제공하는 것을 볼 수 있다.
이때 각각 연산된 사용자 유사도와 질문 유사도에 가중치를 적용하여 반영할 수 있다. 사용자 유사도 가중치는 연산된 사용자 유사도의 신뢰성을 나타내는 지표이고, 질문 유사도 가중치는 연산된 질문 유사도의 신뢰성을 나타내는 지표이다.
보다 자세히 설명하면, 앞서 도 1에서 살펴본 것처럼 질문이 객관적인 사실을 묻는 질문(101)인지 주관적인 평가를 묻는 질문(102)인지에 따라 질문 유사도의 가중치를 다르게 적용할 수 있다. 객관적인 사실을 묻는 질문(101)의 경우에는 사용자에 따라 답변이 다를 필요성이 적으므로, 질문 유사도 가중치를 높게 적용하여 자동 답변을 제공할 수 있다.
그리고 사용자 유사도 가중치의 경우에는, 앞서 사용자의 개인 정보나 사용자의 이력에 기초해서 사용자를 그룹으로 나누고 매칭하는 것을 설명하였다. 이때 사용자에 관한 정보가 많으면 많을수록, 사용자의 이력이 많으면 많을수록 매칭에 대한 신뢰성이 높아질 수 있다. 그러므로 사용자의 이력이 많은 경우에는 사용자 유사도 가중치를 높게 적용하여 자동 답변을 제공할 수 있다.
이러한 질문 매칭 및 사용자 매칭과 각각의 가중치를 통해서 사용자가 동일한 질문을 하더라도, 객관적인 사실을 묻는 질문(101)의 경우에는 대부분의 질문자들에게 동일하게 자동 답변을 제공하고, 주관적인 평가를 묻는 질문(102)의 경우에는 각 사용자의 성향에 맞는 서로 다른 답변을 제공하는 것이 가능하다. 이를 통해서 사용자의 서비스 만족도를 높일 수 있다. 특히 기존의 Q&A 시스템(100)이 다른 사용자의 답변을 기다려야 하는 시스템인데 반해서 자동 답변 시스템(200)은 실시간으로 답변의 제공이 가능하다는 장점이 있다.
이상으로 본 발명에서 제안하는 자동 답변 시스템(200)에 대해서 살펴보았다. 특히, 본 발명에서 제안하는 자동 답변 시스템(200)은 객관적 사실을 묻는 질문(101)보다 주관적 평가를 묻는 질문(102)을 자동으로 답변하는데 보다 유용할 수 있다. 다음은 본 발명에서 대해서 보다 자세히 설명하기 위해서 여행 정보 자동 답변 시스템이라는 구체적인 예와 함께 설명을 계속하기로 한다.
도 4 내지 도 7은 본 발명의 다른 실시예에 따른 여행 정보 자동 답변 시스템을 설명하기 위한 도면이다.
여행 정보는 앞서 설명한 주관적인 평가를 묻는 질문(102)이 가장 많이 적용될 수 있는 분야이다. 여행지, 숙박 업소 등 여행과 관련된 질문에는 각 사용자의 성향에 따라 다른 답변이 필요하기 때문이다. 본 발명에서는 그 구체적인 예로 중화권 여행객이 한국을 여행하면서 필요한 여행 정보를 자동 답변을 통해서 제공받는 과정을 살펴보기로 한다.
[규칙 제91조에 의한 정정 07.02.2019] 

Figure WO-DOC-TABLE-1
[규칙 제91조에 의한 정정 07.02.2019] 
표 1은 중문으로 된 질문/답변을 얻을 수 있는 Q&A 시스템(100)의 예이다. 표 1을 참고하면,
총 7개의 Q&A 시스템(100)을 통해서 질문/답변 수집부(210)가 중문으로 된 한국 여행과 관련된
질문과 답변을 약 28만개 정도 수집한 것을 볼 수 있다. Q&A 시스템(100)이 외부 API를 제공하는
경우에는 해당 API를 통해서, 외부 API를 제공하지 않는 경우에는 웹 크롤러를 통해서 데이터를
수집할 수 있다.
[규칙 제91조에 의한 정정 07.02.2019] 
이렇게 수집된 28만 여개의 빅데이터를 분석하기 위해서는 구글의
BigQuery(https://cloud.google.com/bigquery)와 같은 서비스를 이용할 수 있다. 빅데이터를
분석하여 질문에서 키워드를 추출하고, 유사한 질문을 클러스터링하고, 검색을 위해서 색인을 구축할
수 있다.
[규칙 제91조에 의한 정정 07.02.2019] 
또한 키워드를 제거한 정형화 질문을 생성하여 사용자 편의성을 강화할 수 있다. 도 4의
상단을 참고하면, 질문을 정형화 하는 구체적인 과정을 살펴 볼 수 있다. "홍대 부근에 맵지 않은
맛집 추천해주세요"라는 중문 질문을 자연어 분석해서 주요 키워드와 불필요한 키워드를 분리한다.
그리고, 주요 키워드는 색인을 해서 질문을 조회하고 질문 유사도를 연산할 때 사용하고, 불필요
키워드는 "OO 부근 OO 맛집 추천해주세요"와 같은 정형화 질문을 생성할 때 사용할 수 있다.
[규칙 제91조에 의한 정정 07.02.2019] 
도 4의 하단을 참고하면, 정형화 질문이 카테고리로 나뉘어져 사용자의 단말(300)에
어플리케이션을 통해서 제공되는 것을 볼 수 있다. 여행 정보를 제공하는 서비스이므로 여행지, 맛집,
숙소, 위치, 쇼핑, 뷰티, 문화, 기타 등과 같은 카테고리를 통해 정형화 질문을 분류하고, 사용자는
키워드를 입력하는 것만으로도 간단히 질문을 하도록 편의성을 제공할 수 있다. 이때 정형화 질문은
지속적으로 갱신이 가능하다.
[규칙 제91조에 의한 정정 07.02.2019] 
또한 정형화 질문을 사용자에게 제공할 때 개인화가 가능하다. 자동 답변 시스템(200)을
이용하는 사용자가 주로 관심 있어 하는 카테고리의 정형화 질문을 우선해서 사용자에게 제공할 수
있다. 또한 동일한 카테고리에 속한 정형화 질문이 복수 개 있을 때, 어느 정형화 질문을 우선해서
사용자에게 제공할지도 개인화가 가능하다. 이를 위해서 사용자가 가입을 할 때 관심 분야를 입력
받을 수 있다. 또는 자동 답변 시스템(200)이 단순히 자동 답변 서비스만 제공하는 것이 아니라 여행
정보를 제공하는 포털인 경우에는 사용자가 포털 내에서 어떠한 여행 정보를 주로 열람하였는지를
분석하여 사용자가 관심 있어 하는 분야를 파악할 수 있다. 또는 사용자가 주로 이용한 정형화
질문을 사용자의 관심으로 보고 이를 기준으로 정형화 질문을 정렬해서 제공할 수도 있다. 또는
사용자가 주로 조회한 Q&A 시스템(100)의 질문/답변의 내용을 분석하여 사용자의 관심 분야를 파악할
수 있다.
[규칙 제91조에 의한 정정 07.02.2019] 
다음으로 질문에 관한 전처리 외에 사용자에 관한 전처리를 수행한다. 예를 들어 여행에
관한 정보를 제공하는 자동 답변 시스템(200)은 여행 정보 포털에서 서비스의 일환으로 제공될 수
있다. 이때 여행 정보 포털에 가입한 사용자의 성별, 나이, 주거지역 등과 같은 개인 정보뿐만 아니라,
해당 여행 정보 포털에서 제공하는 컨텐츠 중에서 어떤 컨텐츠를 사용자가 열람하였는지와 같은
이력 정보를 수집할 수 있다. 맛집에 관한 컨텐츠를 주로 검색하고 조회하는 사용자와 쇼핑에 관한
컨텐츠를 주로 검색하고 조회하는 사용자의 성향은 다를 수 있기 때문이다.
[규칙 제91조에 의한 정정 07.02.2019] 
이때 수집할 수 있는 사용자의 정보를 표로 예시하면 다음의 표 2와 같다. 다만, 이는
발명의 이해를 돕기 위한 예시일 뿐이며, 이와 같은 사용자 정보로 제한하고자 하는 것은 아니다. 즉,
표 2의 예시 외에도 사용자의 단말(300)의 운영체제, OA 업데이트 버전 정보 등도 사용자의 성향을
분석하는데 이용할 수 있다.
수집 데이터 데이터 포함 내용
answer - 작성자의 아이디- 답변작성시간
answer_comment - 댓글작성자- 댓글 작성 시간
answer_like - 답변 좋아요한 사람과 답변
answer_modify_log - 답변 수정 시간
attendance - 출석 시간
contents - 콘텐츠 위치- 작성시간
contents_comment - 댓글 작성 시간
contents_like - 좋아요한 유저와 콘텐츠
contents_stored - 저장한 유저와 콘텐츠
contents_view_log - 콘텐츠 본 유저와 콘텐츠- 본 시간
event_comment - 댓글 작성 유저와 이벤트- 댓글 작성 시간
event_like - 이벤트 좋아요한 유저와 이벤트
event_participation - 이벤트 참가하는 유저와 이벤트- 참가유저 실명- 참가유저 생일- 참가유저 성별- 참가유저 국가- 참가유저 여권번호- 참가유저 폰번호- 참가유저 이메일- 참가신청 일시
event_stored - 이벤트 저장한 유저와 이벤트
event_view_log - 이벤트 본 유저와 이벤트- 이벤트 본 시간
exp_log - 경험치 변동있는 유저- 경험치- 경험치 변동 시간
inquiry - 문의한 유저- 이메일- 문의내용
point_log - 포인트 변동 유저와 변동 포인트- 포인트 변동 시간
product_comment - 댓글 작성 아이디- 댓글 내용- 댓글 작성 시간
question - 질문 작성자- 작성 질문 디렉토리- 질문 내용- 질문 위치- 작성 시간- 질문 채택 시간- 정형화 타입
question_answer - 질문 채택 여부
question_detail_1_0 - 정형화 키워드
question_detail_2_0 - 정형화 키워드
question_detail_3_0 - 정형화 키워드
question_detail_4_0 - 정형화 키워드
question_detail_5_0 - 정형화 키워드
question_detail_6_0 - 정형화 키워드
question_detail_7_0 - 정형화 키워드
question_detail_etc - 질문 제목
question_modify_log - 수정한 질문과 수정 시간
question_stored - 저장된 질문과 저장한 유저
question_view_log - 질문 본 유저와 본 질문- 질문 시간- 질문 볼 당시 해당 질문 채택여부
search_log - 검색한 유저와 검색 키워드- 검색 시간
user_report - 신고한 유저와 신고된 답변- 신고 내용- 신고 타입
wenwo_user - 이름- 닉네임- 프로필 이미지- 레벨- 가입일시- 이메일- 성별- 국적- 자기소개- 안드로이드 ios 여부- 신분
wenwo_user_follow - 팔로우한 유저와 받은유저
wenwo_user_login_log - 로그인한 유저와 시간
wenwo_user_title - 타이틀 획득 유저와 타이틀- 타이틀 획득 시간- 타이틀 설정 여부
표 2에 예시된 사용자의 이력 외에도 사용자에 관한 다양한 정보가 사용자 수집될 수 있음을 물론이다. 사용자 정보 수집부(260)가 사용자 정보를 수집하면 사용자 분류부(270)는 기계학습을 통해서 사용자를 분류할 수 있다. 기계학습을 통해서 표 2에 예시된 다양한 특징(feature) 중에서 사용자 분류에 사용할 특징을 선별할 수 있다.
질문에 대한 전처리 과정과 사용자에 대한 전처리 과정을 마치면, 자동 답변 시스템(200)을 통해서 서비스를 제공할 수 있다. 사용자가 단말(300)에 설치된 어플리케이션을 통해서 정형화 질문을 선택하고 특정 키워드를 입력하면 질문이 완성된다. 또는 정형화 질문을 선택하기 않고 자유롭게 비정형화 질문을 입력할 수도 있다.
이때 도 5를 참고하면, 사용자가 한 질문에서 형태소를 분석하고 키워드를 추출하여 기존에 데이터베이스에 등록된 28만여개의 질문의 키워드와 비교해서 질문 유사도를 연산하는 것을 볼 수 있다. 키워드가 유사할수록 질문이 유사하기 때문에 각 질문과의 키워드를 비교하면 질문 유사도의 연산이 가능하다.
이 과정에서 일래스틱 서치(Elastic Search Server)를 이용할 수 있다. 일래스틱 서치는 루씬 기반의 검색 엔진이다. HTTP 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테넌트 지원 전문 검색 엔진을 제공한다. 일래스틱 서치는 자바로 개발되어 있으며 아파치 라이선스 조항에 의거하여 오픈 소스로 출시되어 있다. 일래스틱 서치는 로그스태시(Logstash)라는 이름의 데이터 수집 및 로그 파싱 엔진, 그리고 키바나(Kibana)라는 이름의 분석 및 시각화 플랫폼과 함께 개발되어 있다. 이 3개의 제품들은 연동 솔루션으로 사용할 목적으로 설계되어 있으며 이를 "일래스틱 스택"(Elastic Stack, 과거 이름: ELK 스택)으로 부른다.
이 과정에서 키워드의 매칭 외에도 질문 유사도에 다양한 항목들을 반영할 수 있다. 예를 들면 질문의 조회수가 높은 질문은 질문의 조회수가 낮은 경우보다 질문 유사도를 높게 연산할 수 있다. 질문의 조회수가 높다는 것은 양질의 질문과 답변일 확률이 높기 때문이다. 그 외에도 질문과 답변에 사용자들이 남긴 "좋아요"와 같은 공감수, 질문에 달린 댓글 수에 따라서 질문 유사도를 다르게 적용할 수 있다. 또한 질문과 답변이 작성될 일시가 현재 시점으로부터 얼마나 오래되었는지에 따라서 질문 유사도를 다르게 적용할 수 있다. 오래전에 질문-답변이 있었던 경우에는 그 사이에 관련된 여행 정보가 변경될 수도 있기 때문에 오래된 질문-답변일수록 질문 유사도를 낮게 연산할 수 있다. 또한 질문자가 해당 질문을 열람하였는지 여부를 기준으로 질문 유사도를 다르게 적용할 수 있다. 이미 해당 질문을 열람하였음에도 질문을 다시 한 경우라면 해당 질문의 답변은 질문자가 원하는 답변이 아닐 경우가 많기 때문이다.
다음으로 도 6을 참고하면, 사용자 유사도를 연산하는 것을 볼 수 잇다. 구체적으로는 질문을 작성한 사용자의 성별, 국가, 신분, 로그인 정보, 컨텐츠 열람 정보 등을 이용해서 질문 작성자의 그것과 비교한다. 이때 연산의 편의를 위해서 질문자와 데이터베이스 저장된 질문 작성자를 1:1로 비교해서 사용자 유사도를 연산하는 것이 아니라, 우선 사용자 그룹을 먼저 확인하고 질문자와 유사한 성향의 그룹에 속한 질문 작성자만 조회하여 사용자 유사도를 연산할 수 있다. 사용자 그룹을 먼저 비교함으로써, 자동 답변 시스템의 실시간성을 높일 수 있다.
이 과정에서 피어슨 상관 관계 분석을 이용하여 사용자 유사도를 연산할 수 있다. 피어슨 상관 관계 분석은 두 계량형 변수 사이의 선형 관계를 평가한다. 한 변수의 변화가 다른 변수의 변화에 비례적으로 연관되어 있는 경우 선형 관계가 있으므로 이를 이용할 수 있다. 다만, 이는 사용자 유사도를 연산하기 위한 일 예이며, 이 외에도 다른 상관 관계 분석 방법의 적용이 가능하다.
도 5 내지 도 6에 예시된 과정을 통해서 질문 유사도와 사용자 유사도를 연산한 후에는 각각 질문 유사도 가중치와 사용자 유사도 가중치를 반영하여 답변의 우선 순위를 연산할 수 있다. 여기서 사용자 유사도 가중치는 사용자 유사도의 신뢰성을 나타내는 지표이다. 앞서 사용자에 관한 정보를 수집해서 사용자 유사도를 연산하는데 사용하는 것으로 설명하였다. 이때, 사용자의 이력이 많이 쌓인 사용자일수록 연산된 사용자 유사도의 신뢰도가 높다고 볼 수 있다. 그런 의미에서 사용자 유사도 가중치는 다음과 같은 수식에 의해 계산할 수 있다.
[수학식 3]
사용자 유사도 가중치 = 해당 사용자의 로그 수 / 기준 로그 수
여기서 기준 로그 수는 임의의 값일 수 있다. 예를 들면 사용자의 성향을 파악하기에 충분한 로그 수라고 생각되는 값으로, 500과 같은 값을 설정할 수 있다. 그러나 바람직하게는 사용자의 로그 수 분포를 분석하여 통계값을 기준 로그 수로 삼을 수 있다. 예를 들면 사용자의 로그 수 평균값을 기준 로그 수로 정할 수 있다. 여행 정보 포털에 가입한 사용자의 로그 수의 평균이 약 430이고, 해당 질문을 한 사용자의 로그 수는 250인 경우에는, 해당 사용자는 사용자의 성향을 파악할만큼 충분한 사용자 정보가 쌓인 경우가 아니므로 연산된 사용자 유사도에 250/430 = 0.58과 같은 사용자 유사도 가중치를 곱하여 사용자 유사도를 우선 순위에 반영할 수 있다. 수학식 3에서도 볼 수 있듯이 사용자 유사도 가중치는 0~1 사이의 값이 주를 이루나 1을 초과하는 값을 가질 수도 있다.
다음으로 질문 유사도 가중치에 대해서 설명하면, 질문 유사도 가중치도 마찬가지로 질문 유사도의 신뢰성을 나타내는 지표이다. 사용자 유사도가 질문에 대한 주관적인 평가를 반영하기 위해 만든 지표이므로 질문 유사도는 질문이 객관적인 사실은 묻는 질문일수록 답변 우선 순위에 높게 반영되어야 하는 지표이다. 즉 도 1에서 설명한 객관적인 사실을 묻는 질문(101)인지 주관적인 평가를 묻는 질문(102)인지에 따라, 객관적인 사실을 묻는 질문(101)인 경우에는 질문 유사도 가중치가 높은 값을 가진다.
이를 위해서 질문의 성격을 파악할 필요가 있다. 즉 질문이 객관적인 사실을 묻는 질문(101)인지 주관적인 의견을 묻는 질문(102)인지에 따라 질문 유사도 가중치가 결정된다. 질문의 성격을 파악하는 과정은 도 1에서 본 것과 같이 질문에 대한 답변의 분포도를 통해서 파악할 수 있다. 사전에 데이터베이스에 수집된 질문을 분석해서 답변에서 키워드를 추출하고 키워드의 빈도를 구해보면 정규 분포와 같은 양상을 보인다. 이때 특정 키워드에 답변이 편중될수록, 즉 특정 키워드의 빈도가 높고 다른 키워드의 빈도는 낮을수록 객관적인 사실을 묻는 질문이라 볼 수 있다. 이를 수학식으로 표현하면 다음과 같다.
[수학식 4]
질문 유사도 가중치 = 최다 키워드의 빈도 / 전체 답변의 수
도 1의 경우를 살펴보면, "대한민국의 수도는 어디인가요?"라는 질문(101)의 경우 총 3개의 답변 중에서 서울이 3회 나타난 것을 볼 수 있다. 이 경우에는 질문 유사도 가중치는 3/3=100%의 값을 가진다. 이해 비해 "서울말고 여행할 수 잇는 지역을 추천해주세요!"라는 질문(102)의 경우 총 3개의 답변 중에서 강릉, 춘천, 부산은 각각 1회 나타난 것을 볼 수 잇다. 이 경우에는 질문 유사도 가중치는 1/3=33%의 값을 가진다. 객관적인 사실을 묻는 질문(101)일수록 사용자 유사도보다 질문 유사도가 더 반영될 수 있도록 질문 유사도 가중치를 위와 같이 설정할 수 있다. 이때 수학식 4에서도 볼 수 있듯이 질문 유사도 가중치는 0과 1사이의 값을 가진다.
여기서 질문 유사도 가중치는 복수 개의 질문과 복수 개의 답변을 종합해서 설정할 수도 있다. 앞서 질문을 정형화 하는 과정에서 질문을 클러스터링 할 수 있는데, 이 과정에서 유사 질문을 클러스터로 구성하고 각 질문에 대한 답변의 빈도를 분석해서 해당 클러스터에 속한 질문들의 질문 유사도 가중치를 산출할 수 있다. 이 경우에는 질문이 동일 클러스터에 속하면 질문 유사도 가중치도 동일한 값을 가지게 된다.
다만, 질문 유사도 가중치와 사용자 유사도 가중치를 연산하는 구체적인 수식은 발명의 이해를 돕기 위한 것이므로 다른 수식을 통해서도 연산이 가능하다. 본 발명에서 각각의 유사도 가중치는 질문의 성격에 따라 질문 유사도를 더 반영하거나 사용자 유사도를 더 반영하여 답변을 제공하기 위한 것으로, 이를 통해서, 답변에 대한 사용자의 만족도를 높일 수 있다.
한편, 질문 매칭부(230)는 사용자로부터 입력된 질문에 대응되는 정형화 질문에 기초하여, 그 입력된 질문과 유사한 유사 질문에 대한 질문 유사도를 산출할 수 있다.
보다 구체적으로, 질문 매칭부(230)는 수집 데이터에 포함된 질문 중에서, 그 입력된 질문과 동일한 정형화 질문을 갖는 질문을 선별하여, 유사 질문을 매칭할 수 있다. 그 후, 질문 매칭부(230)는 그 질문들에 포함된 지명, 그 질문들의 제목 및 그 질문들의 내용 중 적어도 하나를 이용하여, 그 입력된 질문과 유사 질문 간의 질문 유사도를 산출할 수 있다.
이때, 질문 매칭부(230)는 그 입력된 질문에 특정 키워드를 배제하기 위한 표현이 포함되어 있을 때, 그 특정 키워드를 포함하는 질문이 유사 질문에 포함되지 않도록 할 수 있다. 예컨대, "서울빼고", "강남말고" 및 "홍대 제외하고" 등과 같은 표현은 각각 서울, 강남 및 홍대를 결과로부터 배제하기 위한 표현으로 볼 수 있다.
즉, 질문 매칭부(230)는 미리 결정된 특정 키워드를 배제하기 위한 표현들에 대하여, 그 특정 키워드를 포함하는 질문이 유사 질문에 포함되지 않도록 할 수 있다. 보다 구체적으로, 질문 매칭부(230)는 정형화 질문을 갖는 질문을 선별하여, 유사 질문을 매칭할 때, 그 특정 키워드를 포함하는 질문이 유사 질문에 포함되지 않도록 할 수 있다.
한편, 질문 매칭부(230)는 질문 유사도를 산출할 때, 그 질문들에 포함된 지명에 더 큰 가중치를 부여할 수 있다.
예컨대, 질문 매칭부(230)는 그 입력된 질문에 "홍대"라는 지명이 포함되어 있는 경우에, 매칭된 유사 질문과의 질문 유사도를 산출함에 있어서, 질문의 제목 및 내용보다 지명에 더 큰 가중치를 두어 질문 유사도를 산출할 수 있다.
이때, 질문 유사도는 아래의 수학식 5에 의해 산출될 수 있다.
[수학식 5]
질문 유사도 = (q.p == Q.p) * (30 * (sim1(q.l, Q.l)) + (sim2(q.t, Q.t)))
여기서, q는 그 입력된 질문이고, Q는 유사 질문 중 하나이고, p는 질문에 대응되는 정형화 질문이고, sim1 및 sim2은 0이상 1이하의 값으로 나타나는 유사도 함수이고, l은 질문에 포함된 지명이고, t는 질문의 제목 및 내용이다.
즉, 수학식 5를 참조하면, 질문 매칭부(230)는 그 입력된 질문과 유사 질문이 동일한 정형화 질문을 가질 때에만, 질문 유사도를 산출하게 됨을 알 수 있다. 또한, 질문 매칭부(230)는 질문에 포함된 지명에 질문의 제목 및 내용보다 높은 가중치(30)를 부여함을 알 수 있다.
보다 구체적으로, 질문 매칭부(230)는 질문에 포함된 지명에 관련하여 유사도 측정 함수인 sim1(q.l, Q.l)을 이용하여 q.l과 Q.l이 유사한 정도를 0이상 1이하의 값으로 수치화할 수 있고, 질문의 제목 및 내용에 관련하여 유사도 측정 함수인 sim2(q.t, Q.t)를 이용하여 q.t과 Q.t이 유사한 정도를 0이상 1이하의 값으로 수치화할 수 있다.
이때, 유사도 함수 sim1 및 sim2는 미리 결정된 유사도 판단 기준에 따라 유사도를 산출할 수 있다.
또한, 사용자 매칭부(280)는 유사 질문을 입력한 복수의 유사 사용자 후보에 대하여, 사용자의 로그 수, 기준 로그 수 및 사용자와 복수의 유사 사용자 후보 간의 피어슨 상관계수에 기초하여, 사용자 유사도를 산출할 수 있다.
보다 구체적으로, 사용자 매칭부(280)는 사용자의 로그 수를 기준 로그 수로 나눈값으로 가중치를 산출할 수 있으며, 이 가중치와 사용자와 복수의 유사 사용자 후보 간의 피어슨 상관계수를 이용하여 사용자 유사도를 산출할 수 있다.
예컨대, 사용자 매칭부(280)는 이 가중치와 사용자와 복수의 유사 사용자 후보 간의 피어슨 상관계수를 곱한 값으로 사용자 유사도를 산출할 수 있다.
다음으로 도 7을 참고하면, 자동 답변 시스템(200)을 통해서 질문에 대한 자동 답변을 제공받은 사용자의 피드백에 따라 질문 유사도와 사용자 유사도를 연산하는 기계학습의 훈련 모델을 갱신하는 과정을 볼 수 있다. 예를 들면 자동 답변에 대해서 별점을 통해서 피드백을 받는 기능을 질문자의 단말기(300)에 제공할 수 있다. 이때, 사용자가 별점을 평가하면 그 중에서 자동 답변에 대해서 평점이 3 이상인 경우를 만족으로 판단하고 질문 유사도와 사용자 유사도를 연산하기 위한 기계학습의 훈련 모델을 갱신할 수 있다. 이를 통해서 자동 답변이 보다 사용자의 의도에 맞는 답변을 제공할 수 있도록 성능을 향상시킬 수 있다.
도 8 내지 도 9는 본 발명의 일 실시예에 따른 자동 답변 제공 방법을 설명하기 위한 순서도이다.
도 8에는 비정형화 질문 또는 정형화 질문을 통해 사용자로부터 질문을 입력 받는 과정이 도시되어 있다. 도 9에는 사용자가 입력한 질문에 대해 사용자 매칭과 질문 매칭을 통해서 자동으로 답변을 제공하는 과정이 도시되어 있다.
도 8을 참고하면, 먼저 정형화 질문의 이용 여부를 판단한다(S1051). 사용자로부터 정형화 질문을 이용하라는 명령을 입력 받았는지 여부를 판단하는 것이며, 이용 명령의 입력 여부에 따라 정형화 질문을 이용하지 않거나 정형화 질문을 이용하는 것이 결정되게 된다.
정형화 질문을 이용하지 않는 것으로 결정되는 경우, 사용자로부터 비정형화 질문을 입력 받는다(S1052). 정형화 질문을 이용하는 것으로 결정되는 경우, 사용자로부터 카테고리를 입력 받는다(S1053). 카테고리는 복수의 카테고리로 마련되며, 사용자는 이와 같은 복수의 카테고리 중 적어도 하나의 카테고리를 입력할 수 있다.
카테고리가 입력되면, 입력된 카테고리에 대응하는 정형화 질문을 출력한다(S1054). 사용자는 출력된 정형화 질문을 확인하고, 정형화 질문에 대응하는 키워드를 입력할 수 있다. 즉, 사용자로부터 정형화 질문에 대응하는 키워드를 입력 받는다(S1055). 정형화 질문을 이용하지 않는 경우, 사용자가 입력한 비정형화 질문을 전체 질문으로 생성하므로, 입력된 비정형화 질문을 이용하여 자동 답변을 제공한다.
다음으로 도 9를 참고하면, 우선 도 8의 과정을 통해서 사용자로부터 질문을 입력 받는다(S1100). 그런 다음, 사용자 분석을 통해 유사 사용자 그룹을 매칭시킨다(S1200). 여기서, 사용자 그룹은 기 구축된 수집 데이터에 포함된 복수의 사용자를 적어도 하나의 사용자 그룹으로 기 분류하여 데이터베이스에 저장되어 있는 것으로 하며, 유사 사용자 그룹은 사용자 분석을 통해 적어도 하나의 사용자 그룹 중 질문을 입력한 사용자와 유사하다고 판단된 사용자 그룹으로써, 질문을 입력한 사용자와 유사 사용자 그룹을 매칭시킨다.
그리고, 매칭된 유사 사용자 그룹의 유사 질문 및 답변을 검출한다(S1300). 질문 분석을 통해 매칭된 유사 사용자 그룹의 질문 중 입력된 질문과 유사한 유사 질문을 검출하고, 검출된 유사 질문에 대응하여 출력되었거나 제출되었던 답변을 입력된 질문에 대한 답변으로 검출할 수 있다. 답변이 검출되면, 검출된 답변을 입력된 질문에 대한 답변으로 출력하여 사용자로 하여금 확인할 수 있도록 한다.
상술한 유사 사용자 매칭을 이용한 자동 답변 시스템 및 방법에 의하면, 사용자 분석을 통해 유사 사용자 그룹을 매칭하고, 매칭된 유사 사용자 그룹의 질문 분석을 통해 입력된 사용자 질문과 유사한 유사 질문을 검출하고, 검출된 유사 질문의 답변 내용을 입력된 질문에 대한 답변으로 검출하여 출력함으로써, 사용자가 의도하는 답변을 출력할 가능성이 높아지며, 사용자로 하여금 답변의 만족도 또는 신뢰성을 높일 수 있다. 또한, 유사 사용자 그룹의 유사 질문 및 답변을 이용함으로, 질문에 대한 답변의 획득 시간이 단축될 수 있으며, 실시간 질의 응답 시스템으로의 활용 가능성이 높아진다.
이 과정에서 자동 답변에 대한 사용자의 만족도를 높이기 위해서 질문 유사도 가중치와 사용자 유사도 가중치를 반영하여 답변의 우선 순위를 연산하고 이에 기초해서 사용자에게 자동 답변을 제공할 수 있다. 이를 통해서 동일한 질문을 하더라도 사용자에 따라 다른 답변을 제공하는 자동 답변 서비스를 제공할 수 있다.
한편, 질문 매칭 단계는 수집 데이터에 포함된 질문 중에서 입력된 질문과 동일한 정형화 질문을 갖는 질문으로 유사 질문을 매칭하고, 질문에 포함된 지명, 질문의 제목 및 질문의 내용 중 적어도 하나에 기초하여, 질문 유사도를 산출할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (14)

  1. 사용자로부터 입력된 질문을 분석하여 자동으로 답변을 생성하는 자동 답변 시스템에 있어서,
    수집 데이터에 포함된 질문자 중 상기 사용자와 유사한 유사 사용자를 매칭하는 사용자 매칭부;
    상기 수집 데이터에 포함된 질문 중 상기 입력된 질문과 유사한 유사 질문을 매칭하는 질문 매칭부; 및
    상기 사용자와 상기 유사 사용자의 유사도를 나타내는 사용자 유사도와 상기 입력된 질문과 상기 유사 질문의 유사도를 나타내는 질문 유사도에 기초하여, 상기 유사 질문에 대한 답변을 상기 입력된 질문에 대한 답변으로 검출하는 답변 검출부; 를 포함하는
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  2. 제1항에 있어서,
    수집 데이터에 포함된 복수의 사용자를 적어도 하나의 사용자 그룹으로 분류하는 사용자 분류부; 를 더 포함하고,
    상기 사용자 매칭부는,
    상기 분류된 사용자 그룹 중 상기 사용자와 유사한 사용자 그룹을 매칭하고, 상기 유사한 사용자 그룹에 속한 사용자에 대해서 상기 유사 사용자를 매칭하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  3. 제1항에 있어서,
    수집 데이터에 포함된 복수의 질문에서 키워드를 제거하여, 정형화 질문을 생성하는 질문/답변 정형화부; 및
    상기 사용자로부터 정형화 질문의 이용 여부를 입력받고, 정형화 질문을 이용하는 경우 선택된 정형화 질문에 대응하는 키워드를 입력받는 입력부;를 더 포함하는,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  4. 제1항에 있어서,
    상기 답변 검출부는,
    상기 질문 유사도와 상기 사용자 유사도를 합산한 값에 기초하여 답변의 우선 순위를 연산하고, 상기 답변의 우선 순위에 기초하여 상기 입력된 질문에 대한 답변을 검출하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  5. 제4항에 있어서,
    상기 답변 검출부는,
    상기 사용자의 이력에 기초하여 사용자 유사도 가중치를 산출하고,
    상기 사용자 유사도 가중치를 이용하여 상기 우선 순위에 반영되는 상기 사용자 유사도를 보정하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  6. 제5항에 있어서,
    상기 답변 검출부는,
    상기 사용자의 이력이 많을수록 상기 사용자 유사도 가중치를 높게 적용하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  7. 제4항에 있어서,
    상기 답변 검출부는,
    상기 입력된 질문의 키워드에 기초하여 질문 유사도 가중치를 산출하고,
    상기 질문 유사도 가중치를 이용하여 상기 우선 순위에 반영되는 상기 질문 유사도를 보정하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  8. 제7항에 있어서,
    상기 답변 검출부는,
    상기 유사한 질문에 대한 답변에 포함된 키워드의 빈도를 연산하고, 상기 키워드의 빈도가 특정 키워드에 편중될수록 상기 질문 유사도 가중치를 높게 적용하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  9. 제1항에 있어서,
    상기 질문 매칭부는
    상기 수집 데이터에 포함된 질문 중에서 상기 입력된 질문과 동일한 정형화 질문을 갖는 질문으로 상기 유사 질문을 매칭하고,
    질문에 포함된 지명, 질문의 제목 및 질문의 내용 중 적어도 하나에 기초하여, 상기 질문 유사도를 산출하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  10. 제9항에 있어서,
    상기 질문 매칭부는
    상기 입력된 질문에 특정 키워드를 배제하기 위한 표현이 포함되어 있을 때, 상기 유사 질문으로부터 상기 특정 키워드를 포함하는 질문을 배제하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  11. 제9항에 있어서,
    상기 질문 매칭부는
    상기 질문 유사도를 산출할 때, 상기 질문에 포함된 지명에 대하여 상기 질문의 제목 및 상기 질문의 내용보다 큰 가중치를 부여하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  12. 제9항에 있어서,
    상기 사용자 매칭부는
    상기 유사 질문을 입력한 복수의 유사 사용자 후보에 대하여,
    상기 사용자의 로그 수, 기준 로그 수 및 상기 사용자와 상기 복수의 유사 사용자 후보 간의 피어슨 상관계수에 기초하여, 상기 사용자 유사도를 산출하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 시스템.
  13. 사용자로부터 입력된 질문을 분석하여 자동으로 답변을 생성하는 자동 답변 방법에 있어서,
    수집 데이터에 포함된 질문자 중 상기 사용자와 유사한 유사 사용자를 매칭하는 사용자 매칭 단계;
    상기 수집 데이터에 포함된 질문 중 상기 입력된 질문과 유사한 유사 질문을 매칭하는 질문 매칭 단계; 및
    상기 사용자와 상기 유사 사용자의 유사도를 나타내는 사용자 유사도와 상기 입력된 질문과 상기 유사 질문의 유사도를 나타내는 질문 유사도에 기초하여, 상기 유사 질문에 대한 답변을 상기 입력된 질문에 대한 답변으로 검출하는 답변 검출 단계; 를 포함하는,
    유사 사용자 매칭을 이용한 자동 답변 방법.
  14. 제12항에 있어서,
    상기 질문 매칭 단계는
    상기 수집 데이터에 포함된 질문 중에서 상기 입력된 질문과 동일한 정형화 질문을 갖는 질문으로 상기 유사 질문을 매칭하고,
    질문에 포함된 지명, 질문의 제목 및 질문의 내용 중 적어도 하나에 기초하여, 상기 질문 유사도를 산출하는 것인,
    유사 사용자 매칭을 이용한 자동 답변 방법.
PCT/KR2018/015002 2018-11-29 2018-11-29 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템 WO2020111329A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2018/015002 WO2020111329A1 (ko) 2018-11-29 2018-11-29 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2018/015002 WO2020111329A1 (ko) 2018-11-29 2018-11-29 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2020111329A1 true WO2020111329A1 (ko) 2020-06-04

Family

ID=70853358

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/015002 WO2020111329A1 (ko) 2018-11-29 2018-11-29 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템

Country Status (1)

Country Link
WO (1) WO2020111329A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434140A (zh) * 2020-11-10 2021-03-02 杭州博联智能科技股份有限公司 一种答复信息处理方法及系统
CN116595148A (zh) * 2023-05-25 2023-08-15 北京快牛智营科技有限公司 一种利用大型语言模型实现对话流程的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198690A (ja) * 1997-01-10 1998-07-31 Nec Corp 類似文書検索方法および類似文書検索装置
KR20060028564A (ko) * 2004-09-25 2006-03-30 (주)엔플러스엠닷컴 홈페이지에서 방문자와 에이전트 사이에 다중 대화를제공하기위한 시스템 및 방법
KR20120034477A (ko) * 2010-10-01 2012-04-12 엔에이치엔(주) 인맥에 기초한 문서를 제공하는 시스템 및 방법
KR20150027389A (ko) * 2013-09-02 2015-03-12 (주)스윗트래커 메신저 앱을 이용한 택배 정보 제공 시스템 및 방법, 그 택배 정보 단말기
KR101575276B1 (ko) * 2015-03-19 2015-12-08 주식회사 솔루게이트 가상 상담 시스템
KR20180112718A (ko) * 2017-04-03 2018-10-12 주식회사 라이크어로컬 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198690A (ja) * 1997-01-10 1998-07-31 Nec Corp 類似文書検索方法および類似文書検索装置
KR20060028564A (ko) * 2004-09-25 2006-03-30 (주)엔플러스엠닷컴 홈페이지에서 방문자와 에이전트 사이에 다중 대화를제공하기위한 시스템 및 방법
KR20120034477A (ko) * 2010-10-01 2012-04-12 엔에이치엔(주) 인맥에 기초한 문서를 제공하는 시스템 및 방법
KR20150027389A (ko) * 2013-09-02 2015-03-12 (주)스윗트래커 메신저 앱을 이용한 택배 정보 제공 시스템 및 방법, 그 택배 정보 단말기
KR101575276B1 (ko) * 2015-03-19 2015-12-08 주식회사 솔루게이트 가상 상담 시스템
KR20180112718A (ko) * 2017-04-03 2018-10-12 주식회사 라이크어로컬 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434140A (zh) * 2020-11-10 2021-03-02 杭州博联智能科技股份有限公司 一种答复信息处理方法及系统
CN116595148A (zh) * 2023-05-25 2023-08-15 北京快牛智营科技有限公司 一种利用大型语言模型实现对话流程的方法及系统
CN116595148B (zh) * 2023-05-25 2023-12-29 北京快牛智营科技有限公司 一种利用大型语言模型实现对话流程的方法及系统

Similar Documents

Publication Publication Date Title
KR102082208B1 (ko) 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템
TWI438637B (zh) 用於擷取及管理社群智慧資訊的系統及方法
US11765246B2 (en) Topical activity monitor and identity collector system
Zhao et al. Exploring demographic information in social media for product recommendation
CN103714130B (zh) 视频推荐系统及方法
US10685181B2 (en) Linguistic expression of preferences in social media for prediction and recommendation
EP3239855A1 (en) Analysis and collection system for user interest data and method therefor
KR101579376B1 (ko) 주관성 분석을 이용한 사용자 분류와 그에 따른 개인화된 장소 추천 시스템 및 방법
KR20210036184A (ko) 사용자 취향정보 파악 방법 및 사용자 취향 정보에 기반한 아이템 추천 모듈
CN107193883B (zh) 一种数据处理方法和系统
KR102106203B1 (ko) 소셜 네트워크 시스템 기반의 질의 응답 서비스 제공을 위한 전문가 추천 방법 및 전문가 추천 시스템
KR20120108095A (ko) 소셜 데이터 분석 시스템
Aggarwal et al. Comparing content based and collaborative filtering in recommender systems
CN109063171B (zh) 基于语义的资源匹配方法
KR20190058086A (ko) 행복큐레이션 서비스 기반 문화 생활 추천 방법 및 시스템
WO2020111329A1 (ko) 유사 사용자 매칭을 이용한 자동 답변 방법 및 시스템
Saraswathi et al. Deep Learning Enabled Social Media Recommendation Based on User Comments.
US20190347296A1 (en) Method of recommending at least one skin care product to a user
WO2017149540A1 (en) Sentiment rating system and method
Ashraf et al. Personalized news recommendation based on multi-agent framework using social media preferences
Kharrat et al. Recommendation system based contextual analysis of Facebook comment
Pallas et al. Evaluating the accuracy of cloud NLP services using ground-truth experiments
CN112132368A (zh) 信息处理方法以及装置、计算设备、存储介质
CN115168700A (zh) 一种基于预训练算法的信息流推荐方法、系统及介质
Alamsyah et al. A Comparison of Indonesia’ s E-Commerce Sentiment Analysis for Marketing Intelligence Effort (case study of Bukalapak, Tokopedia and Elevenia)

Legal Events

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

Ref document number: 18941750

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18941750

Country of ref document: EP

Kind code of ref document: A1