Caching of text analysis based on topic requirements and memory constraints

By caching the results of second-order NLP tasks in the database cache of the information retrieval system, the system's low efficiency and performance when processing user queries is solved, and faster and more efficient query processing is achieved.

CN119895413APending Publication Date: 2025-04-25INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380067391.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-21
Filing Date
2023-07-19
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

When processing user queries, existing information retrieval systems need to frequently perform complex and computationally expensive second-order natural language processing (NLP) tasks, resulting in poor system efficiency and performance.

Method used

By selectively cache the results of second-order NLP tasks in the database cache, cache memory is utilized to reuse the results of previous computed rather than repeating these computations for each incoming query.

Benefits of technology

Significantly improve the efficiency and performance of the information retrieval system, and quickly answer user queries involving previously processed data by reducing the need for repeated calculations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119895413A_ABST
    Figure CN119895413A_ABST
Patent Text Reader

Abstract

One embodiment includes analyzing textual content of a user query to identify query topics via natural language processing (NLP). The embodiment maps query topics to topic clusters at nodes of a hierarchical model of a text database. The embodiment generates query demand data indicative of a demand for the topic cluster based on the user query. The embodiment identifies the topic cluster as a topic cache candidate based on query demand data. The embodiment compares the amount of memory required to store text associated with the first topic cluster to available cache memory. The embodiment caches text of the topic cluster candidate when it is determined that there is sufficient available cache memory space.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present invention generally relates to methods, systems and computer program products for data processing. More specifically, the present invention relates to methods, systems and computer program products for caching of text analysis based on subject requirements and memory constraints.

[0002] An information retrieval system is an artificial intelligence (AI) application that attempts to find relevant information by analyzing the text of a collection of documents in order to generate a response to a user's query. Examples of such systems include AI personal assistants and AI question-answering systems. Documents may include any type of document, but will typically be domain-specific documents containing information that may be relevant to its specific application. Documents are typically stored in a text database, which is a general term used in this article to refer to any digitally stored text data set, which may be referred to as a corpus or knowledge base elsewhere, and represents a collection of text (or text data). Summary of the invention

[0003] The illustrative embodiment provides a cache of text analysis based on topic requirements and memory constraints. The embodiment includes analyzing the text content of a first user query to identify a first query topic defined by words of the text content via natural language processing. The embodiment also includes mapping the first query topic to a first topic cluster at a first node of a hierarchical model of a text database. The embodiment also includes generating query requirement data indicating the demand for the first topic cluster based on a user query to the text database. The embodiment also includes identifying the first topic cluster as a first topic cache candidate based on the query requirement data. The embodiment also includes comparing the first required amount of memory required to store text associated with the first topic cluster with the available cache memory in the database cache. The embodiment also includes storing the text associated with the first topic cluster in the database cache in response to identifying the first topic cluster as a first topic cache candidate and determining that the available cache memory is greater than the first required amount of memory. Other embodiments of this aspect include corresponding computer systems, devices, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the embodiment.

[0004] Embodiments include a computer usable program product. The computer usable program product includes a computer readable storage medium and program instructions stored on the storage medium.

[0005] An embodiment includes a computer system. The computer system includes a processor, a computer-readable memory, a computer-readable storage medium, and program instructions stored on the storage medium for execution by the processor via the memory. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The novel features which are believed to be characteristic of the invention are set forth in the appended claims. However, the invention itself, together with its preferred mode of use, further objects and advantages will be best understood by reference to the following detailed description of illustrative embodiments taken in conjunction with the accompanying drawings, in which:

[0007] Figure 1 depicts a block diagram of a computing environment according to an illustrative embodiment;

[0008] Figure 2 depicts a block diagram of an example cloud computing environment in accordance with an illustrative embodiment;

[0009] Figure 3 depicts a block diagram of an example database environment in accordance with an illustrative embodiment;

[0010] Figure 4 depicts a block diagram of an ingestion portion of a DBMS according to an illustrative embodiment;

[0011] Figure 5 depicts a block diagram of an NLP pipeline having an NLP preprocessing module in accordance with an illustrative embodiment;

[0012] Figure 6 depicts a block diagram of an NLP pipeline with a topic clustering module in accordance with an illustrative embodiment;

[0013] Figure 7 depicts a flow chart of an example process for processing documents into a document database and selectively caching the results of the processing in accordance with an illustrative embodiment;

[0014] Figure 8 depicts a hierarchical topic clustering dendrogram in accordance with an illustrative embodiment;

[0015] Fig. 9 depicts a block diagram of a query portion of a DBMS according to an illustrative embodiment;

[0016] Fig.10 depicts a block diagram of a cache portion of a DBMS according to an exemplary embodiment; and

[0017] Fig.11 Depicted is a flow diagram of an example process for generating a response to a user query using cached NLP processing results in accordance with an illustrative embodiment. DETAILED DESCRIPTION

[0018] Typical information retrieval systems perform several NLP tasks, including NLP tasks on ingested documents and NLP tasks on user queries. Hereinafter, during a conversation taking place with respect to the illustrative embodiments described herein, a request for information presented in any correct or incorrect, complete or incomplete, colloquial or formal grammatical form of a natural language may be referred to interchangeably as a "question" or a "query," unless explicitly disambiguated when used.

[0019] The NLP tasks performed on the ingested documents can be grouped into first-order NLP tasks and second-order NLP tasks. First-order NLP tasks include things like sentence segmentation, tokenization, and text stemming or lemmatization. Second-order NLP tasks are more complex than first-order NLP tasks and therefore tend to be more expensive in terms of time and processing. Second-order NLP tasks include things like dependency parsing, entity recognition, and part-of-speech (POS) detection.

[0020] First-order NLP tasks can be performed on incoming documents as part of the document ingestion process. Second-order NLP tasks are performed at runtime when the information retrieval system attempts to generate the best response to the user's query. In a typical information retrieval system, each time the system receives a user query, it performs several tasks including second-order NLP tasks in order to generate an answer. These tasks allow the system to select relevant data from a text database, analyze the data for relevant information, and convert the data into answers. Because many of these tasks are complex and computationally expensive, they create obstacles to optimizing and improving the overall performance of information retrieval systems.

[0021] Aspects of the present disclosure address the above-mentioned deficiencies by providing mechanisms (e.g., systems, methods, machine-readable media, etc.) to selectively cache the results of certain text analysis processes in a cache memory. The illustrative embodiments recognize that, due to the complex and computationally expensive nature of these processes, the efficiency and performance of information retrieval systems can be significantly improved by caching and reusing the results rather than repeating these processes for each incoming query. Therefore, in a database management system (DBMS) such as can be used for an information retrieval system, the results of second-order NLP tasks are selectively cached. Later queries involving data for which NLP results have been cached are answered more quickly by retrieving the cached results rather than repeating the second-order NLP tasks on the same text data.

