WO2023042987A1 - 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법 - Google Patents

소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법 Download PDF

Info

Publication number
WO2023042987A1
WO2023042987A1 PCT/KR2022/005901 KR2022005901W WO2023042987A1 WO 2023042987 A1 WO2023042987 A1 WO 2023042987A1 KR 2022005901 W KR2022005901 W KR 2022005901W WO 2023042987 A1 WO2023042987 A1 WO 2023042987A1
Authority
WO
WIPO (PCT)
Prior art keywords
text
source code
analysis
information
keyword
Prior art date
Application number
PCT/KR2022/005901
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 주식회사 랭코드
Publication of WO2023042987A1 publication Critical patent/WO2023042987A1/ko
Priority to US18/384,989 priority Critical patent/US20240061761A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Definitions

  • the present invention relates to a text semantic analysis apparatus, system, and method using source code analysis, and a method for providing a chatbot question-answering service using the same, and more particularly, to a dictionary semantic analysis of words included in text as well as a method thereof.
  • a chatbot is a conversational messenger that provides answers to questions as if artificial intelligence is conversing with a person in everyday language when a question is entered into a chatting tool such as a messenger.
  • chatbots To the customer's point of view, it is convenient and efficient to obtain necessary knowledge or answers through chatbots, so chatbots are evaluated as improving the quality of existing customer support services.
  • a customer inputs a question to a chatbot as if chatting through a messenger, and the chatbot analyzes text data included in the question and provides an answer corresponding to the question based on learned data or data stored in a database.
  • the chatbot has a high recognition rate and can provide an answer appropriate to the question, but when forming a question using technical terms, an answer appropriate to the question may not be provided.
  • the chatbot identifies the intention of “asking for the relationship between specific objects” and identifies the relationship between company A and company B from the learned data or database.
  • a search for a relationship might give the answer "This is a subsidiary relationship”.
  • the database used by the chatbot records “training channels” and “courses”. If the meaning of “ is not stored or is stored in a different meaning from the meaning of the word that the customer knows, the chatbot may not be able to provide an appropriate answer to the question.
  • the present invention is intended to solve the above problems, and the meaning of the text is more accurately based on information obtained by performing source code analysis on the words included in the text as well as dictionary semantic analysis on the words included in the text.
  • One technical task is to provide a text semantic analysis device, system, and method using source code analysis, and a method for providing a chatbot question-answering service using the same.
  • the embodiment according to the first aspect of the present invention provides a text semantic analysis method using source code analysis based on a communication connection between a terminal and a server.
  • the method includes: receiving, by the server, input data including text from the terminal; generating a text analysis result including the meaning of the text by the server performing natural language processing on the text based on the input data; and the server generating output data corresponding to the meaning of the text based on the text analysis result and providing the output data to the terminal.
  • the server converts the text keyword to a source code corresponding to the text keyword. and modifying the text by converting it into information, and performing analysis on the modified text by the server to generate the text analysis result.
  • an embodiment according to the second aspect of the present invention provides a method for providing a question answering service using a chatbot and source code analysis based on a communication connection between a terminal and a server.
  • the method includes the steps of the server using the chatbot to receive question data including text from the terminal, the server using the chatbot to perform natural language processing on the text based on the question data, generating a text analysis result including the meaning of the text, and generating, by the server, answer data corresponding to the meaning of the text based on the text analysis result using the chatbot, and It includes the step of providing to the terminal.
  • the server converts the text keyword into the text keyword using the chatbot. and modifying the text by converting it into source code information corresponding to and generating the text analysis result by the server analyzing the modified text using the chatbot.
  • an embodiment according to the third aspect of the present invention provides a text semantic analysis system using source code analysis through a communication connection with a terminal.
  • the system includes a communication module for transmitting and receiving information with the terminal, a memory for storing a text semantic analysis program, and a processor for executing the text semantic analysis program stored in the memory.
  • the processor executes the text semantic analysis program, receives input data including text from the terminal through the communication module, and performs natural language processing on the text based on the input data, including the meaning of the text.
  • a text analysis result is generated, and based on the text analysis result, output data corresponding to the meaning of the text is generated and provided to the terminal.
  • the processor converts the text keyword into source code information corresponding to the text keyword when a text keyword including one or more words included in the text has a meaning corresponding to source code information stored in the memory. transform to correct the text, and the processor is configured to perform analysis on the corrected text to generate the text analysis result.
  • an embodiment according to the fourth aspect of the present invention provides a text semantic analysis device using source code analysis.
  • the apparatus includes an input/output module, a memory that stores a text meaning derivation program, and a processor that executes the text meaning derivation program stored in the memory.
  • the processor executes the text meaning derivation program, receives input data including text through the input/output module, performs natural language processing on the text based on the input data, and analyzes the text including the meaning of the text. is generated, and based on the text analysis result, output data corresponding to the meaning of the text is generated and displayed through the input/output module.
  • the processor converts the text keyword into source code information corresponding to the text keyword when a text keyword including one or more words included in the text has a meaning corresponding to source code information stored in the memory. transform to correct the text, and the processor is configured to perform analysis on the corrected text to generate the text analysis result.
  • FIG. 1 is a diagram showing a text semantic analysis system and a terminal using source code analysis according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of the text semantic analysis system shown in FIG. 1 .
  • FIG. 3 is a block diagram showing the configuration of the terminal shown in FIG. 1;
  • FIGS. 4 and 5 are diagrams illustrating examples of analyzing text meaning using source code analysis and a chatbot according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a sequence of a text semantic analysis method using source code analysis according to another embodiment of the present invention.
  • FIG. 7 to 10 are diagrams showing detailed steps for some steps of the method shown in FIG. 6 .
  • FIG. 11 is a flowchart illustrating a sequence of a method for providing a question answering service using source code analysis and a chatbot according to another embodiment of the present invention.
  • FIG. 12 to 15 are diagrams illustrating detailed steps for some steps of the method shown in FIG. 11 .
  • FIG. 1 is a diagram showing a text semantic analysis system (hereinafter referred to as “text semantic analysis system 100”) and a terminal 200 using source code analysis according to an embodiment of the present invention.
  • a text semantic analysis system 100 communicates with a terminal 200 through a communication network.
  • the text semantic analysis system 100 receives input data including text from the terminal 200 through a communication connection with the terminal 200 .
  • the text semantic analysis system 100 generates a text analysis result by performing natural language processing based on input data.
  • the text semantic analysis system 100 may generate output data corresponding to the meaning of the text based on the text analysis result and provide it to the terminal 200 .
  • the terminal 200 may independently perform the above-described text semantic analysis without interaction with the text semantic analysis system 100 .
  • the terminal 200 may receive input data including text from a user through an input/output module such as a display or a touch pad.
  • the terminal 200 may generate a text analysis result by performing natural language processing based on the input data.
  • the terminal 200 may generate and display output data corresponding to the meaning of the text based on the text analysis result.
  • the text semantic analysis system 100 and the terminal 200 may perform the above-described process using a chatbot.
  • the input data may be a user's question
  • the output data may be a chatbot's answer.
  • Language analysis techniques such as morpheme analysis, word analysis, and sentence analysis may be used for natural language processing by the text semantic analysis system 100 and the terminal 200 .
  • the text semantic analysis system 100 and the terminal 200 will be described in detail with reference to FIGS. 2 and 3 below.
  • the text semantic analysis system 100 may be formed in the form of a device such as a server or a terminal 200, and may be formed in a cloud such as software as a service (SaaS), platform as a service (PaaS), or infrastructure as a service (IaaS). It can operate on a computing service model.
  • the text semantic analysis system 100 may be built in the form of a server such as a private cloud, public cloud, or hybrid cloud system.
  • the terminal 200 is, for example, a laptop, a desktop, a laptop equipped with a web browser (WEB Browser), a wireless communication device that ensures portability and mobility, or a smartphone, a tablet PC, and the like. It may refer to a handheld-based wireless communication device.
  • the communication network shown in FIG. 1 is a wired network or mobile radio communication network such as a Local Area Network (LAN), a Wide Area Network (WAN), or a Value Added Network (VAN). ) or all kinds of wireless networks such as satellite communication networks.
  • LAN Local Area Network
  • WAN Wide Area Network
  • VAN Value Added Network
  • the text semantic analysis system 100 includes a communication module 110 , a memory 120 and a processor 140 , and may further include a database 130 .
  • the communication module 110 performs information transmission and reception with the terminal 200 .
  • the communication module 110 may include a device including hardware and software necessary for transmitting and receiving a signal such as a control signal or a data signal to and from other network devices through a wired or wireless connection.
  • the memory 120 stores a text semantic analysis program.
  • the memory 120 may include source code information including information about one or more programming languages.
  • the source code information may include variable information, class information, function information, and relationship information thereof used in one or more programming languages.
  • the name of the text semantic analysis program is set for convenience of explanation, and the name itself does not limit the function of the program.
  • the memory 120 stores at least one of information and data input to the communication module 110, information and data necessary for functions performed by the processor 140, and data generated according to execution of the processor 140.
  • the memory 120 should be interpreted as collectively referring to a non-volatile storage device that continuously maintains stored information even when power is not supplied and a volatile storage device that requires power to maintain stored information.
  • the memory 120 may temporarily or permanently store data processed by the processor 140 .
  • the memory 120 may include magnetic storage media or flash storage media in addition to volatile storage devices that require power to maintain stored information, but the scope of the present invention is not limited thereto. no.
  • the database 130 may be a place where data used by the text semantic analysis system 100 is stored.
  • the database 130 may be a place where meta information and big data for semantic analysis of input data including text, such as semantic information of words, source code name information, and source code description information, are stored.
  • the database 130 may constitute a part of the memory 120, but may be located outside the text semantic analysis system 100, not necessarily inside the text semantic analysis system 100.
  • the processor 140 is configured to execute a text semantic analysis program stored in the memory 120 .
  • the processor 140 may include various types of devices that control and process data.
  • the processor 140 may refer to a data processing device embedded in hardware having a physically structured circuit to perform functions expressed by codes or instructions included in a program.
  • the processor 140 includes a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC), an FPGA ( field programmable gate array), etc., but the scope of the present invention is not limited thereto.
  • the processor 140 is configured to execute the text semantic analysis program and perform the following functions and procedures.
  • the processor 140 receives input data including text from the terminal 200 through the communication module 110, performs natural language processing on the text based on the input data, and generates a text analysis result including the meaning of the text, , Based on the text analysis result, output data corresponding to the meaning of the text may be generated and provided to the terminal 200 .
  • a text keyword including one or more words included in the text has a meaning corresponding to source code information stored in a memory
  • the processor 140 modifies the text by converting the text keyword into source code information corresponding to the text keyword. and analyze the modified text to generate a text analysis result.
  • the text includes question information
  • the text analysis result includes function information for generating an answer corresponding to the question information in the text
  • the output data is answer information generated according to the function information.
  • the text keywords may be composed of words having source code meanings such as “training channel” and “course”
  • the source code keywords include "Training Channel” and “Course” respectively corresponding to "training channel” and “course”. "It can be
  • the processor 140 may extract nouns included in variable information, class information, and function information used in one or more programming languages and set them as source code keywords. In addition, the processor 140 may generate source code information based on the name of the source code corresponding to the source code keyword, the abbreviation of the source code, and the relationship between the translation of the source code and the source code keywords, and store it in the memory 120. .
  • the processor 140 may determine whether a source code keyword corresponding to the text keyword exists in the memory.
  • the processor 140 may perform semantic analysis on a text keyword having a corresponding source code keyword in memory among text keywords included in the text based on the meaning of the corresponding source code keyword.
  • the processor 140 may perform semantic analysis based on dictionary meanings of text keywords that do not have corresponding source code keywords.
  • the processor 140 may set the intention of the text as one of preset intention types based on the text analysis result including the meaning of the text.
  • the processor 140 may set an entity of the text as one entity type among preset entity types based on a text analysis result including the meaning of the text.
  • the preset intent types may include a function check type and an error report type, but the scope of the present invention is not limited thereto, and the intent types may be set in various ways.
  • Preset entity types may include a function description type and an error description type, but the scope of the present invention is not limited thereto, and entity types may be set in various ways.
  • the processor 140 when a text keyword including one or more words included in the text has a meaning corresponding to a plurality of pieces of source code information stored in a memory, the processor 140 sends the pieces of source code information to the terminal 200.
  • the processor 140 may receive an input for one source code information among a plurality of source code information from the terminal 200 .
  • the processor 140 converts the text keyword into the source code information received from the terminal 200, corrects the text, and analyzes the corrected text to generate a text analysis result.
  • FIG. 3 is a block diagram showing the configuration of the terminal 200 shown in FIG. 1 .
  • the terminal 200 includes a memory 220, an input/output module 230 and a processor 240, and may further include a communication module 210.
  • the communication module 210 may transmit/receive information with an external database or an external device.
  • the external device may be the text semantic analysis system (100 in FIG. 1) described above.
  • the memory 220 stores a text meaning derivation program.
  • the name of the program is set for convenience of explanation, and the name itself does not limit the function of the program.
  • the memory 220 may include source code information including information on one or more programming languages.
  • the source code information may include variable information, class information, function information, and relationship information thereof used in one or more programming languages.
  • the input/output module 230 may receive information, data, etc. transmitted to the terminal 200 from the outside or output information, data, etc. possessed by the terminal 200 to the outside.
  • the input/output module 230 may include a display and a touch pad.
  • the processor 240 executes a text meaning derivation program stored in the memory 220 . Additional description of the communication module 210, memory 220 and processor 240 is the communication module (110 in FIG. 2), memory (120 in FIG. 2) and processor (120 in FIG. 2) previously described with reference to FIG. 140) to be replaced with the explanation.
  • the processor 240 is configured to perform the following functions and procedures by executing a text semantic derivation program.
  • the processor 240 receives input data including text through the input/output module 230, performs natural language processing on the text based on the input data, generates a text analysis result including the meaning of the text, and analyzes the text. Based on the result, output data corresponding to the meaning of the text can be generated and displayed through the input/output module.
  • a text keyword including one or more words included in the text has a meaning corresponding to source code information stored in a memory
  • the processor 240 modifies the text by converting the text keyword into source code information corresponding to the text keyword. And, by performing analysis on the modified text, a text analysis result may be generated.
  • the text includes question information
  • the text analysis result includes function information for generating an answer corresponding to the question information in the text
  • the output data is answer information generated according to the function information.
  • the processor 240 may extract nouns included in variable information, class information, and function information used in one or more programming languages and set them as source code keywords. In addition, the processor 240 may generate source code information based on the name of the source code corresponding to the source code keyword, the abbreviation of the source code, and the relationship between the translation of the source code and the source code keywords, and store it in the memory 220. .
  • the processor 240 may determine whether a source code keyword corresponding to the text keyword exists in the memory.
  • the processor 240 performs semantic analysis based on the meaning of the corresponding source code keyword for a text keyword having a corresponding source code keyword in the memory among text keywords included in the text, and performing semantic analysis on a text keyword in which a corresponding source code keyword does not exist.
  • Text keywords can perform semantic analysis based on dictionary meanings.
  • the processor 240 sets the intent of the text as one of preset intent types based on the text analysis result including the meaning of the text, and sets the entity of the text as the default intent type based on the text analysis result including the meaning of the text. It can be set as one of the set entity types.
  • the preset intent type and entity type are identical to the intent type and entity type previously described with reference to FIG. 2 , a description thereof will be omitted.
  • the processor 240 displays a plurality of source code information through the input/output module 230 when a text keyword including one or more words included in the text has a meaning corresponding to a plurality of source code information stored in the memory. can Thereafter, the processor 240 receives an input for one source code information among a plurality of source code information through the input/output module 230, converts a text keyword into the received source code information, modifies the text, and , it is possible to generate text analysis results by performing analysis on the modified text.
  • Source code information used in the above-described text semantic analysis system 100 and terminal 200 may be generated through the following method. For example, data provided to the text semantic analysis system 100 by a user inputting text through the terminal 200, source code information and data collected from other platforms performing text semantic analysis are stored in the memory 120 or It can be stored in the database 130. Through this, metadata and big data about source code information can be collected.
  • the text semantic analysis system 100 may extract elements such as variables, classes (objects), functions (methods) used in each collected programming language, relationships between elements, and structure, and store them as source code information.
  • the text semantic analysis system 100 may perform machine translation on the stored information, match information about the translated text with the original text, and store the same.
  • the terminal 200 may also generate and store source code information through a process similar to the above-described process.
  • the text semantic analysis system 100 converts nouns (names) extracted from source codes, such as variable names, class names, and function names used in the above-described programming language, into one source code keyword to generate source code information.
  • nouns names
  • source codes such as variable names, class names, and function names used in the above-described programming language
  • nouns of low importance or used temporarily may be excluded. For example, “a”, “I”, “j", “t”, “temp”, “tmp” or "a1", “t1”, etc.
  • Commonly temporary alphabetic and numeric nouns used by programmers, Main( ), function names provided by default in specific codes, frameworks, etc. can be excluded from keywords.
  • a class name In the case of a class name, even if it is used once, it is set as a keyword if it does not fall under the exception rule, but in the case of a variable, if the noun is used once and is not reused, it may not be set as a keyword. For example, if there is a class called "TrainingChannel", the text semantic analysis system 100 may register this "TrainingChannel" as a source code keyword.
  • the text semantic analysis system 100 generally uses naming conventions in source codes, namely, uppercase and lowercase letters such as camelCase, PascalCase, Kebab-case, and Snake_case, "_", “-", “/”, “:”, “.” It is possible to segment consecutive string names without spaces by using the separation of special characters such as . For example, “TrainingChannel” may be modified to "Training channel” and “last_login” to "last login”. The text semantic analysis system 100 may additionally perform such segmentation and transformation by utilizing abbreviations, initials, and patterns commonly used in codes and patterns stored in existing knowledge graphs.
  • the text semantic analysis system 100 may perform translation for the segmented keywords in consideration of the Q&A language of the chatbot. For example, when the text semantic analysis system 100 uses a Korean chatbot, it can be transformed into “StudentCard” -> “Student card” -> “Student card”, etc., and “SchoolList” -> “School List”, “School List” “It can be transformed into
  • the text semantic analysis system 100 may determine the relationship between the extracted nouns (keywords) from the structure of the code. Relationships between programming languages can be properties, declarations, references, operations, etc. Attribute refers to the case where a certain variable or function is declared inside a specific class. For example, if the User class has Name and Email variables, relationships such as "User - Name" and "User - Email” may mean properties. In the case of attributes, the text semantic analysis system 100 may express a relationship using ",” or input them as source code keywords. For example, if the Student class has a Name variable, it can be expressed as "Student.Name".
  • “Student.Name” can be set as a source code keyword as "Student name”, and can be transformed into "The name of student", "Student name”, and "Student's name”.
  • Declaration means that a new variable is declared in a specific function. For example, when “newUser” and “userAddResult” are declared in a function called “AddNewUser”, relationships such as “AddNewUser - newUser” and “AddNewUser - userAddResult” may mean declaration relationships.
  • a reference refers to a case where there is a reference, such as calling another variable or function within a specific function.
  • a relationship such as “GetStudentName - Student.Name” may mean a reference relationship.
  • Operation refers to the case where variables are used together as operands of specific operations such as comparison and arithmetic operations. For example, if the comparison operation "minScore > student.Score” is in the code, a relationship such as “minScore - Student.Score” may mean an operation relationship.
  • the above relationship is not fixed, and a plurality of relationships may exist even between the same noun (keyword).
  • This relationship can be used for keyword extraction, intent type setting, entity type setting, etc. when text included in input data is analyzed by the text semantic analysis system 100 and the terminal 200 .
  • the relationship can be set as follows.
  • "School - GetStudentNames” can be inferred as a property as a primary relationship, "GetStudentNames - Student.Name” as a reference relationship, and "School - Student.Name” as a secondary relationship as a property and reference relationship.
  • "Student.Name” is strictly viewed as an attribute relationship like "Student - Name”
  • "School - Name” can be inferred as a tertiary relationship as an attribute, reference, and attribute relationship.
  • the above-described text semantic analysis system 100 and the terminal 200 may perform text semantic analysis and output data generation through the following process.
  • the text semantic analysis system 100 may perform morphological analysis on text included in input data transmitted from the terminal 200 using a chatbot.
  • the text may be in the form of a question.
  • the text semantic analysis system 100 can improve the above-described morpheme analysis by utilizing source code information to reduce accuracy due to words not in the dictionary.
  • the text semantic analysis system can extract the intent and entity of a user query based on sentence structure analysis and pattern matching by using the result of morpheme analysis using source code information.
  • the text semantic analysis system 100 may also perform sentence structure analysis, pattern matching, etc. on the extracted entities to increase analysis accuracy.
  • the text semantic analysis system 100 may perform processing such as translation and conversion for matching with the source code.
  • the text semantic analysis system 100 may transform input data according to interfaces, standards, and formats defined in advance so that algorithms and programs that will process actual question-answering can understand based on the extracted intention and entity.
  • the intent can be used as a function (method) to request, and the entity can be used as a variable.
  • the text semantic analysis system 100 may request information related to the variable from the terminal 200 through a chatbot message when a variable that is required to be included in the modified input data is missing.
  • the terminal 200 may also perform text semantic analysis and output data generation through a process similar to the above-described process.
  • FIGS. 4 and 5 are diagrams illustrating examples of analyzing text meaning using source code analysis and a chatbot according to an embodiment of the present invention.
  • FIGS. 4 and 5 along with FIGS. 1 to 3 , the above-described text semantic analysis and output data generation process will be described in more detail.
  • a user wishing to ask a question about the source code asks, "Is there a function for checking whether students have the same name?” through the terminal 200 or the chatbot. (41) can be asked by transmitting the input data to the text semantic analysis system 100.
  • the chatbot may extract text keywords included in the question and search whether source code keywords according to source code information matching the text keywords are stored in the text semantic analysis system 100 or the terminal 200 .
  • the chatbot may be created to perform the same function as the text semantic analysis system 100 or the processor of the terminal 200 .
  • the chatbot can check the Name variable (property) of the Student class by confirming that the text keyword "Student's name” and the source code keyword "Student.Name” match. Accordingly, the chatbot may convert the question into "Is there a function that checks whether ⁇ Student.Name ⁇ is the same?"
  • the chatbot can perform morpheme analysis and sentence structure analysis on the converted query. Based on the result of the analysis, the chatbot can select the intent that most closely matches the user's question from the patterns and example utterances of intents learned by the chatbot.
  • the chatbot can set the intent type as “check function implementation” and set the entity type as “function description”.
  • the chatbot can determine the user's intention from the entity type, such as "check whether ⁇ Student.Name ⁇ is the same".
  • the chatbot may additionally perform morpheme analysis and sentence structure analysis on the additionally extracted entities.
  • the chatbot can identify relationships and associations between source codes such as (operation), (operation/match), and (reference/if) in entities.
  • the chatbot can translate common morphemes such as “equal”, “case”, “is (there is)”, “confirm”, and words such as “equal”, "case”, “check”, “compare”, “exist”. can be converted, etc.
  • the contents not stored as source code information can be interpreted in a dictionary meaning.
  • the processor 140 of the text semantic analysis system 100 checkFeature("variable or class name", “list of related relationships", “words used in feature description” ), you can request the chatbot to send function information in the form of Chatbot extracts and converts information according to the format above checkFeature("Student.Name”, “(operation), (operation/match), (reference/if)", “same, case, exists, check, equal, function information such as "case, check, compare, exist”) may be transmitted to the processor 140.
  • the chatbot in response to the user's input "Is there a function to check whether the student's name is the same?", the chatbot sends checkFeature("Student.Name", “(operation), (operation/match) ), (reference/if)", "equal, case, check, compare, exist") can be transmitted.
  • the processor 140 says, "There is a record that Development Kim implemented a code related to the content you inquired about 3 days ago. These are lines 17 to 28 of the CheckDuplicate function of the StudentManager class. Link below You can check the corresponding code right away by pressing "(42).
  • the processor 140 may complete the output data including the answer 42 corresponding to the user's question based on the text analysis result and transmit it to the terminal 200 through the chatbot.
  • Text semantic analysis system 100 can be queried by sending input data to The chatbot may convert a question by checking "exam score report” - "ExamResult” keyword from the source code information stored in the text semantic analysis system 100 or the terminal 200.
  • the chatbot can extract "name”, “change”, “from” “as”, “as is”, “display”, “problem”, and “there” through morphological analysis.
  • the chatbot expands the relationship between source code information to the second and third levels, and searches for variable names and class names that match or are similar to "Name”. can
  • the chatbot can confirm that the degree of the relationship between ExamResult and Student.Name is 3 as ExamResult - Examinee - Name - Student.
  • the chatbot is ExamResult - Cohort - Name - School, and it can be seen that the degree of the relationship between ExamResult and School.Name is 3. Since the search results other than the above contents exceed the relation degree of 10, the chatbot can determine the substantially related relation only with the above contents.
  • the chatbot Since the chatbot cannot determine which of the property values of the same "name” of Student.Name and School.Name is referred to by the noun "name", the chatbot informs the user through the terminal 200 what the "name” is in detail. You can suggest an explanation with a text and a reply button. For example, the chatbot may display the following message through the terminal 200.
  • the chatbot may perform morphological analysis and sentence structure analysis on the converted question to identify the most matching intention. For example, the chatbot may set the intent type of the question to "bug, error report” and set the entity type to the problem description entity. Based on the entity type, the chatbot can extract the entity " ⁇ Student.Name ⁇ has been changed, but ⁇ ExamResult.Examinee ⁇ remains the same.”
  • the chatbot additionally performs morphological analysis and sentence structure analysis on entities to analyze relationships such as (operation) and (operation/assignment), as well as “replace”, “as is”, “display” and conversion, derived change, edit, Same, display, unchanged, etc. can be extracted.
  • the processor 140 may request the chatbot to send function information such as reportBug ("variable or class name”, “relationship list”, "word, morpheme”).
  • the chatbot sends reportBug ("Student.Name, ExamResult.Examinee", “(Operation), (Operation/Assignment) to the processor 140 based on the input "I have changed the name, but there is a problem that is displayed as it is in the test report card.” )", "change, edit, same, display, unchanged") text analysis results including function information can be generated and transmitted.
  • the processor 140 may generate an answer such as "Yes, a report has been received for a bug in which the student's name has been changed, but the test taker's name is not changed in the test report card" (54) according to the function information transmitted from the chatbot. there is. In other words, the processor 140 may complete the output data including the answer 54 corresponding to the user's question based on the text analysis result and transmit it to the terminal 200 through the chatbot.
  • FIG. 6 is a flowchart showing the sequence of a text semantic analysis method using source code analysis according to another embodiment of the present invention
  • FIGS. 7 to 10 show detailed steps for some steps of the method shown in FIG. 6 they are drawings
  • the text semantic analysis method using source code analysis to be described below is at least one of a text semantic analysis system (100 in FIG. 1) and a terminal (200 in FIG. 1) using source code analysis described above with reference to FIGS. 1 to 5. It may be performed by one or more. Therefore, the contents of the embodiments of the present invention described above with reference to FIGS. 1 to 5 can be equally applied to the embodiments to be described below, and descriptions overlapping with those described above will be omitted.
  • the steps described below do not necessarily have to be performed in order, the order of the steps may be set in various ways, and the steps may be performed almost simultaneously.
  • the text semantic analysis method using source code analysis is performed through a communication connection between a terminal and a server, and includes an input receiving step (S120), a text analysis step (S130), and an output providing step (S140).
  • source code information storage step (S110) may be further included.
  • the server may be the text semantic analysis system (100 in FIG. 1) using the above-described source code analysis
  • the terminal may be the above-described terminal (200 in FIG. 1).
  • the source code information storage step (S110) is a step of generating source code information and storing it in the memory of the server.
  • the server may include a memory including source code information including information on one or more programming languages.
  • the source code information may include variable information, class information, function information, and relationship information thereof used in one or more programming languages.
  • the input receiving step (S120) is a step in which the server receives input data including text from the terminal.
  • the server performs natural language processing on the text based on the input data, and the text including the meaning of the text is performed by the server. This step is to generate analysis results.
  • the server converts the text keyword into source code information corresponding to the text keyword, The text may be modified, and the server may perform analysis on the modified text to generate a text analysis result.
  • the output providing step (S140) is a step in which the server generates output data corresponding to the meaning of the text based on the text analysis result and provides it to the terminal.
  • the text includes question information
  • the text analysis result includes function information for generating an answer corresponding to the question information in the text
  • the output data is answer information generated according to the function information.
  • the source code information storage and provision step (S110) may include a source code keyword setting step (S111) and a source code information generation step (S112).
  • the source code keyword setting step (S111) may include extracting nouns included in variable information, class information, and function information used in at least one programming language by the server and setting them as source code keywords.
  • the server In the source code information generation step (S112), the server generates source code information based on the name of the source code corresponding to the source code keyword, the abbreviation of the source code, and the relationship between the translation of the source code and the source code keywords, and stores it in memory. steps may be included.
  • the text analysis step (S130) may include a source code search step (S131) and a text conversion and meaning analysis step (S132).
  • the source code search step (S131) means a step in which the server determines whether a source code keyword corresponding to the text keyword exists in the memory.
  • the server performs semantic analysis based on the meaning of the source code keyword corresponding to the text keyword in which the source code keyword corresponding to the memory among the text keywords included in the text exists, and responds to the corresponding text keyword.
  • Text keywords in which source code keywords do not exist mean a step of performing semantic analysis based on dictionary meanings. Since descriptions of text keywords and source code keywords have been previously described with reference to FIGS. 1 to 5, they will be omitted.
  • the text analysis step ( S130 ) may include a text intent analysis step ( S133 ) and a text entity analysis step ( S134 ).
  • the text intent analysis step ( S133 ) may include setting, by the server, the text intent as one of preset intent types based on the text analysis result including the meaning of the text.
  • the text entity analysis step ( S134 ) may include setting the entity of the text as one entity type among predetermined entity types based on the text analysis result including the meaning of the text by the server. Since the preset intent types and entity types are substantially the same as the intent types and entity types previously described with reference to FIGS. 1 to 5 , a description thereof will be omitted.
  • the text analysis step (S130) may include providing a plurality of source code information (S135) and receiving specific source code information and text analysis step (S136).
  • the server determines the plurality of source code information. It means the step of providing them to the terminal.
  • the server receives an input for one source code information among a plurality of source code information from the terminal, converts the text keyword into the source code information received from the terminal, and converts the text keyword into the source code information received from the terminal. , and the server analyzes the modified text to generate a text analysis result.
  • FIG. 11 is a flow chart showing the sequence of a method for providing a question and answer service using source code analysis and a chatbot according to another embodiment of the present invention
  • FIGS. 12 to 15 show details of some steps of the method shown in FIG. 11 Figures showing the steps.
  • a question and answer service providing method using source code analysis and a chatbot to be described below includes a text semantic analysis system (100 in FIG. 1) and a terminal (200 in FIG. 1) using the source code analysis described above with reference to FIGS. 1 to 5. It can be performed by at least any one or more of them. Therefore, the contents of the embodiments of the present invention described above with reference to FIGS. 1 to 5 can be equally applied to the embodiments to be described below, and descriptions overlapping with those described above will be omitted.
  • the steps described below do not necessarily have to be performed in order, the order of the steps may be set in various ways, and the steps may be performed almost simultaneously.
  • the method for providing a question answering service using a source code analysis and chatbot includes a source code question receiving step (S220), a question analyzing step (S230), and an answer providing step (S240), and the source code information storage step (S210) may be further included.
  • the source code information storage step (S210) is a step in which the server generates source code information and stores it in the memory of the server.
  • the server includes a memory including source code information including information on one or more programming languages, and the source code information includes variable information, class information, function information and these information used in one or more programming languages. may include relational information of
  • the server receives question data including text from the terminal using the chatbot.
  • the server performs natural language processing on the text based on the question data using the chatbot, and generates a text analysis result including the meaning of the text.
  • the answer providing step (S240) is a step in which the server generates answer data corresponding to the meaning of the text based on the text analysis result using the chatbot, and provides the answer data to the terminal.
  • the server converts the text keyword into a source code corresponding to the text keyword using a chatbot.
  • the text includes question information
  • the text analysis result includes function information for generating an answer corresponding to the question information in the text
  • the output data is answer information generated according to the function information.
  • the source code information storage step (S210) may include a source code keyword setting step (S211) and a source code information generation step (S212).
  • the source code keyword setting step (S211) may include extracting nouns included in variable information, class information, and function information used in at least one programming language by the server and setting them as source code keywords.
  • the server In the source code information generation step (S212), the server generates source code information based on the name of the source code corresponding to the source code keyword, the abbreviation of the source code, and the relationship between the translation of the source code and the source code keywords and stores it in memory. steps may be included.
  • the question analysis step (S230) may include a source code search step (S231) and a text conversion and semantic analysis step (S232).
  • the source code search step (S231) means a step in which the server determines whether a source code keyword corresponding to the text keyword exists in the memory.
  • the server performs semantic analysis based on the meaning of the source code keyword corresponding to the text keyword for which the source code keyword corresponding to the memory exists among the text keywords included in the text, and responds to the corresponding text keyword.
  • Text keywords in which source code keywords do not exist mean a step of performing semantic analysis based on dictionary meanings.
  • the question analysis step ( S230 ) may include a text intent analysis step ( S233 ) and a text entity analysis step ( S234 ).
  • the text intent analysis step ( S233 ) may include setting, by the server, the text intent as one of preset intent types based on the text analysis result including the meaning of the text.
  • the text entity analysis step (S234) may include a step in which the server sets the text entity as one entity type among predetermined entity types based on the text analysis result including the meaning of the text. . Since the preset intent types and entity types are substantially the same as the intent types and entity types previously described with reference to FIGS. 1 to 5 , a description thereof will be omitted.
  • the question analysis step (S230) may include providing a plurality of source code information (S235) and receiving specific source code information and generating a text analysis result (S236).
  • the server uses a chatbot to provide a plurality of source code information. It means a step of providing source code information to a terminal.
  • the server receives an input for one source code information among a plurality of source code information from the terminal using a chatbot, and receives a text keyword from the terminal. It refers to a step of converting into source code information, modifying the text, and generating a text analysis result by performing analysis on the modified text.
  • the text semantic analysis method using source code analysis and the question answering service providing method using source code analysis and chatbot are executable by a computer, such as a program module executed by a computer. It may also be implemented in the form of a recording medium including instructions.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer readable media may include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • the mode for carrying out the invention is substantially the same as the best mode for carrying out the invention above.
  • the present invention has industrial applicability because it can be applied to natural language processing algorithms and software development industries using artificial intelligence models, artificial intelligence chatbot service industries, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Machine Translation (AREA)

