WO2022031134A1 - Server for managing chat room, method therefor and computer recordable medium storing computer program for performing such a method - Google Patents

Server for managing chat room, method therefor and computer recordable medium storing computer program for performing such a method Download PDF

Info

Publication number
WO2022031134A1
WO2022031134A1 PCT/KR2021/010454 KR2021010454W WO2022031134A1 WO 2022031134 A1 WO2022031134 A1 WO 2022031134A1 KR 2021010454 W KR2021010454 W KR 2021010454W WO 2022031134 A1 WO2022031134 A1 WO 2022031134A1
Authority
WO
WIPO (PCT)
Prior art keywords
topic
chat
chat room
topics
managing
Prior art date
Application number
PCT/KR2021/010454
Other languages
French (fr)
Inventor
Youn Chul Choi
Young Wook Kim
Min Sun SUNG
Seung Hun Lee
Original Assignee
Seegene, Inc.
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 Seegene, Inc. filed Critical Seegene, Inc.
Priority to KR1020237007982A priority Critical patent/KR20230045080A/en
Publication of WO2022031134A1 publication Critical patent/WO2022031134A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/22Social work
    • G06Q50/50
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • 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/21Monitoring or handling of messages
    • 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/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Definitions

  • the present disclosure relates to a server for managing chat room, a method therefor and a computer recordable medium storing computer program for performing such a method.
  • a chat service refers to a service that supports users to exchange messages with each other in an online chat room.
  • this online chat service is used only as an auxiliary means of communication.
  • the online chat service is gradually being used as a main means of communication.
  • telecommuting is activated and video conferencing becomes common due to covid-19
  • the chat service itself or the chat service accompanying video conferencing is frequently and mainly used in daily life as well as business performance.
  • chat service As the chat service is used as a main means of communication, a technology that allows a user to easily recognize information from a chat message is required. For example, it is assumed that the chat messages related to a plurality of topics are mixed and displayed in one chat room. In this case, if the user may easily obtain the desired information from the chat messages, the chat service may be more activated.
  • embodiments of the present disclosure may provide the technical solution in which the user may easily obtain the desired information from the chat messages when a situation occurs in which the chat messages related to a plurality of topics are mixed and displayed in one chat room.
  • a server for managing a chat room including a topic extractor for extracting a plurality of topics from a chat message displayed in a parent chat room, a major-minor topic classifier for classifying each of the plurality of the topics into a major topic or a minor topic, and a task performer for generating a child chat room in which a chat message corresponding to the minor topic is displayed.
  • a method for managing a chat room including extracting a plurality of topics from a chat message displayed in a parent chat room, classifying each of the plurality of the topics into a major topic or a minor topic, and generating a child chat room in which a chat message corresponding to the minor topic is displayed.
  • a computer recordable medium storing a computer program comprising a code for performing a method for managing a chat room.
  • the method for managing the chat room may include extracting a plurality of topics from a chat message displayed in a parent chat room, classifying each of the plurality of the topics into a major topic or a minor topic, and generating a child chat room in which a chat message corresponding to the minor topic is displayed.
  • a plurality of topics may not be dealt with in one chat room, but may be dealt with in a distributed manner in at least two chat rooms.
  • the degree to which chat messages of different topics are mixed and displayed in one chat room may be alleviated. Accordingly, the users accessing the chat room may more easily the desired information from the chat messages.
  • chat activity in each chat room when a plurality of topics are distributed and dealt with in at least two chat rooms by applying the above technique is expected to be higher than the chat activity in one chat room when a plurality of topics are dealt with in one chat room by not applying the above technique
  • FIG. 1 illustrates a server for managing a chat room and a plurality of terminals A to F providing a chat service by accessing the server for managing the chat room according to an embodiment.
  • FIG. 2 is a block diagram schematically illustrating the configuration of each of the plurality of the terminals A to F shown in FIG. 1.
  • FIG. 3 is a block diagram schematically illustrating the configuration of the server for managing the chat room according to an embodiment.
  • FIG. 4 schematically illustrates an operation in which topics are extracted from messages, and the extracted topics are classified into major topics or minor topics according to an embodiment.
  • FIG. 5 is a flowchart illustrating an example of determining when the server for managing the chat room extracts a topic according to one embodiment.
  • FIG. 6 illustrates an example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
  • FIG. 7 illustrates another example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
  • FIG. 8 illustrates an example of a process for determining a major topic and a minor topic by the server for managing the chat room according to embodiments.
  • FIG. 9 illustrates an example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
  • FIG. 10 illustrates another example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
  • FIG. 11 illustrates an example of displaying a chat room by a terminal according to embodiments.
  • FIG. 12 illustrates an example of displaying a major topic and a minor topic by a terminal according to embodiments.
  • FIG. 13 illustrates an example of displaying whether a chat room is generated for a first minor topic by a terminal according to embodiments.
  • FIG. 14 is a flowchart of a method for managing the chat room according to one embodiment.
  • FIG. 15 schematically illustrates an example of an architecture of a recurrent neural network.
  • FIG. 16 schematically illustrates another example of an architecture of a recurrent neural network.
  • FIG. 17 exemplarily illustrates a flow when data is processed in a recurrent neural network in which learning is completed according to an embodiment.
  • FIG. 18 exemplarily illustrates an example of a data flow when learning a recurrent neural network according to an embodiment.
  • FIG. 19 schematically illustrates an example of architecture for a BERT-based language model.
  • FIG. 20 is a block diagram schematically illustrating the configuration of the base unit shown in FIG. 19.
  • FIG. 21 exemplarily illustrates a flow when data is processed in a BERT-based language model that has been trained according to an embodiment.
  • FIG. 22 exemplarily illustrates an example of a data flow when pre-training a BERT-based language model according to an embodiment.
  • FIG. 23 exemplarily illustrates another example of a data flow when pre-training a BERT-based language model according to an embodiment.
  • FIG. 24 exemplarily illustrates a data flow when performing fine-tuning learning for a BERT-based language model according to an embodiment.
  • FIG. 25 exemplarily illustrates a flow when data is processed in a chat activity inference unit whose training is completed according to an embodiment.
  • FIG. 26 is a schematic conceptual diagram of a multilayer neural network.
  • FIG. 27 is a schematic conceptual diagram of a graph neural network.
  • FIG. 28 illustrates nodes and links of a graph according to an embodiment.
  • FIG. 29 exemplarily illustrates a flow when a graph is processed in a chat activity inference unit whose training is completed according to an embodiment.
  • FIGS. 30 and 31 illustrate a concept of a hierarchical structure related to a topic.
  • FIG. 32 is an exemplary flowchart of a method for managing a chat room according to an embodiment.
  • FIG. 33 is a block diagram schematically illustrating a configuration of an electronic device implemented according to an embodiment.
  • FIG. 1 illustrates a server for managing a chat room and a plurality of terminals A to F providing a chat service by accessing the server for managing the chat room according to an embodiment.
  • FIG. 1 is merely exemplary, the spirit of the present invention is not limited to that shown in FIG. 1.
  • the number of terminals accessing a server 100 for managing a chat room may be 5 or less or 7 or more.
  • it will be described in more detail with respect to FIG. 1.
  • a user's ID is appended to each of a plurality of terminals A to F 200.
  • the user of the terminal A 200 is a
  • the user of the terminal B 200 is b
  • the user of the terminal C 200 is c
  • the user of the terminal D 200 is d and the like.
  • the user of each terminal may be changed.
  • Each of these terminals A to F 200 refers to a device that may be provided with a chat service by accessing the server 100 for managing the chat room.
  • Each of these terminals A to F 200 may include, for example, a smart phone, a tablet PC, a desktop PC, or a server, and may include other various types of terminals. A detailed configuration of each of the plurality of the terminals A to F 200 will be described in more detail in FIG. 2.
  • the network 300 means a wireless or wired network.
  • the network 300 may include at least one of long-term evolution (LTE), LTE Advance (LTE-A), 5G radio access network such as new radio(NR), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), WiBro (Wireless Broadband), wireless fidelity (WiFi), Bluetooth, near field communication (NFC), global navigation satellite system (GNSS) and the like.
  • LTE long-term evolution
  • LTE-A LTE Advance
  • 5G radio access network such as new radio(NR), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), WiBro (Wireless Broadband), wireless fidelity (WiFi), Bluetooth, near field communication (NFC), global navigation satellite system (GNSS) and the like.
  • the network 300 may include at least one a universal serial bus (USB), a high definition multimedia interface (HDMI), a recommended standard232 (RS-232), a local area network (LAN), a wide area network (WAN), the Internet, a telephone network, and the like.
  • USB universal serial bus
  • HDMI high definition multimedia interface
  • RS-232 recommended standard232
  • LAN local area network
  • WAN wide area network
  • the Internet a telephone network, and the like.
  • the server 100 for managing the chat room refers to a device that provides the chat service to the terminals 200 or manages the chat service provided in this way.
  • the server 100 for managing the chat room may include a smart phone, a tablet PC, a desktop PC, or a server, or may include a device for providing or managing the above-mentioned chat service in a cloud manner.
  • a detailed configuration of the server 100 for managing the chat room will be described in more detail with reference to FIG. 3.
  • the server 100 for managing the chat room generates a chat room at the request of the terminal 200 connected to the server 100 for managing the chat room.
  • the server 100 for managing the chat room may generate a chat room by itself.
  • the number of chat rooms generated is more than one.
  • the type of chat room to be generated may correspond to any one of a general chat room, a secret chat room, and an open chat room.
  • the general chat room refers to a chat room where users may generally send and receive chat messages.
  • the secret chat room refers to a chat room in which chat messages exchanged by users are encrypted and managed.
  • the open chat room refers to a chat room where anonymous users may send and receive chat messages.
  • chat rooms may be used for various purposes. For example, doctors, nurses, or medical researchers may exchange opinions about medicines or medical equipment in the above-mentioned chat room. Alternatively, when a seminar or education in a specific field is conducted online, the seminar participants may exchange opinions in the above-mentioned chat room.
  • the user enters the chat room described above using his/her terminal 200.
  • the entering user generates a chat message using the terminal 200.
  • the generated chat message is displayed in the chat window assigned to the chat room. If there are a plurality of users entering the same chat room, the plurality of the users may transmit and receive chat messages with each other in the chat room.
  • screen capture images from some terminals D 200 and E 200 among terminals 200 that connect to the server 100 for managing the chat room according to an embodiment and exchange chat messages are exemplarily shown. Looking at each screen capture image, the user d of the terminal D 200 and the user e of the terminal E 200 enter different chat rooms. These users d and e are exchanging chat messages in the chat room to which they belong.
  • the chat room in which the user d of the terminal D 200 enters refers to a parent chat room.
  • the screen of the terminal D 200 may include a chat window 241 assigned to the parent chat room, a first status information window 2421 about the parent chat room, and a second status information window 2422 about the parent chat room.
  • chat window 241 information indicating who entered which chat message in the chat room is displayed in the chat window 241.
  • chat messages input by users A to F are displayed in the chat window 241 assigned to the parent chat room.
  • User information is displayed in the first status information window 2421.
  • Such user information includes information about a user entering the chat room. Referring to FIG. 1, the users who entered the parent chat room are users a to f.
  • topic information for each user is displayed in the first status information window 2421.
  • the topic information for each user indicates which topic each user who enters the chat room has input a chat message about.
  • topic information per user for the user a is topic 1
  • topic information per user for the user b is topic 2
  • topic information per user for the user c is topic 1
  • topic information per each user for the user d is topic 2.
  • 'topic' means a topic dealt with in a chat message.
  • the type of topic may include, for example, society, economy, politics and the like.
  • a topic of a higher concept or a topic of a lower concept may exist in a specific topic.
  • the plurality of the topics may form a hierarchical structure with each of a topic of the higher concept or a topic of the lower concept.
  • the investing is a topic of the highest concept among them.
  • the stocks investing and the real estate investing are topics that are lower concepts of investing.
  • Direct stock investing is a topic that belongs to the lower concept of the stock investing.
  • a chat activity per topic for each topic dealt with in the chat room is displayed in the second status information window 2422.
  • the 'chat activity' is a number indicating how actively the chat is taking place on a specific topic. A detailed concept of such chat activity and a method of calculating or inferring it will be discussed in more detail later.
  • a number and/or a size of a figure may be used to display the chat activity for each topic described above.
  • the chat activity of topic 1 when viewed as a diameter of a circle assigned to each topic for the parent chat room or a number written on a circle assigned to each topic, the chat activity of topic 1 is greater than that of topic 2.
  • the method of displaying the chat activity is not limited thereto.
  • the screen of the terminal E 200 includes at least one of a chat window 241 assigned to the child chat room, a first status information window 2421 about the child chat room, and a second status information window 2422 about the child chat room.
  • the type of information displayed in each of the chat window 241, the first status information window 2421, and the second status information window 2422 allocated to the child chat room is the same as those related to the parent chat room.
  • users e and f enter the child chat room, and a chat message assigned to each of them is displayed.
  • topic information for each user about users e and f in the child chat room is topic 3.
  • the chat activity for topic 3 in the child chat room is lower than that for topic 1 in the parent chat room but higher than that for topic 2 in the parent chat room.
  • topics 1 and 2 are dealt with, but topic 3 is not.
  • topic 3 is dealt with, but topics 1 and 2 are not.
  • a plurality of topics are being dealt with in two chat rooms. Accordingly, users entering the parent chat room may chat with focus on topics 1 and 2, and users entering the child chat room may chat with focus on topic 3. That is, users may focus on a topic they want. Accordingly, users may easily obtain the information they want from the chat message.
  • each of a plurality of topics is distributed and dealt with in two (or three or more) chat rooms.
  • One method is to assign a specific topic to each chat room, and then notify and manage the user so that only the topic assigned to it may be dealt with in each chat room.
  • Another method is, if it is detected that the chats on a plurality of topics is being performed in any one chat room (hereinafter referred to as 'parent chat room'), to separately generate at least one chat room (hereinafter referred to as 'child chat room'), and then distribute the plurality of the topics to the parent chat room and the child chat room.
  • the server 100 for managing the chat room may support not only the two methods described above, but also other methods not mentioned here.
  • FIG. 2 is a block diagram schematically illustrating the configuration of each of the plurality of the terminals A to F shown in FIG. 1.
  • each of the plurality of the terminals A to F 200 includes a communication unit 210, a processor 220, a memory 230, and a display 240, but it is not limited thereto.
  • the following description is applicable not only to each of a plurality of terminals A to F 200, but also to a terminal that accesses the server 100 for managing the chat room and receives the chat service.
  • the communication unit 210 is implemented to include a wired or wireless communication module.
  • the wired communication module may include at least one of, for example, USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), LAN (Local Area Network), WAN (Wide Area Network), Internet telephone network and the like.
  • the wireless communication module may include at least one of, for example, long-term evolution (LTE), LTE Advance (LTE-A), 5G NR(New radio), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), wireless fidelity (WiFi), Bluetooth (Bluetooth), near field communication (NFC), global navigation satellite system (GNSS) and the like.
  • LTE long-term evolution
  • LTE-A LTE Advance
  • 5G NR(New radio code division multiple access
  • CDMA wideband CDMA
  • UMTS universal mobile telecommunications system
  • WiBro Wireless Broadband
  • WiFi
  • the display 240 is implemented to include a display module for displaying various information.
  • Examples of the display module may include a monitor that is one of the components of a computer or a display panel that is one of the components of a smart device.
  • the information displayed on the display 240 may include, as shown in the screen capture image shown in FIG. 1, for example, the chat window assigned to a specific chat room, the chat message, the user information entering the chat room, and the topic information per each user and the chat activity per topic.
  • list information for at least two chat rooms generated in the server 100 for managing the chat room may be included in the above-described information.
  • the memory 230 is implemented to include a storage medium for storing data or instructions. Examples of the storage medium may include a RAM (Random Access Memory), a ROM (Read Only memory), a flash memory and the like. The data or the instructions stored in the memory 230 may be utilized by the processor 210 to be described below.
  • the input unit 250 is implemented to include an input module that receives data or commands from a user or an external device.
  • Examples of the input module may include a keyboard, a mouse, a touch pad, a USB port and the like. More specifically, the user of the terminal 200 may input the chat message through the input unit 250.
  • the processor 210 is implemented to include a processing module that operates to perform a function to be described below using the data or the instructions stored in the memory 230.
  • Examples of the processing module may include a CPU, a GPU and the like.
  • functions that may be performed by the processor 210 will be described. However, the functions to be described below are merely exemplary.
  • the terminal 200 may access the server 100 for managing the chat room via the network 300 through the communication unit 210 by the operation of the processor 210.
  • a request for generating the chat room may be transmitted from the terminal 200 to the server 100 for managing the chat room through the communication unit 210.
  • the chat message input to the input unit 250 may be transferred from the terminal 200 to the server 100 for managing the chat room through the communication unit 210.
  • information received from the server 100 for managing the chat room to the terminal 200 through the communication unit 210 may be displayed on the display 240 by the operation of the processor 210.
  • FIG. 3 is a block diagram schematically illustrating the configuration of the server for managing the chat room according to an embodiment.
  • the server 100 for managing the chat room includes a communication unit 110, a topic extractor 120, a major-minor topic classifier 125, and a task performer 180, but it is not limited thereto.
  • the server 100 for managing the chat room may further include a chat activity calculator 130, a relevance calculator 140, a chat activity inference unit 150, and a candidate topic selector 160, and a hierarchical structure identifier 170.
  • the server 100 for managing the chat room may include at least one of the configurations shown in FIG. 3 or not shown in FIG. 3.
  • the communication unit 110 is implemented to include a wired or wireless communication module.
  • the wired communication module may include at least one of, for example, USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), LAN (Local Area Network), WAN (Wide Area Network), Internet telephone network and the like.
  • the wireless communication module may include at least one of, for example, long-term evolution (LTE), LTE Advance (LTE-A), 5G NR(New radio), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), wireless fidelity (WiFi), Bluetooth (Bluetooth), near field communication (NFC), global navigation satellite system (GNSS) and the like.
  • LTE long-term evolution
  • LTE-A LTE Advance
  • 5G NR(New radio code division multiple access
  • CDMA wideband CDMA
  • UMTS universal mobile telecommunications system
  • WiBro Wireless Broadband
  • WiFi wireless
  • each of the configurations may be implemented by a processor and a memory that stores instructions executable by the processor.
  • the processor may include the CPU, the GPU and the like.
  • the topic extractor 120 is implemented to extract what kind of topic the chat message displayed in a specific chat room is dealing with, that is, the type of topic.
  • the topic extractor 120 may extract the number of times a certain type of topic has been dealt with for a predetermined time in a specific chat room.
  • the predetermined time may be from several seconds to several tens of seconds, several minutes, several tens of minutes, or several hours, and may be changed according to circumstances, but it is not limited thereto.
  • the form of information extracted by the topic extractor 120 is as follows.
  • u represents a user
  • its value represents a user ID
  • t i represents the i-th topic
  • its value represents the number of times the topic has been dealt with for the predetermined time in a specific chat room.
  • the topic corresponding to each of t1, t2, and t3 has been dealt with twice, once, and 0 times for a predetermined time in the corresponding chat room.
  • what is dealt with 0 times means that the topic was not dealt with for the corresponding time in the chat room.
  • the above-mentioned information extracted by the topic extractor 120 may be extracted for the parent chat room, the child chat room, or the grandchild chat room derived from the child chat room.
  • the topic is extracted from the chat message
  • the unit of the chat message that is the basis of the extraction may be a set of words separated by a line break point on the chat window by inputting 'enter' on the keyboard or keypad.
  • a unit of the chat message that is a subject of topic extraction is referred to as a 'unit chat message'.
  • users a and b input the chat message as follows. (Each of the lowercase letters a through f listed below represents any word).
  • User a's chat message may be divided into two unit chat messages such as 'aaaaa. 'bbbb' and 'ccccc. ddddd. eeeee.' based on the line break by 'enter'.
  • user b's chat message may be divided into one unit chat message such as 'fffff. ggggg.' based on the line break by 'enter'.
  • the topic extractor 120 may extract the topic from the unit chat message 'aaaaa. bbbbb', and also extract the topic from the unit chat message 'cccccc. ddddd.
  • the topic extractor 120 may extract the topic from the unit chat message ' fffff. ggggg.' among the user b's chat message.
  • the spirit of the present disclosure is not limited thereto.
  • the number of topics extracted from the unit chat message may be one, but may be two or more.
  • the number of topics extracted by the topic extractor 120 from the corresponding unit chat message may be two.
  • topic extractor 120 will be described a specific embodiment of the method for extracting a topic from the chat message.
  • the topic extractor 120 extracts a topic using a language model.
  • the language model refers to a model in which the rules of natural language are simulated by a computer. Such a language model may provide a word predicted to appear next, along with a probability, when a word is input.
  • the topic extractor 120 may use various types of language models.
  • the available language models may include a language model based on a recurrent neural network (RNN), which is one of deep learning models, or a language model based on Bidirectional Encoder Representations from Transformers (BERT).
  • RNN recurrent neural network
  • BERT Bidirectional Encoder Representations from Transformers
  • FIG. 15 schematically illustrates an example of architecture of a recurrent neural network.
  • the input data is x
  • the output data is y
  • the activation function is tanh.
  • Parameters optimized in the learning process are weights Wxh, Whh, and b corresponding to bias, but these are not limited thereto.
  • the input data having an order is input according to the order.
  • the output data output from the output end of the recurrent neural network at a specific time point tn is the value output by considering both the output data output from the output end at the immediately preceding time point tn-1 and the input data input to the input end at the corresponding time point tn.
  • FIG. 16 schematically illustrates another example of architecture of a recurrent neural network.
  • one output data Output2 is a value considering the other output data Output1 and one input data x2
  • output3 is a value considering another output data output2 and the other input data x3.
  • Such a recurrent neural network is operable so that when the unit chat message is input to the input end of the recurrent neural network, a topic type for the unit chat message is output at the output end. This will be described with reference to FIG. 17.
  • FIG. 17 exemplarily illustrates a flow when data is processed in a recurrent neural network in which learning is completed according to an embodiment.
  • the recurrent neural network assumes that when a predetermined unit chat message is input to its input end, learning is completed so that the topic for the corresponding unit chat message is output at the output end.
  • the unit chat message that is the subject of topic inference is cn.
  • the recurrent neural network may recognize words. This is because the recurrent neural network may not recognize non-numeric characters per se during the inference process or the learning process.
  • the embedding process itself is a known technique, a description thereof will be omitted.
  • Each element xm of the vector is input to the input end of the recurrent neural network in an order according to the value of m.
  • x1 to x3 are sequentially input, and s1, s2, and s3 are sequentially outputted corresponding to each input.
  • the recurrent neural network infers and outputs which topic one unit chat message cn corresponds to. Accordingly, in the process of inferring a topic, s3 in which all words included in cn are considered may be utilized.
  • the s3 is input to the softmax unit described in FIG. 17, and as a result, a softmax operation is performed on s3.
  • a softmax operation is performed on s3.
  • whether the unit chat message cn corresponds to any of topics 1 to p (where p is a natural number) is calculated as a value of probability.
  • the topics 1 to p are all kinds of candidate topics to which the unit chat message may belong. Referring to FIG. 17, a topic having the highest probability value for cn is topic 2 among p topics.
  • the probability having the highest value among the calculated probabilities for the unit chat message has a value that is less than a predetermined reference value (e.g., 40%).
  • a predetermined reference value e.g. 40%
  • the probability that the topic of a specific unit chat message corresponds to each of topics 1 to 5 among the p topics may be 31%, 30%, 29%, 5%, and 5%.
  • the topic extractor 120 may recalculate the above-mentioned probability by considering one other unit chat message input by the same user immediately after the corresponding unit chat message together with the corresponding unit chat message. If the calculated probability is less than the above-described reference value, the topic extractor 120 may perform the above-described topic extraction process by additionally considering the next unit chat message repeatedly until the probability becomes equal to or greater than the above-described reference value.
  • a probability calculated for each of topics 1 to 5 among p topics for a specific unit chat message may be 46%, 44%, 5%, 3%, or 2%.
  • the topic extractor 120 may extract the type of the topic for the corresponding unit chat message as topic 1 and topic 2.
  • FIG. 18 exemplarily illustrates an example of a data flow when learning a recurrent neural network according to an embodiment.
  • the above-mentioned recurrent neural network may be trained by a training device (not shown in the drawing) according to a supervised-learning method.
  • the training device includes a processor such as the GPU, but it is not limited thereto.
  • training data is prepared.
  • the training data is divided into input data for training and label data for training.
  • the input data for training includes a type of a topic for each of a plurality of sentences.
  • Such training data may be prepared in various ways. For example, by performing a process of crawling a document on a web page and a process of labeling a sentence included in the document as a topic of the document, the above-described training data may be prepared. In this case, whether a specific document is about a topic may be extracted from the title of the document or the title of a web page on which the document is posted.
  • the sentence cn which is the above-described input data for training, is converted into the form of a vector having numbers as elements before being input to the recurrent neural network.
  • This process is the embedding process discussed earlier.
  • the embedding process is performed as in the inference process.
  • the training device may include the embedding unit that performs the above-described embedding.
  • a vector is calculated as a result of such embedding, and the order of each number included in the vector must match the order of the corresponding word.
  • each element of the vector (xi, i is a natural number) is input to the recurrent neural network according to the order.
  • x1 to x3 are sequentially input, and correspondingly, s1 to s3 are sequentially output, respectively.
  • the output data s3 inferred by considering up to the last word included in cn goes through a softmax.
  • whether the sentence cn corresponds to any of topics 1 to p (where p is a natural number) is output as a value of probability.
  • the topics 1 to p refer to all kinds of candidate topics to which a sentence may belong. Referring to FIG. 18, the type of topic having the highest probability value for cn is topic 2.
  • the output data inferred for cn and the label data for training are compared.
  • the output data for the input data cn for learning is topic 2
  • label data for training is topic 1.
  • the difference between the output data inferred for cn and the label data for training, that is, an error, is transmitted to the recurrent neural network by the error back-propagation method.
  • parameters included in the recurrent neural network for example, values of weights and biases, are updated so that this error may be minimized. Since the error back-propagation method itself and the parameter update method itself are well-known techniques, a detailed description thereof will be omitted.
  • the learning is performed using pre-prepared training data, including another sentence cn+1.
  • Such learning is performed until the performance of the recurrent neural network satisfies a predetermined criterion.
  • a predetermined criterion may be confirmed by a cross-validation method.
  • some of the training data is allocated as validation data.
  • validation data not only training data but also validation data are used. For example, the degree of error with respect to the result using the training data is checked, and the degree of error with respect to the result using the validation data in the middle is also checked. If the error degree of the training data is reduced but the error degree of the validation data has a minimal value, the time point becomes the time point that satisfies the above-mentioned criteria.
  • FIG. 19 schematically illustrates an example of architecture for a BERT-based language model.
  • the BERT-based language model includes a base unit 121 and a specialization unit 122.
  • the language model is not limited to including such a configuration.
  • the base unit 121 refers to a pre-trained language model using a large amount of corpus as the training data.
  • the corpus used for training may or may not be limited to a specific field such as medical field.
  • the pre-training process for the base unit 120 will be described in more detail with reference to FIGS. 22 and 23.
  • the base unit 121 When receiving an input such as a chat message, the base unit 121 interprets it and outputs a primary result value.
  • the primary result value indicates the characteristics of the corresponding chat message. These characteristics may include, for example, which topic the chat message is about or a nuance of the chat message, but these are not limited thereto.
  • FIG. 20 is a block diagram schematically illustrating the configuration of the base unit shown in FIG. 19.
  • the base unit 121 includes a plurality of encoders 1211. Each of the plurality of the encoders 1211 may be connected to adjacent encoders 1211.
  • each encoder 1211 may have the same structure as each other.
  • the encoder 1211 includes a self-attention layer and a feed-forward layer, although not shown in the drawing.
  • the self-concentration layer and the feed-forward layer itself have already been described in the papers related to BERT, and a description of each of them will be omitted.
  • the specialization unit 122 is implemented to perform a specific task. For example, when receiving the above-described primary result value from the base unit 121, the specialization unit 122 may perform various functions, for example, a specialized function such as classification, based on the primary result value.
  • This specialization unit 122 is trained in a supervised learning method based on the training data designed for a specific task. Looking at the BERT-based language model, such training of the specialization unit 122 corresponds to fine-tuning. The training of the specialization unit 22 will be described in more detail with reference to FIG. 24.
  • the above-described BERT-based language model may be utilized to infer which topic the corresponding unit chat message is dealing with when the above-described unit chat message is given. This will be described with reference to FIG. 21.
  • FIG. 21 exemplarily illustrates a BERT-based language model that has been trained, and also data flow when a unit chat message is input to this language model.
  • the unit chat message that is the subject of topic inference is cn.
  • the unit chat message cn goes through three embedding processes sequentially: token embedding, sentence embedding, and position embedding.
  • words included in the unit chat message are divided into sub-words in consideration of the number of appearances of each word and the length of each word. For example, words appearing with a certain frequency or more are not split anymore and become sub-words themselves, but words appearing less than a certain frequency are split into endings and stems. Each of these divided parts becomes a sub-word.
  • the sentence embedding process may refer to inputting a sentence separator (SEP) between sentences in order to distinguish sentences constituting a unit chat message from each other.
  • SEP sentence separator
  • the sentence here may refer to 'clause'. For example, if the unit chat message includes two sentences A and B, the SEP is input between sentence A and sentence B according to sentence embedding process.
  • the position embedding process refers to encoding by giving the order of each word to each word included in the unit chat message. For example, it is assumed that a specific unit chat message includes corresponding words in the order of word A + word B + word C. In this case, word A, word B and word C are encoded as 1, 2 and 3 in their order according to the positional embedding process.
  • the base unit 121 outputs a primary result value based on each element xm of the vector. This primary result value is transmitted to the specialization unit 122.
  • the specialization unit 122 outputs a secondary result value based on the primary result value. These secondary results are passed through the softmax unit.
  • the unit chat message cn deals with any topic among topics 1 to p (where p is a natural number) is output as a value.
  • the topics 1 to p refer to all kinds of candidate topics that may be dealt with by the chat message.
  • the topic having the highest probability value for cn is topic 2 among p candidate topics.
  • the probability of having the highest value among the probabilities output for a specific unit chat message may be less than a predetermined reference value (e.g., 40%).
  • a predetermined reference value e.g. 40%
  • each of the base unit 121 and the specialization unit 122 may be trained by a training device (not shown in the drawing).
  • the training device includes a processor such as the GPU, but it is not limited thereto.
  • FIG. 22 exemplarily illustrates a masked language model (MLM) that is a part of the pre-training process for the base unit 121 described above.
  • MLM masked language model
  • training data is prepared.
  • the training data may be a large amount of corpus including a plurality of sentences.
  • Wikipedia and the like may be included in such training data.
  • the field of the training data is not limited to any one. Of course, it is not excluded that the training data is limited to a specific field.
  • Such training data may be prepared in various ways. For example, a large amount of corpus may be obtained for free or for a fee from a website that refines and provides the corpus.
  • Pre-training of the base unit 121 is performed using the thus-obtained training data.
  • the pre-training may include two courses, but the number and types of the included courses are not limited thereto.
  • MLM masked language model
  • some of the input data for training is masked and input to the base unit 121.
  • the base unit 121 infers and outputs the masked portion.
  • the base unit 121 is trained so that the difference between the output result and the label is reduced. It may be seen that the output result in FIG. 22 is B, and the label is also B.
  • the training method is based on known supervised learning, a detailed description thereof will be omitted.
  • NSP next sentence prediction
  • FIG. 23 illustrates the next sentence prediction, which is the remainder of the pre-training process for the base unit 121 described above.
  • pre-training based on prediction of the next sentence is performed. More specifically, two sentences adjacent to each other while having a front and back order among the input data for training are input to the base unit 121. Then, the base unit 121 infers and outputs whether the two input sentences have an order of front and rear while being attached to each other. The base unit 121 is trained such that the difference between the result to be inferred and the label is reduced. In FIG. 22, the sentence immediately following sentence A is predicted to be sentence B and output, and the label is also shown as sentence B immediately following sentence A.
  • the masked language model and the prediction of the next sentence may be performed sequentially or in parallel.
  • each of the masked language model and the next sentence prediction is the same as a known technique for the BERT, a detailed description thereof will be omitted.
  • FIG. 23 exemplarily shows a learning process for the specialization unit 122.
  • the base unit 121 on which the pre-training has been completed.
  • the specialization unit 122 in a state in which training is not performed yet is connected to the output end of the base unit 121.
  • training data is prepared.
  • the training data is divided into input data for training and label data for training.
  • the input data for training includes a plurality of unit chat messages.
  • the label data for training includes the type of topic dealt with by each of a plurality of unit chat messages.
  • Such training data may be prepared in the same way as the training data in the recurrent neural network. Therefore, the description of this part will refer to the part described above.
  • the input data among the training data is input to the base unit 121.
  • the base unit 121 interprets the input data and outputs a primary result value.
  • the specialization unit 122 receives the above-described primary result value from the base unit 121 and outputs the secondary result value.
  • the secondary result is passed through the softmax unit.
  • whether the unit chat message cn deals with any topic among topics 1 to p (where p is a natural number) is output as a value of probability.
  • FIG. 24 exemplarily illustrates a data flow when performing fine-tuning learning for a BERT-based language model according to an embodiment.
  • the topic having the highest probability value for the unit chat message cn is topic 2.
  • the output data inferred for the unit chat message cn and the label data for training are compared with each other.
  • the output data for the input data cn for learning is topic 2
  • the label data for training is topic 1.
  • the difference between the output data inferred for the unit chat message cn and the label data for training, that is, an error, is transmitted to the specialization unit 122 by an error back-propagation method. Accordingly, the training of the specialization unit 122 is performed so that the error may be minimized.
  • the above-described training is performed on each of a plurality of training data and may be performed until a predetermined criterion is satisfied.
  • the major-minor topic classifier 125 may classify some of the extracted topics as major topics and the remaining topics as minor topics.
  • the topic extracted by the topic extractor 120 is one, it means that the topic discussed in the parent chat room is one common topic. Therefore, there is no need to classify the extracted topics into major topics and minor topics. Alternatively, when there is only one extracted topic, the extracted topic may be classified as a major topic.
  • the major-minor topic classifier 125 classifies the extracted topic into a major topic, which is a topic corresponding to a mainly discussed topic, and a minor topic, which is a topic corresponding to the remaining topics.
  • the major-minor topic classifier 125 may classify one of the two extracted topics as a major topic and classify the other of them as a minor topic.
  • the major-minor topic classifier 125 classifies one of the three or more extracted topics as a major topic and classifies the remaining two or more topics as minor topics.
  • the task performer 180 may generate a new chat room, which is a child chat room, to display messages (hereinafter, 'a message' means "a chat message") corresponding to the first minor topic, which is one of the minor topics classified by the major-minor topic classifier 125.
  • a message' means "a chat message”
  • the messages corresponding to two or more minor topics are displayed in the child chat room is not excluded from the scope of the present disclosure.
  • the task performer 180 may separate the messages corresponding to any one or more of the remaining topics other than the mainly discussed topic among a plurality of topics discussed in the parent chat room, into the child chat room, which is a separate chat room from the parent chat room.
  • the generation of the child chat room by the task performer 180 is performed by moving the messages corresponding to the first minor topic and the users corresponding to the first minor topic to the child chat room.
  • the messages and the users corresponding to the first minor topic do not exist in the parent chat room.
  • the messages and users corresponding to the first minor topic exist in the child chat room.
  • only the message may be moved to the child chat room or only the user may be moved to the child chat room.
  • the generation of the child chat room by the task performer 180 is performed by copying the messages corresponding to the first minor topic and/or the users corresponding to the first minor topic to the child chat room.
  • the messages and the users corresponding to the first minor topic exist in both the parent chat room and the child chat room.
  • only the message may be copied to the child chat room or only the user may be copied to the child chat room.
  • the server 100 for managing the chat room automatically extracts a topic from the message entered by users, instead of manually searching for a topic desired by users participating in the chat room, and efficiently manages the chat room based on the extracted topic.
  • the server 100 for managing the chat room may keep only messages related to the main topic of high interest of the users participating in the chat room, thereby minimizing the possibility of causing confusion to the participating users by entering a message about various topics in the chat room.
  • the server 100 for managing the chat room moves the message related to the remaining topic to the separated chat room, allowing the user to focus only on the topic being mainly discussed.
  • the server 100 for managing the chat room moves the messages related to the remaining topics to the separate chat room, allowing only users who are interested in the remaining topics to converse with each other.
  • FIG. 4 schematically illustrates an operation in which topics are extracted from messages, and the extracted topics are classified into major topics or minor topics according to an embodiment.
  • the topic extractor 120 of the server 100 for managing the chat room may extract one or more topics (T1, T2, T3, T4, ...) from the messages (M1, M2, M3, M4, M5, ...) input to the parent chat room.
  • T1, T2, T3, T4, Certainly input to the parent chat room.
  • the major-minor topic classifier 125 of the server 100 for managing the chat room classifies the topic (T1) as a major topic, and the remaining topics (T2, T3, T4, ...) as the minor topics from one or more extracted topics (T1, T2, T3, T4, ).
  • the server 100 for managing the chat room extracts the topic from the message through the topic extractor 120.
  • the server 100 for managing the chat room may extract one or more topics from a plurality of messages input to the parent chat room every preset period (e.g., 1 second, 10 seconds) through the topic extractor 120. If there is a high possibility that the topic of the parent chat room is changed periodically, the server 100 for managing the chat room may determine the timing of extracting the topic according to the preset period. As described above, when the topic is extracted every preset period, the preset period may be, for example, 1 second, 10 seconds, 1 minute, 10 minutes, 1 hour, 12 hours, 1 day, 10 days, 20 days, 1 month, 3 months, 6 months, 1 year and the like, but it is not limited thereto. The preset period may vary according to factors including the number of users participating in the chat room, the frequency at which the messages are input to the chat room for a unit time, the total number of messages input into the chat room, and the like.
  • the preset period may be, for example, 1 second, 10 seconds, 1 minute, 10 minutes, 1 hour, 12 hours, 1 day, 10
  • the server 100 for managing the chat room may determine the timing of extracting the topic according to the frequency at which a message is input to the parent chat room for a unit time (e.g. 10 seconds). For example, when the frequency at which a message is input to the parent chat room for a unit time is equal to or greater than a threshold message input frequency (e.g. 20 messages/minute), the server 100 for managing the chat room may extract a topic. This is because the topics discussed in the parent chat room are likely to change if a lot of new messages are entered in the parent chat room.
  • a threshold message input frequency e.g. 20 messages/minute
  • the server 100 for managing the chat room may determine the timing of extracting the topic based on the number of messages input to the parent chat room. Hereinafter, this will be described with reference to FIG. 5.
  • FIG. 5 is a flowchart illustrating an example of determining when the server for managing the chat room extracts a topic according to one embodiment.
  • the topic extractor 120 of the server 100 for managing the chat room may monitor the number of messages input to the parent chat room at S310.
  • the topic extractor 120 determines whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages at S320.
  • the topic extractor 120 may extract one or more topics from a plurality of messages input to the parent chat room at S330.
  • the topic extractor 120 may repeat the process of determining whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages.
  • the reason why the topic extractor 120 determines whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages is because the possibility of extracting a meaningful topic from among the messages is increased when there is a sufficient amount of messages.
  • the number of threshold messages may vary depending on the number of users participating in the chat room, age, and the like. For example, as the number of users increases, the threshold number of messages may be high, and as the age of the users decreases, the number of threshold messages may be high.
  • the number of threshold messages may be 100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, or more, but it is not limited thereto.
  • topic extractor 120 of the server 100 for managing the chat room determines the timing of extracting the topic.
  • the topic extractor 120 may extract a topic by applying a plurality of messages to a preset prediction model.
  • the predictive model refers to a method of automatically extracting a topic representing the message group from the message group.
  • the prediction model is an example of a Latent Dirichlet Allocation (LDA) model (see Blei, DM, Ng, AY, & Jordan, MI, Latent Dirichlet Allocation, The Journal of Machine Learning Research, 3, pp. 993-1022 , 2003), or a word clustering-based method (see Noh, J., Lee, S., Extracting and Evaluating Topics by Region, Multimedia Tools and Application, 75 (20), 2016).
  • LDA Latent Dirichlet Allocation
  • the topic extractor 120 may extract a topic according to the frequency of a plurality of keywords included in the plurality of the messages.
  • the topic extractor 120 calculates the frequency of keywords while analyzing the words constituting the plurality of the messages.
  • the topic extractor 120 excludes words that do not have an independent meaning, such as an ending, a proposition, and a conjunction, and selects a proverb as a keyword.
  • a proverb may be extracted by a morpheme analyzer or the like.
  • the topic extractor 120 may exclude common words (e.g. greetings) or words referring to the user from the keyword among the proverbs.
  • FIG. 6 illustrates an example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
  • the topic extractor 120 of the server 100 for managing the chat room may extract, as a topic, a keyword of which the frequency is equal to or greater than a threshold frequency, among a plurality of keywords included in a plurality of messages.
  • the frequencies of keywords included in the messages are 38 times for the keyword K1, 20 times for the keyword K2, 19 times for the keyword K3, 10 times for the keyword K4, 4 times for the keyword K5, 3 times for the keyword K6, respectively, and the threshold frequency is 10 times.
  • the topic extractor 120 extracts the keyword K1, the keyword K2, the keyword K3, and the keyword K4 having a frequency of 10 or more times as topic T1, topic T2, topic T3, and topic T4, respectively.
  • the topic extractor 120 does not extract the keyword K5 and the keyword K6 having a frequency of less than 10 times as topics.
  • a keyword with a threshold frequency or higher may become a topic.
  • the server 100 for managing the chat room may select a topic to be extracted among preset candidate topics through a keyword, instead of directly extracting the keyword as the topic. That is, the server 100 for managing the chat room does not allow a topic to be extracted without limitation, and allows a topic to be extracted only within a preset candidate topic. This is to prevent the extraction of topics irrelevant to the user's interest when the interest of users participating in the chat room is set within a specific range.
  • FIG. 7 illustrates another example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
  • the topic extractor 120 of the server 100 for managing the chat room may extract, as a topic, a candidate topic corresponding to a keyword having a frequency equal to or greater than a threshold frequency, among a plurality of candidate topics included in the preset candidate topic group.
  • Information on such candidate topics may be stored in a preset dictionary database. Meanwhile, the information on candidate topics may be manually input by an administrator or may be automatically extracted on the Internet through the web crawling.
  • the frequencies of keywords included in the messages are 38 times for the keyword K1, 20 times for the keyword K2, 19 times for the keyword K3, 10 times for the keyword K4, 4 times for the keyword K5, 3 times for the keyword K6, respectively, and the threshold frequency is 10 times.
  • the candidate topic T1 corresponds to the keyword K1
  • the candidate topic T2 corresponds to the keyword K2
  • the candidate topic T3 corresponds to the keyword K4
  • the candidate topic T4 corresponds to the keyword K5, for eight candidate topics T1, T2, T3, T4, T5, T6, T7, and T8 included in the candidate topic group,.
  • the topic extractor 120 may extract, as topics, the candidate topic T1, the candidate topic T2 and the candidate topic T4 corresponding to any one of the keyword K1, the keyword K2, the keyword K3, and keyword K4 having a frequency of 10 or more times.
  • the candidate topic T4 corresponding to the keyword K5 is not extracted as a topic because the frequency of the keyword K5 is less than the threshold frequency.
  • the remaining candidate topics T5, T6, T7, and T8 are not extracted as topics because corresponding keywords are not extracted.
  • whether a candidate topic corresponds to a keyword may be determined in various ways. For example, when a keyword is included in tagging information (e.g. hashtag) for a candidate topic, the topic extractor 120 may determine that the candidate topic corresponds to the keyword. As another example, when a keyword or a similar word of the keyword is included in the candidate topic, the topic extractor 120 may determine that the candidate topic corresponds to the keyword.
  • tagging information e.g. hashtag
  • the case where the number of candidate topics is 8 has been described as an example, but the number of candidate topics and the number of candidate topics corresponding to keywords are not limited thereto.
  • the major-minor topic classifier 125 of the server 100 for managing the chat room classifies the extracted plurality of topics into a major topic and a minor topic.
  • the major-minor topic classifier 125 may randomly select one of a plurality of topics and classify the selected topic as a major topic.
  • the major-minor topic classifier 125 may classify a topic that is a higher concept as a major topic when the topic that is the higher concept of other topics among a plurality of topics exists.
  • whether a specific topic is a topic that is a higher concept of other topics may be determined based on a database indicating a super-subordinate relationship between topics. For example, if the information that 'animal' is a higher concept of 'dog', 'horse', and 'cow' is stored in the database, 'animal' may be determined as a major topic when the topic is 'animal', 'dog', 'horse', 'cow'.
  • the major-minor topic classifier 125 may classify the extracted plurality of topics into a major topic or a minor topic based on the number of messages corresponding to each of the plurality of the topics. Hereinafter, this will be described in detail with reference to FIG. 8.
  • FIG. 8 illustrates an example of a process for determining a major topic and a minor topic by the server for managing the chat room according to embodiments.
  • the major-minor topic classifier 125 classifies the topic T1, which has the largest number of corresponding messages with 25 as a major topic, and the remaining topics T2, T3, and T4 as minor topics, among the topics T1, T2, T3, and T4.
  • the major-minor topic classifier 125 may classify some of the plurality of the topics as major topics based on the number of users corresponding to each of the plurality of the topics.
  • the corresponding user is a user who has input a message or keyword related to the topic.
  • the number of users corresponding to the topic T1 is 7
  • the number of users corresponding to the topic T2 is 5
  • the number of users corresponding to the topic T3 is three
  • the number of users corresponding to the topic T4 is three, respectively.
  • the major-minor topic classifier 125 classifies the topic T1, which is a topic having the largest number of corresponding users as a major topic, and the remaining topics T2, T2, T3, and T4 as minor topics, among the topics T1, T2, T3, and T4,.
  • the major-minor topic classifier 125 classifies a plurality of topics into a major topic and a minor topic.
  • the task performer 180 of the server 100 for managing the chat room determines a first minor topic to be separated among the minor topics, and generates the child chat room that is a new chat room including messages corresponding to the first minor topic.
  • the task performer 180 may determine the minor topic having the smallest number of messages corresponding to the minor topic as the first minor topic. For example, in FIG. 8, the number of messages corresponding to the topic T4 is the smallest among the topics T2, T3, and T4, which are minor topics, so that the topic T4 may be determined as the first minor topic.
  • the task performer 180 may determine the first minor topic based on the relevance or the degree of relevance between the major topic and each minor topic. Hereinafter, this will be described in detail with reference to FIG. 9.
  • FIG. 9 illustrates an example of a process for determining the first minor topic based on the relevance by the server for managing the chat room according to one embodiment.
  • the topic T1 is a major topic and the topics T2, T3, and T4 are minor topics. It is assumed that the relevance between the topic T2 and the major topic T1 is 0.8, and the relevance between the topic T3 and the major topic T1 is 0.7, and the relevance between the topic T4 and the major topic T1 is 0.4, for the minor topics T2, T3, and T4.
  • the task performer 180 determines the topic T4, which is a minor topic with the lowest relevance to the major topic, as the first minor topic, and moves or copies messages corresponding to the topic T4 into the child chat room.
  • the task performer 180 may determine, as the first minor topic, one of minor topics whose relevance to the major topic is equal to or less than a preset threshold relevance. For example, when the threshold relevance is 0.5, the task performer 180 may determine a topic T4 with the relevance of 0.5 or less as the first minor topic. As another example, when the threshold relevance is 0.7, the task performer 180 may determine one of topics T3 and T4 with the relevance of 0.7 or less as the first minor topic.
  • the relevance between the major topic and the minor topic may be determined based on the number of messages corresponding to both the major topic and the minor topic among a plurality of messages included in the chat room. As the ratio of messages corresponding to both major and minor topics to all messages increases, the value of the relevance between major and minor topics also increases.
  • the relevance between the major topic and the minor topic may be determined based on relevance information between topics stored in a database inside or outside the server 100 for managing the chat room.
  • the relevance information between topics may be stored in the form of various data structures (e.g. tables, trees, graphs).
  • data structures e.g. tables, trees, graphs.
  • FIG. 10 a case in which the relevance information between the topics is in the form of a graph will be described as an example.
  • FIG. 10 illustrates another example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
  • the topic T1 is a major topic and the topics T2, T3, and T4 are the minor topics.
  • the relevance information between the topics may be a weighted graph in which each topic is considered as a node and whether the topics are related to each other is considered as an edge.
  • the weight value of each edge indicates the relevance between two connected topics.
  • the relevance between two topics may be determined as a product of relevance values included in the shortest path between the two topics.
  • the shortest path may refer to a path including the smallest number of edges.
  • the relevance between the topic T1 and the topic T2 is determined to be 0.8.
  • the topic T1 and the topic T3 are connected to each other and the weight of the connected edge is 0.7, the relevance between the topic T1 and the topic T3 is determined to be 0.7.
  • the task performer 180 determines one of the topics T2, T3, and T4, which are minor topics, as the first minor topic according to the criteria described above in FIG. 9, and the task performer 180 moves or copies the first minor messages corresponding to the topic into the child chat room.
  • the server 100 for managing the chat room generates the child chat room and then may further generate a third chat room by repeating the series of steps of topic extraction, topic determination, and chat room generation for messages existing in the parent chat room.
  • the third, fourth, fifth chat rooms, etc. are sequentially generated by repeating the series of steps of the topic extraction, the topic determination, and the chat room generation.
  • a third chat room may be generated by repeating the series of steps of the topic extraction, the topic determination, and the chat room generation while copying another minor topic except the first minor topic copied to the child chat room to the new chat room, and a fourth and a fifth chat rooms may be sequentially generated in the same way.
  • the server 100 for managing the chat room for managing the chat room has been described.
  • FIG. 11 illustrates an example of displaying a chat room by a terminal according to embodiments.
  • the terminal 200 may display a chat room on the display 240.
  • information indicating the user participating in the chat room e.g. the user's name or nickname
  • messages input by the users into the chat room may also be displayed on the display 240.
  • the terminal 200 may also display information that the server 100 for managing the chat room extracts one or more topics based on the messages input to the chat room on the display 240. Through this, the user using the terminal 200 may know that the topic is automatically extracted from the message of the chat room without a separate input.
  • FIG. 12 illustrates an example of displaying a major topic and a minor topic by a terminal according to embodiments.
  • the terminal 200 may display information on a major topic and a minor topic for the chat room on the display 240.
  • the terminal 200 may display on the display 240 that the major topic is T1 and the minor topic is T2, T3, and T4.
  • the terminal 200 may receive information on the major topic and the minor topic from the server 100 for managing the chat room through the communication unit 210.
  • FIG. 13 illustrates an example of displaying whether a chat room is generated for a first minor topic by a terminal according to embodiments.
  • the terminal 200 may display information that the chat room for the first minor topic among the minor topics has been generated on the display 240.
  • the terminal 200 displays on the display 240 that the chat room for T4, which is the first minor topic, has been generated, and also displays a window through which the user selects whether or not to participate in the corresponding chat room on the display 240.
  • the window through which the user may select whether or not to participate in the corresponding chat room may be displayed on the uppermost layer among the windows displayed on the display 240.
  • FIG. 14 is a flowchart of a method for managing the chat room according to one embodiment.
  • the method for managing the chat 1300 may be performed by the server 100 for managing the chat room according to the above mentioned embodiment, it is not limited thereto.
  • the method for managing the chat 1300 may include a topic extraction step for extracting a topic at S1310, a major-minor topic classification step for classifying a major and a minor topic at S1320, and a child chat room generation step for generating a child chat room at S1330.
  • the topic extraction step at S1310 may extract one or more topics from a plurality of messages input by a plurality of users through a terminal in a parent chat room in which a plurality of users participate.
  • the topic may be extracted when the number of the plurality of the messages is equal to or greater than the preset threshold message number.
  • the topic extraction step S1310 may extract a topic according to the frequency of a plurality of keywords included in the plurality of the messages.
  • a keyword having a frequency equal to or greater than a threshold frequency included in a plurality of messages among a plurality of keywords may be extracted as a topic.
  • a candidate topic corresponding to a keyword having a frequency equal to or greater than a threshold frequency among a plurality of keywords from among a plurality of candidate topics included in the preset candidate topic set may be extracted as a topic.
  • the extracted topics may be classified into a major topic or one or more minor topics.
  • a topic having the largest number of corresponding messages among a plurality of topics may be classified as a major topic.
  • the child chat room generation step at S1330 may generate a new chat room, which is a child chat room, including messages corresponding to the first minor topic among the minor topics classified in the major-minor topic classification step atS1320.
  • the chat activity calculator 130 is implemented to calculate the chat activity in a specific chat room based on the above-mentioned unit chat message.
  • the chat activity calculator 130 receives from the topic extractor 120 the following information indicating the number of times a certain type of topic has been dealt with for a predetermined time in a specific chat room. For reference, the following information has already been described in the above regarding the topic extractor 120.
  • the above-described information is a value extracted by the topic extractor 120 for a predetermined time. Accordingly, such information may be updated in units of a predetermined time. Whenever the value is updated, the information is passed from the topic extractor 120 to the chat activity inference unit 150. Then, the chat activity inference unit 150 may update the chat activity for each topic based on the updated value. As a method of updating, first, the current value is replaced with the updated value, and secondly, the current value is replaced with an average value between the current value and the updated value.
  • the relevance calculator 140 is implemented to calculate the relevance of topics dealt with in a specific chat room with each other.
  • the relevance here may be calculated in various ways. For example, if two or more topics are extracted from the above-mentioned unit chat message, these two or more topics may be regarded as having the relevance to each other. To this end, the relevance calculator 140 obtains the type and number of topics extracted together in each unit chat message from the above-described information received from the topic extractor 120, and then the relevance may be calculated based on these information. For example, it is assumed that the relevance calculator 140 receives the following information from the topic extractor 120.
  • the user whose user ID is 1 mentioned topic 1 twice, topic 2 once, and topic p once in one unit chat message. If so, the relevance between the topics 1 and 2 is 1, whichever is the smaller of the number of times these topics are mentioned. In the same way, the relevance between the topics 1 and 3 becomes 1, and the relevance between the topics 2 and 3 becomes 2. On the other hand, since the chat activity for the topic 4 is 0, the relevance between the topics 1 and 4 is 0, the relevance between topics 2 and 4 and topics 3 and 4 also becomes 0. That is, the relevance between the two topics may be a relatively small value among the chat activity of each of the two topics, but it is not limited thereto.
  • chat activity inference unit 150 Let's look at the chat activity inference unit 150. First, it is assumed that a chat is being made on a plurality of topics in a parent chat room. In addition, a child chat room is assumed that will be generated by deriving from this parent chat room, but has not yet been generated. In addition, it is assumed that at least one topic among a plurality of topics will be dealt with in such a child chat room.
  • the chat activity inference unit 150 is implemented to infer the chat activity in the child chat room for the at least one topic on the premise of the generation of the child chat room dealing with the at least one topic.
  • the inferred chat activity may be a basis for determining whether or not to generate the child chat room in the task performer 180, as will be described later.
  • An example of the inferred result is as follows.
  • chat activity inferred for the topic 1 is a non-zero value, which is 3 in the above example.
  • the value of chat activity inferred for the remaining topics, the topics 2 to p may be 0 or a value close to 0.
  • chat activity inference unit 150 makes the inference, any one or at least two of the following various parameters may be considered in combination, or parameters not mentioned below may be considered.
  • each chat activity is ⁇ 1,4,2,4,5,... ., 0 ⁇
  • the relevance between each topic is also given as a specific value, and only the topic 3 will be dealt with in the child chat room.
  • the chat activity inference unit 150 may infer the chat activity for the topic 3 in the child chat room.
  • the chat activity inferred for the topic 3 may be, for example, in the following form.
  • the value of the third parameter is 3, which represents the chat activity in the child chat room inferred for the topic 3)
  • the first parameter that is, the type of the topic to be dealt with in the child chat room among the plurality of the topics dealt with in the parent chat room.
  • topics in which users are interested there are topics in which users are interested and topics in which they are not.
  • the level of interest may vary depending on the time or place. However, if you average the level of interest in topics in various chat rooms over a long period of time, there are usually topics with relatively high interest and topics with relatively low interest. Based on this, the types of topics dealt with in the child chat room may affect the chat activity in the child chat room.
  • the parameters related to the parent chat room affect the inference of chat activity of a specific topic to be dealt with in the child chat room. This is due to the fact that the child chat room is derived from the parent chat room. In other words, the topic 1 to be dealt with in the child chat room is actually a topic that has been dealt with along with other topics in the parent chat room.
  • the chat activity on the topic 1 in the child chat room may be lower than the chat activity on the topic 1 in the parent chat room.
  • the chat activity on the topic 1 in the parent chat room may be similar to the chat activity on the topic 1 of in the parent chat room. That is, the types of topics dealt with in the parent chat room, the chat activity for each topic, or the relevance of these topics to each other may affect the chat activity with respect to a specific topic in the child chat room.
  • FIG. 25 exemplarily illustrates a flow when data is processed in a chat activity inference unit whose training is completed according to an embodiment.
  • the above-described parameters are input as input data to the chat activity inference unit 150, and the chat activity in a child chat room in response to the input of the input data is output as output data from the chat activity inference unit 150.
  • the chat activity inference unit 160 includes an inference model 161.
  • the inference model 161 may receive the above-mentioned parameters as the input data, and as a result, may output the chat activity in the child chat room as the output data.
  • the inference model 161 may be learned based on an artificial neural network (ANN).
  • an artificial neural network may be a multi-layer neural network (MLNN) in which a plurality of hidden layers are disposed between an input layer and an output layer.
  • MLNN multi-layer neural network
  • a conceptual diagram of the multilayer neural network is exemplarily shown in FIG. 25. Since the multilayer neural network itself is a known technology, a detailed description thereof will be omitted.
  • the inference model 161 of the chat activity inference unit 160 infers and outputs the chat activity for the topic to be dealt with in the child chat room.
  • At this time, according to the implementation, at least one of the type of each of the plurality of the topics in the parent chat room, the chat activity for each of the plurality of the topics, and the relevance between the plurality of the topics as described above may be additionally input to the inference model 161 as the input data.
  • the above-described inference model 161 may be trained by a training device (not shown in the drawing) according to a supervised-learning method.
  • the training device includes a processor such as the GPU, but it is not limited thereto.
  • training data is prepared.
  • the training data is divided into input data for training and label data for training.
  • the input data for training may include a plurality of at least one of the type of topic to be dealt with in the child chat room, the types of the plurality of the topics dealt with in the parent chat room, the chat activity for each of the plurality of the topics dealt with in the parent chat room, and the relevance between the plurality of the topics in the parent chat room.
  • the label data for training includes the chat activity for a specific topic(s) in the child chat room, which is paired with each of the plurality of the data described above.
  • Such training data may be prepared in various ways.
  • the server for managing the chat room generates a plurality of chat rooms.
  • the chat is performed in a plurality of these chat rooms.
  • the above-described topic extractor 120 obtains the types of topics dealt with, the chat activity for each topic, and the relevance between the topics from the plurality of the chat rooms.
  • each of the plurality of the chat rooms is referred to as a parent chat room, a child chat room is generated separately from these parent chat rooms.
  • chat messages related to the plurality of the topics dealt with in the parent chat room and users related to some of these topics are moved to the child chat room.
  • the chat about some topics is performed in the child chat room.
  • the chat activity is calculated for some of the topics dealt with in the child chat room. If this process is repeatedly performed, the training data may be prepared.
  • the input data for training is input to the input end of the inference model 161.
  • the chat activity for each topic in the child chat room is output as the output data at the output end of the inference model 161.
  • the difference between the output data and the label data for training i.e., an error
  • the inference model 161 is transmitted to the inference model 161 by an error back-propagation method.
  • parameters included in the inference model 161 for example, values of weights and biases, are updated so that such errors may be minimized. Since the error back-propagation method itself is a known technique, a detailed description thereof will be omitted.
  • Such training is performed until the performance of the inference model 161 satisfies a predetermined criterion.
  • the predetermined criterion may be established in various ways. For example, a predetermined criterion may be determined by cross-validation, which will be referred to as described above.
  • the artificial neural network dealt with in the first implementation may be a graph-based graph neural network (GNN).
  • the structure of such a graph neural network is the same as that of the multi-layer neural network described above.
  • the input data of the graph neural network may include a graph.
  • the graph corresponding to the parent chat room may comprise a plurality of nodes and a link connecting the plurality of the nodes.
  • Each of the plurality of the nodes may represent one of the plurality of the topics.
  • a chat activity calculated for each of the plurality of the topics may be assigned to each of the plurality of the nodes.
  • a relevance that the plurality of the minor topics have with each other in the parent chat room may be assigned to each of the link.
  • FIG. 26 is a schematic conceptual diagram of a multilayer neural network.
  • FIG. 27 is a schematic conceptual diagram of a graph neural network.
  • FIG. 26 is merely exemplary, the spirit of the present disclosure is not limited to that illustrated in FIG. 26.
  • graph data such as graph-type data is input to the input end of the graph neural network (GNN).
  • GNN graph neural network
  • a graph in which three nodes are connected by three links is input to the input end, and predetermined values are assigned to each node and each link.
  • predetermined data is outputted from the output end of the graph neural network.
  • the data output in this way is a value that reflects which node and link the graph input to the input end consists of, and how much is the value of each node and link.
  • first data input to the input end of the graph neural network is different from the second data to be newly input in the number of nodes and links, if the nodes are connected by links differently, or if the values of nodes or links are different from each other, data different from data output when the first data is input may be output at the output end of the graph neural network in response to the input of the second data.
  • the training process of the graph neural network may be the same as that of other models in general deep learning. That is, the training process may be performed by hardware such as the GPU. Also, input data for training and label data for training corresponding thereto are provided, and the training process is performed using them.
  • the graph itself or information about the graph is input to the input end of the graph neural network. For example, in the case of FIG. 27, a graph consisting of three nodes and three links connecting these nodes is input to the graph neural network. At this time, such a graph may be expressed mathematically in the following form.
  • V represents a group of nodes
  • E represents a group of links connecting each node.
  • the value of each node and the value of the link may also be expressed by being included in the above equation.
  • the graph G shown in FIG. 27 may be expressed as follows.
  • ⁇ 1,5,8 ⁇ indicates the types of three nodes. That is, the graph G includes nodes with node IDs 1, 5, and 8, respectively.
  • ⁇ 3,5,7 ⁇ represents the value of each of the three nodes. That is, a node with the node ID of 1 has a value of 3, a node with the node ID of 5 has a value of 5, and a node with the node ID of 8 has a value of 7.
  • ⁇ 1,5 ⁇ , ⁇ 1,8 ⁇ , and ⁇ 5,8 ⁇ represent links connecting nodes. That is, the nodes 1 and 5 are connected with each other, the nodes 1 and 8 are connected with each other, and the nodes 5 and 8 are connected with each other.
  • ⁇ 1,9,4 ⁇ represents the value of each link. That is, a link between nodes 1 and 5 has a value of 1, a link between nodes 1 and 8 has a value of 9, and a link between nodes 5 and 8 has a value of 4.
  • FIG. 28 illustrates an example of nodes and links of a graph according to an embodiment.
  • a graph may indicate the types of topics, the chat activity for topics, and the relevance between topics in one embodiment.
  • the type of topic is indicated in the node name.
  • the chat activity for a specific topic is expressed as a value of a node for that topic.
  • the relevance between specific topics is expressed as a value of a link connecting nodes for the corresponding topic.
  • FIG. 29 exemplarily illustrates a flow when a graph is processed in a chat activity inference unit whose training is completed according to an embodiment.
  • the chat activity inference unit 160 includes a GNN model 161a, that is, a graph neural network model, as an inference model.
  • Input data is input to the input end of the chat activity inference unit 160, and this input data is transmitted to the GNN model 161a.
  • the GNN model 161a outputs output data, and this output data is output from the output end of the chat activity inference unit 160.
  • the input data includes the graph reflecting information on the type of at least one topic to be dealt with in the child chat room and the above-described parameters related to the parent chat room.
  • the above-described parameters related to the parent chat room are, as described above, at least one of the types of a plurality of topics dealt with in the parent chat room, the chat activity for each of the plurality of the topics dealt with in the parent chat room, and the relevance between the plurality of the topics in the parent chat room.
  • the types of topics to be dealt with in the child chat room are shown as the topics 1 and 2.
  • topics 1 to 4 the types of topics being dealt with in the parent chat room are shown as topics 1 to 4, the chat activity of each topic is shown as 3, 4, 5, and 3, and the relevance between the topics is 3 between the topics 1 and 2, 0 between the topics 1 and 3, 2 between the topics 1 and 4, 5 between the topics 2 and 3, 3 between the topics 2 and 4, and 1 between the topics 3 and 4.
  • these values are merely exemplary.
  • the output data includes inferred chat activity for each of the at least one topic to be dealt with in the child chat room.
  • the inferred chat activity for the topic 1 is 9, and the inferred chat activity for the topic 2 is 10.
  • the output data includes the chat activity of 0 for topics other than topics 1 and 2, that is, topics 3 to p. That is, the GNN model 161a of the chat activity inference unit 160 infers and outputs the chat activity for each topic 1 to p, that is, all topics.
  • the topics 3 to p are topics not to be dealt with in the child chat room, the chat activity for each of these topics has a value of 0.
  • the output data is expressed as a formula as follows.
  • 9 and 10 are the chat activities inferred that the topics 1 and 2 may have in the child chat rooms, respectively, and the remaining 0s are the chat activities inferred that the topics 3 to p may have in the child chat rooms, respectively.
  • chat activity calculated for the topics 1 and 2 in the parent chat room with the chat activity inferred for the topics 1 and 2 in the child chat room.
  • the calculated chat activities for the topics 1 and 2 in the parent chat room are 3 and 4, respectively, whereas the inferred chat activities for the topics 1 and 2 in the child chat room are 9 and 10, respectively. That is, if the topics 1 and 2 dealt with in the parent chat room are moved to the child chat room, it is inferred that both the chat activity of the topics 1 and 2 will increase in the child chat room than in the parent chat room. Therefore, in the case of the topics 1 and 2, it may be seen that it is preferable to move to the child chat room and handle it in terms of the chat activity.
  • the topic status information generator 160 is implemented to generate topic status information indicating who is dealing with what kind of topic and with what activity in a specific chat room. More specifically, the topic status information includes at least one of the types of topics dealt with in the chat room, the calculated chat activity for each topic, the relevance between topics, and information about the user who enters a chat message about each topic, but these are not limited thereto.
  • FIGS. 30 and 31 illustrate a concept of a hierarchical structure related to a topic.
  • the above-mentioned topics may be hierarchically configured based on a hierarchical structure. For example, as shown in FIG. 30, at least one topic may be arranged in a lower layer based on the topics 1 and 2, respectively, and at least one topic may be also arranged in a lower layer of each of the at least one topic arranged in this way.
  • the reason why the topics may be hierarchically configured based on the hierarchical structure is because a plurality of topics may have a hierarchical structure reflecting the inclusion relationship between each other as described above.
  • the hierarchical structure identifier 170 is implemented to identify the hierarchical structure between topics.
  • a hierarchical structure related to a pre-made topic based on an ontology may be used. Since the technique for which the hierarchical structure identifier 170 detects the hierarchical structure between topics using the hierarchical structure related to the pre-made topic based on the ontology is well-known, a detailed description thereof will be omitted.
  • the topic status information generator 160 may receive information on the hierarchical structure of topics from the hierarchical structure identifier 170. In addition, the topic status information generator 160 may hierarchically configure the above-mentioned topic status information based on the received information on the hierarchical structure of the topics. For example, as shown in FIG. 31, after arranging the topic of economy and the topic of culture in the upper node, the chat activity for each topic is calculated and described as the value of each node. In addition, after placing each topic of stock, real estate, and interest rate in a lower node under the topic of economy, the chat activity for each topic is calculated and described as the value of each node.
  • chat activity for each topic is calculated and described as the value of each node.
  • the relevance between the topic of economy and the topic of culture is calculated and may be described as the value of the link connecting these nodes.
  • This hierarchically configured topic status information is transmitted from the server 100 for managing the chat room to a plurality of terminals 200, and may be displayed on the screen of each terminal 200. Then, through this topic status information, the user of each terminal 200 may see at a glance which topics are being dealt with a certain degree of activity in the chat room to which they are currently entered, and what relevance each topic.
  • the above-mentioned topic status information may be provided to users who do not enter the chat room, but are waiting in the waiting room by accessing the server 100 for managing the chat room. Through this information, the waiting users may easily find a chat room that deals with the topic they want.
  • the task performer 180 is implemented to perform a task related to chat room management.
  • This task may include at least one of the following:
  • the task of generating the child chat room if the approved answer according to the inquiry exceeds the majority of the users of the parent chat room or satisfies a predetermined criterion(If not, the child chat room are not generated),
  • the task of moving a user related to at least one topic to be dealt with in the child chat room to the child chat room is a task of moving a user related to at least one topic to be dealt with in the child chat room to the child chat room.
  • the above-described tasks have been described assuming that it is applied equally to all users of the parent chat room, but the above-described tasks may be applied differently for each individual user of the parent chat room. For example, when an approval of whether to generate the child chat room and move some of the topics is received from the user a, and disapproval of whether or not to generate a child chat room and move some of the topics is received from the user b, the task performer may perform different tacks for the users a and b. In this case, the chat rooms displayed to the users a and b may be different from each other.
  • the task performer 180 performs a task of determining whether to generate the child chat room. For example, if it is determined not to generate the child chat room, the task performer 180 does not generate the child chat room. In this case, the chat for each of a plurality of topics is performed in the parent chat room. Alternatively, if it is determined to generate the child chat room, the task performer 180 generates the child chat room. In this case, at least one topic among a plurality of topics dealt with in the parent chat room may be dealt with in the child chat room after it is generated.
  • whether or not to generate the child chat room may be determined based on an inferred value for how much activity at least one topic to be dealt with in the child chat room will be dealt with in the child chat room, that is, the inferred chat activity, but it is not limited thereto.
  • the chat activity inference unit 150 infers the chat activity for at least one topic to be dealt with in the child chat room among a plurality of topics dealt with in the parent chat room as described above.
  • the inferred chat activity is transmitted to the task performer 180.
  • the task performer 180 determines whether or not to generate the child chat room based on such chat activity.
  • the sum of the inferred chat activity for each of the at least one topic to be dealt with in the first child chat room is equal to or greater than the sum of the inferred chat activity for each of the at least one topic being dealt with in the parent chat room, it may be determined that the child chat room is generated, and if the former is less than the latter, it may be determined that the child chat room is not generated.
  • 'sum' may be changed to other operators such as 'product' according to embodiments.
  • any one of the inferred chat activity for each of the at least one topic to be dealt with in the child chat room is determined to be 0, it may be determined that the child chat room is not generated. This also applies when the sum of chat activity in the first criterion described above is larger in the child chat room than in the parent chat room.
  • the child chat room is not always generated.
  • the child chat room may be generated only when it is inferred that generating a child chat room and moving some of the topics to the child chat room is more active compared to the case where it is not, in terms of the chat activity. Therefore, the task of deriving and generating the child chat room from a parent chat room may be performed more efficiently.
  • FIG. 32 is an exemplary flowchart of a method for managing a chat room according to an embodiment.
  • the method for managing the chat is not limited thereto.
  • the method for managing the chat may not include at least one of the respective steps included in the flowchart shown in FIG. 32 or may include and perform steps not shown in FIG. 32, and each step may be performed differently from the illustrated order.
  • the sever 100 for the chat room described above may be implemented in the form of an electronic device with reference to FIG. 33.
  • FIG. 33 is a block diagram schematically illustrating a configuration of an electronic device implemented according to an embodiment.
  • the electronic device 1100 includes a communication unit 1110, a memory 113, and a processor 1120.
  • the communication unit 1110 performs the same function as the communication unit 110 shown in FIG. 3, and the memory 1130 performs the same function as the memory 1130 shown in FIG. 3. Accordingly, the description of each of them 1110 and 1130 will refer to the bar already described in FIG. 3.
  • the processor 1120 are configured to perform some or all of the functions of each of the topic extractor 120, the chat activity calculator 130, the relevance calculator 140, the chat activity inference unit 150, and the topic status information generator 160, the hierarchical structure identifier 170, and the task performer 180 shown in FIG. 3. Accordingly, the functions that the processor 1120 may perform will use the components of those already described in FIG. 3. In this case, the processor 1120 may be implemented by a processor such as the CPU or the GPU.
  • the methods according to the various embodiments described above may be implemented in the form of a computer program stored in a computer-readable recording medium programmed to perform each step of the method, and it may be also implemented in the form of a computer-readable recording medium storing the computer program programmed to perform each step of the method.