[0022] In an illustrative embodiment, the disclosed process ingests documents into a text database and selectively caches the results of second-order NLP tasks to improve performance associated with generating answers to user queries. In some embodiments, the process performs first-order NLP preprocessing tasks on incoming text documents and stores the preprocessed text lines in a database. In some embodiments, the process performs NLP tasks individually for each document. Depending on implementation-specific goals, priorities, document types, and other considerations, NLP tasks may include any desired preprocessing tasks from many such known preprocessing techniques. As an example, in some embodiments, NLP preprocessing tasks include sentence segmentation, word segmentation, stop word removal, and / or text normalization.

[0023] In some embodiments, the process identifies topics from the text of an incoming text document.There are many known topic identification algorithms that can be used, such as bag-of-words and latent Dirichlet allocation (LDA) techniques.

[0024] In some embodiments, the process performs sentiment analysis on the text lines associated with the identified topic. In some embodiments, the process uses known techniques to identify the sentiment in the text of the document. In some embodiments, the process performs line or sentence level sentiment analysis, wherein each line or sentence is analyzed and each line or sentence is identified with sentiment polarity. In some embodiments, the process uses a machine learning algorithm to perform sentiment analysis, such as a deep neural network (DNN), which is trained using labeled training data to classify text according to multiple emotions. In some such embodiments, the training data includes exemplary texts labeled according to the emotions that the machine learning model is trained to identify. In an alternative embodiment, the process uses a rule-based algorithm based on a dictionary of positive and negative strings of defined words that is manually created. Then the rule-based algorithm analyzes the number of positive and negative words to see which word is dominant. In another embodiment, the process uses a hybrid algorithm that combines the above-mentioned machine learning and rule-based methods. In some embodiments, the process identifies the polarity of the text of the document as positive, neutral or negative. In some embodiments, the process identifies additional polarity categories (e.g., very positive, positive, neutral, negative, very negative), and in alternative embodiments, the process also identifies other types of emotions (e.g., angry, happy, sad, etc.), urgency (urgent, not urgent), and / or intent (interested, not interested).

[0025] In some embodiments, the process applies a clustering algorithm to text lines based on the identified topics and emotions. In some embodiments, the process uses known techniques for determining a collection of topics and emotions that form clusters. In some embodiments, the process uses a k-means algorithm to identify clusters of tokens or sentences associated with semantically similar topics and emotions. In some embodiments, the process calculates the Euclidean distance between embedded tokens or sentences to identify clusters, wherein the distance indicates relevance or proximity. In some embodiments, the process includes algorithms for k-Medoid clustering, connectivity-based clustering, centroid-based clustering, distribution-based clustering, density-based clustering, fuzzy clustering, bi-clustering, and / or any other suitable clustering model.

[0026] In some embodiments, the process constructs a hierarchical topic model based on topic and sentiment clustering. In some embodiments, the hierarchical topic model is embodied as a dendrogram. In some embodiments, the hierarchical topic model has nodes associated with corresponding topics and sentiments arranged in a hierarchical manner.

[0027] In some embodiments, the process receives a user query and uses information in a text database to generate an answer to the user query. In some embodiments, the process matches the topics and emotions identified in the user query with the topics and emotions of the hierarchical topic model. In some embodiments, the process performs second-order NLP tasks on text lines associated with the matched topics and emotions of the hierarchical topic model in the database. In some embodiments, the second-order NLP tasks include dependency parsing, entity recognition, and part-of-speech (POS) detection. In some embodiments, the process generates demand data indicating the demand for topics and emotions in the hierarchical topic model based on the user query. In some embodiments, the demand data includes a count of how many times each node has been used to generate a response to the user query.

[0028] In some embodiments, the process caches the results of second-order NLP tasks on lines of text associated with particular topics and / or sentiments. In some embodiments, the process identifies topics and / or sentiments for caching based on user demand and subject to available cache memory space. In some embodiments, as the process traverses a hierarchical topic model that matches queries to nodes for a topic, the process maintains statistics that include a count for each node indicating the number of times the node has been used to answer the query. In some embodiments, the statistics are collected and retained over a sliding time window, such as the past N hours, such that the count for each node indicates the number of times the node has been used to answer queries in the past N hours.

[0029] For the sake of clarity of description, and without implying any limitation thereto, some example configurations are used to describe the illustrative embodiments. Based on this disclosure, those skilled in the art will be able to conceive of many changes, adaptations and modifications of the described constructions for achieving the stated purposes, and these are considered to be within the scope of the illustrative embodiments.

[0030] In addition, simplified diagrams of data processing environments are used in the drawings and illustrative embodiments. In an actual computing environment, there may be additional structures or components not shown or described herein, or structures or components that are different from the structures or components shown but are used for functions similar to those described herein, without departing from the scope of the illustrative embodiments.

[0031] Furthermore, the illustrative embodiments are described with respect to specific actual or hypothetical components only as examples. Any specific manifestations of these and other similar artifacts are not intended to limit the present invention. Any suitable manifestations of these and other similar artifacts may be selected within the scope of the exemplary embodiments.

[0032] The examples in this disclosure are for clarity of description only and are not intended to be limited to the illustrative embodiments. Any advantages listed herein are merely examples and are not intended to limit the illustrative embodiments. Additional or different advantages may be achieved through specific illustrative embodiments. In addition, specific illustrative embodiments may have some, all, or none of the advantages listed above.

[0033] Furthermore, the illustrative embodiments may be implemented for any type of data, data source, or access to a data source over a data network. Any type of data storage device may provide data to embodiments of the present invention locally at a data processing system or over a data network within the scope of the present invention. Where embodiments are described using a mobile device, any type of data storage device suitable for use with the mobile device may provide data to such embodiments locally at the mobile device or over a data network within the scope of the illustrative embodiments.

[0034] The illustrative embodiments are described using specific codes, computer-readable storage media, advanced features, designs, infrastructure, protocols, layouts, schematics, and tools, only as examples and not as limitations to the illustrative embodiments. In addition, for clarity of description, specific software, tools, and data processing environments are used in some instances to describe the illustrative embodiments only as examples. The illustrative embodiments can be used in conjunction with other comparable or similar purpose structures, systems, applications, or infrastructure. For example, within the scope of the present invention, other comparable mobile devices, structures, systems, applications, or their infrastructure can be used in conjunction with such embodiments of the present invention. The illustrative embodiments can be implemented in hardware, software, or a combination thereof.

[0035] The examples in this disclosure are for clarity of description only and are not limited to the illustrative embodiments. Additional data, operations, actions, tasks, activities, and manipulations can be imagined from this disclosure, and these additional data, operations, actions, tasks, activities, and manipulations can be imagined within the scope of the illustrative embodiments.

[0036] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, concurrently, or in a manner that at least partially overlaps in time.

[0037] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / land formed in a major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, should not be interpreted as storing in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses transmitted through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some occasional point in time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not interpret the storage device as transitory because the data is not transitory when it is stored.