Abstract

본 발명의 일 실시예는, 단말과 서버의 통신 연결을 통해 소스코드 분석을 이용한 텍스트 의미 분석 방법을 제공한다. 본 방법은, 상기 서버가 상기 단말로부터 텍스트가 포함된 입력 데이터를 수신하는 단계, 상기 서버가 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계, 그리고, 상기 서버가 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 단말로 제공하는 단계를 포함한다. 상기 텍스트 분석 결과를 생성하는 단계는, 상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 서버가 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 상기 서버가 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함한다.

Description

소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법
본 발명은 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템, 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법에 관한 것으로, 더욱 상세하게는, 텍스트에 포함된 단어에 대해 사전적인 의미 분석뿐만 아니라, 텍스트에 포함된 단어에 대해 소스코드 분석을 수행하여 획득한 정보를 토대로 텍스트의 의미를 보다 정확하게 분석하는 텍스트 의미 분석 장치, 시스템, 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법에 관한 것이다.
챗봇은 메신저와 같은 채팅 수단에 질문을 입력하면 인공지능이 일상언어로 사람과 대화하듯이 질문에 대한 답변을 제공하는 대화형 메신저를 말한다. 최근 국내외 다수의 기업들은 24시간 고객지원 서비스를 수행하고 있어, 고객지원 서비스에 소모되는 비용 및 인력을 줄이기 위해 챗봇을 도입하고 있다. 고객 입장에서도 챗봇을 통해 필요한 지식이나 답변을 얻는 것이 편리하고 효율적이어서 챗봇은 기존의 고객지원 서비스의 품질을 향상시킨다는 평가를 받고 있다.
일반적으로, 고객은 챗봇에게 메신저를 통해 채팅하듯 질문을 입력하고, 챗봇은 질문에 포함된 텍스트 데이터를 분석하고, 학습된 데이터 또는 데이터베이스에 저장된 데이터를 토대로 질문에 대응되는 답변을 제공한다. 이 때, 통용되는 용어를 사용한 질문의 경우에는 챗봇의 인식률이 높아서 질문에 알맞은 답변을 제공할 수 있으나, 전문 용어를 사용하여 질문을 형성할 경우에는 질문에 알맞은 대답이 제공되지 않을 수 있다.
예컨대, 고객이 “기업과 B기업은 서로 무슨 관계야?”와 같은 질문을 입력하면, 챗봇은 “특정 대상간의 관계를 물음”이란 의도를 파악하고 학습된 데이터 또는 데이터베이스에서 A기업과 B기업의 관계를 검색하여 “자회사 관계입니다”라는 답변을 제공할 수 있다. 그러나, 소프트웨어 개발을 진행하는 고객이 소스코드(Source code) 정보를 갖는 “트레이닝 채널과 코스는 서로 무슨 관계야?”라는 질문을 입력하였을 때, 챗봇이 사용하는 데이터베이스에 “트레이닝 채널”과 “코스”에 대한 의미가 저장되어 있지 않거나 고객이 알고 있는 단어의 의미와 다른 의미로 저장되어 있는 경우, 챗봇은 질문에 알맞은 답변을 제공하지 못하는 문제가 발생할 수 있다.
본 발명은 전술한 문제점을 해결하기 위한 것으로, 텍스트에 포함된 단어에 대해 사전적인 의미 분석뿐만 아니라, 텍스트에 포함된 단어에 대해 소스코드 분석을 수행하여 획득한 정보를 토대로 텍스트의 의미를 보다 정확하게 분석하는 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템, 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법을 제공하는 것을 일 기술적 과제로 한다.
본 발명이 이루고자 하는 기술적 과제들은 상기한 기술적 과제로 제한되지 않으며, 이하의 설명으로부터 본 발명의 또 다른 기술적 과제들이 도출될 수 있다.
상술한 기술적 과제를 해결하기 위한 기술적 수단으로서, 본 발명의 제1 측면에 따른 실시예는, 단말과 서버의 통신 연결을 토대로 소스코드 분석을 이용한 텍스트 의미 분석 방법을 제공한다. 본 방법은, 상기 서버가 상기 단말로부터 텍스트가 포함된 입력 데이터를 수신하는 단계, 상기 서버가 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계, 그리고, 상기 서버가 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 단말로 제공하는 단계를 포함한다. 상기 텍스트 분석 단계는, 상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 서버가 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 상기 서버가 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함한다.
또한, 본 발명의 제2 측면에 따른 실시예는, 단말과 서버의 통신 연결을 토대로 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법을 제공한다. 본 방법은, 상기 서버가 상기 챗봇을 이용하여, 상기 단말로부터 텍스트가 포함된 질문 데이터를 수신하는 단계, 상기 서버가 상기 챗봇을 이용하여, 상기 질문 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하고, 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계, 그리고, 상기 서버가 상기 챗봇을 이용하여, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 답변 데이터를 생성하고, 상기 답변 데이터를 상기 단말로 제공하는 단계를 포함한다. 상기 텍스트 분석 단계는, 상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 서버가 상기 챗봇을 이용하여 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 상기 서버가 상기 챗봇을 이용하여 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함한다.
또한, 본 발명의 제3 측면에 따른 실시예는, 단말과의 통신 연결을 통해 소스코드 분석을 이용한 텍스트 의미 분석 시스템을 제공한다. 본 시스템은, 상기 단말과의 정보 송수신을 수행하는 통신 모듈, 텍스트 의미 분석 프로그램을 저장하는 메모리, 그리고, 상기 메모리에 저장된 텍스트 의미 분석 프로그램을 실행하는 프로세서를 포함한다. 상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여, 상기 통신 모듈을 통해 상기 단말로부터 텍스트가 포함된 입력 데이터를 전송 받고, 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 단말로 제공한다. 상기 프로세서는, 상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 프로세서는 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 상기 프로세서는 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하도록 구성된다.
또한, 본 발명의 제4 측면에 따른 실시예는, 소스코드 분석을 이용한 텍스트 의미 분석 장치를 제공한다. 본 장치는, 입출력 모듈, 텍스트 의미 도출 프로그램을 저장하는 메모리, 그리고, 상기 메모리에 저장된 텍스트 의미 도출 프로그램을 실행하는 프로세서를 포함한다. 상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여, 상기 입출력 모듈을 통해 텍스트가 포함된 입력 데이터를 전송 받고, 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 입출력 모듈을 통해 표시한다. 상기 프로세서는, 상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 프로세서는 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 상기 프로세서는 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하도록 구성된다.
본 발명에 따르면, 텍스트에 포함된 단어에 대해 사전적인 의미 분석뿐만 아니라 소스코드 분석을 수행하여 텍스트의 의미를 보다 정확하게 분석할 수 있다.
또한. 본 발명에 따르면, 질의응답형 챗봇이 텍스트 의미 분석을 수행하는 과정에서 텍스트에 포함된 단어가 사전에 포함되지 않은 경우, 해당 단어에 대한 소스 코드 분석을 수행하여 질의 내용에 대한 이해도를 높이고, 질문에 알맞은 답변을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 소스코드 분석을 이용한 텍스트 의미 분석 시스템과 단말을 나타낸 도면이다.
도 2는 도 1에 도시된 텍스트 의미 분석 시스템의 구성을 도시한 블록도이다.
도 3은 도 1에 도시된 단말의 구성을 도시한 블록도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따라 소스코드 분석 및 챗봇을 이용하여 텍스트 의미를 분석하는 예시들을 나타낸 도면들이다.
도 6은 본 발명의 다른 실시예에 따른 소스코드 분석을 이용한 텍스트 의미 분석 방법의 순서를 도시한 흐름도이다.
도 7 내지 도 10은 도 6에 도시된 방법의 일부 단계에 대한 세부 단계들을 도시한 도면들이다.
도 11은 본 발명의 또 다른 실시예에 따른 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법의 순서를 도시한 흐름도이다.
도 12 내지 도 15는 도 11에 도시된 방법의 일부 단계에 대한 세부 단계들을 도시한 도면들이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 상세히 설명하기로 한다. 다만, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시예들로 한정되는 것은 아니다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않는다. 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미로 해석되어야 한다. 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 추가적으로 갖는 것으로 해석되어야 하며, 별도로 정의되지 않는 한 매우 이상적이거나 제한적인 의미로 해석되지 않는다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 도면에 나타난 각 구성요소의 크기, 형태, 형상은 다양하게 변형될 수 있다. 명세서 전체에 대하여 동일/유사한 부분에 대해서는 동일/유사한 도면 부호를 붙였다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 “부” 등은 명세서 작성의 용이함만이 고려되어 부여 되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉 또는 결합)"되어 있다고 할 때, 이는 "직접적으로 연결(접속, 접촉 또는 결합)"되어 있는 경우뿐만 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결 (접속, 접촉 또는 결합)"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함(구비 또는 마련)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 "포함(구비 또는 마련)"할 수 있다는 것을 의미한다.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 나타내는 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 구성 요소들의 순서나 관계를 제한하지 않는다. 예를 들어, 본 발명의 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소도 제1구성 요소로 명명될 수 있다. 본 명세서에서 사용되는 단수 표현의 형태들은 명백히 반대의 의미를 나타내지 않는 한 복수 표현의 형태들도 포함하는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 소스코드 분석을 이용한 텍스트 의미 분석 시스템(이하, “텍스트 의미 분석 시스템(100)”이라 함)과 단말(200)을 나타낸 도면이다.
도 1을 참조하면, 텍스트 의미 분석 시스템(100)은 통신망을 통해 단말(200)과 통신 연결된다. 텍스트 의미 분석 시스템(100)은 단말(200)과의 통신 연결을 통해 단말(200)로부터 텍스트를 포함한 입력 데이터를 수신한다. 텍스트 의미 분석 시스템(100)은 입력 데이터를 토대로 자연어 처리를 수행하여 텍스트 분석 결과를 생성한다. 텍스트 의미 분석 시스템(100)은 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 출력 데이터를 생성하여 단말(200)에게 제공할 수 있다. 단말(200)은 텍스트 의미 분석 시스템(100)과의 상호작용 없이 독립적으로 상술한 텍스트 의미 분석을 수행할 수 있다. 예컨대, 단말(200)은 디스플레이, 터치패드와 같은 입출력 모듈을 통해 사용자로부터 텍스트를 포함하는 입력 데이터를 수신할 수 있다. 단말(200)은 입력 데이터를 토대로 자연어 처리를 수행하여 텍스트 분석 결과를 생성할 수 있다. 단말(200)은 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 출력 데이터를 생성하여 표시할 수 있다. 텍스트 의미 분석 시스템(100) 및 단말(200)은 챗봇을 이용하여 상술한 과정을 수행할 수 있다. 이 때, 입력 데이터는 사용자의 질문일 수 있고, 출력 데이터는 챗봇의 답변일 수 있다. 텍스트 의미 분석 시스템(100) 및 단말(200)의 자연어 처리에는 형태소 분석, 단어 분석, 문장 분석 등의 언어 분석 기술이 활용될 수 있다. 텍스트 의미 분석 시스템(100) 및 단말(200)에 대해서는 이하에서 도 2 및 도 3을 참조하여 더욱 상세하게 설명하도록 한다.
텍스트 의미 분석 시스템(100)은 서버 또는 단말(200)과 같은 장치 형태로 형성될 수 있고, SaaS (Software as a Service), PaaS (Platform as a Service) 또는 IaaS (Infrastructure as a Service)와 같은 클라우드 컴퓨팅 서비스 모델에서 동작 할 수 있다. 또한, 텍스트 의미 분석 시스템(100)은 사설(private) 클라우드, 공용(public) 클라우드 또는 하이브리드(hybrid) 클라우드 시스템과 같은 서버 형태로 구축될 수 있다.
단말(200)은 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 휴대성과 이동성이 보장되는 무선 통신 장치 또는 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 의미할 수 있다. 또한, 도 1에 도시된 통신망은 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다.
도 2는 텍스트 의미 분석 시스템(100)의 구성을 도시한 블록도이다. 도 2를 참조하면, 텍스트 의미 분석 시스템(100)은 통신 모듈(110), 메모리(120) 및 프로세서 (140)를 포함하며, 데이터베이스(130)를 더 포함할 수 있다.
통신 모듈(110)은 단말(200)과의 정보 송수신을 수행한다. 통신 모듈(110)은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치를 포함할 수 있다.
메모리(120)는 텍스트 의미 분석 프로그램을 저장한다. 또한, 메모리(120)는 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 소스코드 정보를 포함할 수 있다. 여기서, 소스코드 정보는, 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함할 수 있다. 텍스트 의미 분석 프로그램의 명칭은 설명의 편의를 위해 설정된 것으로, 명칭 그 자체로 프로그램의 기능을 제한하는 것은 아니다.
메모리(120)는 통신 모듈(110)로 입력되는 정보 및 데이터, 프로세서(140)에 의해 수행되는 기능에 필요한 정보 및 데이터, 프로세서(140)의 실행에 따라 생성된 데이터 중 적어도 어느 하나 이상을 저장할 수 있다. 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력을 필요로 하는 휘발성 저장장치를 통칭하는 것으로 해석되어야 한다. 또한, 메모리(120)는 프로세서(140)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 메모리(120)는 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치 외에 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
데이터베이스(130)는 텍스트 의미 분석 시스템(100)이 사용하는 데이터가 저장되는 곳일 수 있다. 예컨대, 데이터베이스(130)는 단어의 의미 정보, 소스코드 명칭 정보, 소스코드 설명 정보 등 텍스트가 포함된 입력 데이터의 의미 분석을 위한 메타 정보와 빅데이터가 저장된 곳일 수 있다. 데이터베이스(130)는 메모리(120)의 일부를 구성할 수 있으나, 반드시 텍스트 의미 분석 시스템(100) 내부에 위치하는 것이 아니라 외부에 위치할 수도 있다.
프로세서(140)는 메모리(120)에 저장된 텍스트 의미 분석 프로그램을 실행하도록 구성된다. 프로세서(140)는 데이터를 제어 및 처리하는 다양한 종류의 장치들을 포함할 수 있다. 프로세서(140)는 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 일 예에서, 프로세서(140)는 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 형태로 구현될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
프로세서(140)는, 텍스트 의미 분석 프로그램을 실행하여, 다음과 같은 기능 및 절차들을 수행하도록 구성된다. 프로세서(140)는 통신 모듈(110)을 통해 단말(200)로부터 텍스트가 포함된 입력 데이터를 전송 받고, 입력 데이터를 토대로 텍스트에 대한 자연어 처리를 수행하여 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 출력 데이터를 생성하여 단말(200)로 제공할 수 있다. 프로세서(140)는, 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 텍스트 키워드를 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 텍스트를 수정하고, 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성할 수 있다. 일 예에서, 텍스트는 질문 정보를 포함하고, 텍스트 분석 결과는 상기 텍스트를 상기 질문 정보에 대응되는 답변을 생성하도록 하는 함수 정보를 포함하고, 그리고, 출력 데이터는 상기 함수 정보에 따라 생성되는 답변 정보를 포함할 수 있다. 또한, 텍스트 키워드는 "트레이닝 채널", "코스"와 같은 소스코드 의미를 갖는 단어로 구성될 수 있고, 소스코드 키워드는 "트레이닝 채널", "코스"에 각각 대응되는 "Training Channel", "Course"일 수 있다.
프로세서(140)는 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정할 수 있다. 그리고, 프로세서(140)는 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 소스코드 정보를 생성하여 메모리(120)에 저장할 수 있다.
프로세서(140)는 텍스트 키워드에 대응되는 소스코드 키워드가 메모리에 존재하는지 판단할 수 있다. 프로세서(140)는 텍스트에 포함된 텍스트 키워드들 중 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행할 수 있다. 프로세서(140)는 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는 사전적 의미를 토대로 의미 분석을 수행할 수 있다.
프로세서(140)는 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정할 수 있다. 프로세서(140)는 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 엔티티(entity)가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정할 수 있다. 여기서, 기설정된 의도 유형들은, 기능 확인 유형 및 오류 보고 유형을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니며, 의도의 유형들은 다양하게 설정될 수 있다. 기설정된 엔티티 유형들은, 기능 설명 유형 및 오류 설명 유형을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니며, 엔티티의 유형들은 다양하게 설정될 수 있다.
일 예에서, 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 메모리에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 프로세서(140)는 복수개의 소스코드 정보들을 단말(200)로 제공할 수 있다. 다음, 프로세서(140)는 단말(200)로부터 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신할 수 있다. 다음, 프로세서(140)는 텍스트 키워드를 단말(200)로부터 수신한 소스코드 정보로 변환하여 텍스트를 수정하고, 그리고, 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성할 수 있다.
도 3은 도 1에 도시된 단말(200)의 구성을 도시한 블록도이다. 도 3을 참조하면, 단말(200)은 메모리(220), 입출력 모듈(230) 및 프로세서(240)를 포함하며, 통신 모듈(210)을 더 포함할 수 있다.
통신 모듈(210)은 외부 데이터베이스 또는 외부 장치와의 정보 송수신을 수행할 수 있다. 여기서 외부 장치는 앞서 설명한 텍스트 의미 분석 시스템(도 1의 100)일 수 있다. 메모리(220)는 텍스트 의미 도출 프로그램을 저장한다. 프로그램의 명칭은 설명의 편의를 위해 설정된 것으로, 명칭 그 자체로 프로그램의 기능을 제한하는 것은 아니다. 메모리(220)는, 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 소스코드 정보를 포함할 수 있다. 소스코드 정보는, 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함할 수 있다. 입출력 모듈(230)은 외부로부터 단말(200)로 전송되는 정보, 데이터 등을 입력받거나, 단말(200)이 보유한 정보, 데이터 등을 외부로 출력할 수 있다. 예컨대, 입출력 모듈(230)은 디스플레이, 터치패드 등을 포함할 수 있다. 프로세서(240)는 메모리(220)에 저장된 텍스트 의미 도출 프로그램을 실행한다. 통신 모듈(210), 메모리(220) 및 프로세서(240)에 대한 부가적인 설명은 앞서 도 2를 참조하여 설명한 통신모듈(도 2의 110), 메모리(도 2의 120) 및 프로세서(도 2의 140)에 대한 설명으로 대체하도록 한다.
프로세서(240)는 텍스트 의미 도출 프로그램을 실행하여 다음과 같은 기능 및 절차들을 수행하도록 구성된다. 프로세서(240)는 입출력 모듈(230)을 통해 텍스트가 포함된 입력 데이터를 전송 받고, 입력 데이터를 토대로 텍스트에 대한 자연어 처리를 수행하여 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 그리고, 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 출력 데이터를 생성하여 입출력 모듈을 통해 표시할 수 있다. 프로세서(240)는, 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 텍스트 키워드를 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 텍스트를 수정하고, 그리고, 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성할 수 있다. 일 예에서, 텍스트는 질문 정보를 포함하고, 텍스트 분석 결과는 상기 텍스트를 상기 질문 정보에 대응되는 답변을 생성하도록 하는 함수 정보를 포함하고, 그리고, 출력 데이터는 상기 함수 정보에 따라 생성되는 답변 정보를 포함할 수 있다.
프로세서(240)는, 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정할 수 있다. 그리고, 프로세서(240)는 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 소스코드 정보를 생성하여 메모리(220)에 저장할 수 있다.
프로세서(240)는 텍스트 키워드에 대응되는 소스코드 키워드가 메모리에 존재하는지 판단할 수 있다. 프로세서(240)는 텍스트에 포함된 텍스트 키워드들 중 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고, 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는 사전적 의미를 토대로 의미 분석을 수행할 수 있다.
프로세서(240)는 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하고, 그리고, 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정할 수 있다. 여기서, 기설정된 의도 유형 및 엔티티 유형은 각각 앞서 도 2를 참조하여 설명한 의도 유형 및 엔티티 유형과 동일하므로, 이들에 대한 설명은 생략하도록 한다.
프로세서(240)는 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 메모리에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 복수개의 소스코드 정보들을 입출력 모듈(230)을 통해 표시할 수 있다. 이후, 프로세서(240)는 입출력 모듈(230)을 통해 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신하고, 텍스트 키워드를 수신된 소스코드 정보로 변환하여 텍스트를 수정하고, 그리고, 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성할 수 있다.
상술한 텍스트 의미 분석 시스템(100) 및 단말(200)에 사용되는 소스코드 정보는 다음과 같은 방법을 통해 생성될 수 있다. 예컨대, 단말(200)을 통해 텍스트를 입력하는 사용자가 텍스트 의미 분석 시스템(100)에 제공하는 데이터, 텍스트 의미 분석을 수행하는 타 플랫폼에서 연동, 수집한 소스코드 정보 및 데이터가 메모리(120) 또는 데이터베이스(130)에 저장될 수 있다. 이를 통해 소스코드 정보에 대한 메타 데이터 및 빅데이터를 수집할 수 있다. 또한, 텍스트 의미 분석 시스템(100)은 수집된 각 프로그래밍 언어에서 사용되는 변수, 클래스(객체), 함수(method) 등의 요소와 요소들간의 관계, 구조를 추출하여 소스코드 정보로서 저장할 수 있다. 또한, 텍스트 의미 분석 시스템(100)은 저장된 정보에 대해서 기계번역을 수행하여 번역문에 대한 정보를 원문과 매칭하여 저장할 수 있다. 단말(200) 역시 상술한 과정과 유사한 과정을 통해 소스코드 정보를 생성 및 저장할 수 있다.
보다 상세하게는, 텍스트 의미 분석 시스템(100)은 소스코드 정보 생성을 위해 상술한 프로그래밍 언어에서 사용되는 변수명, 클래스명, 함수명 등 소스코드에서 추출된 명사(Name)를 하나의 소스코드 키워드로 저장할 수 있다. 여기서, 명사의 종류(변수명인지 클래스명인지 등)와 소스코드 내에서 사용되는 빈도, 예외규칙 등을 고려하여 중요도가 떨어지거나 임시로 쓰인 명사 등은 제외될 수 있다. 예컨대, "a", "I", "j", "t", "temp", "tmp" 혹은 "a1", "t1" 등 일반적으로 프로그래머가 임시로 쓰는 알파벳, 숫자 조합의 명사, Main() 등 특정 코드, 프레임워크 등에서 기본적으로 제공되는 함수명 등은 키워드에서 제외될 수 있다. 또한, 클래스명의 경우 1번 사용되었어도 예외규칙에 해당하지 않으면 키워드로 설정되되, 변수의 경우 해당 명사가 1번 쓰이고 재사용되지 않을 경우에는 키워드로 설정되지 않을 수 있다. 예컨대, 텍스트 의미 분석 시스템(100)은 "TrainingChannel"이라는 클래스가 있을 경우, 바로 이 "TrainingChannel"을 소스코드 키워드로 등록할 수 있다. 텍스트 의미 분석 시스템(100)은 일반적으로 소스코드에서 쓰이는 Naming convention, 즉 camelCase, PascalCase, Kebab-case, Snake_case 등 대소문자나 "_", "-", "/", ":", "." 등 특수문자의 구분을 활용하여 띄어쓰기 없이 연속된 문자열 Name을 분절할 수 있다. 예컨대, "TrainingChannel"은 "Training channel"로 "last_login"은 "last login"로 수정될 수 있다. 텍스트 의미 분석 시스템(100)은 범용적으로 코드에서 사용하는 약어, 이니셜, 패턴 및 기존 지식그래프에 저장된 패턴을 활용하여 이와 같은 분절, 변형을 추가로 수행할 수 있다. 예컨대, "Tmpl"은 "Template"로, "Cnt"은 "Count"로, "StudentNum"은 "Student Number" & "The number of studnet"로, "SchoolList"은 "School List" & "The list of school"로 수정될 수 있다. 텍스트 의미 분석 시스템(100)은 분절된 키워드에 대해서 챗봇의 질의응답 언어를 고려해 번역을 수행할 수 있다. 예컨대, 텍스트 의미 분석 시스템(100)이 한국어 챗봇을 사용할 경우 "StudentCard" -> "Student card" -> "학생 카드" 등으로 변형할 수 있고, "SchoolList" -> "학교 목록", "학교 리스트"와 같이 변형할 수 있다.
텍스트 의미 분석 시스템(100)은 추출된 명사(키워드) 사이의 관계를 코드의 구조 등에서 파악할 수 있다. 프로그래밍 언어들 간의 관계는 속성, 선언, 참조, 연산 등이 있을 수 있다. 속성은 어떤 변수, 함수가 특정한 클래스 내부에 선언된 경우를 의미한다. 예컨대, User 클래스가 Name, Email 변수를 가지고 있을 경우 "User - Name", "User - Email"과 같은 관계는 속성을 의미할 수 있다. 텍스트 의미 분석 시스템(100)은 속성의 경우, ","을 사용해 관계를 표현하거나 소스코드 키워드로 입력할 수 있다. 예컨대, Student 클래스에 Name 변수가 있으면 "Student.Name"과 같이 표현될 수 있다. "Student.Name"은 "Student name"으로 소스코드 키워드가 설정될 수 있고, "The name of student", "학생 이름", "학생의 이름"으로 변형될 수 있다. 선언은 특정한 함수 안에서 새로운 변수가 선언된 경우를 의미한다. 예컨대, "AddNewUser" 라는 함수에서 "newUser", "userAddResult" 등이 선언된 경우 "AddNewUser - newUser", "AddNewUser - userAddResult"와 같은 관계는 선언 관계를 의미할 수 있다. 참조는 특정한 함수 안에서 다른 변수, 함수를 호출하는 등 참조가 있는 경우를 의미한다. 예컨대, "GetStudentName"이란 함수에서 Student 클래스의 Name 속성(변수)을 참조하는 경우 "GetStudentName - Student.Name"과 같은 관계는 참조 관계를 의미할 수 있다. 연산은 변수들이 비교, 사칙연산 등 특정한 연산의 피연산자로서 함께 쓰인 경우를 의미한다. 예컨대, "minScore > student.Score" 라는 비교연산이 코드에 있다면 "minScore - Student.Score"와 같은 관계는 연산 관계를 의미할 수 있다.
상술한 관계는 고정된 것이 아니며, 같은 명사(키워드)사이에서도 복수의 관계가 존재할 수도 있다. 또한, 직접적으로 1차 연결된 관계뿐만 아니라 이에 기반한 2차, 3차 관계가 있을 수 있다. 이러한 관계는 텍스트 의미 분석 시스템(100) 및 단말(200)에 의해 입력 데이터에 포함된 텍스트를 분석할 때 키워드 추출, 의도 유형 설정, 엔티티 유형 설정 등에 활용될 수 있다. 예컨대, School 클래스에서 "GetStudentNames"란 함수가 있고, 이 함수에서 Student 클래스의 Name이란 변수(속성)를 참조하는 경우 다음과 같이 관계가 설정될 수 있다. 즉, "School - GetStudentNames" 은 1차 관계로서 속성, "GetStudentNames - Student.Name"은 1차 관계로서 참조, "School - Student.Name"은 2차 관계로서 속성 및 참조 관계로 추론될 수 있다. 혹은 "Student.Name" 도 엄밀히 "Student - Name"과 같이 속성 관계로 보아"School - Name"은 3차 관계로서 속성, 참조 및 속성 관계로 추론될 수 있다.
또한, 상술한 텍스트 의미 분석 시스템(100) 및 단말(200)은 다음과 같은 과정을 통해 텍스트 의미 분석 및 출력 데이터 생성을 수행할 수 있다. 예컨대, 텍스트 의미 분석 시스템(100)은 챗봇을 이용하여 단말(200)로부터 전송되는 입력 데이터에 포함된 텍스트에 대해 형태소 분석을 수행할 수 있다. 여기서 텍스트는 질문 형태일 수 있다. 텍스트 의미 분석 시스템(100)은 상술한 형태소 분석에서 사전에 없는 단어로 인해 정확도가 떨어지는 문제를 소스코드 정보를 활용하여 개선할 수 있다. 텍스트 의미 분석 시스템은 소스코드 정보를 활용한 형태소 분석 결과를 활용해 문장 구조 분석과 패턴 매칭에 기반해 사용자 질의문의 의도(Intent) 및 엔티티(Entity)를 추출할 수 있다. 텍스트 의미 분석 시스템(100)은 추출된 엔티티에 대해서도 다시 문장 구조 분석, 패턴 매칭 등을 수행하여 분석 정확도를 높일 수 있다. 여기서, 텍스트 의미 분석 시스템(100)은 챗봇을 통해 사용되는 언어가 영어가 아닐 경우 소스코드와의 매칭을 위해 번역, 변환 등의 처리를 수행할 수 있다. 텍스트 의미 분석 시스템(100)은 추출된 의도, 엔티티를 기반으로 실제 질의응답을 처리할 알고리즘, 프로그램 등이 이해할 수 있도록 사전에 정의된 인터페이스, 규격, 형식에 맞게 입력 데이터를 변형할 수 있다. 여기서, 의도는 요청할 함수(method), 엔티티는 변수로서 활용될 수 있다. 텍스트 의미 분석 시스템(100)은 변형된 입력 데이터에 필수로 들어가야 할 변수 등이 누락된 경우, 단말(200)에게 해당 변수와 관련된 정보를 챗봇 메시지를 통해 요청할 수 있다. 단말(200) 역시 상술한 과정과 유사한 과정을 통해 텍스트 의미 분석 및 출력 데이터 생성을 수행할 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따라 소스코드 분석 및 챗봇을 이용하여 텍스트 의미를 분석하는 예시들을 나타낸 도면들이다. 이하에서, 도 1 내지 도 3과 함께 도 4 및 도 5를 참조하여, 상술한 텍스트 의미 분석 및 출력 데이터 생성 과정에 대해 보다 상세하게 설명하도록 한다.
도 4를 참조하면, 소스코드에 관한 질문을 희망하는 사용자는 단말(200) 또는 챗봇을 통해 "학생의 이름이 같은 경우가 있는지 확인하는 기능이 구현되어 있어?" (41)라고 텍스트 의미 분석 시스템(100)에 입력 데이터를 전송하는 방식으로 질문할 수 있다. 챗봇은 해당 질문에 포함된 텍스트 키워드를 추출하고 텍스트 키워드와 일치하는 소스코드 정보에 따른 소스코드 키워드가 텍스트 의미 분석 시스템(100) 또는 단말(200)에 저장되어 있는지 탐색할 수 있다. 여기서 챗봇은 텍스트 의미 분석 시스템(100) 또는 단말(200)의 프로세서와 동일한 기능을 수행하도록 생성된 것일 수 있다.
챗봇은 텍스트 키워드인 "학생의 이름"과 소스코드 키워드인 "Student.Name"이 일치함을 확인하여 Student 클래스의 Name 변수(속성)를 확인할 수 있다. 이에 따라, 챗봇은 질문을 "{Student.Name}이 같은 경우가 있는지 확인하는 기능이 구현되어 있어?"로 변환활 수 있다. 챗봇은 변환된 질의에 대해 형태소 분석, 문장구조 분석을 수행할 수 있다. 챗봇은 해당 분석 결과를 바탕으로 기존에 챗봇이 학습한 의도(Intent)들의 패턴, 예시 발화(Utterance) 기록에서 사용자의 질문과 가장 일치하는 의도를 선택할 수 있다. 챗봇은 의도 유형을 "기능 구현 확인"으로 설정할 수 있고, "기능 설명"으로 엔티티 유형을 설정할 수 있다. 챗봇은, 엔티티 유형으로부터 사용자의 의도를 "{Student.Name}이 같은 경우가 있는지 확인"과 같이 파악할 수 있다. 챗봇은 추가적으로 추출된 엔티티에 대해서도 형태소 분석, 문장구조 분석을 추가로 수행할 수 있다. 챗봇은 엔티티에서 (연산), (연산/일치), (참조/if) 등의 소스코드들 간의 관계와 연관성을 파악할 수 있다. 챗봇은 "같은", "경우", "있는지(있다)", "확인" 등의 일반적인 형태소, 단어도 번역 등을 통해 "equal", "case", "check", "compare", "exist" 등으로 변환할 수 있다. 이 때, 소스코드 정보로 저장되지 않은 내용은 사전적인 의미로 해석될 수 있다.
위 예에서, 사용자의 질문에 대한 답변을 생성하기 위해 텍스트 의미 분석 시스템(100)의 프로세서(140)는checkFeature("변수 or 클래스 이름", "관련성 있는 관계 목록", "기능 설명에서 쓰인 단어")와 같은 형식의 함수 정보를 보낼 것을 챗봇에게 요청할 수 있다. 챗봇은 추출, 변환한 정보를 위의 형식에 맞춰 checkFeature("Student.Name", "(연산), (연산/일치), (참조/if)", "같은, 경우, 있다, 확인, equal, case, check, compare, exist")과 같은 함수 정보를 프로세서(140)에게 전송할 수 있다. 즉, 사용자의 입력 "학생의 이름이 같은 경우가 있는지 확인하는 기능이 구현되어 있어?"에 대응하여 챗봇은 프로세서(140)에 checkFeature("Student.Name", "(연산), (연산/일치), (참조/if)", "같은, 경우, 있다, 확인, equal, case, check, compare, exist")과 같은 텍스트 분석 결과를 전송할 수 있다. 프로세서(140)는 챗봇으로부터 전송 받은 함수 정보에 따라 "문의하신 내용과 연관성이 있는 코드를 3일 전 김개발님이 구현한 기록이 있습니다. StudentManager 클래스의 CheckDuplicate 함수의 line 17 ~ 28 입니다. 아래 링크를 눌러 바로 해당 코드를 확인하실 수 있습니다."(42)와 같은 답변을 생성할 수 있다. 다시 말해, 프로세서(140)는 텍스트 분석 결과를 토대로 사용자의 질문에 대응되는 답변(42)을 포함하는 출력 데이터를 완성하여 챗봇을 통해 단말(200)에 전송할 수 있다.
도 5를 참조하면, 소스코드에 관한 질문을 희망하는 사용자는 단말(200) 또는 챗볼을 통해 "이름을 바꿨는데 시험 성적표에서는 그대로 표시되는 문제가 있어요"(51)라고 텍스트 의미 분석 시스템(100)에 입력 데이터를 전송하는 방식으로 질문할 수 있다. 챗봇은 텍스트 의미 분석 시스템(100) 또는 단말(200)에 저장된 소스코드 정보로부터 "시험 성적표" - "ExamResult" 키워드를 확인해 질문을 변환할 수 있다. 챗봇은 형태소 분석을 통해 "이름" "바꾸다" "에서" "는" "그대로" "표시" "문제", "있다" 등을 추출할 수 있다. 챗봇은 명사인 "이름"에 대해서 소스코드에 대응하는 것이 무엇인지 파악하기 위해 소스코드 정보들 간의 관계를 2차, 3차로 확장해가며 "Name"과 일치하거나 유사한 변수명, 클래스명 등 탐색할 수 있다.
예컨대, 챗봇은 탐색 결과로서, "ShowStudentExamResult"라는 함수에서, 다음과 같은 관계로서 "examResult.Examinee = student.Name" 이라는 할당 연산이 있었다는 것을 확인할 수 있다.
ExamResult.Examinee - Student.Name (연산)
ExamResult - Examinee (속성), Student - Name (속성)
추가로, 챗봇은 해당 함수에서 "examResult.Cohort = school.Name" 이라는 할당 연산이 있었다는 것을 확인할 수 있다. 챗봇은 ExamResult - Examinee - Name - Student로 ExamResult, Student.Name의 관계 차수는 3임을 확인할 수 있다. 챗봇은 ExamResult - Cohort - Name - School로 ExamResult, School.Name의 관계 차수는 3임을 알 수 있다. 챗봇은 위 내용을 제외한 다른 탐색 결과들은 관계 차수 10을 상회하므로 실질적으로 연관성이 있는 관계를 상술한 내용들로만 판단할 수 있다.
챗봇은, 명사 "이름"이 지칭하는 것이 Student.Name과 School.Name의 똑같은 "이름"이라는 속성 값 중 무엇인지 결정할 수 없는 상황이므로, 단말(200)을 통해 사용자에게 “이름”이 구체적으로 어떤 것인지 설명을 문구와 응답 버튼으로 제안할 수 있다. 예컨대, 챗봇은 다음과 같은 메시지를 단말(200)을 통해 표시할 수 있다.
“이름이 지칭하는 것이 무엇인가요?
버튼1: 학생의 이름
버튼2: 학교의 이름
버튼3: 기타 (직접 입력)”
사용자가 단말(200)을 통해 버튼1을 클릭해 "학생의 이름"(53)이라고 응답하면, 챗봇은 사용자의 질문을 "{Student.Name}을 바꿨는데 {ExamResult.Examinee}는 그대로 표시되는 문제가 있어요"라고 변환할 수 있다. 본래 "시험 성적표"는 "ExamResult"로 치환될 수 있으나, 챗봇은 탐색 결과에서 사용자가 지칭한 것이 구체적으로 "ExamResult.Cohort"가 아닌 "ExamResult.Examinee"임을 확인했으므로 이를 활용할 수 있다.
챗봇은, 변환된 질문에 대해 형태소 분석, 문장 구조 분석을 진행하여 가장 일치하는 의도를 파악할 수 있다. 예컨대, 챗봇은 질문의 의도 유형을 "버그, 오류 보고"로 설정하고, 엔티티 유형을 문제 설명 엔티티로 설정할 수 있다. 챗봇은 해당 엔티티 유형을 토대로 "{Student.Name}을 바꿨는데 {ExamResult.Examinee}는 그대로 표시"라는 엔티티를 추출할 수 있다.
챗봇은 엔티티에 대해서도 형태소 분석, 문장구조 분석 추가로 수행하여 (연산), (연산/할당) 등의 관계와 "바꾸다", "그대로", "표시" 및 이로부터 변환, 파생된 change, edit, same, display, unchanged 등을 추출할 수 있다. 프로세서(140)는 챗봇에게 reportBug("변수 or 클래스 이름", "관계 목록", "단어, 형태소")와 같은 함수 정보를 보낼 것을 요청할 수 있다. 결과적으로, 챗봇은 "이름을 바꿨는데 시험 성적표에서는 그대로 표시되는 문제가 있어요"라는 입력을 토대로 프로세서(140)에게 reportBug("Student.Name, ExamResult.Examinee", "(연산), (연산/할당)", "바꾸다, 그대로, 표시, change, edit, same, display, unchanged")라는 함수 정보를 포함하는 텍스트 분석 결과를 생성하여 전송할 수 있다. 프로세서(140)는 챗봇으로부터 전송 받은 함수 정보에 따라 "네, 학생의 이름을 변경했으나 시험 성적표에서 응시자 이름은 변경되지 않는 버그에 대해 신고가 접수되었습니다."(54)와 같은 답변을 생성할 수 있다. 다시 말해, 프로세서(140)는 텍스트 분석 결과를 토대로 사용자의 질문에 대응되는 답변(54)을 포함하는 출력 데이터를 완성하여 챗봇을 통해 단말(200)에 전송할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 소스코드 분석을 이용한 텍스트 의미 분석 방법의 순서를 도시한 흐름도이고, 도 7 내지 도 10은 도 6에 도시된 방법의 일부 단계에 대한 세부 단계들을 도시한 도면들이다. 이하에서 설명될 소스코드 분석을 이용한 텍스트 의미 분석 방법은 앞서 도 1 내지 도 5를 참조하여 설명한 소스코드 분석을 이용한 텍스트 의미 분석 시스템(도 1의 100) 및 단말(도 1의 200) 중 적어도 어느 하나 이상에 의해 수행될 수 있다. 따라서, 앞서 도 1 내지 도 5를 참조하여 설명한 본 발명의 실시예에 대한 내용은 이하에서 설명될 실시예에도 동일하게 적용될 수 있으며, 이하에서 상술한 설명과 중복되는 내용은 생략하도록 한다. 이하에서 설명되는 단계들은 반드시 순서대로 수행되어야 하는 것은 아니고, 단계들의 순서는 다양하게 설정될 수 있으며, 단계들은 거의 동시에 수행될 수도 있다.
도 6을 참조하면, 소스코드 분석을 이용한 텍스트 의미 분석 방법은 단말과 서버의 통신 연결을 통해 수행되고, 입력 수신 단계(S120), 텍스트 분석 단계(S130) 및 출력 제공 단계(S140)를 포함하며, 소스코드 정보 저장 단계(S110)를 더 포함할 수 있다. 여기서, 서버는 상술한 소스코드 분석을 이용한 텍스트 의미 분석 시스템(도 1의 100)일 수 있고, 단말은 상술한 단말(도 1의 200)일 수 있다.
소스코드 정보 저장 단계(S110)는 소스코드 정보를 생성하여 서버의 메모리에 저장하는 단계이다. 이와 같이, 서버는 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 소스코드 정보를 포함하는 메모리를 포함할 수 있다. 소스코드 정보는, 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함할 수 있다.
입력 수신 단계(S120)는 서버가 단말로부터 텍스트가 포함된 입력 데이터를 수신하는 단계이다, 텍스트 분석 단계(S130)는 서버가 입력 데이터를 토대로 텍스트에 대한 자연어 처리를 수행하여 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계이다. 텍스트 분석 단계(S130)는 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 서버가 텍스트 키워드를 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 텍스트를 수정하고, 서버가 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성하는 단계를 포함할 수 있다. 출력 제공 단계(S140)는 서버가 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 출력 데이터를 생성하여 단말로 제공하는 단계이다. 일 예에서, 텍스트는 질문 정보를 포함하고, 텍스트 분석 결과는 상기 텍스트를 상기 질문 정보에 대응되는 답변을 생성하도록 하는 함수 정보를 포함하고, 그리고, 출력 데이터는 상기 함수 정보에 따라 생성되는 답변 정보를 포함할 수 있다.
도 7을 참조하면, 소스코드 정보 저장 제공 단계(S110)는 소스코드 키워드 설정 단계(S111) 및 소스코드 정보 생성 단계(S112)를 포함할 수 있다. 소스코드 키워드 설정 단계(S111)는 서버가 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정하는 단계를 포함할 수 있다. 소스코드 정보 생성 단계(S112)는 서버가 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 소스코드 정보를 생성하여 메모리에 저장하는 단계를 포함할 수 있다.
도 8을 참조하면, 텍스트 분석 단계(S130)는 소스코드 탐색 단계(S131) 및 텍스트 변환 및 의미 분석 단계(S132)를 포함할 수 있다. 소스코드 탐색 단계(S131)는 서버가 텍스트 키워드에 대응되는 소스코드 키워드가 메모리에 존재하는지 판단하는 단계를 의미한다. 텍스트 변환 및 의미 분석 단계(S132)는 서버가, 텍스트에 포함된 텍스트 키워드들 중 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고, 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는 사전적 의미를 토대로 의미 분석을 수행하는 단계를 의미한다. 텍스트 키워드 및 소스코드 키워드에 대한 설명은 이미 앞서 도 1 내지 도 5를 참조하여 설명하였으므로 생략하도록 한다.
도 9를 참조하면, 텍스트 분석 단계(S130)는 텍스트 의도 분석 단계(S133) 및 텍스트 엔티티 분석 단계(S134)를 포함할 수 있다. 텍스트 의도 분석 단계(S133)는 서버가 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하는 단계를 포함할 수 있다. 텍스트 엔티티 분석 단계(S134)는 서버가 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 단계를 포함할 수 있다. 기설정된 의도 유형들 및 엔티티 유형들은, 앞서 도 1 내지 도 5를 참조하여 설명한 의도 유형들 및 엔티티 유형들과 실질적으로 동일하므로, 이들에 대한 설명은 생략하도록 한다.
도 10을 참조하면, 텍스트 분석 단계(S130)는 복수개의 소스코드 정보를 제공하는 단계(S135) 및 특정 소스코드 정보 수신 및 텍스트 분석 단계(S136)를 포함할 수 있다. 복수개의 소스코드 정보를 제공하는 단계(S135)는 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 서버에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 서버가 복수개의 소스코드 정보들을 단말로 제공하는 단계를 의마한다. 특정 소스코드 정보 수신 및 텍스트 분석 단계(S136)는 서버가 단말로부터 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신하고, 텍스트 키워드를 단말로부터 수신한 소스코드 정보로 변환하여 텍스트를 수정하고, 서버가 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성하는 단계를 의미한다.
도 11은 본 발명의 또 다른 실시예에 따른 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법의 순서를 도시한 흐름도이고, 도 12 내지 도 15는 도 11에 도시된 방법의 일부 단계에 대한 세부 단계들을 도시한 도면들이다. 이하에서 설명될 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법은 앞서 도 1 내지 도 5를 참조하여 설명한 소스코드 분석을 이용한 텍스트 의미 분석 시스템(도 1의 100) 및 단말(도 1의 200) 중 적어도 어느 하나 이상에 의해 수행될 수 있다. 따라서, 앞서 도 1 내지 도 5를 참조하여 설명한 본 발명의 실시예에 대한 내용은 이하에서 설명될 실시예에도 동일하게 적용될 수 있으며, 이하에서 상술한 설명과 중복되는 내용은 생략하도록 한다. 이하에서 설명되는 단계들은 반드시 순서대로 수행되어야 하는 것은 아니고, 단계들의 순서는 다양하게 설정될 수 있으며, 단계들은 거의 동시에 수행될 수도 있다.
도 11을 참조하면, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법은 소스코드 질문 수신 단계(S220), 질문 분석 단계(S230) 및 답변 제공 단계(S240)를 포함하고, 소스코드 정보 저장 단계(S210)를 더 포함할 수 있다.
소스코드 정보 저장 단계(S210)는 서버가 소스코드 정보를 생성하여 서버의 메모리에 저장하는 단계이다. 이와 같이, 서버는 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 소스코드 정보를 포함하는 메모리를 포함하고, 그리고, 소스코드 정보는, 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함할 수 있다.
질문 수신 단계(S220)는 서버가 챗봇을 이용하여, 단말로부터 텍스트가 포함된 질문 데이터를 수신하는 단계이다. 질문 분석 단계(S230)는 서버가 챗봇을 이용하여, 질문 데이터를 토대로 텍스트에 대한 자연어 처리를 수행하고, 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계이다. 답변 제공 단계(S240)는 서버가 챗봇을 이용하여, 텍스트 분석 결과를 토대로 텍스트의 의미에 대응되는 답변 데이터를 생성하고, 답변 데이터를 단말로 제공하는 단계이다. 질문 분석 단계(S230)는 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 서버가 챗봇을 이용하여 텍스트 키워드를 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 텍스트를 수정하고, 서버가 챗봇을 이용하여 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성하는 단계를 포함할 수 있다. 일 예에서, 텍스트는 질문 정보를 포함하고, 텍스트 분석 결과는 상기 텍스트를 상기 질문 정보에 대응되는 답변을 생성하도록 하는 함수 정보를 포함하고, 그리고, 출력 데이터는 상기 함수 정보에 따라 생성되는 답변 정보를 포함할 수 있다.
도 12를 참조하면, 소스코드 정보 저장 단계(S210)는 소스코드 키워드 설정 단계(S211) 및 소스코드 정보 생성 단계(S212)를 포함할 수 있다. 소스코드 키워드 설정 단계(S211)는 서버가 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정하는 단계를 포함할 수 있다. 소스코드 정보 생성 단계(S212)는 서버가 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 소스코드 정보를 생성하여 메모리에 저장하는 단계를 포함할 수 있다.
도 13을 참조하면, 질문 분석 단계(S230)는 소스코드 탐색 단계(S231) 및 텍스트 변환 및 의미 분석 단계(S232)를 포함할 수 있다. 소스코드 탐색 단계(S231)는 서버가 텍스트 키워드에 대응되는 소스코드 키워드가 메모리에 존재하는지 판단하는 단계를 의미한다. 텍스트 변환 및 의미 분석 단계(S232)는 서버가, 텍스트에 포함된 텍스트 키워드들 중 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고, 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는 사전적 의미를 토대로 의미 분석을 수행하는 단계를 의미한다.
도 14를 참조하면, 질문 분석 단계(S230)는 텍스트 의도 분석 단계(S233) 및 텍스트 엔티티 분석 단계(S234)를 포함할 수 있다. 텍스트 의도 분석 단계(S233)는 서버가 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하는 단계를 포함할 수 있다. 텍스트 엔티티 분석 단계(S234)는 텍스트의 엔티티 분석 단계는, 서버가 텍스트의 의미를 포함한 텍스트 분석 결과를 토대로 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 단계를 포함할 수 있다. 기설정된 의도 유형들 및 엔티티 유형들은, 앞서 도 1 내지 도 5를 참조하여 설명한 의도 유형들 및 엔티티 유형들과 실질적으로 동일하므로, 이들에 대한 설명은 생략하도록 한다.
도 15를 참조하면, 질문 분석 단계(S230)는 복수개의 소스코드 정보를 제공하는 단계(S235) 및 특정 소스코드 정보 수신 및 텍스트 분석 결과 생성 단계(S236)를 포함할 수 있다. 복수개의 소스코드 정보를 제공하는 단계(S235)는 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 서버에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 서버가 챗봇을 이용하여 복수개의 소스코드 정보들을 단말로 제공하는 단계를 의미한다. 특정 소스코드 정보 수신 및 텍스트 분석 결과 생성 단계(S236)는 서버가 챗봇을 이용하여, 단말로부터 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신하고, 텍스트 키워드를 단말로부터 수신한 소스코드 정보로 변환하여 텍스트를 수정하고, 수정된 텍스트에 대한 분석을 수행하여 텍스트 분석 결과를 생성하는 단계를 의미한다.
이상 지금까지 설명한 본 발명의 실시예들에 따른 소스코드 분석을 이용한 텍스트 의미 분석 방법과 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 상술한 설명을 기초로 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해되어야만 한다. 본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. 본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
발명을 실시하기 위한 형태는 앞서 발명을 실시하기 위한 최선의 형태와 실질적으로 같다.
본 발명은 인공지능 모델을 이용한 자연어 처리 알고리즘 및 소프트웨어 개발 산업, 인공지능 챗봇 서비스 산업 등에 적용 가능하므로 산업상 이용가능성을 갖는다.