Abstract

Provided is a server for managing a chat room including a topic extractor for extracting a plurality of topics from a chat message displayed in a parent chat room, a major-minor topic classifier for classifying each of the plurality of the topics into a major topic or a minor topic, and a task performer for generating a child chat room in which a chat message corresponding to the minor topic is displayed.

Description

SERVER FOR MANAGING CHAT ROOM, METHOD THEREFOR AND COMPUTER RECORDABLE MEDIUM STORING COMPUTER PROGRAM FOR PERFORMING SUCH A METHOD
The present disclosure relates to a server for managing chat room, a method therefor and a computer recordable medium storing computer program for performing such a method.
A chat service refers to a service that supports users to exchange messages with each other in an online chat room.
In a society where offline face-to-face contact is predominant, this online chat service is used only as an auxiliary means of communication.
However, with the spread of the Internet and smart phones and the development of technologies such as video calls, the online chat service is gradually being used as a main means of communication. In particular, as telecommuting is activated and video conferencing becomes common due to covid-19, the chat service itself or the chat service accompanying video conferencing is frequently and mainly used in daily life as well as business performance.
For example, in the case of a discussion or seminar on a specific topic, in the past, it was performed only in an offline face-to-face contact method. However, at present, the above-mentioned discussion or seminar is often conducted only through the online chat service without face-to-face contact.
As the chat service is used as a main means of communication, a technology that allows a user to easily recognize information from a chat message is required. For example, it is assumed that the chat messages related to a plurality of topics are mixed and displayed in one chat room. In this case, if the user may easily obtain the desired information from the chat messages, the chat service may be more activated.
Accordingly, embodiments of the present disclosure may provide the technical solution in which the user may easily obtain the desired information from the chat messages when a situation occurs in which the chat messages related to a plurality of topics are mixed and displayed in one chat room.
However, the technical problem to be solved according to the present embodiments is not limited thereto.
According to an aspect of the present disclosure, provided is a server for managing a chat room including a topic extractor for extracting a plurality of topics from a chat message displayed in a parent chat room, a major-minor topic classifier for classifying each of the plurality of the topics into a major topic or a minor topic, and a task performer for generating a child chat room in which a chat message corresponding to the minor topic is displayed.
According to the other aspect of the present disclosure, provided is a method for managing a chat room including extracting a plurality of topics from a chat message displayed in a parent chat room, classifying each of the plurality of the topics into a major topic or a minor topic, and generating a child chat room in which a chat message corresponding to the minor topic is displayed.
According to another aspect of the present disclosure, provided is a computer recordable medium storing a computer program comprising a code for performing a method for managing a chat room. The method for managing the chat room may include extracting a plurality of topics from a chat message displayed in a parent chat room, classifying each of the plurality of the topics into a major topic or a minor topic, and generating a child chat room in which a chat message corresponding to the minor topic is displayed.
According to the embodiments, a plurality of topics may not be dealt with in one chat room, but may be dealt with in a distributed manner in at least two chat rooms. Thereby, the degree to which chat messages of different topics are mixed and displayed in one chat room may be alleviated. Accordingly, the users accessing the chat room may more easily the desired information from the chat messages.
At this time, if the chat activity in each chat room when a plurality of topics are distributed and dealt with in at least two chat rooms by applying the above technique is expected to be higher than the chat activity in one chat room when a plurality of topics are dealt with in one chat room by not applying the above technique, there may be implemented the above technique for distributing a plurality of topics to be dealt with in at least two chat rooms. That is, the above-described technique may be implemented when it is expected that the technique has an advantageous effect. Therefore, chat room management may be performed more effectively.
FIG. 1 illustrates a server for managing a chat room and a plurality of terminals A to F providing a chat service by accessing the server for managing the chat room according to an embodiment.
FIG. 2 is a block diagram schematically illustrating the configuration of each of the plurality of the terminals A to F shown in FIG. 1.
FIG. 3 is a block diagram schematically illustrating the configuration of the server for managing the chat room according to an embodiment.
FIG. 4 schematically illustrates an operation in which topics are extracted from messages, and the extracted topics are classified into major topics or minor topics according to an embodiment.
FIG. 5 is a flowchart illustrating an example of determining when the server for managing the chat room extracts a topic according to one embodiment.
FIG. 6 illustrates an example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
FIG. 7 illustrates another example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
FIG. 8 illustrates an example of a process for determining a major topic and a minor topic by the server for managing the chat room according to embodiments.
FIG. 9 illustrates an example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
FIG. 10 illustrates another example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
FIG. 11 illustrates an example of displaying a chat room by a terminal according to embodiments.
FIG. 12 illustrates an example of displaying a major topic and a minor topic by a terminal according to embodiments.
FIG. 13 illustrates an example of displaying whether a chat room is generated for a first minor topic by a terminal according to embodiments.
FIG. 14 is a flowchart of a method for managing the chat room according to one embodiment.
FIG. 15 schematically illustrates an example of an architecture of a recurrent neural network.
FIG. 16 schematically illustrates another example of an architecture of a recurrent neural network.
FIG. 17 exemplarily illustrates a flow when data is processed in a recurrent neural network in which learning is completed according to an embodiment.
FIG. 18 exemplarily illustrates an example of a data flow when learning a recurrent neural network according to an embodiment.
FIG. 19 schematically illustrates an example of architecture for a BERT-based language model.
FIG. 20 is a block diagram schematically illustrating the configuration of the base unit shown in FIG. 19.
FIG. 21 exemplarily illustrates a flow when data is processed in a BERT-based language model that has been trained according to an embodiment.
FIG. 22 exemplarily illustrates an example of a data flow when pre-training a BERT-based language model according to an embodiment.
FIG. 23 exemplarily illustrates another example of a data flow when pre-training a BERT-based language model according to an embodiment.
FIG. 24 exemplarily illustrates a data flow when performing fine-tuning learning for a BERT-based language model according to an embodiment.
FIG. 25 exemplarily illustrates a flow when data is processed in a chat activity inference unit whose training is completed according to an embodiment.
FIG. 26 is a schematic conceptual diagram of a multilayer neural network.
FIG. 27 is a schematic conceptual diagram of a graph neural network.
FIG. 28 illustrates nodes and links of a graph according to an embodiment.
FIG. 29 exemplarily illustrates a flow when a graph is processed in a chat activity inference unit whose training is completed according to an embodiment.
FIGS. 30 and 31 illustrate a concept of a hierarchical structure related to a topic.
FIG. 32 is an exemplary flowchart of a method for managing a chat room according to an embodiment.
FIG. 33 is a block diagram schematically illustrating a configuration of an electronic device implemented according to an embodiment.
Advantages and features of the present invention, and methods of achieving them, will become apparent with reference to the embodiments described below in detail in reference with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in a variety of different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.
When it is determined that a detailed description of a well-known function or configuration may unnecessarily obscure the gist of the present invention in describing embodiments, the detailed description thereof will be omitted. In addition, the terms to be described later are terms defined in consideration of functions in an embodiment, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification.
FIG. 1 illustrates a server for managing a chat room and a plurality of terminals A to F providing a chat service by accessing the server for managing the chat room according to an embodiment.
Here, since FIG. 1 is merely exemplary, the spirit of the present invention is not limited to that shown in FIG. 1. For example, the number of terminals accessing a server 100 for managing a chat room according to an embodiment may be 5 or less or 7 or more. Hereinafter, it will be described in more detail with respect to FIG. 1.
Referring to FIG. 1, a user's ID is appended to each of a plurality of terminals A to F 200. For example, the user of the terminal A 200 is a, the user of the terminal B 200 is b, the user of the terminal C 200 is c, the user of the terminal D 200 is d and the like. Here, of course, the user of each terminal may be changed. Also, there may be a plurality of users of one terminal. In this case, the plurality of the users may be users that may be distinguished from each other with their own accounts.
Each of these terminals A to F 200 refers to a device that may be provided with a chat service by accessing the server 100 for managing the chat room. Each of these terminals A to F 200 may include, for example, a smart phone, a tablet PC, a desktop PC, or a server, and may include other various types of terminals. A detailed configuration of each of the plurality of the terminals A to F 200 will be described in more detail in FIG. 2.
These terminals A to F 200 use the network 300 when connecting to the server 100 for managing the chat room. Here, the network 300 means a wireless or wired network. Among these, in the case of a wireless network, for example, the network 300 may include at least one of long-term evolution (LTE), LTE Advance (LTE-A), 5G radio access network such as new radio(NR), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), WiBro (Wireless Broadband), wireless fidelity (WiFi), Bluetooth, near field communication (NFC), global navigation satellite system (GNSS) and the like. In addition, in the case of a wired network, for example, the network 300 may include at least one a universal serial bus (USB), a high definition multimedia interface (HDMI), a recommended standard232 (RS-232), a local area network (LAN), a wide area network (WAN), the Internet, a telephone network, and the like.
The server 100 for managing the chat room refers to a device that provides the chat service to the terminals 200 or manages the chat service provided in this way. The server 100 for managing the chat room may include a smart phone, a tablet PC, a desktop PC, or a server, or may include a device for providing or managing the above-mentioned chat service in a cloud manner. A detailed configuration of the server 100 for managing the chat room will be described in more detail with reference to FIG. 3.
The server 100 for managing the chat room generates a chat room at the request of the terminal 200 connected to the server 100 for managing the chat room. Of course, even without the above-mentioned request, the server 100 for managing the chat room may generate a chat room by itself. The number of chat rooms generated is more than one.
Here, the type of chat room to be generated may correspond to any one of a general chat room, a secret chat room, and an open chat room. The general chat room refers to a chat room where users may generally send and receive chat messages. The secret chat room refers to a chat room in which chat messages exchanged by users are encrypted and managed. The open chat room refers to a chat room where anonymous users may send and receive chat messages.
These chat rooms may be used for various purposes. For example, doctors, nurses, or medical researchers may exchange opinions about medicines or medical equipment in the above-mentioned chat room. Alternatively, when a seminar or education in a specific field is conducted online, the seminar participants may exchange opinions in the above-mentioned chat room.
The user enters the chat room described above using his/her terminal 200. The entering user generates a chat message using the terminal 200. The generated chat message is displayed in the chat window assigned to the chat room. If there are a plurality of users entering the same chat room, the plurality of the users may transmit and receive chat messages with each other in the chat room.
[013] In FIG. 1, screen capture images from some terminals D 200 and E 200 among terminals 200 that connect to the server 100 for managing the chat room according to an embodiment and exchange chat messages are exemplarily shown. Looking at each screen capture image, the user d of the terminal D 200 and the user e of the terminal E 200 enter different chat rooms. These users d and e are exchanging chat messages in the chat room to which they belong.
Among them, let's first look at the screen capture image for the terminal D 200. It is assumed that the chat room in which the user d of the terminal D 200 enters refers to a parent chat room. Referring to the screen capture image for the terminal D 200, the screen of the terminal D 200 may include a chat window 241 assigned to the parent chat room, a first status information window 2421 about the parent chat room, and a second status information window 2422 about the parent chat room.
Among them, information indicating who entered which chat message in the chat room is displayed in the chat window 241. Referring to FIG. 1, chat messages input by users A to F are displayed in the chat window 241 assigned to the parent chat room.
User information is displayed in the first status information window 2421. Such user information includes information about a user entering the chat room. Referring to FIG. 1, the users who entered the parent chat room are users a to f.
In addition, topic information for each user is displayed in the first status information window 2421. The topic information for each user indicates which topic each user who enters the chat room has input a chat message about. Referring to FIG. 1, in the parent chat room, topic information per user for the user a is topic 1, topic information per user for the user b is topic 2, and topic information per user for the user c is topic 1 and topic information per each user for the user d is topic 2.
Here, 'topic' means a topic dealt with in a chat message. The type of topic may include, for example, society, economy, politics and the like.
Meanwhile, a topic of a higher concept or a topic of a lower concept may exist in a specific topic. Accordingly, the plurality of the topics may form a hierarchical structure with each of a topic of the higher concept or a topic of the lower concept. Let's look at, for example, the topics of investing, stock investing, direct stock investing, and real estate investing. The investing is a topic of the highest concept among them. The stocks investing and the real estate investing are topics that are lower concepts of investing. Direct stock investing is a topic that belongs to the lower concept of the stock investing. These types of topics or a hierarchical structure between topics may be obtained from information already generated based on ontology.
A chat activity per topic for each topic dealt with in the chat room is displayed in the second status information window 2422. The 'chat activity' is a number indicating how actively the chat is taking place on a specific topic. A detailed concept of such chat activity and a method of calculating or inferring it will be discussed in more detail later.
A number and/or a size of a figure (circle) may be used to display the chat activity for each topic described above. For example, in FIG. 1, when viewed as a diameter of a circle assigned to each topic for the parent chat room or a number written on a circle assigned to each topic, the chat activity of topic 1 is greater than that of topic 2. However, the method of displaying the chat activity is not limited thereto.
Next, let's look at the screen capture image for the terminal E 200. It is assumed that the chat room that the user e of the terminal E 200 enters refers to a child chat room. The screen of the terminal E 200 includes at least one of a chat window 241 assigned to the child chat room, a first status information window 2421 about the child chat room, and a second status information window 2422 about the child chat room.
The type of information displayed in each of the chat window 241, the first status information window 2421, and the second status information window 2422 allocated to the child chat room is the same as those related to the parent chat room. Referring to FIG. 1, users e and f enter the child chat room, and a chat message assigned to each of them is displayed. Also, topic information for each user about users e and f in the child chat room is topic 3. In addition, the chat activity for topic 3 in the child chat room is lower than that for topic 1 in the parent chat room but higher than that for topic 2 in the parent chat room.
At this time, let's look at the types of topics in each chat room. In the parent chat room, topics 1 and 2 are dealt with, but topic 3 is not. In the child chat room, topic 3 is dealt with, but topics 1 and 2 are not. In other words, a plurality of topics are being dealt with in two chat rooms. Accordingly, users entering the parent chat room may chat with focus on topics 1 and 2, and users entering the child chat room may chat with focus on topic 3. That is, users may focus on a topic they want. Accordingly, users may easily obtain the information they want from the chat message.
There may be various methods for the above-described situation, that is, each of a plurality of topics is distributed and dealt with in two (or three or more) chat rooms. One method is to assign a specific topic to each chat room, and then notify and manage the user so that only the topic assigned to it may be dealt with in each chat room. Another method is, if it is detected that the chats on a plurality of topics is being performed in any one chat room (hereinafter referred to as 'parent chat room'), to separately generate at least one chat room (hereinafter referred to as 'child chat room'), and then distribute the plurality of the topics to the parent chat room and the child chat room. The server 100 for managing the chat room according to an embodiment may support not only the two methods described above, but also other methods not mentioned here.
Hereinafter, the configuration of each of the plurality of the terminals A to F 200 shown in FIG. 1 and the configuration of the server 100 for managing the chat room will be described.
FIG. 2 is a block diagram schematically illustrating the configuration of each of the plurality of the terminals A to F shown in FIG. 1.
Referring to FIG. 2, each of the plurality of the terminals A to F 200 includes a communication unit 210, a processor 220, a memory 230, and a display 240, but it is not limited thereto. In addition, the following description is applicable not only to each of a plurality of terminals A to F 200, but also to a terminal that accesses the server 100 for managing the chat room and receives the chat service.
First, the communication unit 210 is implemented to include a wired or wireless communication module. The wired communication module may include at least one of, for example, USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), LAN (Local Area Network), WAN (Wide Area Network), Internet telephone network and the like. The wireless communication module may include at least one of, for example, long-term evolution (LTE), LTE Advance (LTE-A), 5G NR(New radio), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), wireless fidelity (WiFi), Bluetooth (Bluetooth), near field communication (NFC), global navigation satellite system (GNSS) and the like. Through the communication unit 210, each terminal 200 may communicate with the server 100 for managing the chat room.
The display 240 is implemented to include a display module for displaying various information. Examples of the display module may include a monitor that is one of the components of a computer or a display panel that is one of the components of a smart device.
The information displayed on the display 240 may include, as shown in the screen capture image shown in FIG. 1, for example, the chat window assigned to a specific chat room, the chat message, the user information entering the chat room, and the topic information per each user and the chat activity per topic. In addition, list information for at least two chat rooms generated in the server 100 for managing the chat room may be included in the above-described information.
The memory 230 is implemented to include a storage medium for storing data or instructions. Examples of the storage medium may include a RAM (Random Access Memory), a ROM (Read Only memory), a flash memory and the like. The data or the instructions stored in the memory 230 may be utilized by the processor 210 to be described below.
The input unit 250 is implemented to include an input module that receives data or commands from a user or an external device. Examples of the input module may include a keyboard, a mouse, a touch pad, a USB port and the like. More specifically, the user of the terminal 200 may input the chat message through the input unit 250.
The processor 210 is implemented to include a processing module that operates to perform a function to be described below using the data or the instructions stored in the memory 230. Examples of the processing module may include a CPU, a GPU and the like. Hereinafter, functions that may be performed by the processor 210 will be described. However, the functions to be described below are merely exemplary.
The terminal 200 may access the server 100 for managing the chat room via the network 300 through the communication unit 210 by the operation of the processor 210.
In addition, by the operation of the processor 210, a request for generating the chat room may be transmitted from the terminal 200 to the server 100 for managing the chat room through the communication unit 210.
In addition, by the operation of the processor 210, the chat message input to the input unit 250 may be transferred from the terminal 200 to the server 100 for managing the chat room through the communication unit 210.
In addition, information received from the server 100 for managing the chat room to the terminal 200 through the communication unit 210 may be displayed on the display 240 by the operation of the processor 210.
FIG. 3 is a block diagram schematically illustrating the configuration of the server for managing the chat room according to an embodiment.
Referring to FIG. 3, the server 100 for managing the chat room includes a communication unit 110, a topic extractor 120, a major-minor topic classifier 125, and a task performer 180, but it is not limited thereto. The server 100 for managing the chat room may further include a chat activity calculator 130, a relevance calculator 140, a chat activity inference unit 150, and a candidate topic selector 160, and a hierarchical structure identifier 170. For example, the server 100 for managing the chat room may include at least one of the configurations shown in FIG. 3 or not shown in FIG. 3.
First, the communication unit 110 is implemented to include a wired or wireless communication module. The wired communication module may include at least one of, for example, USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), LAN (Local Area Network), WAN (Wide Area Network), Internet telephone network and the like. The wireless communication module may include at least one of, for example, long-term evolution (LTE), LTE Advance (LTE-A), 5G NR(New radio), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless Broadband (WiBro), wireless fidelity (WiFi), Bluetooth (Bluetooth), near field communication (NFC), global navigation satellite system (GNSS) and the like. Through the communication unit 110, the server 100 for managing the chat room may perform communication with each terminal 200 or other various entities not shown in the drawings.
Next, the topic extractor 120, the major-minor topic classifier 125, the chat activity calculator 130, the relevance calculator 140, the candidate topic selector 150, the chat activity inference unit 160, the hierarchical structure determiner 170, and the task performer 180 will be described below, respectively. Here, each of the configurations may be implemented by a processor and a memory that stores instructions executable by the processor. Here, the processor may include the CPU, the GPU and the like.
First, the topic extractor 120 is implemented to extract what kind of topic the chat message displayed in a specific chat room is dealing with, that is, the type of topic. Depending on the implementation, the topic extractor 120 may extract the number of times a certain type of topic has been dealt with for a predetermined time in a specific chat room. In this case, the predetermined time may be from several seconds to several tens of seconds, several minutes, several tens of minutes, or several hours, and may be changed according to circumstances, but it is not limited thereto.
For example, the form of information extracted by the topic extractor 120 is as follows.
U t1 t 2 t 3 ... t p-1 t p
1 2 1 0 ... 0 1
2 0 0 0 ... 0 1
Here, u represents a user, and its value represents a user ID. In addition, ti represents the i-th topic, and its value represents the number of times the topic has been dealt with for the predetermined time in a specific chat room.
Looking at the information whose user ID is 1 among the extracted information, it may be seen that the topic corresponding to each of t1, t2, and t3 has been dealt with twice, once, and 0 times for a predetermined time in the corresponding chat room. Here, what is dealt with 0 times means that the topic was not dealt with for the corresponding time in the chat room.
On the other hand, the above-mentioned information extracted by the topic extractor 120 may be extracted for the parent chat room, the child chat room, or the grandchild chat room derived from the child chat room.
Here, the topic is extracted from the chat message, and the unit of the chat message that is the basis of the extraction may be a set of words separated by a line break point on the chat window by inputting 'enter' on the keyboard or keypad. Hereinafter, a unit of the chat message that is a subject of topic extraction is referred to as a 'unit chat message'. Specifically, looking at the unit chat message as an example, it is assumed that users a and b input the chat message as follows. (Each of the lowercase letters a through f listed below represents any word).
User a: aaaaa. bbbb.
User b: ccccc. ddddd. eeee.
User b: fffff. ggggg.
User a's chat message may be divided into two unit chat messages such as 'aaaaa. 'bbbbb' and 'ccccc. ddddd. eeeee.' based on the line break by 'enter'. In addition, user b's chat message may be divided into one unit chat message such as 'fffff. ggggg.' based on the line break by 'enter'. In this case, the topic extractor 120 may extract the topic from the unit chat message 'aaaaa. bbbbb', and also extract the topic from the unit chat message 'ccccc. ddddd. eeeee.' among the user a's chat message. In addition, the topic extractor 120 may extract the topic from the unit chat message ' fffff. ggggg.' among the user b's chat message. Of course, since it is only an example that a unit chat message that is a subject of topic extraction is distinguished by 'enter', the spirit of the present disclosure is not limited thereto.
Meanwhile, regardless of the number of sentences included in the above-mentioned unit chat message, the number of topics extracted from the unit chat message may be one, but may be two or more. For example, if one sentence includes topics related to 'variant virus causing epidemics' and 'vaccine against infectious diseases', the number of topics extracted by the topic extractor 120 from the corresponding unit chat message may be two.
Hereinafter, the topic extractor 120 will be described a specific embodiment of the method for extracting a topic from the chat message.
As an example, the topic extractor 120 extracts a topic using a language model. Here, the language model refers to a model in which the rules of natural language are simulated by a computer. Such a language model may provide a word predicted to appear next, along with a probability, when a word is input.
The topic extractor 120 may use various types of language models. For example, the available language models may include a language model based on a recurrent neural network (RNN), which is one of deep learning models, or a language model based on Bidirectional Encoder Representations from Transformers (BERT). Among them, the language model based on the recurrent neural network (RNN) will be described with reference to FIGS. 15 to 17.
FIG. 15 schematically illustrates an example of architecture of a recurrent neural network.
Referring to FIG. 15, the input data is x, the output data is y, and the activation function is tanh. Parameters optimized in the learning process are weights Wxh, Whh, and b corresponding to bias, but these are not limited thereto.
In the input end of such a recurrent neural network, the input data having an order is input according to the order. Due to the characteristics of the recurrent neural network, the output data output from the output end of the recurrent neural network at a specific time point tn is the value output by considering both the output data output from the output end at the immediately preceding time point tn-1 and the input data input to the input end at the corresponding time point tn.
FIG. 16 schematically illustrates another example of architecture of a recurrent neural network.
In FIG. 16, three input data x1 (t=tn-1), x2 (t=tn), and x3 (t=tn+1) are sequentially input to the input end of the recurrent neural network. And three output data Output1, Output2 and Output3 are output from the output end. Among them, one output data Output2 is a value considering the other output data Output1 and one input data x2, and output3 is a value considering another output data output2 and the other input data x3.
Such a recurrent neural network is operable so that when the unit chat message is input to the input end of the recurrent neural network, a topic type for the unit chat message is output at the output end. This will be described with reference to FIG. 17.
FIG. 17 exemplarily illustrates a flow when data is processed in a recurrent neural network in which learning is completed according to an embodiment.
Herein, the recurrent neural network assumes that when a predetermined unit chat message is input to its input end, learning is completed so that the topic for the corresponding unit chat message is output at the output end.
Referring to FIG. 17, the unit chat message that is the subject of topic inference is cn. The unit chat message cn includes three words (in, n=1,2,3). The three words are embedded by an embedding unit and converted into a vector (xm, m=1, ..., k, k is a natural number). Assume that k=3 in FIG. 17. Only through this embedding process, the recurrent neural network may recognize words. This is because the recurrent neural network may not recognize non-numeric characters per se during the inference process or the learning process. Here, since the embedding process itself is a known technique, a description thereof will be omitted.
Each element xm of the vector is input to the input end of the recurrent neural network in an order according to the value of m. In FIG. 17, x1 to x3 are sequentially input, and s1, s2, and s3 are sequentially outputted corresponding to each input.
Here, the recurrent neural network infers and outputs which topic one unit chat message cn corresponds to. Accordingly, in the process of inferring a topic, s3 in which all words included in cn are considered may be utilized.
The s3 is input to the softmax unit described in FIG. 17, and as a result, a softmax operation is performed on s3. As a result of performing the softmax operation, whether the unit chat message cn corresponds to any of topics 1 to p (where p is a natural number) is calculated as a value of probability. Here, as described above, the topics 1 to p are all kinds of candidate topics to which the unit chat message may belong. Referring to FIG. 17, a topic having the highest probability value for cn is topic 2 among p topics.
On the other hand, there may be a case in which the probability having the highest value among the calculated probabilities for the unit chat message has a value that is less than a predetermined reference value (e.g., 40%). For example, the probability that the topic of a specific unit chat message corresponds to each of topics 1 to 5 among the p topics may be 31%, 30%, 29%, 5%, and 5%. In this case, the topic extractor 120 may recalculate the above-mentioned probability by considering one other unit chat message input by the same user immediately after the corresponding unit chat message together with the corresponding unit chat message. If the calculated probability is less than the above-described reference value, the topic extractor 120 may perform the above-described topic extraction process by additionally considering the next unit chat message repeatedly until the probability becomes equal to or greater than the above-described reference value.
Meanwhile, there may be a situation in which at least two probabilities exceeding a predetermined reference value (e.g., 40%) among the probabilities calculated for the unit chat message are present. For example, a probability calculated for each of topics 1 to 5 among p topics for a specific unit chat message may be 46%, 44%, 5%, 3%, or 2%. In this case, the topic extractor 120 may extract the type of the topic for the corresponding unit chat message as topic 1 and topic 2.
Hereinafter, the learning process for the above-mentioned recurrent neural network will be described with reference to FIG. 18.
FIG. 18 exemplarily illustrates an example of a data flow when learning a recurrent neural network according to an embodiment.
Before referring to FIG. 18, the above-mentioned recurrent neural network may be trained by a training device (not shown in the drawing) according to a supervised-learning method. In addition, the training device includes a processor such as the GPU, but it is not limited thereto.
Let's look at the training process. First, training data is prepared. The training data is divided into input data for training and label data for training. Among them, the input data for training includes a type of a topic for each of a plurality of sentences.
Such training data may be prepared in various ways. For example, by performing a process of crawling a document on a web page and a process of labeling a sentence included in the document as a topic of the document, the above-described training data may be prepared. In this case, whether a specific document is about a topic may be extracted from the title of the document or the title of a web page on which the document is posted.
The sentence cn, which is the above-described input data for training, is converted into the form of a vector having numbers as elements before being input to the recurrent neural network. This process is the embedding process discussed earlier. In the learning process, the embedding process is performed as in the inference process. Accordingly, the training device may include the embedding unit that performs the above-described embedding. A vector is calculated as a result of such embedding, and the order of each number included in the vector must match the order of the corresponding word.
Next, each element of the vector (xi, i is a natural number) is input to the recurrent neural network according to the order. x1 to x3 are sequentially input, and correspondingly, s1 to s3 are sequentially output, respectively. Among these output data, the output data s3 inferred by considering up to the last word included in cn goes through a softmax. As a result, whether the sentence cn corresponds to any of topics 1 to p (where p is a natural number) is output as a value of probability. Here, as described above, the topics 1 to p refer to all kinds of candidate topics to which a sentence may belong. Referring to FIG. 18, the type of topic having the highest probability value for cn is topic 2.
Next, the output data inferred for cn and the label data for training are compared. Referring to FIG. 18, the output data for the input data cn for learning is topic 2, whereas label data for training is topic 1.
The difference between the output data inferred for cn and the label data for training, that is, an error, is transmitted to the recurrent neural network by the error back-propagation method. As a result, parameters included in the recurrent neural network, for example, values of weights and biases, are updated so that this error may be minimized. Since the error back-propagation method itself and the parameter update method itself are well-known techniques, a detailed description thereof will be omitted.
After that, the learning is performed using pre-prepared training data, including another sentence cn+1.
Such learning is performed until the performance of the recurrent neural network satisfies a predetermined criterion. Whether a predetermined criterion is satisfied may be determined in various ways. For example, the predetermined criterion may be confirmed by a cross-validation method. Looking at cross-validation, some of the training data is allocated as validation data. In the learning process, not only training data but also validation data are used. For example, the degree of error with respect to the result using the training data is checked, and the degree of error with respect to the result using the validation data in the middle is also checked. If the error degree of the training data is reduced but the error degree of the validation data has a minimal value, the time point becomes the time point that satisfies the above-mentioned criteria.
Next, a BERT-based language model usable by the topic extractor 120 will be described.
FIG. 19 schematically illustrates an example of architecture for a BERT-based language model.
Referring to FIG. 19, the BERT-based language model includes a base unit 121 and a specialization unit 122. However, the language model is not limited to including such a configuration.
The base unit 121 refers to a pre-trained language model using a large amount of corpus as the training data. In this case, the corpus used for training may or may not be limited to a specific field such as medical field. The pre-training process for the base unit 120 will be described in more detail with reference to FIGS. 22 and 23.
When receiving an input such as a chat message, the base unit 121 interprets it and outputs a primary result value. The primary result value indicates the characteristics of the corresponding chat message. These characteristics may include, for example, which topic the chat message is about or a nuance of the chat message, but these are not limited thereto.
FIG. 20 is a block diagram schematically illustrating the configuration of the base unit shown in FIG. 19.
Referring to FIG. 20, the base unit 121 includes a plurality of encoders 1211. Each of the plurality of the encoders 1211 may be connected to adjacent encoders 1211.
Here, each encoder 1211 may have the same structure as each other. Referring to the structure of any one encoder 1211, the encoder 1211 includes a self-attention layer and a feed-forward layer, although not shown in the drawing. Here, the self-concentration layer and the feed-forward layer itself have already been described in the papers related to BERT, and a description of each of them will be omitted.
Let's look at the specialization unit 122 with reference to FIG. 19 again. The specialization unit 122 is implemented to perform a specific task. For example, when receiving the above-described primary result value from the base unit 121, the specialization unit 122 may perform various functions, for example, a specialized function such as classification, based on the primary result value.
This specialization unit 122 is trained in a supervised learning method based on the training data designed for a specific task. Looking at the BERT-based language model, such training of the specialization unit 122 corresponds to fine-tuning. The training of the specialization unit 22 will be described in more detail with reference to FIG. 24.
On the other hand, the above-described BERT-based language model may be utilized to infer which topic the corresponding unit chat message is dealing with when the above-described unit chat message is given. This will be described with reference to FIG. 21.
FIG. 21 exemplarily illustrates a BERT-based language model that has been trained, and also data flow when a unit chat message is input to this language model.
Referring to FIG. 21, the unit chat message that is the subject of topic inference is cn. The unit chat message cn goes through three embedding processes sequentially: token embedding, sentence embedding, and position embedding.
In the token embedding process, words included in the unit chat message are divided into sub-words in consideration of the number of appearances of each word and the length of each word. For example, words appearing with a certain frequency or more are not split anymore and become sub-words themselves, but words appearing less than a certain frequency are split into endings and stems. Each of these divided parts becomes a sub-word.
The sentence embedding process may refer to inputting a sentence separator (SEP) between sentences in order to distinguish sentences constituting a unit chat message from each other. The sentence here may refer to 'clause'. For example, if the unit chat message includes two sentences A and B, the SEP is input between sentence A and sentence B according to sentence embedding process.
The position embedding process refers to encoding by giving the order of each word to each word included in the unit chat message. For example, it is assumed that a specific unit chat message includes corresponding words in the order of word A + word B + word C. In this case, word A, word B and word C are encoded as 1, 2 and 3 in their order according to the positional embedding process.
Meanwhile, since the above-described token embedding, sentence embedding, and location embedding processes themselves are well-known techniques, an additional description of each will be omitted.
The unit chat message is converted into a vector (xm, m=1 ,..., k, k is a natural number) through the three embedding processes described above.
The base unit 121 outputs a primary result value based on each element xm of the vector. This primary result value is transmitted to the specialization unit 122.
The specialization unit 122 outputs a secondary result value based on the primary result value. These secondary results are passed through the softmax unit.
As a result of passing through the softmax unit, whether the unit chat message cn deals with any topic among topics 1 to p (where p is a natural number) is output as a value. Here, as described above, the topics 1 to p refer to all kinds of candidate topics that may be dealt with by the chat message. Referring to FIG. 21, the topic having the highest probability value for cn is topic 2 among p candidate topics.
Meanwhile, the probability of having the highest value among the probabilities output for a specific unit chat message may be less than a predetermined reference value (e.g., 40%). Alternatively, there may be a situation in which at least two probabilities exceeding a predetermined reference value (e.g., 40%) among probabilities output for a specific unit chat message are present. Since this may be processed in the same manner as in the recurrent neural network discussed above, a description of the corresponding part will be cited.
Next, a pre-training process for the base unit 121 and a fine-tuning process for the specialization unit 122 will be described.
First, each of the base unit 121 and the specialization unit 122 may be trained by a training device (not shown in the drawing). In addition, the training device includes a processor such as the GPU, but it is not limited thereto.
FIG. 22 exemplarily illustrates a masked language model (MLM) that is a part of the pre-training process for the base unit 121 described above.
Referring to FIG. 22, first, training data is prepared. The training data may be a large amount of corpus including a plurality of sentences. For example, Wikipedia and the like may be included in such training data. The field of the training data is not limited to any one. Of course, it is not excluded that the training data is limited to a specific field.
Such training data may be prepared in various ways. For example, a large amount of corpus may be obtained for free or for a fee from a website that refines and provides the corpus.
Pre-training of the base unit 121 is performed using the thus-obtained training data. The pre-training may include two courses, but the number and types of the included courses are not limited thereto.
One of them is the masked language model (MLM). Looking at the masked language model, some of the input data for training is masked and input to the base unit 121. Then, the base unit 121 infers and outputs the masked portion. The base unit 121 is trained so that the difference between the output result and the label is reduced. It may be seen that the output result in FIG. 22 is B, and the label is also B. Here, since the training method is based on known supervised learning, a detailed description thereof will be omitted.
The remaining one of the pre-training process is the next sentence prediction (NSP).
FIG. 23 illustrates the next sentence prediction, which is the remainder of the pre-training process for the base unit 121 described above.
Referring to FIG. 23, similarly, training data is provided. This is also a large amount of corpus if you look at it earlier.
Using the training data thus prepared, pre-training based on prediction of the next sentence is performed. More specifically, two sentences adjacent to each other while having a front and back order among the input data for training are input to the base unit 121. Then, the base unit 121 infers and outputs whether the two input sentences have an order of front and rear while being attached to each other. The base unit 121 is trained such that the difference between the result to be inferred and the label is reduced. In FIG. 22, the sentence immediately following sentence A is predicted to be sentence B and output, and the label is also shown as sentence B immediately following sentence A.
Meanwhile, the masked language model and the prediction of the next sentence may be performed sequentially or in parallel. In addition, since each of the masked language model and the next sentence prediction is the same as a known technique for the BERT, a detailed description thereof will be omitted.
Next, a training process (fine tuning) for the specialization unit 122 will be described.
FIG. 23 exemplarily shows a learning process for the specialization unit 122.
Referring to FIG. 23, there is provided the base unit 121 on which the pre-training has been completed. In addition, the specialization unit 122 in a state in which training is not performed yet is connected to the output end of the base unit 121.
Next, training data is prepared. The training data is divided into input data for training and label data for training. Among them, the input data for training includes a plurality of unit chat messages. The label data for training includes the type of topic dealt with by each of a plurality of unit chat messages.
Such training data may be prepared in the same way as the training data in the recurrent neural network. Therefore, the description of this part will refer to the part described above.
Next, the input data among the training data is input to the base unit 121. The base unit 121 interprets the input data and outputs a primary result value. The specialization unit 122 receives the above-described primary result value from the base unit 121 and outputs the secondary result value.
The secondary result is passed through the softmax unit. As a result of passing through the softmax unit, whether the unit chat message cn deals with any topic among topics 1 to p (where p is a natural number) is output as a value of probability.
FIG. 24 exemplarily illustrates a data flow when performing fine-tuning learning for a BERT-based language model according to an embodiment.
Referring to FIG. 24, the topic having the highest probability value for the unit chat message cn is topic 2.
Next, the output data inferred for the unit chat message cn and the label data for training are compared with each other. Referring to FIG. 24, the output data for the input data cn for learning is topic 2, whereas the label data for training is topic 1.
The difference between the output data inferred for the unit chat message cn and the label data for training, that is, an error, is transmitted to the specialization unit 122 by an error back-propagation method. Accordingly, the training of the specialization unit 122 is performed so that the error may be minimized.
The above-described training is performed on each of a plurality of training data and may be performed until a predetermined criterion is satisfied.
Referring back to FIG. 3, the major-minor topic classifier 125 will be described.
When the number of topics extracted by the topic extractor 120 is plural, the major-minor topic classifier 125 may classify some of the extracted topics as major topics and the remaining topics as minor topics.
When the topic extracted by the topic extractor 120 is one, it means that the topic discussed in the parent chat room is one common topic. Therefore, there is no need to classify the extracted topics into major topics and minor topics. Alternatively, when there is only one extracted topic, the extracted topic may be classified as a major topic.
However, if there are multiple extracted topics, it means that users discuss multiple topics in the parent chat room. Therefore, it is necessary to confirm which of the topics are mainly discussed. Accordingly, the major-minor topic classifier 125 classifies the extracted topic into a major topic, which is a topic corresponding to a mainly discussed topic, and a minor topic, which is a topic corresponding to the remaining topics.
For example, when the number of extracted topics is two, the major-minor topic classifier 125 may classify one of the two extracted topics as a major topic and classify the other of them as a minor topic.
As another example, when the number of extracted topics is three or more, the major-minor topic classifier 125 classifies one of the three or more extracted topics as a major topic and classifies the remaining two or more topics as minor topics.
Let's look at the task performer 180. The task performer 180 may generate a new chat room, which is a child chat room, to display messages (hereinafter, 'a message' means "a chat message") corresponding to the first minor topic, which is one of the minor topics classified by the major-minor topic classifier 125. Of course, an embodiment in which the messages corresponding to two or more minor topics are displayed in the child chat room is not excluded from the scope of the present disclosure.
That is, the task performer 180 may separate the messages corresponding to any one or more of the remaining topics other than the mainly discussed topic among a plurality of topics discussed in the parent chat room, into the child chat room, which is a separate chat room from the parent chat room.
There are various ways in which the task performer 180 generates the child chat room.
In one embodiment, the generation of the child chat room by the task performer 180 is performed by moving the messages corresponding to the first minor topic and the users corresponding to the first minor topic to the child chat room. As a result of the movement, the messages and the users corresponding to the first minor topic do not exist in the parent chat room. On the other hand, the messages and users corresponding to the first minor topic exist in the child chat room. Of course, depending on the implementation, only the message may be moved to the child chat room or only the user may be moved to the child chat room.
In another embodiment, the generation of the child chat room by the task performer 180 is performed by copying the messages corresponding to the first minor topic and/or the users corresponding to the first minor topic to the child chat room. As a result of the copy, the messages and the users corresponding to the first minor topic exist in both the parent chat room and the child chat room. Of course, depending on the implementation, only the message may be copied to the child chat room or only the user may be copied to the child chat room.
As such, the server 100 for managing the chat room automatically extracts a topic from the message entered by users, instead of manually searching for a topic desired by users participating in the chat room, and efficiently manages the chat room based on the extracted topic.
And by moving the remaining topics that are not mainly discussed to the separated chat room, the server 100 for managing the chat room may keep only messages related to the main topic of high interest of the users participating in the chat room, thereby minimizing the possibility of causing confusion to the participating users by entering a message about various topics in the chat room.
For example, if the user participating in the chat room is interested in the topic being mainly discussed, but is prevented from participating in the chat room due to a message related to the remaining topic, the server 100 for managing the chat room moves the message related to the remaining topic to the separated chat room, allowing the user to focus only on the topic being mainly discussed.
On the other hand, if the user participating in the chat room wants to talk with users who are interested in the remaining topics other than the main topics discussed, the server 100 for managing the chat room moves the messages related to the remaining topics to the separate chat room, allowing only users who are interested in the remaining topics to converse with each other.
FIG. 4 schematically illustrates an operation in which topics are extracted from messages, and the extracted topics are classified into major topics or minor topics according to an embodiment.
Referring to Figure 4, the topic extractor 120 of the server 100 for managing the chat room may extract one or more topics (T1, T2, T3, T4, ...) from the messages (M1, M2, M3, M4, M5, ...) input to the parent chat room. Meanwhile, in the following embodiments, a case in which the number of messages and topics is a specific value will be described as an example, but the number of messages and topics applicable to the embodiments of the present disclosure is not limited thereto.
The major-minor topic classifier 125 of the server 100 for managing the chat room classifies the topic (T1) as a major topic, and the remaining topics (T2, T3, T4, ...) as the minor topics from one or more extracted topics (T1, T2, T3, T4, ...).
Hereinafter, a specific embodiment of the operation of the server 100 for managing the chat room will be described. First, there will be described a time point at which the server 100 for managing the chat room extracts the topic from the message through the topic extractor 120.
As an example, the server 100 for managing the chat room may extract one or more topics from a plurality of messages input to the parent chat room every preset period (e.g., 1 second, 10 seconds) through the topic extractor 120. If there is a high possibility that the topic of the parent chat room is changed periodically, the server 100 for managing the chat room may determine the timing of extracting the topic according to the preset period. As described above, when the topic is extracted every preset period, the preset period may be, for example, 1 second, 10 seconds, 1 minute, 10 minutes, 1 hour, 12 hours, 1 day, 10 days, 20 days, 1 month, 3 months, 6 months, 1 year and the like, but it is not limited thereto. The preset period may vary according to factors including the number of users participating in the chat room, the frequency at which the messages are input to the chat room for a unit time, the total number of messages input into the chat room, and the like.
As another example, the server 100 for managing the chat room may determine the timing of extracting the topic according to the frequency at which a message is input to the parent chat room for a unit time (e.g. 10 seconds). For example, when the frequency at which a message is input to the parent chat room for a unit time is equal to or greater than a threshold message input frequency (e.g. 20 messages/minute), the server 100 for managing the chat room may extract a topic. This is because the topics discussed in the parent chat room are likely to change if a lot of new messages are entered in the parent chat room.
As another example, the server 100 for managing the chat room may determine the timing of extracting the topic based on the number of messages input to the parent chat room. Hereinafter, this will be described with reference to FIG. 5.
FIG. 5 is a flowchart illustrating an example of determining when the server for managing the chat room extracts a topic according to one embodiment.
Referring to FIG. 5, the topic extractor 120 of the server 100 for managing the chat room may monitor the number of messages input to the parent chat room at S310.
The topic extractor 120 determines whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages at S320.
If the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages at S320, the topic extractor 120 may extract one or more topics from a plurality of messages input to the parent chat room at S330.
On the other hand, if the number of messages input to the parent chat room is less than the preset threshold number of messages at S320, the topic extractor 120 may repeat the process of determining whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages.
The reason why the topic extractor 120 determines whether the number of messages input to the parent chat room is equal to or greater than the preset threshold number of messages is because the possibility of extracting a meaningful topic from among the messages is increased when there is a sufficient amount of messages.
The number of threshold messages may vary depending on the number of users participating in the chat room, age, and the like. For example, as the number of users increases, the threshold number of messages may be high, and as the age of the users decreases, the number of threshold messages may be high. The number of threshold messages may be 100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, or more, but it is not limited thereto.
The above embodiments have been described in which the topic extractor 120 of the server 100 for managing the chat room determines the timing of extracting the topic.
Hereinafter, specific embodiments other than the embodiments already described in FIGS. 15 to 24 in which the topic extractor 120 of the server 100 for managing the chat room extracts a topic will be described below.
For example, the topic extractor 120 may extract a topic by applying a plurality of messages to a preset prediction model. The predictive model refers to a method of automatically extracting a topic representing the message group from the message group. In this case, the prediction model is an example of a Latent Dirichlet Allocation (LDA) model (see Blei, DM, Ng, AY, & Jordan, MI, Latent Dirichlet Allocation, The Journal of Machine Learning Research, 3, pp. 993-1022 , 2003), or a word clustering-based method (see Noh, J., Lee, S., Extracting and Evaluating Topics by Region, Multimedia Tools and Application, 75 (20), 2016).
As another example, the topic extractor 120 may extract a topic according to the frequency of a plurality of keywords included in the plurality of the messages. The topic extractor 120 calculates the frequency of keywords while analyzing the words constituting the plurality of the messages. In this case, the topic extractor 120 excludes words that do not have an independent meaning, such as an ending, a proposition, and a conjunction, and selects a proverb as a keyword. On the other hand, such a proverb may be extracted by a morpheme analyzer or the like. On the other hand, the topic extractor 120 may exclude common words (e.g. greetings) or words referring to the user from the keyword among the proverbs.
FIG. 6 illustrates an example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
Referring to FIG. 6, the topic extractor 120 of the server 100 for managing the chat room may extract, as a topic, a keyword of which the frequency is equal to or greater than a threshold frequency, among a plurality of keywords included in a plurality of messages.
In FIG. 6, it is assumed that the frequencies of keywords included in the messages (M1, M2, M3, M4, M5, ...) are 38 times for the keyword K1, 20 times for the keyword K2, 19 times for the keyword K3, 10 times for the keyword K4, 4 times for the keyword K5, 3 times for the keyword K6, respectively, and the threshold frequency is 10 times.
At this time, the topic extractor 120 extracts the keyword K1, the keyword K2, the keyword K3, and the keyword K4 having a frequency of 10 or more times as topic T1, topic T2, topic T3, and topic T4, respectively. On the other hand, the topic extractor 120 does not extract the keyword K5 and the keyword K6 having a frequency of less than 10 times as topics.
On the other hand, in FIG. 6, a keyword with a threshold frequency or higher may become a topic. However, the server 100 for managing the chat room may select a topic to be extracted among preset candidate topics through a keyword, instead of directly extracting the keyword as the topic. That is, the server 100 for managing the chat room does not allow a topic to be extracted without limitation, and allows a topic to be extracted only within a preset candidate topic. This is to prevent the extraction of topics irrelevant to the user's interest when the interest of users participating in the chat room is set within a specific range.
FIG. 7 illustrates another example of determining a topic according to a keyword by the server for managing the chat room according to one embodiment.
Referring to FIG. 7, the topic extractor 120 of the server 100 for managing the chat room may extract, as a topic, a candidate topic corresponding to a keyword having a frequency equal to or greater than a threshold frequency, among a plurality of candidate topics included in the preset candidate topic group.
Information on such candidate topics may be stored in a preset dictionary database. Meanwhile, the information on candidate topics may be manually input by an administrator or may be automatically extracted on the Internet through the web crawling.
In FIG. 7, the frequencies of keywords included in the messages (M1, M2, M3, M4, M5, ...) are 38 times for the keyword K1, 20 times for the keyword K2, 19 times for the keyword K3, 10 times for the keyword K4, 4 times for the keyword K5, 3 times for the keyword K6, respectively, and the threshold frequency is 10 times.
It is also assumed that the candidate topic T1 corresponds to the keyword K1, and the candidate topic T2 corresponds to the keyword K2, the candidate topic T3 corresponds to the keyword K4, and the candidate topic T4 corresponds to the keyword K5, for eight candidate topics T1, T2, T3, T4, T5, T6, T7, and T8 included in the candidate topic group,.
At this time, the topic extractor 120 may extract, as topics, the candidate topic T1, the candidate topic T2 and the candidate topic T4 corresponding to any one of the keyword K1, the keyword K2, the keyword K3, and keyword K4 having a frequency of 10 or more times.
On the other hand, the candidate topic T4 corresponding to the keyword K5 is not extracted as a topic because the frequency of the keyword K5 is less than the threshold frequency. In addition, the remaining candidate topics T5, T6, T7, and T8 are not extracted as topics because corresponding keywords are not extracted.
In this case, whether a candidate topic corresponds to a keyword may be determined in various ways. For example, when a keyword is included in tagging information (e.g. hashtag) for a candidate topic, the topic extractor 120 may determine that the candidate topic corresponds to the keyword. As another example, when a keyword or a similar word of the keyword is included in the candidate topic, the topic extractor 120 may determine that the candidate topic corresponds to the keyword.
In the present embodiments, the case where the number of candidate topics is 8 has been described as an example, but the number of candidate topics and the number of candidate topics corresponding to keywords are not limited thereto.
In the above, the operation of extracting one or more topics by the topic extractor 120 has been described.
Hereinafter, when the number of topics extracted by the topic extractor 120 is a plurality, there will be described the operation on which the major-minor topic classifier 125 of the server 100 for managing the chat room classifies the extracted plurality of topics into a major topic and a minor topic.
For example, the major-minor topic classifier 125 may randomly select one of a plurality of topics and classify the selected topic as a major topic.
As another example, the major-minor topic classifier 125 may classify a topic that is a higher concept as a major topic when the topic that is the higher concept of other topics among a plurality of topics exists.
In this case, whether a specific topic is a topic that is a higher concept of other topics may be determined based on a database indicating a super-subordinate relationship between topics. For example, if the information that 'animal' is a higher concept of 'dog', 'horse', and 'cow' is stored in the database, 'animal' may be determined as a major topic when the topic is 'animal', 'dog', 'horse', 'cow'.
As another example, the major-minor topic classifier 125 may classify the extracted plurality of topics into a major topic or a minor topic based on the number of messages corresponding to each of the plurality of the topics. Hereinafter, this will be described in detail with reference to FIG. 8.
FIG. 8 illustrates an example of a process for determining a major topic and a minor topic by the server for managing the chat room according to embodiments.
In FIG. 8, it is assumed that, among the messages (M1, M2, M3, M4, M5, ...), the number of messages corresponding to the topic T1 is 25, the number of messages corresponding to the topic T2 is 15, the number of messages corresponding to the topic T3 is 12, and the number of messages corresponding to the topic T4 is 7, respectively.
At this time, the major-minor topic classifier 125 classifies the topic T1, which has the largest number of corresponding messages with 25 as a major topic, and the remaining topics T2, T3, and T4 as minor topics, among the topics T1, T2, T3, and T4.
As another example, the major-minor topic classifier 125 may classify some of the plurality of the topics as major topics based on the number of users corresponding to each of the plurality of the topics. The corresponding user is a user who has input a message or keyword related to the topic.
For example, it is assumed that, among the messages (M1, M2, M3, M4, M5, ...), the number of users corresponding to the topic T1 is 7, the number of users corresponding to the topic T2 is 5, the number of users corresponding to the topic T3 is three, and the number of users corresponding to the topic T4 is three, respectively.
At this time, the major-minor topic classifier 125 classifies the topic T1, which is a topic having the largest number of corresponding users as a major topic, and the remaining topics T2, T2, T3, and T4 as minor topics, among the topics T1, T2, T3, and T4,.
In the above, embodiments in which the major-minor topic classifier 125 classifies a plurality of topics into a major topic and a minor topic have been described.
Hereinafter, there will be described an embodiment in which the task performer 180 of the server 100 for managing the chat room determines a first minor topic to be separated among the minor topics, and generates the child chat room that is a new chat room including messages corresponding to the first minor topic.
As an example, the task performer 180 may determine the minor topic having the smallest number of messages corresponding to the minor topic as the first minor topic. For example, in FIG. 8, the number of messages corresponding to the topic T4 is the smallest among the topics T2, T3, and T4, which are minor topics, so that the topic T4 may be determined as the first minor topic.
As another example, the task performer 180 may determine the first minor topic based on the relevance or the degree of relevance between the major topic and each minor topic. Hereinafter, this will be described in detail with reference to FIG. 9.
FIG. 9 illustrates an example of a process for determining the first minor topic based on the relevance by the server for managing the chat room according to one embodiment.
In FIG. 9, it is assumed that, among the topics T1, T2, T3, and T4, the topic T1 is a major topic and the topics T2, T3, and T4 are minor topics. It is assumed that the relevance between the topic T2 and the major topic T1 is 0.8, and the relevance between the topic T3 and the major topic T1 is 0.7, and the relevance between the topic T4 and the major topic T1 is 0.4, for the minor topics T2, T3, and T4.
At this time, the task performer 180 determines the topic T4, which is a minor topic with the lowest relevance to the major topic, as the first minor topic, and moves or copies messages corresponding to the topic T4 into the child chat room.
Meanwhile, the task performer 180 may determine, as the first minor topic, one of minor topics whose relevance to the major topic is equal to or less than a preset threshold relevance. For example, when the threshold relevance is 0.5, the task performer 180 may determine a topic T4 with the relevance of 0.5 or less as the first minor topic. As another example, when the threshold relevance is 0.7, the task performer 180 may determine one of topics T3 and T4 with the relevance of 0.7 or less as the first minor topic.
Hereinafter, a method of calculating the relevance between the major topic and the minor topic will be described.
For example, the relevance between the major topic and the minor topic may be determined based on the number of messages corresponding to both the major topic and the minor topic among a plurality of messages included in the chat room. As the ratio of messages corresponding to both major and minor topics to all messages increases, the value of the relevance between major and minor topics also increases.
For example, when the number of messages corresponding to the major topic is 30 and the number of messages corresponding to both the major topic and the minor topic is 15, the relevance may be calculated as 15/30 = 0.5.
As another example, the relevance between the major topic and the minor topic may be determined based on relevance information between topics stored in a database inside or outside the server 100 for managing the chat room.
In this case, the relevance information between topics may be stored in the form of various data structures (e.g. tables, trees, graphs). Hereinafter, in FIG. 10, a case in which the relevance information between the topics is in the form of a graph will be described as an example.
FIG. 10 illustrates another example of a process for determining the first minor topic based on a relevance by the server for managing the chat room according to one embodiment.
In FIG. 10, it is assumed that among the topics T1, T2, T3, and T4, the topic T1 is a major topic and the topics T2, T3, and T4 are the minor topics.
The relevance information between the topics may be a weighted graph in which each topic is considered as a node and whether the topics are related to each other is considered as an edge. In this case, the weight value of each edge indicates the relevance between two connected topics.
In this case, the relevance between two topics may be determined as a product of relevance values included in the shortest path between the two topics. The shortest path may refer to a path including the smallest number of edges.
In FIG. 10, since the topic T1 and the topic T2 are connected to each other and the weight of the connected edge is 0.8, the relevance between the topic T1 and the topic T2 is determined to be 0.8. In addition, since the topic T1 and the topic T3 are connected to each other and the weight of the connected edge is 0.7, the relevance between the topic T1 and the topic T3 is determined to be 0.7. In addition, since the topic T1 and the topic T4 are not directly connected, but instead connected via the topic T2, the relation between the topic T1 and the topic T2 is 0.8, and the topic T2 and the topic T4 is 0.5, the relevance between the topic T1 and the topic T4 may be 0.8 * 0.5 = 0.4, which is the product of the two values.
At this time, the task performer 180 determines one of the topics T2, T3, and T4, which are minor topics, as the first minor topic according to the criteria described above in FIG. 9, and the task performer 180 moves or copies the first minor messages corresponding to the topic into the child chat room.
The server 100 for managing the chat room according to the present disclosure generates the child chat room and then may further generate a third chat room by repeating the series of steps of topic extraction, topic determination, and chat room generation for messages existing in the parent chat room.
In an embodiment in which the child chat room is generated by moving messages corresponding to the first minor topic to the child chat room, the third, fourth, fifth chat rooms, etc. are sequentially generated by repeating the series of steps of the topic extraction, the topic determination, and the chat room generation.
In an embodiment in which the child chat room is implemented by copying messages corresponding to the first minor topic to the child chat room, a third chat room may be generated by repeating the series of steps of the topic extraction, the topic determination, and the chat room generation while copying another minor topic except the first minor topic copied to the child chat room to the new chat room, and a fourth and a fifth chat rooms may be sequentially generated in the same way.
In the above, the server 100 for managing the chat room for managing the chat room has been described.
FIG. 11 illustrates an example of displaying a chat room by a terminal according to embodiments.
Referring to FIG. 11, the terminal 200 may display a chat room on the display 240. In this case, information indicating the user participating in the chat room (e.g. the user's name or nickname) may be displayed on the display 240. In addition, messages input by the users into the chat room may also be displayed on the display 240.
On the other hand, the terminal 200 may also display information that the server 100 for managing the chat room extracts one or more topics based on the messages input to the chat room on the display 240. Through this, the user using the terminal 200 may know that the topic is automatically extracted from the message of the chat room without a separate input.
FIG. 12 illustrates an example of displaying a major topic and a minor topic by a terminal according to embodiments.
Referring to FIG. 12, the terminal 200 may display information on a major topic and a minor topic for the chat room on the display 240. The terminal 200 may display on the display 240 that the major topic is T1 and the minor topic is T2, T3, and T4. In this case, the terminal 200 may receive information on the major topic and the minor topic from the server 100 for managing the chat room through the communication unit 210.
FIG. 13 illustrates an example of displaying whether a chat room is generated for a first minor topic by a terminal according to embodiments.
Referring to FIG. 12, the terminal 200 may display information that the chat room for the first minor topic among the minor topics has been generated on the display 240. When the first minor topic is T4, the terminal 200 displays on the display 240 that the chat room for T4, which is the first minor topic, has been generated, and also displays a window through which the user selects whether or not to participate in the corresponding chat room on the display 240. In this case, the window through which the user may select whether or not to participate in the corresponding chat room may be displayed on the uppermost layer among the windows displayed on the display 240.
FIG. 14 is a flowchart of a method for managing the chat room according to one embodiment. Here, the method for managing the chat 1300 may be performed by the server 100 for managing the chat room according to the above mentioned embodiment, it is not limited thereto.
Referring to FIG. 14, the method for managing the chat 1300 may include a topic extraction step for extracting a topic at S1310, a major-minor topic classification step for classifying a major and a minor topic at S1320, and a child chat room generation step for generating a child chat room at S1330.
The topic extraction step at S1310 may extract one or more topics from a plurality of messages input by a plurality of users through a terminal in a parent chat room in which a plurality of users participate.
In the topic extraction step at S1310, the topic may be extracted when the number of the plurality of the messages is equal to or greater than the preset threshold message number.
For example, the topic extraction step S1310 may extract a topic according to the frequency of a plurality of keywords included in the plurality of the messages. As an example, in the topic extraction operation at S1310, a keyword having a frequency equal to or greater than a threshold frequency included in a plurality of messages among a plurality of keywords may be extracted as a topic. As another example, in the topic extraction step at S1310, a candidate topic corresponding to a keyword having a frequency equal to or greater than a threshold frequency among a plurality of keywords from among a plurality of candidate topics included in the preset candidate topic set may be extracted as a topic.
In the major-minor topic classification step at S1320, when the number of topics extracted in the topic extraction step S1310 is plural, the extracted topics may be classified into a major topic or one or more minor topics.
For example, in the major-minor topic classification step S1320, a topic having the largest number of corresponding messages among a plurality of topics may be classified as a major topic.
The child chat room generation step at S1330 may generate a new chat room, which is a child chat room, including messages corresponding to the first minor topic among the minor topics classified in the major-minor topic classification step atS1320.
Referring back to FIG. 3, let's look at the chat activity calculator 130.
The chat activity calculator 130 is implemented to calculate the chat activity in a specific chat room based on the above-mentioned unit chat message.
To this end, the chat activity calculator 130 receives from the topic extractor 120 the following information indicating the number of times a certain type of topic has been dealt with for a predetermined time in a specific chat room. For reference, the following information has already been described in the above regarding the topic extractor 120.
U t1 t2 t3 tp-1 tp
1 0 0 0 5
Here, the above-described information is a value extracted by the topic extractor 120 for a predetermined time. Accordingly, such information may be updated in units of a predetermined time. Whenever the value is updated, the information is passed from the topic extractor 120 to the chat activity inference unit 150. Then, the chat activity inference unit 150 may update the chat activity for each topic based on the updated value. As a method of updating, first, the current value is replaced with the updated value, and secondly, the current value is replaced with an average value between the current value and the updated value.
Next, the relevance calculator 140 will be described. The relevance calculator 140 is implemented to calculate the relevance of topics dealt with in a specific chat room with each other.
The relevance here may be calculated in various ways. For example, if two or more topics are extracted from the above-mentioned unit chat message, these two or more topics may be regarded as having the relevance to each other. To this end, the relevance calculator 140 obtains the type and number of topics extracted together in each unit chat message from the above-described information received from the topic extractor 120, and then the relevance may be calculated based on these information. For example, it is assumed that the relevance calculator 140 receives the following information from the topic extractor 120.
U t1 t2 t3 tp-1 tp
1 2 1 0 0 3
Based on the above information, the user whose user ID is 1 mentioned topic 1 twice, topic 2 once, and topic p once in one unit chat message. If so, the relevance between the topics 1 and 2 is 1, whichever is the smaller of the number of times these topics are mentioned. In the same way, the relevance between the topics 1 and 3 becomes 1, and the relevance between the topics 2 and 3 becomes 2. On the other hand, since the chat activity for the topic 4 is 0, the relevance between the topics 1 and 4 is 0, the relevance between topics 2 and 4 and topics 3 and 4 also becomes 0. That is, the relevance between the two topics may be a relatively small value among the chat activity of each of the two topics, but it is not limited thereto.
Next, let's look at the chat activity inference unit 150. First, it is assumed that a chat is being made on a plurality of topics in a parent chat room. In addition, a child chat room is assumed that will be generated by deriving from this parent chat room, but has not yet been generated. In addition, it is assumed that at least one topic among a plurality of topics will be dealt with in such a child chat room.
The chat activity inference unit 150 is implemented to infer the chat activity in the child chat room for the at least one topic on the premise of the generation of the child chat room dealing with the at least one topic. The inferred chat activity may be a basis for determining whether or not to generate the child chat room in the task performer 180, as will be described later. An example of the inferred result is as follows.
t1 t 2 t 3 ... t p-1 t p
3 0 0 ... 0 0
That is, since only the topic 1 is to be dealt with in the child chat room, the chat activity inferred for the topic 1 is a non-zero value, which is 3 in the above example. On the other hand, the value of chat activity inferred for the remaining topics, the topics 2 to p, may be 0 or a value close to 0.
When the chat activity inference unit 150 makes the inference, any one or at least two of the following various parameters may be considered in combination, or parameters not mentioned below may be considered.
First, the type of at least one topic to be dealt with in the child chat room among a plurality of topics dealt with in the parent chat room.
Second, the types of a plurality of topics dealt with in the parent chat room.
Third, the calculated chat activity for each of a plurality of topics dealt with in the parent chat room.
Fourth, the relevance of a plurality of topics dealt with in the parent chat room with each other.
For example, it is assumed that the topics 1 to 5 are being dealt with in the parent chat room, and each chat activity is {1,4,2,4,5,... ., 0}, the relevance between each topic is also given as a specific value, and only the topic 3 will be dealt with in the child chat room.
Then, the following information is input as input data to the chat activity inference unit 150.
{0,0,1,0,0,... .,0} : The type of topic to be dealt with in the child chat room (only the value of the third parameter is 1)
{1,4,2,4,5,0,0,0,... .,0} : Types of topics dealt with in the parent chat room and chat activity for each topic
{0,1,0,0,0,0,0,0,... .,0} : Relevance between the topics dealt with in the parent chat room
Based on this input data, the chat activity inference unit 150 may infer the chat activity for the topic 3 in the child chat room. The chat activity inferred for the topic 3 may be, for example, in the following form.
{0,0,3,0,0,... .,0} (the value of the third parameter is 3, which represents the chat activity in the child chat room inferred for the topic 3)
Then, let's look at the grounds that each of these parameters affect the inference of the chat activity in the child chat room.
First, let's look at the first parameter, that is, the type of the topic to be dealt with in the child chat room among the plurality of the topics dealt with in the parent chat room.
Among the plurality of the topics, there are topics in which users are interested and topics in which they are not. Of course, the level of interest may vary depending on the time or place. However, if you average the level of interest in topics in various chat rooms over a long period of time, there are usually topics with relatively high interest and topics with relatively low interest. Based on this, the types of topics dealt with in the child chat room may affect the chat activity in the child chat room.
Next, let's look at the remaining parameters except for the first parameter. All of these remaining parameters relate to the parent chat room. The parameters related to the parent chat room affect the inference of chat activity of a specific topic to be dealt with in the child chat room. This is due to the fact that the child chat room is derived from the parent chat room. In other words, the topic 1 to be dealt with in the child chat room is actually a topic that has been dealt with along with other topics in the parent chat room.
If the topic 1 is being dealt with relatively closely related to other topics in the parent chat room, and then only the topic 1 is dealt with separately in the child chat room, the chat activity on the topic 1 in the child chat room may be lower than the chat activity on the topic 1 in the parent chat room.
On the other hand, if the topic 1 is being dealt with independently without being relatively closely related to other topics in the parent chat room, and then only the topic 1 is dealt with separately in the child chat room, the chat activity on the topic 1 in the parent chat room may be similar to the chat activity on the topic 1 of in the parent chat room. That is, the types of topics dealt with in the parent chat room, the chat activity for each topic, or the relevance of these topics to each other may affect the chat activity with respect to a specific topic in the child chat room.
FIG. 25 exemplarily illustrates a flow when data is processed in a chat activity inference unit whose training is completed according to an embodiment.
Referring to FIG. 25, the above-described parameters are input as input data to the chat activity inference unit 150, and the chat activity in a child chat room in response to the input of the input data is output as output data from the chat activity inference unit 150.
The chat activity inference unit 160 includes an inference model 161. The inference model 161 may receive the above-mentioned parameters as the input data, and as a result, may output the chat activity in the child chat room as the output data.
Hereinafter, an implementation example of such an inference model 161 will be described.
As a first embodiment, the inference model 161 may be learned based on an artificial neural network (ANN). Such an artificial neural network may be a multi-layer neural network (MLNN) in which a plurality of hidden layers are disposed between an input layer and an output layer. A conceptual diagram of the multilayer neural network is exemplarily shown in FIG. 25. Since the multilayer neural network itself is a known technology, a detailed description thereof will be omitted.
Next, the operation and the training processes of the inference model 161 implemented in the multi-layer neural network method will be described.
First, on the premise that the training of the inference model 161 is completed, let's look at its operation. The type of topic to be dealt with in the child chat room is input to the inference model 161 on which the training is completed as the input data. Then, the inference model 161 of the chat activity inference unit 160 infers and outputs the chat activity for the topic to be dealt with in the child chat room.
At this time, according to the implementation, at least one of the type of each of the plurality of the topics in the parent chat room, the chat activity for each of the plurality of the topics, and the relevance between the plurality of the topics as described above may be additionally input to the inference model 161 as the input data.
Next, a method of training the inference model 161 in the multi-layer neural network method will be described.
First, the above-described inference model 161 may be trained by a training device (not shown in the drawing) according to a supervised-learning method. In addition, the training device includes a processor such as the GPU, but it is not limited thereto.
Let's look at the training process. First, training data is prepared. The training data is divided into input data for training and label data for training. The input data for training may include a plurality of at least one of the type of topic to be dealt with in the child chat room, the types of the plurality of the topics dealt with in the parent chat room, the chat activity for each of the plurality of the topics dealt with in the parent chat room, and the relevance between the plurality of the topics in the parent chat room. The label data for training includes the chat activity for a specific topic(s) in the child chat room, which is paired with each of the plurality of the data described above.
Such training data may be prepared in various ways. For example, the server for managing the chat room generates a plurality of chat rooms. In addition, the chat is performed in a plurality of these chat rooms. During the chatting, the above-described topic extractor 120 obtains the types of topics dealt with, the chat activity for each topic, and the relevance between the topics from the plurality of the chat rooms.
Next, if each of the plurality of the chat rooms is referred to as a parent chat room, a child chat room is generated separately from these parent chat rooms.
Next, chat messages related to the plurality of the topics dealt with in the parent chat room and users related to some of these topics are moved to the child chat room. After that, the chat about some topics is performed in the child chat room. Then, the chat activity is calculated for some of the topics dealt with in the child chat room. If this process is repeatedly performed, the training data may be prepared.
Next, let's look at the training process using the above-described training data.
First, among the above-described training data, the input data for training is input to the input end of the inference model 161. Then, the chat activity for each topic in the child chat room is output as the output data at the output end of the inference model 161.
Next, the difference between the output data and the label data for training, i.e., an error, is transmitted to the inference model 161 by an error back-propagation method. As a result, parameters included in the inference model 161, for example, values of weights and biases, are updated so that such errors may be minimized. Since the error back-propagation method itself is a known technique, a detailed description thereof will be omitted.
After that, the training using another training data is performed.
Such training is performed until the performance of the inference model 161 satisfies a predetermined criterion. The predetermined criterion may be established in various ways. For example, a predetermined criterion may be determined by cross-validation, which will be referred to as described above.
In the second implementation, the artificial neural network dealt with in the first implementation may be a graph-based graph neural network (GNN). The structure of such a graph neural network is the same as that of the multi-layer neural network described above. However, in the second embodiment, the input data of the graph neural network may include a graph. For example, among the graphs, the graph corresponding to the parent chat room may comprise a plurality of nodes and a link connecting the plurality of the nodes. Each of the plurality of the nodes may represent one of the plurality of the topics. A chat activity calculated for each of the plurality of the topics may be assigned to each of the plurality of the nodes. A relevance that the plurality of the minor topics have with each other in the parent chat room may be assigned to each of the link.
Hereinafter, such a graph neural network will be described in more detail.
FIG. 26 is a schematic conceptual diagram of a multilayer neural network. FIG. 27 is a schematic conceptual diagram of a graph neural network. However, since FIG. 26 is merely exemplary, the spirit of the present disclosure is not limited to that illustrated in FIG. 26.
Referring to FIG. 26, graph data such as graph-type data is input to the input end of the graph neural network (GNN). In FIG. 26, a graph in which three nodes are connected by three links is input to the input end, and predetermined values are assigned to each node and each link. In response to the graph data being input to the input end of the graph neural network, predetermined data is outputted from the output end of the graph neural network. The data output in this way is a value that reflects which node and link the graph input to the input end consists of, and how much is the value of each node and link. If the first data input to the input end of the graph neural network is different from the second data to be newly input in the number of nodes and links, if the nodes are connected by links differently, or if the values of nodes or links are different from each other, data different from data output when the first data is input may be output at the output end of the graph neural network in response to the input of the second data.
Hereinafter, the training process of such a graph neural network will be described.
The training process of the graph neural network may be the same as that of other models in general deep learning. That is, the training process may be performed by hardware such as the GPU. Also, input data for training and label data for training corresponding thereto are provided, and the training process is performed using them. One difference is that the graph itself or information about the graph is input to the input end of the graph neural network. For example, in the case of FIG. 27, a graph consisting of three nodes and three links connecting these nodes is input to the graph neural network. At this time, such a graph may be expressed mathematically in the following form.
Graph G = (V, E)
Here, V represents a group of nodes, and E represents a group of links connecting each node. In addition, the value of each node and the value of the link may also be expressed by being included in the above equation.
For example, the graph G shown in FIG. 27 may be expressed as follows.
G=({{{1,5,8},{3,5,7}},{{1,5},{1,8},{5,8}, {1,9,4) }}})
Here, {1,5,8} indicates the types of three nodes. That is, the graph G includes nodes with node IDs 1, 5, and 8, respectively.
{3,5,7} represents the value of each of the three nodes. That is, a node with the node ID of 1 has a value of 3, a node with the node ID of 5 has a value of 5, and a node with the node ID of 8 has a value of 7.
{1,5}, {1,8}, and {5,8} represent links connecting nodes. That is, the nodes 1 and 5 are connected with each other, the nodes 1 and 8 are connected with each other, and the nodes 5 and 8 are connected with each other.
{1,9,4} represents the value of each link. That is, a link between nodes 1 and 5 has a value of 1, a link between nodes 1 and 8 has a value of 9, and a link between nodes 5 and 8 has a value of 4.
Then, in one embodiment, let's look at how the types of topics, the chat activity for the topics, and the relevance between the topics are displayed on the graph with reference to FIG. 28.
FIG. 28 illustrates an example of nodes and links of a graph according to an embodiment. In FIG. 8, a graph may indicate the types of topics, the chat activity for topics, and the relevance between topics in one embodiment.
Referring to FIG. 28, the type of topic is indicated in the node name. The chat activity for a specific topic is expressed as a value of a node for that topic. The relevance between specific topics is expressed as a value of a link connecting nodes for the corresponding topic. However, since FIG. 28 and the foregoing description thereof are merely exemplary, the spirit of the present disclosure is not limited thereto.
Next, an embodiment in which the inference model 161 of the chat activity inference unit 160 is implemented by the graph neural network will be described with reference to FIG. 29.
FIG. 29 exemplarily illustrates a flow when a graph is processed in a chat activity inference unit whose training is completed according to an embodiment.
Referring to FIG. 29, the chat activity inference unit 160 includes a GNN model 161a, that is, a graph neural network model, as an inference model. Input data is input to the input end of the chat activity inference unit 160, and this input data is transmitted to the GNN model 161a. Correspondingly, the GNN model 161a outputs output data, and this output data is output from the output end of the chat activity inference unit 160.
The input data includes the graph reflecting information on the type of at least one topic to be dealt with in the child chat room and the above-described parameters related to the parent chat room. Here, the above-described parameters related to the parent chat room are, as described above, at least one of the types of a plurality of topics dealt with in the parent chat room, the chat activity for each of the plurality of the topics dealt with in the parent chat room, and the relevance between the plurality of the topics in the parent chat room. In FIG. 29, the types of topics to be dealt with in the child chat room are shown as the topics 1 and 2. In addition, the types of topics being dealt with in the parent chat room are shown as topics 1 to 4, the chat activity of each topic is shown as 3, 4, 5, and 3, and the relevance between the topics is 3 between the topics 1 and 2, 0 between the topics 1 and 3, 2 between the topics 1 and 4, 5 between the topics 2 and 3, 3 between the topics 2 and 4, and 1 between the topics 3 and 4. Here, these values are merely exemplary.
In addition, the output data includes inferred chat activity for each of the at least one topic to be dealt with in the child chat room. Referring to FIG. 29, the inferred chat activity for the topic 1 is 9, and the inferred chat activity for the topic 2 is 10. At this time, the output data includes the chat activity of 0 for topics other than topics 1 and 2, that is, topics 3 to p. That is, the GNN model 161a of the chat activity inference unit 160 infers and outputs the chat activity for each topic 1 to p, that is, all topics. However, since the topics 3 to p are topics not to be dealt with in the child chat room, the chat activity for each of these topics has a value of 0. The output data is expressed as a formula as follows.
{9,10, 0,0,....0,0}
Here, 9 and 10 are the chat activities inferred that the topics 1 and 2 may have in the child chat rooms, respectively, and the remaining 0s are the chat activities inferred that the topics 3 to p may have in the child chat rooms, respectively.
On the other hand, let's compare the chat activity calculated for the topics 1 and 2 in the parent chat room with the chat activity inferred for the topics 1 and 2 in the child chat room. In comparison, the calculated chat activities for the topics 1 and 2 in the parent chat room are 3 and 4, respectively, whereas the inferred chat activities for the topics 1 and 2 in the child chat room are 9 and 10, respectively. That is, if the topics 1 and 2 dealt with in the parent chat room are moved to the child chat room, it is inferred that both the chat activity of the topics 1 and 2 will increase in the child chat room than in the parent chat room. Therefore, in the case of the topics 1 and 2, it may be seen that it is preferable to move to the child chat room and handle it in terms of the chat activity.
Refer back to FIG. 3, the topic status information generator 160 is implemented to generate topic status information indicating who is dealing with what kind of topic and with what activity in a specific chat room. More specifically, the topic status information includes at least one of the types of topics dealt with in the chat room, the calculated chat activity for each topic, the relevance between topics, and information about the user who enters a chat message about each topic, but these are not limited thereto.
FIGS. 30 and 31 illustrate a concept of a hierarchical structure related to a topic.
The above-mentioned topics may be hierarchically configured based on a hierarchical structure. For example, as shown in FIG. 30, at least one topic may be arranged in a lower layer based on the topics 1 and 2, respectively, and at least one topic may be also arranged in a lower layer of each of the at least one topic arranged in this way.
The reason why the topics may be hierarchically configured based on the hierarchical structure is because a plurality of topics may have a hierarchical structure reflecting the inclusion relationship between each other as described above.
Referring back to FIG. 3, the hierarchical structure identifier 170 is implemented to identify the hierarchical structure between topics. To identify the hierarchical structure, a hierarchical structure related to a pre-made topic based on an ontology may be used. Since the technique for which the hierarchical structure identifier 170 detects the hierarchical structure between topics using the hierarchical structure related to the pre-made topic based on the ontology is well-known, a detailed description thereof will be omitted.
The topic status information generator 160 may receive information on the hierarchical structure of topics from the hierarchical structure identifier 170. In addition, the topic status information generator 160 may hierarchically configure the above-mentioned topic status information based on the received information on the hierarchical structure of the topics. For example, as shown in FIG. 31, after arranging the topic of economy and the topic of culture in the upper node, the chat activity for each topic is calculated and described as the value of each node. In addition, after placing each topic of stock, real estate, and interest rate in a lower node under the topic of economy, the chat activity for each topic is calculated and described as the value of each node. In addition, after placing each topic of show and movie in a lower node under the topic of culture, the chat activity for each topic is calculated and described as the value of each node. Here, the relevance between the topic of economy and the topic of culture is calculated and may be described as the value of the link connecting these nodes.
This hierarchically configured topic status information is transmitted from the server 100 for managing the chat room to a plurality of terminals 200, and may be displayed on the screen of each terminal 200. Then, through this topic status information, the user of each terminal 200 may see at a glance which topics are being dealt with a certain degree of activity in the chat room to which they are currently entered, and what relevance each topic.
In addition, the above-mentioned topic status information may be provided to users who do not enter the chat room, but are waiting in the waiting room by accessing the server 100 for managing the chat room. Through this information, the waiting users may easily find a chat room that deals with the topic they want.
Referring back to FIG. 3, the task performer 180 will be described. The task performer 180 is implemented to perform a task related to chat room management. This task may include at least one of the following:
The task of determining whether or not to generate a child chat room,
The task of asking the users of the parent chat room whether to approve the generation of the child chat room and whether to move to some topics when it is decided to generate the child chat room, and confirming the answer according to the inquiry,
The task of generating the child chat room if the approved answer according to the inquiry exceeds the majority of the users of the parent chat room or satisfies a predetermined criterion(If not, the child chat room are not generated),
The task of moving a chat message about at least one topic to be dealt with in the child chat room among a plurality of topics dealt with in the parent chat room to the child chat room,
The task of moving a user related to at least one topic to be dealt with in the child chat room to the child chat room.
The above-described tasks have been described assuming that it is applied equally to all users of the parent chat room, but the above-described tasks may be applied differently for each individual user of the parent chat room. For example, when an approval of whether to generate the child chat room and move some of the topics is received from the user a, and disapproval of whether or not to generate a child chat room and move some of the topics is received from the user b, the task performer may perform different tacks for the users a and b. In this case, the chat rooms displayed to the users a and b may be different from each other.
Let's look at the above-described task in more detail. The task performer 180 performs a task of determining whether to generate the child chat room. For example, if it is determined not to generate the child chat room, the task performer 180 does not generate the child chat room. In this case, the chat for each of a plurality of topics is performed in the parent chat room. Alternatively, if it is determined to generate the child chat room, the task performer 180 generates the child chat room. In this case, at least one topic among a plurality of topics dealt with in the parent chat room may be dealt with in the child chat room after it is generated.
Here, whether or not to generate the child chat room may be determined based on an inferred value for how much activity at least one topic to be dealt with in the child chat room will be dealt with in the child chat room, that is, the inferred chat activity, but it is not limited thereto.
More specifically, the chat activity inference unit 150 infers the chat activity for at least one topic to be dealt with in the child chat room among a plurality of topics dealt with in the parent chat room as described above. The inferred chat activity is transmitted to the task performer 180. Then, the task performer 180 determines whether or not to generate the child chat room based on such chat activity.
There may be various criteria for determining whether the task performer 180 generates the child chat room.
If the sum of the inferred chat activity for each of the at least one topic to be dealt with in the first child chat room is equal to or greater than the sum of the inferred chat activity for each of the at least one topic being dealt with in the parent chat room, it may be determined that the child chat room is generated, and if the former is less than the latter, it may be determined that the child chat room is not generated. Here, 'sum' may be changed to other operators such as 'product' according to embodiments.
Second, if any one of the inferred chat activity for each of the at least one topic to be dealt with in the child chat room is determined to be 0, it may be determined that the child chat room is not generated. This also applies when the sum of chat activity in the first criterion described above is larger in the child chat room than in the parent chat room.
According to one embodiment, even if a chat on a plurality of topics is dealt with in the parent chat room, the child chat room is not always generated. The child chat room may be generated only when it is inferred that generating a child chat room and moving some of the topics to the child chat room is more active compared to the case where it is not, in terms of the chat activity. Therefore, the task of deriving and generating the child chat room from a parent chat room may be performed more efficiently.
Hereinafter, a process of inferring chat activity among the method for managing the chats performed by the server 100 for managing the chat room described above will be described.
FIG. 32 is an exemplary flowchart of a method for managing a chat room according to an embodiment. However, since the flowchart shown in FIG. 32 is merely exemplary, the method for managing the chat is not limited thereto. For example, the method for managing the chat may not include at least one of the respective steps included in the flowchart shown in FIG. 32 or may include and perform steps not shown in FIG. 32, and each step may be performed differently from the illustrated order.
Referring to FIG. 32, on the premise of the generation of the child chat room, there is performed the step for inferring the chat activity in the child chat room at S1331.
In addition, there is performed the step of generating the child chat room based on the inferred chat activity at S1332.
On the other hand, the sever 100 for the chat room described above may be implemented in the form of an electronic device with reference to FIG. 33.
FIG. 33 is a block diagram schematically illustrating a configuration of an electronic device implemented according to an embodiment.
Referring to FIG. 33, the electronic device 1100 includes a communication unit 1110, a memory 113, and a processor 1120.
Here, the communication unit 1110 performs the same function as the communication unit 110 shown in FIG. 3, and the memory 1130 performs the same function as the memory 1130 shown in FIG. 3. Accordingly, the description of each of them 1110 and 1130 will refer to the bar already described in FIG. 3.
Next, the processor 1120 are configured to perform some or all of the functions of each of the topic extractor 120, the chat activity calculator 130, the relevance calculator 140, the chat activity inference unit 150, and the topic status information generator 160, the hierarchical structure identifier 170, and the task performer 180 shown in FIG. 3. Accordingly, the functions that the processor 1120 may perform will use the components of those already described in FIG. 3. In this case, the processor 1120 may be implemented by a processor such as the CPU or the GPU.
On the other hand, the methods according to the various embodiments described above may be implemented in the form of a computer program stored in a computer-readable recording medium programmed to perform each step of the method, and it may be also implemented in the form of a computer-readable recording medium storing the computer program programmed to perform each step of the method.
Even if it was described above that all of the components of an embodiment of the present invention are coupled as a single unit or coupled to be operated as a single unit, the present invention is not necessarily limited to such an embodiment. That is, at least two elements of all structural elements may be selectively joined and operate without departing from the scope of the present invention. Further, all structural elements may be implemented in independent hardware respectively, but some or all of the structural elements may be selectively combined and implemented in computer programs which have a program module performing functions of some elements or all elements which are combined in one or more pieces of hardware. Codes and code segments forming the computer program can be easily conceived by an ordinarily skilled person in the technical field of the present invention. Such a computer program may implement the embodiments of the present invention by being stored in a computer readable storage medium, and being read and executed by a computer. A magnetic recording medium, an optical recording medium, or the like may be employed as the storage medium of a computer program.
The foregoing detailed descriptions of specific exemplary embodiments of the present disclosure have been and are not intended to be exhaustive or to limit the present disclosure to the precise forms disclosed, and obviously a number of modifications and variations are possible for those having ordinary knowledge in the art in light of the above teachings. It is intended therefore that the scope of the present disclosure not be limited to the foregoing embodiments, but be defined by the Claims appended hereto and their equivalents.
[CROSS-REFERENCE TO RELATED APPLICATIONS]
This application claims priority from Korean Patent Applications No. 10-2020-0099008, filed on August 07, 2020 and No. 10-2021-0036473, filed on March 22, 2021, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety.