[0038] refer to Figure 1, which depicts a block diagram of a computing environment 100. The computing environment 100 includes an example of an environment for executing at least some of the computer codes involved in performing the methods of the present invention, such as an improved database management module 200 that provides improved efficiency and performance of information retrieval systems by selectively caching the results of certain text analysis processes. In addition to the database management module 200, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor group 110 (including a processing circuit 120 and a cache 121), a communication architecture 111, a volatile memory 112, a persistent storage device 113 (including an operating system 122 and a database management module 200, as indicated above), a peripheral device group 114 (including a user interface (UI) device group 123, a storage device 124, and an Internet of Things (IoT) sensor group 125), and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a host physical machine group 142, a virtual machine group 143, and a container group 144.

[0039] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as remote database 130. As is well known in the art of computer technology, and depending on the technology, the execution of computer-implemented methods may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 100, the detailed discussion focuses on a single computer, particularly computer 101, to keep the presentation as simple as possible. Computer 101 may be located in the cloud, even though it is not necessarily located in the cloud. Figure 1 On the other hand, computer 101 need not be in the cloud unless it can be positively indicated to any extent.

[0040] Processor group 110 includes one or more computer processors of any type known now or developed in the future. Processing circuit 120 can be distributed over multiple packages, such as multiple coordinated integrated circuit chips. Processing circuit 120 can implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in (one or more) processor chip packages, and is generally used for data or code that should be available for fast access by threads or cores running on processor group 110. Cache memory is generally organized into multiple levels according to relative proximity to the processing circuit. Alternatively, some or all of the caches for the processor group can be located "off-chip". In some computing environments, processor group 110 can be designed to work with qubits and perform quantum computing.

[0041] Computer readable program instructions are typically loaded onto the computer 101 to cause the processor group 110 of the computer 101 to execute a series of operating steps to perform a computer-implemented method, so that the instructions so executed will instantiate the method specified in the flowchart and / or the narrative description of the computer-implemented method included in this document (collectively referred to as the "method of the present invention"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by the processor group 110 to control and direct the execution of the method of the present invention. In the computing environment 100, at least some of the instructions for performing the method of the present invention can be stored in the database management module 200 in the persistent storage device 113.

[0042] The communication fabric 111 is the signaling paths that allow the various components of the computer 101 to communicate with each other. Typically, the fabric is made up of switches and conductive paths, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.

[0043] The volatile memory 112 is any type of volatile memory now known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory 112 is characterized by random access, but this is not required unless expressly stated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but, alternatively or additionally, the volatile memory can be distributed in multiple packages and / or located externally relative to the computer 101.

[0044] Persistent storage 113 is any form of non-volatile storage for computers known now or developed in the future. The non-volatility of the storage means that the stored data is maintained regardless of whether power is supplied to the computer 101 and / or directly to the persistent storage 113. Persistent storage 113 can be a read-only memory (ROM), but typically at least a portion of the persistent storage allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of persistent storage include disks and solid-state storage devices. Operating system 122 can take several forms, such as various known proprietary operating systems or operating systems of the type of open source portable operating system interface using a kernel. The code included in database management module 200 typically includes at least some of the computer codes involved in executing the method of the present invention.

[0045] The peripheral device group 114 includes a collection of peripheral devices of the computer 101. The data communication connection between the peripheral devices and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection made by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection made through a local area communication network, and even a connection made through a wide area network such as the Internet. In various embodiments, the UI device group 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device, such as an external hard drive, or a pluggable storage device, such as an SD card. The storage device 124 can be persistent and / or volatile. In some embodiments, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where the computer 101 needs to have a large amount of storage (e.g., where the computer 101 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor group 125 is composed of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.

[0046] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 115 are executed on physically separated devices so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 115.

[0047] WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or developed in the future for transmitting computer data. In some embodiments, WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area, such as a Wi-Fi network. A WAN and / or LAN typically includes computer hardware, such as copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.

[0048] End-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 101), and may take any of the forms discussed above in connection with computer 101. EUD 103 typically receives helpful and useful data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 115 of computer 101 to EUD 103 via WAN 102. In this manner, EUD 103 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 103 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.

[0049] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine(s) that collects and stores helpful and useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, then that historical data may be provided to computer 101 from remote database 130 of remote server 104.

[0050] The public cloud 105 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities (particularly data storage (cloud storage) and computing capabilities) without the need for direct active management by users. Cloud computing generally uses the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are generally implemented by virtual computing environments running on various computers that constitute the host physical machine group 142, which is a global physical computer in the public cloud 105 and / or available for the public cloud. The virtual computing environment (VCE) is generally in the form of a virtual machine from the virtual machine group 143 and / or a container from the container group 144. It should be understood that these VCEs can be stored as images and can be transmitted between various physical machine hosts as images or after the instantiation of the VCE. The cloud orchestration module 141 manages the transmission and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 140 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .

[0051] Some further explanation of a virtualized computing environment (VCE) will now be provided. A VCE can be stored as an "image". A new active instance of the VCE can be instantiated from the image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like actual computers. Computer programs running on a normal operating system can utilize all of the resources of the computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.

[0052] The private cloud 106 is similar to the public cloud 105, except that the computing resources are only available to a single enterprise. Although the private cloud 106 is depicted as communicating with the WAN 102, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud infrastructure is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.

[0053] refer to Figure 2 , which depicts a block diagram of an example cloud computing environment 300 in accordance with an illustrative embodiment. In the illustrated embodiment, the cloud computing environment 300 includes a service infrastructure 302, which includes a database management system (DBMS) 304 designed to manage a database 308 in accordance with an illustrative embodiment. In some embodiments, the database 308 is a text database 308 that stores raw text ingested from one or more documents 314. In some embodiments, the DBMS 304 is Figure 1 The computer 101 is an example of a computer 101, and includes a database management module 200.

[0054] In the illustrated embodiment, the service infrastructure 302 provides services and service instances to user devices 306. The user devices 306 communicate with the service infrastructure 302 via an application programming interface (API) gateway 310. In various embodiments, the service infrastructure 302 and its DBMS 304 serve multiple users and multiple tenants. A tenant is a group of users (e.g., a company) that shares common access to a software instance with specific privileges. The service infrastructure 302 ensures that tenant-specific data is isolated from other tenants.

[0055] In the illustrated embodiment, service infrastructure 302 includes a service registry 312. In some embodiments, service registry 312 looks up service instances of data discovery system 306 in response to a service lookup request, such as a service lookup request from API gateway 310 in response to a service request from user device 306. For example, in some embodiments, service registry 312 looks up service instances of DBMS 304 in response to a request related to searching database 308.

[0056] In some embodiments, the service registry 312 maintains information about the state or health of each service instance, including performance information associated with each service instance. In some such embodiments, such information may include various types of performance characteristics (e.g., cache metrics, etc.) and updated records for a given service instance.

[0057] In some embodiments, the user device 306 is connected to the API gateway 310 via any suitable network or combination of networks such as the Internet, and uses any suitable communication protocol such as Wi-Fi, Bluetooth, etc. The service infrastructure 302 can be built on the basis of cloud computing. The API gateway 310 provides access to client applications such as DBMS 304 and database 308. The API gateway 310 receives a service request made by a client application and creates a service search request based on the service request. As a non-limiting example, in an embodiment, the user device 306 executes a routine to initiate a database query request sent to the DBMS 304. In addition, in some embodiments, the user indirectly accesses the DBMS 304 by using a web application or a web browser running on the user device 306 that interacts with the DBMS 304 via the API gateway 310.

[0058] refer to Figure 3 , which depicts a block diagram of an example database environment 400 according to an illustrative embodiment. The example embodiment includes a DBMS 402 designed to manage a database 406 according to an illustrative embodiment. In some embodiments, the DBMS 402 is Figure 2 An example of DBMS 304 and database 406 is Figure 2 An example of a database 308 .

[0059] In the illustrated embodiment, DBMS 402 generally includes NLP ingestion pipeline 404, hierarchical topic model 405, query module 408, NLP runtime pipeline 410, cache memory 412, and cache management module 414. In some embodiments, one or more of NLP ingestion pipeline 404, hierarchical topic model 405, query module 408, NLP runtime pipeline 410, cache memory 412, and cache memory management module monitoring applications and services 414 constitute Figure 1 402. In alternative embodiments, DBMS 402 may include some or all of the functionality described herein, but grouped differently into one or more other modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware-based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0060] In the illustrated embodiment, DBMS 402 ingests documents 418. The ingestion process includes a first level of NLP processing by NLP ingestion pipeline 404, which includes identifying topics in documents 418. DBMS 402 stores processed documents 418 in raw text database 406 and constructs hierarchical topic model 405 using the identified topics.