Claims (27)

  1. 단말과 서버의 통신 연결을 토대로 소스코드 분석을 이용한 텍스트 의미 분석 방법에 있어서,
    a) 상기 서버가 상기 단말로부터 텍스트가 포함된 입력 데이터를 수신하는 단계;
    b) 상기 서버가 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계; 및
    c) 상기 서버가 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 단말로 제공하는 단계를 포함하고,
    상기 b) 단계는,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 서버가 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대해 상기 서버가 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  2. 제1항에 있어서,
    상기 서버는 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 상기 소스코드 정보를 포함하는 메모리를 포함하고, 그리고,
    상기 소스코드 정보는, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  3. 제2항에 있어서,
    상기 서버가 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 소스코드 정보 저장 단계를 더 포함하고,
    상기 소스코드 정보 저장 단계는,
    상기 서버가, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하고, 추출된 명사를 소스코드 키워드로 설정하는 단계; 및
    상기 서버가, 상기 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 단계를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  4. 제3항에 있어서,
    상기 b) 단계는,
    상기 서버가 상기 텍스트 키워드에 대응되는 소스코드 키워드가 상기 메모리에 존재하는지 판단하는 단계; 및
    상기 서버가,
    상기 텍스트에 포함된 텍스트 키워드들 중 상기 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는, 이에 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고,
    대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는, 사전적 의미를 토대로 의미 분석을 수행하는 단계를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  5. 제1항에 있어서,
    상기 b) 단계는, 상기 텍스트의 의도 분석 단계 및 상기 텍스트의 엔티티 분석 단계를 포함하고,
    상기 텍스트의 의도 분석 단계는, 상기 서버가 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하는 단계를 포함하고, 그리고,
    상기 텍스트의 엔티티 분석 단계는, 상기 서버가 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 단계를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  6. 제5항에 있어서,
    상기 기설정된 의도 유형들은, 기능 확인 유형 및 오류 보고 유형을 포함하고, 그리고,
    상기 기설정된 엔티티 유형들은, 기능 설명 유형 및 오류 설명 유형을 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  7. 제2항에 있어서,
    상기 텍스트는 질문 정보를 포함하고,
    상기 텍스트 분석 결과는, 상기 텍스트를 상기 질문 정보에 대응되는 답변을 생성하도록 하는 함수 정보를 포함하고, 그리고,
    상기 출력 데이터는 상기 함수 정보에 따라 생성되는 답변 정보를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  8. 제2항에 있어서,
    상기 b) 단계는,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 상기 서버가 상기 복수개의 소스코드 정보들을 상기 단말로 제공하는 단계; 및
    상기 서버가 상기 단말로부터 상기 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 선택 입력을 수신하고, 상기 텍스트 키워드를 상기 단말로부터 수신한 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대해 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 방법.
  9. 단말과 서버의 통신 연결을 토대로 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법에 있어서,
    i) 상기 서버가 상기 챗봇을 이용하여, 상기 단말로부터 텍스트가 포함된 질문 데이터를 수신하는 단계;
    ii) 상기 서버가 상기 챗봇을 이용하여, 상기 질문 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하고, 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하는 단계; 및
    iii) 상기 서버가 상기 챗봇을 이용하여, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 답변 데이터를 생성하고, 상기 답변 데이터를 상기 단말로 제공하는 단계를 포함하고,
    상기 ii) 단계는,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 서버가 상기 챗봇을 이용하여 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대해 상기 서버가 상기 챗봇을 이용하여 분석을 수행하고 상기 텍스트 분석 결과를 생성하는 단계를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  10. 제9항에 있어서,
    상기 서버는 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 상기 소스코드 정보를 포함하는 메모리를 포함하고, 그리고,
    상기 소스코드 정보는, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  11. 제10항에 있어서,
    상기 서버가 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 소스코드 정보 저장 단계를 더 포함하고,
    상기 소스코드 정보 저장 단계는,
    상기 서버가, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하고, 추출된 명사를 소스코드 키워드로 설정하는 단계; 및
    상기 서버가, 상기 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 단계를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  12. 제11항에 있어서,
    상기 ii) 단계는,
    상기 서버가 상기 텍스트 키워드에 대응되는 소스코드 키워드가 상기 메모리에 존재하는지 판단하는 단계; 및
    상기 서버가,
    상기 텍스트에 포함된 텍스트 키워드들 중 상기 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는, 이에 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고,
    대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는, 사전적 의미를 토대로 의미 분석을 수행하는 단계를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  13. 제9항에 있어서,
    상기 ii) 단계는, 상기 텍스트의 의도 분석 단계 및 상기 텍스트의 엔티티 분석 단계를 포함하고,
    상기 텍스트의 의도 분석 단계는, 상기 서버가 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하는 단계를 포함하고, 그리고,
    상기 텍스트의 엔티티 분석 단계는, 상기 서버가 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 단계를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  14. 제10항에 있어서,
    상기 ii) 단계는,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 서버에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 상기 서버가 상기 챗봇을 이용하여 상기 복수개의 소스코드 정보들을 상기 단말로 제공하는 단계; 및
    상기 서버가 상기 챗봇을 이용하여, 상기 단말로부터 상기 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 선택 입력을 수신하고, 상기 텍스트 키워드를 상기 단말로부터 수신한 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대해 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 단계를 포함하는, 소스코드 분석 및 챗봇을 이용한 질의응답 서비스 제공 방법.
  15. 단말과의 통신 연결을 통해 소스코드 분석을 이용한 텍스트 의미 분석 시스템에 있어서,
    상기 단말과의 정보 송수신을 수행하는 통신 모듈;
    텍스트 의미 분석 프로그램을 저장하는 메모리; 및
    상기 메모리에 저장된 텍스트 의미 분석 프로그램을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여,
    상기 통신 모듈을 통해 상기 단말로부터 텍스트가 포함된 입력 데이터를 전송 받고, 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 단말로 제공하되,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 프로세서는 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대해 분석을 수행하여 상기 텍스트 분석 결과를 생성하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  16. 제15항에 있어서,
    상기 메모리는, 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 상기 소스코드 정보를 포함하고, 그리고,
    상기 소스코드 정보는, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  17. 제16항에 있어서,
    상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여,
    상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정하고, 그리고, 상기 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  18. 제17항에 있어서,
    상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여,
    상기 텍스트 키워드에 대응되는 소스코드 키워드가 상기 메모리에 존재하는지 판단하고, 그리고, 상기 텍스트에 포함된 텍스트 키워드들 중 상기 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는, 이에 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고, 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는, 사전적 의미를 토대로 의미 분석을 수행하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  19. 제15항에 있어서,
    상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여,
    상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하고, 그리고, 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  20. 제16항에 있어서,
    상기 프로세서는 상기 텍스트 의미 분석 프로그램을 실행하여,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 상기 복수개의 소스코드 정보들을 상기 단말로 제공하고, 상기 단말로부터 상기 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신하고, 상기 텍스트 키워드를 상기 단말로부터 수신한 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 그리고, 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 시스템.
  21. 소스코드 분석을 이용한 텍스트 의미 분석 장치에 있어서,
    입출력 모듈;
    텍스트 의미 도출 프로그램을 저장하는 메모리; 및
    상기 메모리에 저장된 텍스트 의미 도출 프로그램을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여,
    상기 입출력 모듈을 통해 텍스트가 포함된 입력 데이터를 전송 받고, 상기 입력 데이터를 토대로 상기 텍스트에 대한 자연어 처리를 수행하여 상기 텍스트의 의미를 포함한 텍스트 분석 결과를 생성하고, 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의미에 대응되는 출력 데이터를 생성하여 상기 입출력 모듈을 통해 표시하되,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 소스코드 정보에 대응되는 의미를 가진 경우, 상기 프로세서는 상기 텍스트 키워드를 상기 텍스트 키워드에 대응되는 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  22. 제21항에 있어서,
    상기 메모리는, 하나 이상의 프로그래밍 언어에 대한 정보를 포함하는 상기 소스코드 정보를 포함하고, 그리고,
    상기 소스코드 정보는, 상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보, 함수 정보 및 이들의 관계 정보를 포함하는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  23. 제22항에 있어서,
    상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여,
    상기 하나 이상의 프로그래밍 언어에서 사용되는 변수 정보, 클래스 정보 및 함수 정보에 포함된 명사를 추출하여 소스코드 키워드로 설정하고, 그리고, 상기 소스코드 키워드에 대응되는 소스코드의 명칭, 소스코드의 약칭 및 소스코드의 번역문과 소스코드 키워드들 간의 관계를 토대로 상기 소스코드 정보를 생성하여 상기 메모리에 저장하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  24. 제23항에 있어서,
    상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여,
    상기 텍스트 키워드에 대응되는 소스코드 키워드가 상기 메모리에 존재하는지 판단하고, 그리고, 상기 텍스트에 포함된 텍스트 키워드들 중 상기 메모리에 대응되는 소스코드 키워드가 존재하는 텍스트 키워드는, 이에 대응되는 소스코드 키워드의 의미를 토대로 의미 분석을 수행하고, 대응되는 소스코드 키워드가 존재하지 않는 텍스트 키워드는 사전적 의미를 토대로 의미 분석을 수행하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  25. 제21항에 있어서,
    상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여,
    상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 의도가 기설정된 의도 유형들 중 하나의 의도 유형으로 설정하고, 그리고, 상기 텍스트의 의미를 포함한 상기 텍스트 분석 결과를 토대로 상기 텍스트의 엔티티가 기설정된 엔티티 유형들 중 하나의 엔티티 유형으로 설정하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  26. 제22항에 있어서,
    상기 프로세서는 상기 텍스트 의미 도출 프로그램을 실행하여,
    상기 텍스트에 포함된 하나 이상의 단어를 포함하는 텍스트 키워드가 상기 메모리에 저장된 복수개의 소스코드 정보들에 대응되는 의미를 가진 경우, 상기 복수개의 소스코드 정보들을 상기 입출력 모듈을 통해 표시하고, 상기 입출력 모듈을 통해 상기 복수개의 소스코드 정보들 중 하나의 소스코드 정보에 대한 입력을 수신하고, 상기 텍스트 키워드를 수신된 소스코드 정보로 변환하여 상기 텍스트를 수정하고, 그리고, 수정된 텍스트에 대한 분석을 수행하여 상기 텍스트 분석 결과를 생성하는 것을 더 수행하도록 구성되는, 소스코드 분석을 이용한 텍스트 의미 분석 장치.
  27. 제1항에 따른 소스코드 분석을 이용한 텍스트 의미 분석 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 비일시적 컴퓨터 판독가능 기록매체.