Claims (35)

  1. A server for managing a chat room comprising:
    a topic extractor for extracting a plurality of topics from a chat message displayed in a parent chat room;
    a major-minor topic classifier for classifying each of the plurality of the topics into a major topic or a minor topic; and
    a task performer for generating a child chat room in which a chat message corresponding to the minor topic is displayed.
  2. The server for managing a chat room of claim 1, wherein the topic extractor extracts the plurality of the topics from the chat message displayed in the parent chat room when the number of the chat message displayed in the parent chat room is equal to or greater than a predetermined number.
  3. The server for managing a chat room of claim 1, wherein the topic extractor extracts the plurality of the topics by considering the frequency of each of the at least one keyword comprised in the chat message.
  4. The server for managing a chat room of claim 3, wherein the topic extractor extracts the plurality of the topics from a keyword having a frequency equal to or greater than a threshold frequency among the at least one keyword.
  5. The server for managing a chat room of claim 3, where the topic extractor extracts, as the plurality of the topics, candidate topics corresponding to a keyword having a frequency equal to or greater than a threshold frequency from among a plurality of preset candidate topics.
  6. The server for managing a chat room of claim 1, wherein the major-minor topic classifier classifies a topic having the largest number of corresponding chat messages among the plurality of the topics as the major topic.
  7. The server for managing a chat room of claim 1, wherein the major-minor topic classifier classifies at least one of the plurality of the topics as the minor topic based on a relevance to the topic classified as the major topic among the plurality of the topics.
  8. The server for managing a chat room of claim 1, further comprising:
    a chat activity inference unit for inferring a chat activity in the child chat room in consideration of the type of the minor topic,
    wherein the task performer determines whether to generate the child chat room from the inferred chat activity.
  9. The server for managing a chat room of claim 8, further comprising:
    a chat activity calculator for calculating the chat activity that the minor topic has in the parent chat room,
    wherein the chat activity inference unit further considers the chat activity calculated for the minor topic when inferring the chat activity.
  10. The server for managing a chat room of claim 8, further comprising:
    a relevance calculator for calculating a relevance that the plurality of the minor topics have with each other in the parent chat room,
    wherein the chat activity inference unit further considers the relevance calculated for the plurality of the minor topics when inferring the chat activity.
  11. The server for managing a chat room of claim 8, wherein the chat activity inference unit performs the inference using an inference model trained based on an artificial neural network (ANN).
  12. The server for managing a chat room of claim 11, wherein the artificial neural network comprises a graph neural network (GNN) that receives a graph and performs the inference.
  13. The server for managing a chat room of claim 12, wherein among the graphs, the graph corresponding to the parent chat room comprises a plurality of nodes and a link connecting the plurality of the nodes, and
    each of the plurality of the nodes represents one of the plurality of the topics, a chat activity calculated for each of the plurality of the topics is assigned to each of the plurality of the nodes, and a relevance that the plurality of the minor topics have with each other in the parent chat room is assigned to each of the link.
  14. The server for managing a chat room of claim 12, wherein the graph neural network model is trained by using a plurality of input data and label data paired with each of the plurality of the input data,
    each of the plurality of the input data is in the form of a graph comprising nodes and links,
    each of the plurality of the input data comprises a type of topic extracted from a predetermined parent chat room, a calculated chat activity for the topic extracted from the predetermined parent chat room, and a calculated relevance for the topics extracted from the predetermined parent chat room, and
    the label data paired with each of the plurality of the input data comprises a chat activity which each of at least one topic extracted from the predetermined parent chat room has in the child chat room branched from the predetermined parent chat room.
  15. The server for managing a chat room of claim 1, further comprising:
    a chat activity calculator for calculating a chat activity that each of the plurality of the topics has in the parent chat room; and
    a topic status information generator for generating topic status information comprising the types of the plurality of the topics and the calculated chat activity for each of the plurality of the topics,
    wherein the topic status information is transmitted to a terminal connected to the server to be displayed on a screen of the terminal.
  16. The server for managing a chat room of claim 15, wherein the topic status information further comprises information on a user participating in each of the plurality of the topics.
  17. The server for managing the chat room of claim 15, further comprising a hierarchical structure identifier for identifying a hierarchical structure which the plurality of the topics have with each other,
    wherein the topic status information is hierarchically displayed on the screen of the terminal based on the hierarchical structure.
  18. A method for managing a chat room comprising:
    extracting a plurality of topics from a chat message displayed in a parent chat room;
    classifying each of the plurality of the topics into a major topic or a minor topic; and
    generating a child chat room in which a chat message corresponding to the minor topic is displayed.
  19. The method for managing the chat room of claim 18, wherein the classifying each of the plurality of the topics extracts the plurality of the topics from the chat message displayed in the parent chat room when the number of the chat message displayed in the parent chat room is equal to or greater than a predetermined number.
  20. The method for managing the chat room of claim 18, wherein the classifying each of the plurality of the topics extracts the plurality of the topics according to a frequency of each of the at least one keyword comprised in the chat message.
  21. The method for managing the chat room of claim 20, wherein the classifying each of the plurality of the topics extracts the plurality of the topics from a keyword having a frequency equal to or greater than a threshold frequency among the at least one keyword.
  22. The method for managing the chat room of claim 20, wherein the classifying each of the plurality of the topics extracts, as the plurality of the topics, candidate topics corresponding to a keyword having a frequency equal to or greater than a threshold frequency from among a plurality of preset candidate topics.
  23. The method for managing the chat room of claim 18, wherein the classifying classifies a topic having the largest number of corresponding chat messages among the plurality of the topics as the major topic.
  24. The method for managing the chat room of claim 18, wherein the classifying classifies at least one of the plurality of the topics as the minor topic based on a relevance to the topic classified as the major topic among the plurality of the topics.
  25. The method for managing the chat room of claim 18, further comprising:
    inferring a chat activity in the child chat room in consideration of the type of the minor topic on the premise of the generation of the child chat room,
    wherein whether to generate the child chat room from the inferred chat activity is determined in the generating the child chat room.
  26. The method for managing the chat room of claim 25, further comprising:
    calculating a chat activity that the minor topic has in the parent chat room,
    wherein the inferring the chat activity further considers the chat activity calculated for the minor topic when inferring the chat activity.
  27. The method for managing the chat room of claim 25, further comprising:
    calculating a relevance that the plurality of the minor topics have with each other in the parent chat room,
    wherein the inferring the chat activity further considers the relevance calculated for the plurality of the minor topics when inferring the chat activity.
  28. The method for managing the chat room of claim 25, wherein the inferring the chat activity performs the inference using an inference model trained based on an artificial neural network (ANN).
  29. The method for managing the chat room of claim 28, wherein the artificial neural network comprises a graph neural network (GNN) that receives a graph and performs the inference.
  30. The method for managing the chat room of claim 29, wherein among the graphs, the graph corresponding to the parent chat room comprises a plurality of nodes and a link connecting the plurality of the nodes, and
    each of the plurality of the nodes represents one of the plurality of the topics, a chat activity calculated for each of the plurality of the topics is assigned to each of the plurality of the nodes, and a relevance that the plurality of the minor topics have with each other in the parent chat room is assigned to each of the link.
  31. The method for managing the chat room of claim 29, wherein the graph neural network model is trained by using a plurality of input data and label data paired with each of the plurality of the input data,
    each of the plurality of the input data is in the form of a graph comprising nodes and links,
    each of the plurality of the input data comprises a type of topic extracted from a predetermined parent chat room, a calculated chat activity for the topic extracted from the predetermined parent chat room, and a calculated relevance for the topics extracted from the predetermined parent chat room, and
    the label data paired with each of the plurality of the input data comprises a chat activity which each of at least one topic extracted from the predetermined parent chat room has in the child chat room branched from the predetermined parent chat room.
  32. The method for managing the chat room of claim 18, wherein further comprising:
    calculating a chat activity that each of the plurality of the topics has in the parent chat room; and
    generating topic status information comprising the types of the plurality of the topics and the calculated chat activity for each of the plurality of the topics,
    wherein the topic status information is transmitted to a terminal connected to the server to be displayed on a screen of the terminal.
  33. The method for managing the chat room of claim 32, wherein the topic status information further comprises information on a user participating in each of the plurality of the topics.
  34. The method for managing the chat room of claim 32, further comprising:
    identifying a hierarchical structure which the plurality of the topics have with each other,
    wherein the topic status information is hierarchically displayed on the screen of the terminal based on the hierarchical structure.
  35. A computer recordable medium storing a computer program comprising a code for performing a method for managing a chat room, the method for managing the chat room comprising: extracting a plurality of topics from a chat message displayed in a parent chat room;
    classifying each of the plurality of the topics into a major topic or a minor topic; and
    generating a child chat room in which a chat message corresponding to the minor topic is displayed.
