Data processing device, data processing method, and program
Patent Information
- Application Number
- JP2023128894
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-07
- Publication Date
- 2025-02-20
Smart Images

Figure 2025024638000001_ABST
Abstract
Description
[Technical field]
[0001] The technology disclosed herein relates to a data processing device, a data processing method, and a program. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including a description and related instruction sentence regarding the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2022-180282 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, in conventional technology, code reviews are often conducted by multiple developers of source code gathering together to maintain the quality of the source code. For example, the source code may be displayed on one screen, improvements to the source code may be discussed, and only parts of the source code that are of concern may be confirmed by a specific developer. With such a method, there are cases where improvements to the entire source code are not provided as feedback, and feedback on parts other than the parts of concern is not obtained. As such, there is room for improvement in conventional technology when it comes to code reviews. [Means for solving the problem]
[0005] A first aspect of the technology disclosed herein includes an input unit that accepts user input, a processing unit that performs a specific processing using a sentence generation model that generates a sentence according to the input sentence, and an output unit that controls the behavior of an electronic device to output the result of the specific processing, wherein when the input unit accepts an inquiry regarding source code inspection, the processing unit is a data processing device that inspects the source code as the specific processing and provides advice corresponding to the inspection result.
[0006] A second aspect of the technology disclosed herein is a data processing method executed by a computer, which controls the behavior of an electronic device to accept user input, perform specific processing using a sentence generation model that generates a sentence corresponding to the input sentence, and output the results of the specific processing, and when an inquiry regarding source code inspection is received, inspects the source code as the specific processing and provides advice corresponding to the inspection results.
[0007] A third aspect of the technology disclosed herein is a program for causing a computer to control the behavior of an electronic device so as to accept user input, perform specific processing using a sentence generation model that generates a sentence according to the input sentence, and output the results of the specific processing, and when an inquiry regarding source code inspection is received, inspect the source code as the specific processing and provide advice corresponding to the inspection results. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a conceptual diagram illustrating an example of a configuration of a data processing system. [Diagram 2] FIG. 2 is a conceptual diagram showing an example of main functions of a data processing device and a smart device. [Figure 3A] FIG. 13 is a diagram illustrating an outline of a specific process. [Figure 3B] FIG. 13 is a diagram illustrating an outline of a specific process. [Figure 4] 2 is a diagram illustrating an outline of a functional configuration of a specific processing unit of the data processing device. FIG. [Figure 5A]FIG. 10 is a diagram illustrating an example of an operational flow of a specific process by a data processing device. [Figure 5B] FIG. 11 is a diagram for explaining the operation of the identification process. [Figure 6A] FIG. 1 is a diagram showing an emotion map onto which multiple emotions are mapped. [Figure 6B] FIG. 1 is a diagram showing an emotion map onto which multiple emotions are mapped. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an example of an embodiment of a data processing device, a data processing method, and a program according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0010] First, the terms used in the following description will be explained.
[0011] In the following embodiments, a signed processor (hereinafter simply referred to as a "processor") may be one arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be one type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), or a TPU (Tensor Processing Unit).
[0012] In the following embodiments, a signed RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by the processor.
[0013] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.
[0014] In the following embodiments, a communication I / F (Interface) with a code is an interface including a communication processor and an antenna. The communication I / F controls communication between multiple computers. An example of a communication standard applied to the communication I / F is a wireless communication standard including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.
[0015] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. In addition, in this specification, the same idea as "A and / or B" is also applied when three or more things are expressed by connecting them with "and / or."
[0016] FIG. 1 shows an example of the configuration of a data processing system 10 according to the embodiment.
[0017] As shown in FIG. 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server. An example of the smart device 14 is a smartphone. In this embodiment, the data processing device 12 is an example of a "data processing device" according to the technology of the present disclosure. Note that the smart device 14 is not limited to a smartphone, and may be a data communication terminal, specifically, a personal computer that creates and edits source code.
[0018] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a wide area network (WAN) and / or a local area network (LAN).
[0019] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.
[0020] The reception device 38 includes a touch panel 38A and a microphone 38B, and receives user input. The touch panel 38A detects contact with a pointer (e.g., a pen or a finger) to receive user input by the touch of the pointer. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0021] The output device 40 includes a display 40A and a speaker 40B, and presents data to the person 20 by outputting the data in a form of expression that the person 20 can perceive (e.g., voice and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs voice according to instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, an aperture, and a shutter, and an imaging element such as a Complementary Metal-Oxide-Semiconductor (CMOS) image sensor or a Charge Coupled Device (CCD) image sensor.
[0022] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for transmitting and receiving various types of information between the processor 46 and the processor 28 via the network 54.
[0023] FIG. 2 shows an example of main functions of the data processing device 12 and the smart device 14.
[0024] As shown in Fig. 2, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32. The specific process program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific process program 56 from the storage 32, and executes the read specific process program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific process program 56 executed on the RAM 30.
[0025] The storage 32 stores a data generation model 58 and an emotion identification model 60. The data generation model 58 and the emotion identification model 60 are used by the identification processing unit 290.
[0026] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 62. The reception output program 62 is used together with the specific processing program 56 by the data processing system 10. The processor 46 reads out the reception output program 62 from the storage 50, and executes the read reception output program 62 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 62 executed on the RAM 48.
[0027] Next, a process of the specific processing unit 290 will be described when the data processing device 12 performs specific processing for inspecting the source code and providing advice corresponding to the inspection result when the data processing device 12 receives an inquiry regarding inspection of the source code.
[0028] (Prerequisites and Issues) Freshly written source code, source code that has not been sufficiently tested, and the like often contain potential defects and problems such as bugs and security holes. Even if such source code does not have direct defects, it may have problems with readability and maintainability because it does not follow naming rules or has inappropriate structural design such as module division. Such unoptimized source code may waste resources (i.e., computing resources) such as memory and processing time, which may lead to a decrease in computer performance. In order to improve software quality, such defects and problems must be removed. In order to maintain the quality of source code, source code developers may gather together and conduct code reviews. A code review may be interpreted as a task of systematically inspecting or peer-reviewing source code with the aim of detecting and correcting errors that have been overlooked in the software development process. A code review may be interpreted as a task of multiple developers checking source code and verifying its quality.
[0029] When conducting a code review, for example, the source code may be displayed on one display screen, improvements to the source code may be discussed, and any parts of the source code that concern the developer may be checked. In a code review, the reviewer (requester) may request a check of the source code, and the reviewer (checker) may check the source code deliverables. The number of defects and problems hidden in the source code generally depends on the design skills and implementation skills of the developer (i.e., the programmer) who wrote the source code.
[0030] In conventional code reviews, there are cases where feedback on improvements to the entire source code is not given, and feedback on parts other than the parts of concern is not given. In addition, since a lot of human resources are spent on source code reviews, the man-hours required for source code development can be large. Currently, source code error checks are performed visually. For this reason, the time required for checking source code can be enormous. There can also be problems with a decrease in the quality of the check, such as a lack of understanding of the source code or oversights in the source code. In particular, if the reviewer's engagement ability is low, the reviewer may overlook bugs in the source code and be unable to operate the source code appropriately when it is actually used, and in such cases, re-reviewing the source code can take a lot of time.
[0031] In view of such problems, in the identification process of this embodiment, when an inquiry regarding source code inspection is received from a user such as a developer, the source code is inspected and advice corresponding to the inspection results can be provided to the user.
[0032] Specifically, a processing unit that performs specific processing using a sentence generation model that generates sentences according to input sentences may inspect the source code and provide the user with advice corresponding to the inspection results when receiving an inquiry about source code inspection from a developer or the like. The specific processing may be interpreted as processing using a data generation model 58 of the processing unit 294 described below. The sentence generation model may be configured by a large language model (LLM). The sentence generation model may be interpreted as algorithms and calculations for automatic dialogue processing using text. The sentence generation model is, for example, a model described in JP 2018-081444 A or ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ) and therefore detailed description thereof will be omitted.
[0033] (First example of specific processing) The identification process may include a process in which an artificial intelligence (AI) analyzes the pull request and uses the context to provide a source code reviewer with improvement hints as advice corresponding to the inspection results, in other words, a process of providing hints on how to improve the source code, according to rubber duck debugging. The details of the artificial intelligence (AI) will be described later.
[0034] A pull request may be interpreted as notifying other developers of changes to source code, such as adding features or modifications. Specifically, a pull request may be interpreted as notifying review and merge personnel and other related parties of work content, such as adding features to source code. The specific process includes, for example, a generation AI notifying changes to source code, such as adding features or modifications, from a source code developer, instead of a human.
[0035] Rubber duck debugging may be interpreted as a method of debugging code in software engineering. Specifically, when a source code developer, i.e. a programmer, is explaining a problem to someone, the difference between the target source code and the actual source code behavior becomes clear by observing the behavior of the source code while explaining the problem, and the developer may come up with a solution. The term rubber duck debugging comes from the fact that by explaining the problem out loud to a duck doll, the problem becomes clear and organized, and the solution gradually becomes visible. With rubber duck debugging, a programmer can achieve his or her goal without bothering others. In the specific process, the generation AI may perform rubber duck debugging by itself. Specifically, the generation AI may perform pre-processing to digitize the cause of the defect in the source code, the method of improving the source code, and the advice on improving the source code based on the basic source code data including the source code created in the past and the revision history of the source code that has been revised in the past, and then, when an inquiry about the source code is received, analyze the contents of the pull request by referring to the data after pre-processing according to rubber duck debugging. This analysis may be interpreted as an example of a specific process using a sentence generation model that generates a sentence in response to an input sentence.
[0036] (Second example of specific processing) The identification process may include a process of providing advice corresponding to the inspection results, such as warning a reviewer of the source code about a portion of the source code that is likely to cause a defect.
[0037] Specifically, the processing unit of the present disclosure may analyze a user's inquiry and provide advice on the name of the source code. More specifically, for example, if the user's inquiry is "Is the name of the source code appropriate?", the processing unit may provide the following advice as a suggestion for the name of the source code, as shown in FIG. 3A. (Advice) "The name of the test method (nullService) is not descriptive enough to understand what it is testing. Consider giving it a more meaningful name that reflects the specific scenario being tested."
[0038] Furthermore, when the user's inquiry is "I would like some advice on how to improve the test," the processing unit of the present disclosure may provide the following advice, as shown in FIG. 3A. (Advice) "The objective of the test appears to be to check whether a NullPointerEXception occurs with the specified message when calling Invocation. In general, testing for expected exceptions is a good idea, but your test case could be improved by verifying additional aspects, such as behavior after the exception occurs or the state of other objects involved."
[0039] (Third example of specific processing) The identification process may provide explanations of source code in a specific context as advice corresponding to the inspection results.
[0040] Specifically, the processing unit of the present disclosure may analyze a user's inquiry and provide an explanation of the source code. More specifically, if the user's inquiry is "What does this code do?" as shown in FIG. 3B, the processing unit may provide the following advice as shown in FIG. 3B: (Advice) "The suspendCancellableCoroutine function is a utility function provided by the Kotlin coroutines library. Use it to create coroutines that are cancellable. Coroutines are a more sequential and structured way of writing asynchronous code."
[0041] The processing unit may also execute a dialogue related to the inquiry to provide a source code developer, reviewer, or the like with additional information about the inquiry. Specifically, as shown in FIG. 3B, the processing unit may generate a message such as "Why do you think this was used instead of suspendCoroutine?" as a confirmation item related to the inquiry, and display it on the display screen. Furthermore, the processing unit may generate button images such as "Cancel" and "Send" as selection items for confirming whether to send or cancel a response to this message, and display them on the display screen.
[0042] (Fourth example of specific processing) The identification process may provide a live chat for discussing and explaining the source code as a forum for providing advice in response to the inspection results.
[0043] Specifically, the processing unit of the present disclosure may regard itself as a distributor that opens a talk room for live chat, generate distribution information regarding the talk room for participants (e.g., source code developer, reviewer, etc.) who are invited by the distributor to have a live chat in the talk room, and play the information on the display screen. In the talk room, advice contents regarding the first to third examples of the specific processing described above may be displayed, and further inquiries regarding the advice contents may be written. This allows the developer and the reviewer to share further inquiries and obtain advice on the inquiries in real time. Therefore, it is possible to deepen discussions on how to solve a specific defect in the source code. In addition, while the processing unit proposes several solutions to multiple defects contained in the source code, the developer and the reviewer can also share mutually related problems and discuss how to solve them. As a result, defects in the source code can be identified early, and source code without defects can be completed as soon as possible.
[0044] (Example of configuration of specific processing unit 290) Next, the configuration of the specific processing unit 290 will be described with reference to Fig. 4. Fig. 4 is a diagram showing an outline of the functional configuration of the specific processing unit of the data processing device. As shown in Fig. 4, the specific processing unit 290 includes an input unit 292, a processing unit 294, and an output unit 296.
[0045] The input unit 292 acquires a user input received by the smart device 14. Specifically, the input unit 292 accepts an inquiry from the user regarding the inspection of the source code. More specifically, the input unit 292 may acquire a voice input from the user regarding the inspection of the source code received by the smart device 14. The input unit 292 may acquire text information corresponding to the content of the inquiry from the user regarding the inspection of the source code received by the smart device 14.
[0046] The processing unit 294 performs a specific process using the data generation model 58. Specifically, when the processing unit 294 receives a message (voice, text) including a user's inquiry regarding the inspection of the source code, the processing unit 294 may input a prompt including the user's inquiry regarding the inspection of the source code to the sentence generation model, and perform a specific process of providing advice corresponding to the inspection result based on the output of the sentence generation model. More specifically, as shown in FIG. 5B, when the processing unit 294 receives a message "What does this code do?", the processing unit 294 may input a prompt created based on the received message to the sentence generation model, and generate a response message "The suspendCancellableCoroutine function is a utility function provided by the Kotlin coroutine library..." based on the output from the sentence generation model. An example of the prompt in this case is "What does this code do?" (hereinafter, the entire source code to be inspected).
[0047] When the processing unit 294 receives the above inquiry, instead of the response message or together with the response message, the processing unit 294 may generate a message regarding the proposed content for the name of the source code as shown in FIG. 3A.
[0048] The output unit 296 may transmit a result of the specific processing to the smart device 14. Specifically, the output unit 296 may transmit a result of the specific processing by the processing unit 294 to the smart device 14. More specifically, the output unit 296 may provide a message such as "The suspendCancellableCoroutine function is a utility function provided by the Kotlin coroutine library" to the smart device 14, as shown in FIG. 5B.
[0049] In the smart device 14, the control unit 46A causes the output device 40 (FIG. 1) to output a result of the specific process. The microphone 38B (FIG. 1) acquires a voice indicating a user input for the result of the specific process. The control unit 46A transmits the voice data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.
[0050] The data generation model 58 (FIG. 2) may be interpreted as the above-mentioned generative AI. An example of the data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ) and other generation AIs. The data generation model 58 is obtained by making a neural network perform deep learning. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating a voice, text data indicating a text, and image data indicating an image is input. The data generation model 58 performs inference on the input inference data according to the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0051] For example, when a prompt "What does this code do? (hereinafter, the entire source code to be inspected)" is generated including the source code to be inspected, the prompt may be input to the data generation model 58. In other words, a combination of the message "What does this code do?" and the source code to be inspected may be input. In addition to this, the prompt may be a combination of a sentence such as "Please analyze the source code I developed," "Are there any problems with the source code?", "Please point out any defects in the source code," "Start a chat room to discuss improvements to the source code," or "Please give me some hints to solve the problems in the source code" and the source code to be inspected.
[0052] Next, the operation of the data processing system 10 will be described with reference to Figures 5A and 5B. The flow of a specific process shown in Figure 5A may be construed as an example of the "data processing method" of the present disclosure.
[0053] 5A, in step S300, the input unit 292 may determine whether or not an inquiry from a user has been received. The process of step S300 is repeated until an inquiry regarding the inspection of the source code is received (step S300: NO), and when an inquiry is received (step S300: YES), the process of step S301 is executed.
[0054] In step S301, when the app of the smart device 14 receives the message "What does this code do?", it may generate a prompt including a user inquiry regarding inspection of the source code based on the message.
[0055] In step S302, when the processing unit 294 receives a message including a user inquiry regarding source code inspection, the processing unit 294 may input a prompt including the user inquiry regarding source code inspection to a sentence generation model, and perform a specific process to provide advice corresponding to the inspection result based on the output of the sentence generation model.
[0056] Specifically, as shown in Fig. 5B, when the processing unit 294 receives a message "What does this code do?", the processing unit 294 may input a prompt created based on the received message to the sentence generation model, and generate a response message "The suspendCancellableCoroutine function is a utility function provided by the Kotlin coroutine library" based on the output from the sentence generation model. An example of the prompt in this case is "What does this code do?" (the entire source code to be inspected).
[0057] When the processing unit 294 receives the above inquiry, it may generate a message regarding the proposed content for the name of the source code as shown in FIG. 3B instead of the response message or together with the response message.
[0058] In step S302, the processing unit 294 may further input the prompt to the sentence generation model and obtain a result of the specific process based on the output of the sentence generation model. In step S303, the output unit 296 may output the result of the specific process. Specifically, the output unit 296 may provide a message such as "The suspendCancellableCoroutine function is a utility function provided by the Kotlin coroutine library" to the smart device 14, as shown in FIG. 5B.
[0059] As described above, in the data processing device 12, when the input unit receives an inquiry regarding the inspection of source code, the input unit can inspect the source code as a specific process and provide advice corresponding to the inspection result. This allows the developer or reviewer of the source code to receive feedback on improvements to the source code, and also provides feedback on parts other than the parts of concern. In addition, there is no need to spend a lot of human resources on reviewing the source code, and the man-hours required for developing the source code can be shortened. In addition, since the amount of visual checking of the source code for errors is reduced, the time required for checking the source code can be significantly reduced. In addition, it is possible to compensate for the lack of understanding of the developer or reviewer of the source code, oversight of the source code, etc., and the quality of the check can be significantly improved. Even if the engagement ability of the reviewer is low, it is possible to suppress oversight of bugs in the source code, and the source code can be appropriately used in a situation where the source code is actually used.
[0060] The emotion identification model 60 may determine the emotion of the user according to a specific mapping. Specifically, the emotion identification model 60 may determine the emotion of the user according to an emotion map (see FIG. 6A), which is a specific mapping.
[0061] FIG. 6A is a diagram showing an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive emotions are arranged. The more outside the concentric circles, the more emotions that represent states and actions that arise from a state of mind are arranged. Emotions are a concept that includes emotions and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions that occur in the brain are arranged. On the right side of the concentric circles, emotions that are generally induced by situational judgment are arranged. On the upper and lower sides of the concentric circles, emotions that are generally generated from reactions that occur in the brain and are induced by situational judgment are arranged. In addition, on the upper side of the concentric circles, emotions of "pleasure" are arranged, and on the lower side, emotions of "discomfort" are arranged. In this way, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[0062] These emotions are distributed in the three o'clock direction of emotion map 400 and usually fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.
[0063] The inside of emotion map 400 represents what is going on inside one's mind, and the outside of emotion map 400 represents behavior, so the further out you go on emotion map 400, the more visible the emotions become (the more they are expressed in behavior).
[0064] Here, human emotions are based on various balances such as posture and blood sugar level, and when these balances are far from the ideal, it indicates an unpleasant state, and when they are close to the ideal, it indicates a pleasant state. Emotions can also be created for robots, cars, motorcycles, etc., based on various balances such as posture and battery level, so that when these balances are far from the ideal, it indicates an unpleasant state, and when they are close to the ideal, it indicates a pleasant state. The emotion map may be generated, for example, based on the emotion map of Dr. Mitsuyoshi (Research on speech emotion recognition and emotion brain physiological signal analysis system, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). On the left half of the emotion map, emotions belonging to an area called "reaction" where sensation is dominant are lined up. On the right half of the emotion map, emotions belonging to an area called "situation" where situation recognition is dominant are lined up.
[0065] The emotion map defines two emotions that promote learning. The first is the negative emotion around the middle of "repentance" or "remorse" on the situation side. In other words, this is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the positive emotion around "desire" on the response side. In other words, this is when the robot has positive feelings such as "I want more" or "I want to know more."
[0066] The emotion identification model 60 inputs user input to a pre-trained neural network, obtains emotion values indicating each emotion shown in the emotion map 400, and determines the emotion of the user. This neural network is pre-trained based on multiple learning data that are combinations of user input and emotion values indicating each emotion shown in the emotion map 400. In addition, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 6B. FIG. 6B shows an example in which multiple emotions, "relief," "calm," and "encouraging," have similar emotion values.
[0067] In the above embodiment, an example was given in which a specific process is performed by one computer 22, but the technology disclosed herein is not limited to this, and distributed processing of the specific process may be performed by multiple computers, including computer 22.
[0068] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable computer-readable non-transitory storage medium such as a Universal Serial Bus (USB) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.
[0069] In addition, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 upon request from the data processing device 12.
[0070] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.
[0071] As the hardware resource for executing the specific process, various processors as shown below can be used. An example of the processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing the specific process by executing software, i.e., a program. Another example of the processor is a dedicated electric circuit, which is a processor having a circuit configuration designed exclusively for executing the specific process, such as a Field-Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), or an Application Specific Integrated Circuit (ASIC). Each processor has a built-in or connected memory, and each processor executes the specific process by using the memory.
[0072] The hardware resource that executes the specific process may be one of these various processors, or may be a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific process may be a single processor.
[0073] As an example of a configuration using one processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a configuration using a processor that realizes the functions of the entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.
[0074] Furthermore, more specifically, the hardware structure of these various processors can be an electric circuit that combines circuit elements such as semiconductor elements. The specific processes described above are merely examples. It goes without saying that unnecessary steps may be deleted, new steps may be added, or the order of processes may be changed without departing from the spirit of the invention.
[0075] The above description and illustrations are detailed descriptions of the parts related to the technology of the present disclosure, and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, function, action, and effect is an example of the configuration, function, action, and effect of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above description and illustrations, within the scope of the gist of the technology of the present disclosure. In addition, in order to avoid confusion and to facilitate understanding of the parts related to the technology of the present disclosure, the above description and illustrations omit explanations of technical common sense that do not require explanation in order to enable the implementation of the technology of the present disclosure.
[0076] All publications, patent applications, and standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or standard was specifically and individually indicated to be incorporated by reference. [Explanation of symbols]
[0077] 10 Data Processing System 12 Data Processing Device 14 Smart Devices 20 people 22 Computers 24 Database 28 processors 32 Storage 34 Bus 36 Computer 38 Reception equipment 38A Touch Panel 38B Microphone 40 Output Device 40A Display 40B Speaker 42 Camera 46 processors 46A Control Unit 50 Storage 52 Bus 54 Network 56 Specific Processing Program 58 Data Generation Model 60 Emotion identification model 62 Reception output program 290 Specific Processing Department 292 Input section 294 Processing section 296 Output section 400 Emotion Map 900 Emotion Map
Claims
1. an input unit for accepting user input; A processing unit that performs a specific process using a sentence generation model that generates a sentence according to an input sentence; an output unit that controls an action of the electronic device so as to output a result of the specific processing; The processing unit includes: When the input unit receives an inquiry regarding an inspection of source code, the specific process inspects the source code and provides advice corresponding to the inspection results.
2. The data processing device according to claim 1 , wherein the processing unit provides a hint regarding an improvement to the source code as advice corresponding to the inspection result.
3. 2 . The data processing device according to claim 1 , wherein the processing unit issues a warning about a portion in the source code that is likely to be the cause of a defect as advice corresponding to the inspection result.
4. The data processing device according to claim 1 , wherein the processing unit executes an explanation of the source code along a specific context as advice corresponding to the inspection result.
5. The data processing device according to claim 1 , wherein the processing unit provides a live chat for discussing and explaining the source code as a forum for providing advice corresponding to the inspection result.
6. Accepts user input, A specific process is performed using a sentence generation model that generates a sentence according to the input sentence, Controlling the behavior of an electronic device so as to output a result of the specific processing; When an inquiry regarding inspection of source code is received, the specific process is to inspect the source code and provide advice corresponding to the inspection results. A computer implemented method of processing data.
7. Accepts user input, A specific process is performed using a sentence generation model that generates a sentence according to the input sentence, Controlling the behavior of an electronic device so as to output a result of the specific processing; When an inquiry regarding inspection of source code is received, the specific process is to inspect the source code and provide advice corresponding to the inspection results. A program for causing a computer to execute the following.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A