PCT/KR2022/005901 2021-09-16 2022-04-26 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법 WO2023042987A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/384,989 US20240061761A1 (en) 2021-09-16 2023-10-30 Device, system, and method for text semantic analysis using source code analysis, and chatbot question-answer service providing method using same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210123664A KR102600752B1 (ko) 2021-09-16 2021-09-16 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법
KR10-2021-0123664 2021-09-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/384,989 Continuation US20240061761A1 (en) 2021-09-16 2023-10-30 Device, system, and method for text semantic analysis using source code analysis, and chatbot question-answer service providing method using same

Publications (1)

Publication Number Publication Date
WO2023042987A1 true WO2023042987A1 (ko) 2023-03-23

Family

ID=85603047

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/005901 WO2023042987A1 (ko) 2021-09-16 2022-04-26 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법

Country Status (3)

Country Link
US (1) US20240061761A1 (ko)
KR (4) KR102600752B1 (ko)
WO (1) WO2023042987A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684160B1 (ko) * 2005-12-08 2007-02-20 한국전자통신연구원 개체명 인식을 이용한 대화 분석 장치 및 방법
KR100901134B1 (ko) * 2008-09-09 2009-06-04 김수현 형태소 분석과 소스코드 분석을 통한 추천 태그 표시시스템
KR20100085339A (ko) * 2009-01-20 2010-07-29 고려대학교 산학협력단 문자 메시지에 의한 질의 응답 시스템 및 방법
KR20170134191A (ko) * 2016-05-26 2017-12-06 연세대학교 원주산학협력단 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템
KR102155739B1 (ko) * 2019-10-24 2020-09-14 한경훈 질의응답 데이터 셋을 적응적으로 재사용하는 챗봇 서비스 제공 방법, 서버, 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684160B1 (ko) * 2005-12-08 2007-02-20 한국전자통신연구원 개체명 인식을 이용한 대화 분석 장치 및 방법
KR100901134B1 (ko) * 2008-09-09 2009-06-04 김수현 형태소 분석과 소스코드 분석을 통한 추천 태그 표시시스템
KR20100085339A (ko) * 2009-01-20 2010-07-29 고려대학교 산학협력단 문자 메시지에 의한 질의 응답 시스템 및 방법
KR20170134191A (ko) * 2016-05-26 2017-12-06 연세대학교 원주산학협력단 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템
KR102155739B1 (ko) * 2019-10-24 2020-09-14 한경훈 질의응답 데이터 셋을 적응적으로 재사용하는 챗봇 서비스 제공 방법, 서버, 및 시스템