PCT/KR2021/010454 2020-08-07 2021-08-06 Server for managing chat room, method therefor and computer recordable medium storing computer program for performing such a method WO2022031134A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237007982A KR20230045080A (en) 2020-08-07 2021-08-06 A computer readable recording medium storing a chat room management server, a method therefor, and a computer program for performing the method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2020-0099008 2020-08-07
KR20200099008 2020-08-07
KR10-2021-0036473 2021-03-22
KR20210036473 2021-03-22

Publications (1)

Publication Number Publication Date
WO2022031134A1 true WO2022031134A1 (en) 2022-02-10

Family

ID=80118359

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/010454 WO2022031134A1 (en) 2020-08-07 2021-08-06 Server for managing chat room, method therefor and computer recordable medium storing computer program for performing such a method

Country Status (2)

Country Link
KR (1) KR20230045080A (en)
WO (1) WO2022031134A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843835B1 (en) * 2014-03-04 2014-09-23 Banter Chat, Inc. Platforms, systems, and media for providing multi-room chat stream with hierarchical navigation
US9002843B2 (en) * 2012-01-13 2015-04-07 International Business Machines Corporation System and method for extraction of off-topic part from conversation
US20170222824A1 (en) * 2002-05-14 2017-08-03 Family Systems, Ltd. Interactive web collaboration systems and methods
KR20180092605A (en) * 2017-02-10 2018-08-20 한양대학교 산학협력단 System and method for recommendation of open chat room through chat log keyword extraction
KR101886628B1 (en) * 2017-04-27 2018-09-10 주식회사 트위니 System and clustering method for group chatrooms, and service thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170222824A1 (en) * 2002-05-14 2017-08-03 Family Systems, Ltd. Interactive web collaboration systems and methods
US9002843B2 (en) * 2012-01-13 2015-04-07 International Business Machines Corporation System and method for extraction of off-topic part from conversation
US8843835B1 (en) * 2014-03-04 2014-09-23 Banter Chat, Inc. Platforms, systems, and media for providing multi-room chat stream with hierarchical navigation
KR20180092605A (en) * 2017-02-10 2018-08-20 한양대학교 산학협력단 System and method for recommendation of open chat room through chat log keyword extraction
KR101886628B1 (en) * 2017-04-27 2018-09-10 주식회사 트위니 System and clustering method for group chatrooms, and service thereof

Also Published As

Publication number Publication date
KR20230045080A (en) 2023-04-04

Similar Documents

Publication Publication Date Title
WO2020190112A1 (en) Method, apparatus, device and medium for generating captioning information of multimedia data
WO2020246844A1 (en) Device control method, conflict processing method, corresponding apparatus and electronic device
WO2020017849A1 (en) Electronic device and method for providing artificial intelligence services based on pre-gathered conversations
WO2017171356A1 (en) Method for positioning video, terminal apparatus and cloud server
WO2014021567A1 (en) Method for providing message service, and device and system therefor
WO2020214011A1 (en) Information processing method, apparatus, electronic device and computer readable storage medium
WO2016017975A1 (en) Method of modifying image including photographing restricted element, and device and system for performing the method
WO2020101108A1 (en) Artificial-intelligence model platform and method for operating artificial-intelligence model platform
WO2015178611A1 (en) Server and method of providing collaboration services and user terminal for receiving collaboration services
WO2016024740A1 (en) Cloud system and method of displaying, by cloud system, content
WO2018199483A1 (en) Method and apparatus for managing intelligent agent
WO2018117685A1 (en) System and method of providing to-do list of user
WO2014163283A1 (en) Message service method, and apparatus, system, and recording medium for recording program for same
WO2010036012A2 (en) Internet-based opinion search system, and opinion search, advertisement service system and method for same
WO2017146437A1 (en) Electronic device and method for operating the same
EP3552163A1 (en) System and method of providing to-do list of user
WO2015174743A1 (en) Display apparatus, server, system and information-providing methods thereof
WO2016182209A1 (en) Beauty service providing system, server, and method
WO2020145571A2 (en) Method and system for managing automatic evaluation model for interview video, and computer-readable medium
WO2020138903A2 (en) Schedule management service system and method
WO2021049921A1 (en) Method, apparatus, electronic device and storage medium for predicting user attribute
WO2021215804A1 (en) Device and method for providing interactive audience simulation
WO2020032564A1 (en) Electronic device and method for providing one or more items in response to user speech
WO2020209693A1 (en) Electronic device for updating artificial intelligence model, server, and operation method therefor
WO2015133714A1 (en) Message transmission method, and device and system therefor

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20237007982

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21854642

Country of ref document: EP

Kind code of ref document: A1