[0061] The DBMS 402 includes a query module 408 that receives a query, for example, from a user device 420, and generates an answer by matching the query topic with the topic on the hierarchical topic model 405. The query module 408 then extracts the cached second-order NLP results (if available) for the matched topic from the cache memory 412 and uses the cached NLP results to generate the answer. Otherwise, the NLP runtime pipeline 410 performs second-order NLP processing on the matched topic, and the query module 408 uses the NLP processing results to generate the answer.

[0062] In the illustrated embodiment, DBMS 402 applies NLP to documents 418 during ingestion and when writing answers to user queries (i.e., at runtime). The applied NLP includes basic first-order NLP tasks, such as lemmatization and tokenization, and also includes more complex second-order NLP tasks, such as dependency parsing, entity recognition, and part-of-speech (POS) detection. In the illustrated embodiment, when ingesting documents 418, NLP ingestion pipeline 404 performs first-order NLP tasks on them, and NLP runtime pipeline 410 performs more complex and more computationally expensive second-order NLP tasks on various text chunks in database 406 at runtime based on the received query.

[0063] In the illustrated embodiment, the DBMS 402 includes a cache management module 414 that selectively stores the results of the second-order NLP tasks in the cache memory 412. Due to the complex and computationally expensive nature of the second-order NLP tasks, the disclosed embodiments achieve significant improvements in the efficiency of the DBMS 402 by caching the results of the second-order NLP tasks for certain data chunks. By retrieving the second-order NLP results from the cache memory 412 instead of repeating the second-order NLP tasks, later queries involving these data chunks can be answered more quickly.

[0064] refer to Figure 4 , which depicts a block diagram of an ingestion portion 500 of a DBMS according to an illustrative embodiment. In some embodiments, the ingestion portion 500 is Figure 3 An example of an ingestion portion of a DBMS 402, where an NLP ingestion pipeline 502 is Figure 3 An example of an NLP ingest pipeline 404 and a hierarchical topic model 512 is Figure 3 An example of a hierarchical topic model 405 .

[0065] In the illustrated embodiment, the NLP ingestion pipeline 502 includes an NLP preprocessing module 503, a topic identification module 504, a topic clustering module 506, and a sentiment analysis module 508. In alternative embodiments, the NLP ingestion pipeline 502 may include some or all of the functionality described herein, but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware-based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0066] In the illustrated embodiment, the NLP ingestion pipeline 502 receives documents 510 for ingestion into a database (e.g., Figure 3 In order to facilitate searching of the ingested text, the NLP ingestion pipeline 502 also builds a hierarchical topic model 512. In some embodiments, the hierarchical topic model 512 has nodes associated with corresponding topics arranged in a hierarchical manner. These topic nodes can be searched much faster than other types of text matching techniques such as logical structure comparison to find topic matches with the incoming query.

[0067] In some embodiments, each document in documents 510 is processed individually by NLP ingestion pipeline 502. NLP preprocessing module 503 performs any desired preprocessing tasks from a number of such known preprocessing techniques, depending on implementation-specific goals, priorities, document types, and other considerations. As an example, in some embodiments, NLP preprocessing module 503 removes stop words and normalizes the text using stemming or lemmatization techniques.

[0068] refer to Figure 5 , which depicts a block diagram of an NLP pipeline 600 having an NLP preprocessing module 602, which is a NLP pipeline 600 according to an illustrative embodiment. Figure 4 An example of the NLP preprocessing module 503. Figure 5 In the example shown in FIG. 6 , the NLP preprocessing module 602 receives a document 610 for ingestion into Figure 3 The example database 614 of the database 406 is used to construct Figure 4 The topic identification module 612 of the example hierarchical topic model 512 .

[0069] In the illustrated embodiment, the NLP preprocessing module 602 includes a sentence segmentation module 604, a word segmentation module 606, and a morphological restoration module 608. In alternative embodiments, the NLP preprocessing module 602 may include some or all of the functions described herein, but are grouped differently into one or more modules. In some embodiments, the functions described herein are distributed across multiple systems, which may include a combination of software and / or hardware-based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smart phone applications).

[0070] The sentence segmentation module 604 applies known techniques to identify sentence boundaries in the document. The word segmentation module 606 divides the text into a set of constituent elements called word units. A word unit is usually a word, although sometimes it can be some other unknown symbol. An example of a simple word segmentation technique involves splitting the text according to spaces and punctuation marks.

[0071] The lemmatization module 608 performs text standardization comparable to stemming. Both stemming and lemmatization generate a catalog of related words to help the DBMS identify word changes. In some embodiments, stemming can be used in place of lemmatization, but lemmatization generally produces more thorough results. Stemming generally involves removing letters from the end of a word until the stem or root of the word is reached (e.g., steering is simplified to steer or boating is simplified to boat). Lemmatization involves morphological analysis, which, in addition to considering word simplification, also considers the vocabulary of the language (e.g., associating mouse with the singular form of mice).

[0072] Return to reference again Figure 4 , the NLP ingestion pipeline 502 also includes a topic identification module 504 that identifies topics in the incoming documents 510. There are many known topic identification algorithms that can be used for the topic identification module 504. Non-limiting examples of topic identification techniques that can be used for the topic identification module 504 include bag of words and latent Dirichlet allocation (LDA) techniques. In the illustrated embodiment, the topics identified by the topic identification module 504 are provided to the topic clustering module 506.

[0073] refer to Figure 6 , which depicts a block diagram of an NLP pipeline 700 having a topic clustering module 702, which is a topic clustering module 702 according to an illustrative embodiment. Figure 4 An example of a topic clustering module 506. Figure 6 In the example shown in FIG. , the topic clustering module 702 is Figure 4 The topic identification module 708 of the example of the topic identification module 504 receives the topic data and provides the topic clustering results to the Figure 4An example of a sentiment analysis module 710 of the sentiment analysis module 508 .

[0074] In the illustrated embodiment, the topic clustering module 702 includes a clustering algorithm 704 and a hierarchical structuring module 706. In alternative embodiments, the topic clustering module 702 may include some or all of the functionality described herein, but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware-based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0075] In some embodiments, clustering algorithm 704 uses known techniques for determining a set of topics that form clusters. In some embodiments, clustering algorithm 704 includes a k-means algorithm to identify clusters of words or sentences associated with semantically similar topics. In some embodiments, clustering algorithm 704 calculates the Euclidean distance between embedded words or sentences to identify clusters, wherein the distance indicates relevance or proximity. In some embodiments, clustering algorithm 704 includes algorithms for k-Medoid clustering, clustering based on connectivity, clustering based on centroids, clustering based on distribution, clustering based on density, fuzzy clustering, dual clustering, and / or any other suitable clustering model.

[0076] In the illustrated embodiment, the topic clustering data from the clustering algorithm 704 is provided to the hierarchical structuring module 706. The hierarchical structuring module 706 uses the topic clustering data to construct a hierarchical topic clustering model (e.g., Figure 3 hierarchical topic model 405). In some embodiments, hierarchical structuring module 706 constructs a tree diagram with nodes associated with corresponding topics. In alternative embodiments, clustering algorithm 704 generates a hierarchical topic clustering model, such as a tree diagram.

[0077] Return to reference again Figure 4 , the NLP ingestion pipeline 502 also includes a sentiment analysis module 508. In some embodiments, the hierarchical topic model 512 includes both topic information and sentiment information. In some such embodiments, the sentiment analysis module 508 performs sentiment analysis on the text associated with the identified topic.

[0078] The sentiment analysis module 508 performs sentiment analysis in order to identify contextual information to be used in constructing the hierarchical topic model 512. For example, the identified topic may be associated with two different nodes, one of which is further associated with a positive sentiment and the other is further associated with a negative sentiment. In some embodiments, a third node may be associated with the same topic, but is further associated with a neutral sentiment. Thus, in some embodiments, the hierarchical topic model 512 has nodes associated with unique corresponding topics, and in alternative embodiments, the hierarchical topic model 512 has nodes associated with unique corresponding combinations of topics and sentiments.

[0079] The sentiment analysis module 508 uses known techniques to identify the sentiment in the text of the document 510. In some embodiments, the sentiment analysis module 508 performs line or sentence level sentiment analysis, wherein each line or sentence is analyzed and identified with sentiment polarity. In some embodiments, the sentiment analysis module 508 uses a machine learning algorithm (such as a deep neural network (DNN)) to perform sentiment analysis, and the machine learning algorithm is trained to classify the text according to multiple sentiments using labeled training data. In some such embodiments, the training data includes exemplary texts labeled according to the sentiments that the sentiment analysis module 508 is trained to identify. In an alternative embodiment, the sentiment analysis module 508 uses a rule-based algorithm that is based on a manually created dictionary of positive and negative strings of defined words. The rule-based algorithm then analyzes the number of positive and negative words to see which word is dominant. In another embodiment, the sentiment analysis module 508 uses a hybrid algorithm that combines the above-mentioned machine learning and rule-based methods.

[0080] In some embodiments, sentiment analysis module 508 identifies the polarity of the text of document 510 as positive, neutral, or negative. In some embodiments, sentiment analysis module 508 identifies additional polarity categories (e.g., very positive, positive, neutral, negative, very negative), and in alternative embodiments, sentiment analysis module 508 also identifies other types of emotions (e.g., angry, happy, sad, etc.), urgency (urgent, not urgent), and / or intent (interested, not interested).

[0081] refer to Figure 7 , which depicts a flow chart of an example process 800 for processing documents into a document database and selectively caching the processing results according to an illustrative embodiment. In certain embodiments, Figure 3 The DBMS 402 implements the process 800 .

[0082] In the illustrated embodiment, at box 802, the process performs a first-order NLP preprocessing task on the incoming text document and stores the preprocessed text lines in a database. In some embodiments, the process performs NLP tasks separately for each document. Depending on the goals, priorities, document types, and other considerations of a particular implementation, the NLP tasks may include any desired preprocessing tasks from many such known preprocessing techniques. As an example, in some embodiments, the NLP preprocessing tasks include sentence segmentation, word segmentation, stop word removal, and / or text normalization.

[0083] Next, the process identifies topics from the text of the incoming text document at block 804. There are many known topic identification algorithms that can be used, such as bag-of-words and latent Dirichlet allocation (LDA) techniques.

[0084] Next, at box 806, the process performs sentiment analysis on the text lines associated with the identified topic. In some embodiments, the process uses known techniques to identify sentiment in the text of the document. In some embodiments, the process performs line or sentence level sentiment analysis, wherein each line or sentence is analyzed and each line or sentence is identified with sentiment polarity. In some embodiments, the process uses a machine learning algorithm to perform sentiment analysis, such as a deep neural network (DNN), which is trained using labeled training data to classify text according to multiple emotions. In some such embodiments, the training data includes exemplary texts labeled according to the sentiments that the machine learning model is trained to identify. In an alternative embodiment, the process uses a rule-based algorithm based on a manually created dictionary of positive and negative strings of defined words. The rule-based algorithm then analyzes the number of positive and negative words to see which word is dominant. In another embodiment, the process uses a hybrid algorithm that combines the above-mentioned machine learning and rule-based methods. In some embodiments, the process identifies the polarity of the text of the document as positive, neutral, or negative. In some embodiments, the process recognizes additional polarity categories (e.g., very positive, positive, neutral, negative, very negative), and in alternative embodiments, the process also recognizes other types of emotions (e.g., angry, happy, sad, etc.), urgency (urgent, not urgent), and / or intent (interested, not interested).

[0085] Next, at box 808, the process applies a clustering algorithm to the text lines based on the identified topics and emotions. In some embodiments, the process uses known techniques for determining a collection of topics and emotions that form clusters. In some embodiments, the process uses a k-means algorithm to identify clusters of words or sentences associated with semantically similar topics and emotions. In some embodiments, the process calculates the Euclidean distance between embedded words or sentences to identify clusters, where the distance indicates relevance or proximity. In some embodiments, the process includes algorithms for k-Medoid clustering, connectivity-based clustering, centroid-based clustering, distribution-based clustering, density-based clustering, fuzzy clustering, biclustering, and / or any other suitable clustering model.

[0086] Next, the process constructs a hierarchical topic model based on the topic and sentiment clusters at block 810. In some embodiments, the hierarchical topic model has nodes associated with respective topics and sentiments arranged in a hierarchical manner.

[0087] In some embodiments, the process receives a user query and uses information in a text database to generate an answer to the user query. At box 812, the process matches the topics and emotions identified in the user query with the topics and emotions of the hierarchical topic model. Next, at box 814, the process performs a second-order NLP task on the text lines in the database associated with the matched topics and emotions of the hierarchical topic model. In some embodiments, the second-order NLP task includes dependency parsing, entity recognition, and part-of-speech (POS) detection. Next, at box 816, the process generates demand data indicating the demand for topics and emotions in the hierarchical topic model based on the user query. In some embodiments, the demand data includes a count of how many times each node has been used to generate a response to the user query.

[0088] Next, at box 818, the process caches the results of the second-order NLP task on the lines of text associated with particular topics and / or sentiments. In some embodiments, the process identifies topics and / or sentiments for caching based on user demand and subject to available cache memory space. In some embodiments, as the process traverses the hierarchical topic model for topic matching queries to nodes (at box 812), the process maintains statistics that include a count for each node indicating the number of times the node has been used to answer the query. In some embodiments, the statistics are collected and retained over a sliding time window, such as the past N hours, so that the count for each node indicates the number of times the node has been used to answer queries in the past N hours.

[0089] refer to Figure 8, which depicts a hierarchical topic clustering dendrogram 900 according to an illustrative embodiment. In the exemplary embodiment, the dendrogram 900 is composed of Figure 3 The NLP ingestion pipeline 404 generates. As described above, the process 800 identifies topics and / or sentiments for caching based on user needs and subject to available cache memory space.

[0090] In some embodiments, the process also maintains information about the cache embodied as Figure 8 Statistical data of the amount of memory space required for each node of the hierarchical topic model of the dendrogram 900 in FIG. 9 , in the illustrated embodiment, the text analyzed to generate the dendrogram 900 includes text lines grouped into eight topic-and-sentiment clusters at leaf nodes L1-L8. The clusters at nodes L1-L8 are further grouped at parent nodes based on similarity using a distance measure between the embedding representations of the clusters. The vertical axis of the dendrogram 900 represents similarity, where a value of 1 at the origin is the most similar and a value of 0 farthest from the horizontal axis is the least similar. Therefore, topics and / or sentiments linked by lower (i.e., closer to the horizontal axis) parent nodes are more similar than topics and / or sentiments linked by other parent nodes shown as higher in the dendrogram 900. The topic and / or sentiment clusters at leaf nodes L1-L8 are grouped in pairs at a parent node, which in turn is further grouped at a grandparent node, and so on, until all of the topic and / or sentiment clusters are clustered in a single node at the top of the dendrogram 900. Thus, the topics and / or sentiments represented by the top node are very general in nature, as the cluster includes every topic and / or sentiment identified in the ingested documents. The topics and / or sentiments represented by leaf nodes L1-L8 are the most specific, and the parent / grandparent / etc. nodes between leaf nodes L1-L8 and the top node include varying degrees of specificity.

[0091] In some embodiments, the statistics collected at block 818 of process 800 include demand data for each node of dendrogram 900, including leaf nodes L1-L8 and each of the parent / grandfather / etc. nodes connecting leaf nodes L1-L8. Process 800 can identify any leaf / parent / grandfather / etc. nodes for caching based on the demand data. Since different nodes are more or less specific to various topics and / or sentiments, this allows the process to perform topic-based caching that caches data based on topics associated with the data and also based on a level of granularity consistent with recent user demand.

[0092] Figure 8The dashed lines in represent potential cut lines that can be used to cache data. In the illustrated embodiment, the cache is subject to the available space in the cache memory. In some embodiments, the process maintains data indicating the amount of memory that will be required to cache data at various potential cut lines. For example, if the parent node connecting L1 and L2 has the highest demand value and the cache memory has at least 300MB of available space, the results of the second-order NLP processing for the topic / sentiment at the parent node of L1 and L2 will be stored in the cache memory. In some embodiments, if a node with a high demand value requires more memory space than is available in the cache memory, the process is again subject to the available cache memory space and selects the child node with the highest demand. For example, if the grandparent node connecting the parent node of L1 and L2 to the parent node of L3 and L4 has the highest demand value, but the cache memory has less than 500MB of available space, the process looks at the two connected parent nodes; if the parent node connecting L1 and L2 has a higher demand than the parent node connecting L3 and L4 (and if the cache memory has at least 300MB of available space), the results of the second-order NLP processing for the topic / sentiment at the parent nodes of L1 and L2 will be stored in the cache memory.

[0093] refer to Fig. 9 , which depicts a block diagram of the query portion of DBMS 1000 according to an illustrative embodiment. In some embodiments, the query portion illustrated is Figure 3 An example of a query portion of the DBMS 402 .

[0094] In the illustrated embodiment, DBMS 1000 includes a query module 1002, a hierarchical topic model 1005, a cache memory 1007, an NLP runtime pipeline 1008, and a database 1016. In some embodiments, query module 1002 is Figure 3 An example of a query module 408, NLP runtime pipeline 1008 is Figure 3 An example of an NLP runtime pipeline 410, a hierarchical topic model 1005 is Figure 3 Example of hierarchical topic model 405, cache memory 1007 is Figure 3 An example of a cache memory 412 and a database 1016 is Figure 3 An example of a database 406 .

[0095] In the illustrated embodiment, the query module 1002 includes a topic identification module 1004 and a cache query module 1006. In alternative embodiments, the query module 1002 may include some or all of the functionality described herein, but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0096] The topic identification module 1004 identifies topics in the incoming user query. There are many known topic identification algorithms that can be used for the topic identification module 1004. Non-limiting examples of topic identification techniques that can be used for the topic identification module 1004 include bag-of-words and latent Dirichlet allocation (LDA) techniques. In the illustrated embodiment, the topic identification module 1004 then uses the identified topics to traverse the hierarchical topic model 1005 to search for topic nodes with associated topics that most closely match the topic of the user query. Upon locating the topic node, the topic identification module 1004 passes data indicating the selected node to the cache query module 1006.

[0097] The cache query module 1006 first searches the cache memory 1007 for the second-order NLP results associated with the selected node. If available, the query module 1002 uses the cached second-order NLP results to formulate an answer to the query. Otherwise, if not available, the cache query module 1006 sends the selected node data to the NLP runtime pipeline 1008.

[0098] In the illustrated embodiment, the NLP runtime pipeline 1008 includes a parsing module 1010, an entity recognition module 1012, and a part-of-speech (POS) tagging module 1014. In alternative embodiments, the NLP runtime pipeline 1008 may include some or all of the functionality described herein, but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware-based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0099] In the illustrated embodiment, the NLP runtime pipeline 1008 receives topic information for nodes of the hierarchical topic model 1005 that match a user query. The NLP runtime pipeline 1008 retrieves text from the database 1016 associated with the selected node. The NLP runtime pipeline 1008 then performs second-order NLP tasks on the retrieved text to extract information that can be used to answer the user query. The second-order NLP tasks can vary; the parsing module 1010, entity recognition module 1012, and POS tagging module 1014 are shown as non-limiting examples. Second-order NLP tasks typically involve advanced methods that are different from the first-order NLP tasks described above (e.g., Figure 3 The NLP ingestion pipeline 404 is relatively expensive in terms of time and processing compared to the NLP tasks performed by the NLP ingestion pipeline 404.

[0100] In some embodiments, the POS tagging module 1014 classifies and tags the words into appropriate parts of speech, such as nouns, verbs, adjectives, adverbs, conjunctions, pronouns, and other categories. In some embodiments, the POS tagging module 1014 uses a known rule-based POS tagging method that uses the context of the word, such as surrounding words, to determine the appropriate POS tag. In an alternative embodiment, the POS tagging module 1014 uses a known random POS tagging method that involves the use of probability, such as where a POS tag is selected for a word based on the probability that this tag occurs with n preceding POS tags.

[0101] In some embodiments, parsing module 1010 performs a dependency parsing process that uses known techniques to identify the grammatical structure of a sentence or line of text and to determine the relationship between words in the sentence / line. In some embodiments, entity recognition module 1012 performs a named entity recognition process that classifies portions of text into categories, including people, categories, places, quantities, and other entities.

[0102] refer to Fig.10 , which depicts a block diagram of a cache portion 1100 of a DBMS 1102 according to an illustrative embodiment. In some embodiments, the cache portion 1100 of the illustrated DBMS 1102 is Figure 3 An example of a cache portion of DBMS 402 .

[0103] In the illustrated embodiment, DBMS 1100 includes a query module 1104, an NLP runtime pipeline 1106, a cache management module 1108, and a cache memory 1110. In some embodiments, query module 1104 is Figure 3 An example of a query module 408, NLP runtime pipeline 1106 is Figure 3In an example of an NLP runtime pipeline 410, cache memory 1110 is Figure 3 412, the cache management module 1108 is Figure 3 An example of a cache management module 414, and the database 1120 is Figure 3 An example of a database 406 .

[0104] In the illustrated embodiment, the cache management module 1108 includes a count tracking module 1112, a constraint tracking module 1114, a dendrogram cutting module 1116, and a cache module 1118. In alternative embodiments, the cache management module 1108 may include some or all of the functionality described herein, but grouped differently into one or more modules. In some embodiments, the functionality described herein is distributed across multiple systems, which may include a combination of software and / or hardware based systems (e.g., application specific integrated circuits (ASICs), computer programs, or smartphone applications).

[0105] In some embodiments, the cache management module 1108 identifies topics and / or sentiments for caching based on user demand and subject to available cache memory space. In some embodiments, the count tracking module 1112 maintains statistics including a count for each node indicating the number of times the node has been used to answer queries. In some embodiments, the count tracking module 1112 collects and stores count data for a sliding time window such as the past N hours, such that the stored count for each node indicates the number of times the node has been used to answer queries in the past N hours. In the illustrated embodiment, the constraint tracking module 1114 maintains data indicating the amount of memory that would be required to cache data at various potential cut lines. The dendrogram cutting module 1116 identifies cut lines at various parent / grandfather / etc. nodes of the hierarchical topic model (e.g., Figure 8 denoted by the dotted line in ).

[0106] The cache module 1118 collects the demand data and memory requirement data generated by the count tracking module 1112 and the constraint tracking module 1114. The cache module 1118 then uses the demand data and memory requirement data to identify nodes that meet the cache priority requirements. For example, in some embodiments, the cache module 1118 caches the results of the second-order NLP processing of the topic and / or sentiment performed by the NLP runtime pipeline 1106 for caching based on user demand and subject to the available space in the cache memory 1110. For example, as described above in conjunction with Figure 8As described above, if the parent node connecting L1 and L2 has the highest demand value and the cache memory has at least 300MB of available space, the cache module 1118 will store the results of the second-order NLP processing for the topic / sentiment at the parent node of L1 and L2 in the cache memory 1110. In some embodiments, if the node with a high demand value requires more memory space than is available in the cache memory, the cache module 1118 is again subject to the available space in the cache memory 1110 to select the child node with the highest demand. For example, if the grandparent node connecting the parent node of L1 and L2 and the parent node of L3 and L4 has the highest demand value, but the cache memory 1110 has less than 500MB of available space, the cache module 1118 checks the two connected parent nodes; if the parent node connecting L1 and L2 has a higher demand than the parent node connecting L3 and L4 (and if the cache memory has at least 300MB of available space), the cache module 1118 stores the results of the second-order NLP processing of the topic / sentiment at the parent nodes of L1 and L2 in the cache memory 1110.

[0107] refer to Fig.11 , which depicts a flow diagram of an example process 1200 for generating a response to a user query using cached NLP processing results, according to an illustrative embodiment. In certain embodiments, DBMS 402 performs process 1200.

[0108] In the illustrated embodiment, at box 1202, the process analyzes the text content of the first user query to identify the query subject. Next, at box 1204, the process maps the query subject to the topic cluster at the node of the hierarchical model of the text database. Next, at box 1206, the process determines whether the second-order NLP processing result for the selected node is available in the cache. If so, then at box 1212, the process uses the cached second-order NLP processing result to generate an answer to the query. If the NLP processing result is not available in the cache, then at box 1208, the process performs a second-order NLP task on the text line associated with the matched topic of the hierarchical model in the database. Then, at box 1210, the process uses the result of the second-order NLP processing to generate an answer to the query.

[0109] The following definitions and abbreviations are used to interpret the claims and specification. As used herein, the terms "comprises," "comprising," "including," "comprising," "having," "containing," "containing," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or apparatus.

[0110] Additionally, the term "illustrative" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "illustrative" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" should be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "plurality" should be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connected" may include both indirect "connected" and direct "connected."

[0111] References in the specification to "one embodiment," "example embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment may or may not include the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an embodiment, it is considered to be within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in conjunction with other embodiments, whether or not explicitly described.

[0112] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with the measurement of a particular quantity based on the equipment available at the time this application was filed. For example, "about" may include a range of ±8% or 5% or 2% of a given value.

[0113] The description of various embodiments of the present invention has been given for the purpose of illustration, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be clear to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments described herein.

[0114] The description of various embodiments of the present invention has been given for the purpose of illustration, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be clear to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments described herein.

[0115] Thus, in illustrative embodiments, a computer-implemented method, system or apparatus, and computer program product are provided for managing participation in an online community and other related features, functions, or operations. Where embodiments or portions thereof are described with respect to one type of device, the computer-implemented method, system or apparatus, computer program product, or portions thereof, is adapted or configured for use with appropriate and comparable representations of that type of device.

[0116] Where embodiments are described as being implemented in an application, delivery of the application in a software as a service (SaaS) model may be envisioned within the scope of the illustrative embodiments. In the SaaS model, the ability to implement the application of the embodiments is provided to the user by executing the application in a cloud infrastructure. The user may access the application using a variety of client devices through a thin client interface such as a web browser (e.g., web-based email) or other lightweight client applications. The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating system, or storage of the cloud infrastructure. In some cases, the user may not even manage or control the capabilities of the SaaS application. In some other cases, the SaaS implementation of the application may allow limited possible exceptions to user-specific application configuration settings.

[0117] The present invention may be a system, method and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon, and the computer-readable program instructions are used to cause a processor to perform various aspects of the present invention.

[0118] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.

[0119] The computer-readable program instructions for performing the operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(e.g., Smalltalk, C++, etc.) and procedural programming languages ​​(e.g., "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to perform various aspects of the present invention, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuits.

[0120] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart illustrations and / or block diagrams and combinations of blocks in the flowchart illustrations and / or block diagrams can be implemented by computer-readable program instructions.

[0121] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0122] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0123] Flowcharts and block diagrams in the accompanying drawings show the possible infrastructure, functions and operations of the system, method and computer program product according to various embodiments of the present invention. In this regard, each frame in a flow chart or a block diagram can represent a module, a segment or a part of an instruction, which includes one or more executable instructions for realizing the specified (one or more) logical functions. In some alternative embodiments, the function noted in the frame may not occur in the order noted in the figure. For example, two frames shown in succession can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the function involved. It will also be noted that the combination of the frames in each frame of the block diagram and / or the flow chart diagram and / or the flow chart diagram can be realized by a dedicated hardware-based system that performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.

[0124] Embodiments of the present invention may also be delivered as part of a service engagement with a client company, non-profit organization, government entity, internal organizational structure, etc. Aspects of these embodiments may include configuring a computer system to perform, and deploying software, hardware, and web services that implement some or all of the methods described herein. Aspects of these embodiments may also include analyzing the operations of a client, creating recommendations in response to the analysis, building a system that implements parts of the recommendations, integrating the system into existing processes and infrastructure, metering the use of the system, allocating fees to users of the system, and billing for the use of the system. Although the above-mentioned embodiments of the present invention have been described by stating their respective advantages separately, the present invention is not limited to a specific combination thereof. On the contrary, according to the intended deployment of the present invention, these embodiments may also be combined in any manner and quantity without losing their beneficial effects.

Claims

1. A computer-implemented method comprising: analyzing textual content of a first user query to identify, via natural language processing, a first query topic defined by words of the textual content; mapping the first query topic to a first topic cluster at a first node of a hierarchical model of a text database; generating query demand data indicating a demand for the first topic cluster based on a user query to the text database; identifying the first topic cluster as a first topic cache candidate based on the query demand data; comparing a first required amount of memory required to store text associated with the first topic cluster to available cache memory in a database cache; as well as In response to identifying the first topic cluster as the first topic cache candidate and determining that the available cache memory is greater than the first required amount of memory, the text associated with the first topic cluster is stored in the database cache.

2. The computer-implemented method of claim 1 , further comprising: identifying a second topic cluster at a second node as a second topic cache candidate; determining that a second required amount of memory required to store text associated with the second topic cluster exceeds the available cache memory; as well as The second topic cluster is replaced with a third topic cluster at a third node as the second topic cache candidate. 3 . The computer-implemented method of claim 2 , wherein the third topic cluster is associated with a subtopic of the second topic cluster. The computer-implemented method of claim 2 , wherein the third node is a child node of the second node.

5. The computer-implemented method of claim 2, further comprising: comparing a third required amount of memory required to store text associated with the third topic cluster to the available cache memory; as well as In response to replacing the second topic cluster with the third topic cluster as the second topic cache candidate and determining that the available cache memory is greater than the third required amount of memory, storing text associated with the third topic cluster in the database cache.

6. The computer-implemented method of claim 1 , further comprising: replacing the first topic cluster with a fourth topic cluster at a fourth node as the first topic cache candidate; determining that a fourth required amount of storage required to store text associated with the fourth topic cluster exceeds the available cache memory; and The fourth topic cluster is replaced with the first topic cluster as the first topic cache candidate.

7. The computer-implemented method of claim 6, wherein the first topic cluster is associated with a sub-topic of the fourth topic cluster.

8. The computer-implemented method of claim 6, wherein the first node is a child node of the fourth node.

9. The computer-implemented method of claim 1, wherein the hierarchical model of the text database comprises a hierarchical tree diagram.

10. The computer-implemented method of claim 9, further comprising: Nodes of the hierarchical dendrogram are associated with corresponding topic clusters extracted from the text database.

11. The computer-implemented method of claim 10, further comprising: The nodes of the hierarchical tree diagram are associated with corresponding sentiments extracted from the text database.

12. The computer-implemented method of claim 1 , further comprising: performing a second order natural language processing task on text from the text database associated with the first topic cluster, Wherein, storing the text associated with the first topic cluster in the database cache includes storing the result of the second-order natural language processing task in the database cache.

13. The computer-implemented method of claim 12, wherein the second-order natural language processing task is selected from the group consisting of dependency parsing, entity recognition, and part-of-speech (POS) detection.

14. A computer program product, comprising one or more computer-readable storage media and program instructions stored together on the one or more computer-readable storage media, the program instructions being executable by a processor to cause the processor to perform operations, the operations comprising: analyzing textual content of a first user query to identify, via natural language processing, a first query topic defined by words of the textual content; mapping the first query topic to a first topic cluster at a first node of a hierarchical model of a text database; generating query demand data indicating a demand for the first topic cluster based on a user query to the text database; identifying the first topic cluster as a first topic cache candidate based on the query demand data; comparing a first required amount of memory required to store text associated with the first topic cluster to available cache memory in a database cache; as well as In response to identifying the first topic cluster as the first topic cache candidate and determining that the available cache memory is greater than the first required amount of memory, the text associated with the first topic cluster is stored in the database cache.

15. The computer program product of claim 14, wherein the stored program instructions are stored in a computer readable storage device in a data processing system, and wherein the stored program instructions are transmitted from a remote data processing system over a network.

16. The computer program product of claim 14, wherein the stored program instructions are stored in a computer readable storage device in a server data processing system, and wherein the stored program instructions are downloaded to a remote data processing system over a network in response to a request for use in a computer readable storage device associated with the remote data processing system, the computer program product further comprising: program instructions to meter usage of said program instructions associated with said request; as well as Program instructions for generating a bill based on the metered usage.

17. The computer program product of claim 14, wherein the operations further comprise: identifying a second topic cluster at a second node as a second topic cache candidate; determining that a second required amount of memory required to store text associated with the second topic cluster exceeds the available cache memory; as well as The second topic cluster is replaced with a third topic cluster at a third node as the second topic cache candidate.

18. The computer program product of claim 17, wherein the third topic cluster is associated with a sub-topic of the second topic cluster.

19. The computer program product of claim 17, wherein the third node is a child node of the second node.

20. A computer system comprising a processor and one or more computer-readable storage media, and program instructions stored together on the one or more computer-readable storage media, the program instructions being executable by the processor to cause the processor to perform operations, the operations comprising: analyzing textual content of a first user query to identify, via natural language processing, a first query topic defined by words of the textual content; mapping the first query topic to a first topic cluster at a first node of a hierarchical model of a text database; generating query demand data indicating a demand for the first topic cluster based on a user query to the text database; identifying the first topic cluster as a first topic cache candidate based on the query demand data; comparing a first required amount of memory required to store text associated with the first topic cluster to available cache memory in a database cache; as well as In response to identifying the first topic cluster as the first topic cache candidate and determining that the available cache memory is greater than the first required amount of memory, the text associated with the first topic cluster is stored in the database cache.