Also Published As

Publication number Publication date
KR20230145017A (ko) 2023-10-17
KR102600752B1 (ko) 2023-11-13
US20240061761A1 (en) 2024-02-22
KR20230145016A (ko) 2023-10-17
KR20230145018A (ko) 2023-10-17
KR20230040482A (ko) 2023-03-23

Similar Documents

Publication Publication Date Title
US11373047B2 (en) Method, system, and computer program for artificial intelligence answer
WO2021054514A1 (ko) 지식 그래프 기반의 사용자 맞춤형 질의 응답 시스템
US20190146985A1 (en) Natural language question answering method and apparatus
WO2018151464A1 (ko) 음성 인식을 이용한 코딩시스템 및 코딩방법
US20210326524A1 (en) Method, apparatus and device for quality control and storage medium
KR102491172B1 (ko) 자연어 질의응답 시스템 및 그 학습 방법
CN111159220B (zh) 用于输出结构化查询语句的方法和装置
US11151202B2 (en) Exploiting answer key modification history for training a question and answering system
CN110750991B (zh) 实体识别方法、装置、设备及计算机可读存储介质
US10650195B2 (en) Translated-clause generating method, translated-clause generating apparatus, and recording medium
WO2014142422A1 (ko) 지시 표현 처리에 기반한 대화 처리 방법 및 장치
WO2023042987A1 (ko) 소스코드 분석을 이용한 텍스트 의미 분석 장치, 시스템 및 방법, 그리고, 이를 이용한 챗봇 질의응답 서비스 제공 방법
CN113157887A (zh) 知识问答意图识别方法、装置、及计算机设备
US20230351110A1 (en) Text recognition method and apparatus, computer-readable storage medium and electronic device
CN108932225A (zh) 用于将自然语言需求转换成为语义建模语言语句的方法和系统
WO2023054829A1 (ko) 소스코드 해설을 포함한 질의응답 서비스 제공 장치, 시스템, 및 방법, 그리고, 이를 이용한 챗봇 서비스 제공 방법
WO2019024246A1 (zh) 信息屏蔽方法及系统
CN115129859A (zh) 意图识别方法、装置、电子装置及存储介质
WO2020153715A1 (en) Electronic device and method for controlling the electronic device
CN108932231A (zh) 机器翻译方法及装置
WO2021051565A1 (zh) 基于机器学习的语义解析方法、装置、电子设备及计算机非易失性可读存储介质
CN113778846A (zh) 用于生成测试数据的方法和装置
WO2024106626A1 (ko) 인공지능 기반의 대화형 질의 응답 시스템
WO2024136377A1 (ko) 번역 품질 평가 장치 및 방법
WO2024187581A1 (zh) 一种用于政务动态更新的多轮对话方法、装置和电子设备

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE