Patent Description:
The quality of a customer self-help system is determined, at least in part, by how well the customer self-help system assists users in finding the customer self-help content for which the users are searching. To assist users in finding customer self-help content, some customer self-help systems provide existing user generated content (e.g., through crowdsourcing) as answers to users' questions. Since user generated content initially exists as personalized responses, the user generated content can be difficult to reuse because it is drafted for a specific set of circumstances. As a result, narrowly drafted user generated content (e.g., answers) encourages subsequent users of a customer self-help system to submit new questions and solicit additional user generated content that are merely variations on existing questions (previously submitted) and existing (previously submitted) user generated content.

One problem with this traditional technique for question and answer submission is that subsequent searches of the customer self-help system may result in multiple answers that are close but that are not exactly the correct answer because multiple user generated content responses have been submitted in response to minor variations to similar questions. Furthermore, it would be practically impossible (e.g., too expensive) to manually generate content to cover all personalized variations to similar questions.

Another problem with the traditional technique for question and answer submission is that subsequent searching users are forced to read responses that may be stylistically incompatible with the users. That is, the response may be a correct answer to a searching user's questions but may be too brief or too long for the users' individual preferences.

Another problem with the traditional technique for question and answer submission is that users may submit poor quality questions by not providing all of the relevant information needed to develop a proper response. This issue leads to elongated threads and frustrated users, who eventually seek out live customer support.

One solution to these multiple problems would be a manual review and revision all of the customer self-help content. However, when thousands or millions of entries are involved, the benefit of manually revising all of the content is too expensive and time consuming to justify and rapidly becomes economically infeasible - if not impossible. As a result, the described problems of traditional customer self-help systems are difficult to fix and remain an unresolved technical problem in the self-help arts.

Consequently, long standing technical problems that exist in customer self-help systems include, but are not limited to: redundant information is requested and submitted; the self-help content is stylistically impersonal and incompatible with users' needs; users submit insufficient information to enable user generated content generators to efficiently provide adequate responses; and manual revision and organization of the self-help content is financially impractical, and in many cases all but impossible.

In this context, <CIT> discloses an approach to identify topics which are relevant to a search term of a user taking context information into account for providing personalized customer support responses.

Any embodiments or examples of the following description which are not within the scope of the appended claims are provided for illustrative purposes.

Embodiments of the present disclosure address some of the shortcomings associated with traditional customer self-help systems by providing methods and systems that employ artificial intelligence to provide personalized self-help content in response to a user query.

The described embodiments of the customer self-help system transform a self-help content data store into a characterized and categorized organization of self-help content components that is automatically scalable for new service provider generated content and new user generated content. Such embodiments transform the traditional balancing approach between cost and personalization into a highly cost effective and highly personalized platform for users to rapidly and efficiently obtain answers to questions without needing to rely on live customer support.

Common reference numerals are used throughout the figures and the detailed description to indicate like elements. It is to be understood that reference numerals ending in letters as tags are examples of variations of like elements, and the tagged reference numerals may or may not be illustrated in the figures. For example, a self-help content data store 120A and a self-help content data store 120B are both represented in <FIG> by the reference numeral of <NUM>, in which the ending letter tags of A and B are illustrated. One skilled in the art will readily recognize that the above figures are examples and that other architectures, modes of operation, orders of operation, and elements/functions can be provided and implemented without departing from the characteristics and features of the invention, as set forth in the claims.

Embodiments will now be discussed with reference to the accompanying figures, which depict one or more exemplary embodiments. Embodiments may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein, shown in the figures, and/or described below. Rather, these exemplary embodiments are provided to allow a complete disclosure that conveys the principles of the invention, as set forth in the claims, to those of skill in the art.

Herein, the term "production environment" includes the various components, or assets, used to deploy, implement, access, and use, a given application as that application is intended to be used. In various embodiments, production environments include multiple assets that are combined, communicatively coupled, virtually and/or physically connected, and/or associated with one another, to provide the production environment implementing the application.

As specific illustrative examples, the assets making up a given production environment can include, but are not limited to, one or more computing environments used to implement the application in the production environment such as a data center, a cloud computing environment, a dedicated hosting environment, and/or one or more other computing environments in which one or more assets used by the application in the production environment are implemented; one or more computing systems or computing entities used to implement the application in the production environment; one or more virtual assets used to implement the application in the production environment; one or more supervisory or control systems, such as hypervisors, or other monitoring and management systems, used to monitor and control assets and/or components of the production environment; one or more communications channels for sending and receiving data used to implement the application in the production environment; one or more access control systems for limiting access to various components of the production environment, such as firewalls and gateways; one or more traffic and/or routing systems used to direct, control, and/or buffer, data traffic to components of the production environment, such as routers and switches; one or more communications endpoint proxy systems used to buffer, process, and/or direct data traffic, such as load balancers or buffers; one or more secure communication protocols and/or endpoints used to encrypt/decrypt data, such as Secure Sockets Layer (SSL) protocols, used to implement the application in the production environment; one or more databases used to store data in the production environment; one or more internal or external services used to implement the application in the production environment; one or more backend systems, such as backend servers or other hardware used to process data and implement the application in the production environment; one or more software systems used to implement the application in the production environment; and/or any other assets/components making up an actual production environment in which an application is deployed, implemented, accessed, and run, e.g., operated, as discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing.

As used herein, the terms "computing system," "computing device," and "computing entity," include, but are not limited to, a virtual asset; a server computing system; a workstation; a desktop computing system; a mobile computing system, including, but not limited to, smart phones, portable devices, and/or devices worn or carried by a user; a database system or storage cluster; a switching system; a router; any hardware system; any communications system; any form of proxy system; a gateway system; a firewall system; a load balancing system; or any device, sub-system, or mechanism that includes components that can execute all, or part, of any one of the processes and/or operations as described herein.

In addition, as used herein, the terms computing system and computing entity, can denote, but are not limited to, systems made up of multiple: virtual assets; server computing systems; workstations; desktop computing systems; mobile computing systems; database systems or storage clusters; switching systems; routers; hardware systems; communications systems; proxy systems; gateway systems; firewall systems; load balancing systems; or any devices that can be used to perform the processes and/or operations as described herein.

As used herein, the term "computing environment" includes, but is not limited to, a logical or physical grouping of connected or networked computing systems and/or virtual assets using the same infrastructure and systems such as, but not limited to, hardware systems, software systems, and networking/communications systems. Typically, computing environments are either known environments, e.g., "trusted" environments, or unknown, e.g., "untrusted" environments. Typically, trusted computing environments are those where the assets, infrastructure, communication and networking systems, and security systems associated with the computing systems and/or virtual assets making up the trusted computing environment, are either under the control of, or known to, a party.

In various embodiments, each computing environment includes allocated assets and virtual assets associated with, and controlled or used to create, and/or deploy, and/or operate an application.

In various embodiments, one or more cloud computing environments are used to create, and/or deploy, and/or operate an application that can be any form of cloud computing environment, such as, but not limited to, a public cloud; a private cloud; a Virtual Private Cloud (VPC); or any other cloud-based infrastructure, sub-structure, or architecture, as discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing.

In many cases, a given application or service may utilize, and interface with, multiple cloud computing environments, such as multiple VPCs, in the course of being created, and/or deployed, and/or operated.

As used herein, the term "virtual asset" includes any virtualized entity or resource, and/or virtualized part of an actual, or "bare metal" entity. In various embodiments, the virtual assets can be, but are not limited to, virtual machines, virtual servers, and instances implemented in a cloud computing environment; databases associated with a cloud computing environment, and/or implemented in a cloud computing environment; services associated with, and/or delivered through, a cloud computing environment; communications systems used with, part of, or provided through, a cloud computing environment; and/or any other virtualized assets and/or sub-systems of "bare metal" physical devices such as mobile devices, remote sensors, laptops, desktops, point-of-sale devices, etc., located within a data center, within a cloud computing environment, and/or any other physical or logical location, as discussed herein, and/or as known/available in the art at the time of filing, and/or as developed/made available after the time of filing.

In various embodiments, any, or all, of the assets making up a given production environment discussed herein, and/or as known in the art at the time of filing, and/or as developed after the time of filing, can be implemented as one or more virtual assets.

In one embodiment, two or more assets, such as computing systems and/or virtual assets, and/or two or more computing environments, are connected by one or more communications channels including but not limited to, Secure Sockets Layer communications channels and various other secure communications channels, and/or distributed computing system networks, such as, but not limited to: a public cloud; a private cloud; a combination of different network types; a public network; a private network; a satellite network; a cable network; or any other network capable of allowing communication between two or more assets, computing systems, and/or virtual assets, as discussed herein, and/or available or known at the time of filing, and/or as developed after the time of filing.

As used herein, the term "network" includes, but is not limited to, any network or network system such as, but not limited to, a peer-to-peer network, a hybrid peer-to-peer network, a Local Area Network (LAN), a Wide Area Network (WAN), a public network, such as the Internet, a private network, a cellular network, any general network, communications network, communication channel, or general network/communications network system; a wireless network; a wired network; a wireless and wired combination network; a satellite network; a cable network; any combination of different network types; or any other system capable of allowing communication between two or more assets, virtual assets, and/or computing systems, whether available or known at the time of filing or as later developed.

As used herein, the term "user" includes, but is not limited to, any party, parties, entity, or entities using, or otherwise interacting with any of the methods or systems discussed herein. For instance, in various embodiments, a user can be, but is not limited to, a person, a commercial entity, an application, a service, or a computing system.

As used herein, the term "relationship(s)" includes, but is not limited to, a logical, mathematical, statistical, or other association between one set or group of information, data, and/or users and another set or group of information, data, and/or users, according to one embodiment. The logical, mathematical, statistical, or other association (i.e., relationship) between the sets or groups can have various ratios or correlation, such as, but not limited to, one-to-one, multiple-to-one, one-to-multiple, multiple-to-multiple, and the like, according to one embodiment. As a non-limiting example, if the disclosed system and method for providing access control and enhanced encryption determines a relationship between a first group of data and a second group of data, then a characteristic or subset of a first group of data can be related to, associated with, and/or correspond to one or more characteristics or subsets of the second group of data, or vice-versa, according to one embodiment. Therefore, relationships may represent one or more subsets of the second group of data that are associated with one or more subsets of the first group of data, according to one embodiment. In one embodiment, the relationship between two sets or groups of data includes, but is not limited to similarities, differences, and correlations between the sets or groups of data.

As used herein, the term "data store" or "data storage device" includes, but is not limited to, any physical or virtual data source or storage device. For instance, in various embodiments, a data store or storage container can be, but is not limited to, one or more of a hard disk drive, a solid-state drive, an EEPROM, an optical disk, a server, a memory array, a database, a virtual database, a virtual memory, a virtual data directory, a non-transitory computer-readable medium, or other physical or virtual data sources.

The disclosed method and system for employing artificial intelligence to provide personalized self-help content in response to a user query in a customer self-help system, provides for significant improvements to the technical fields of customer self-help systems, artificial intelligence, data processing, data management, and user experience. As can be appreciated, under a traditional self-help system that uses user generated (e.g., crowdsourced) content, large quantities of self-help content become unmanageable, and become too costly and time-consuming to review and revise. Consequently, quality control and the reputation associated with the self-help system becomes a matter of chance. Embodiments of the present invention use several algorithms as artificial intelligence to identify and aggregate information that is relevant to a user's query, while providing personalized self-help content to the user's query, in a manner that is scalable and more cost efficient than prior art methods of using people to manually review and revise content that is submitted to the customer self-help system.

In one embodiment, the disclosed customer self-help system identifies characteristics of self-help content that is stored by a self-help content data store, and updates the self-help content data store to include the characteristics of the self-help content. This transforms the self-help content data store into a system component that is searchable and that facilitates identifying self-help content that is relevant to user queries, which results in reductions in requests for live customer support. The reduction in requests for live customer support reduces service provider overhead costs.

The method and system for employing artificial intelligence to provide personalized self-help content in response to a user query in a customer self-help system reduces computing cycles, memory usage, and bandwidth usage by helping users more quickly and efficiently obtain relevant answers to queries that are submitted because the entire self-help content data store is characterized and categorized to facilitate more effective searching of the contents of the self-help content data store.

The method and system for employing artificial intelligence to provide personalized self-help content in response to the user query in a customer self-help system identifies user preferences for the style of answer that a user prefers by analyzing the user profile data to determine the query intent of a user query and to determine the type of content to include in the personalized self-help content that is delivered to a user in response to a received user query, according to one embodiment.

The method and system for employing artificial intelligence to provide personalized self-help content in response to the user query in a customer self-help system resolves potential issues with poorly written and poorly submitted user queries, according to one embodiment. For example, some short user queries may be interpreted multiple ways and are therefore ambiguous, without additional context or additional information about a user. The method and system for employing artificial intelligence to provide personalized self-help content resolves potential issues with poorly written and poorly submitted user queries by using user profile data as context for a user query so that the customer self-help and help system provides personalized self-help content with an understanding of the type of operating system, platform, Internet connection, and other characteristics that might impact information that the user seeks in a response to his or her user query, according to one embodiment.

Employing artificial intelligence to provide personalized self-help content in response to a user query in a customer self-help system is a technical solution to a long standing technical problem and is not an abstract idea for at least a few reasons. First, employing artificial intelligence to provide personalized self-help content is not an abstract idea because it is not merely an idea itself (e.g., can be performed mentally or using pen and paper). Second, employing artificial intelligence to provide personalized self-help content is not an abstract idea because it is not a fundamental economic practice (e.g., is not merely creating a contractual relationship, hedging, mitigating a settlement risk, etc.). Third, employing artificial intelligence to provide personalized self-help content is not an abstract idea because it is not a method of organizing human activity (e.g., managing a game of bingo). Fourth, although mathematics may be used in employing artificial intelligence, the disclosed and claimed method and system of employing artificial intelligence to provide personalized self-help content is not an abstract idea because the method and system is not simply a mathematical relationship/formula.

In addition, employing artificial intelligence to provide personalized self-help content allows for significant improvement to the technical fields of user experience, artificial intelligence, data processing, data management, and customer self-help systems, according to one embodiment.

As a result, embodiments of the present disclosure allow for reduced usage of processor cycles, memory, and power consumption, by reducing the time and resources spent by users of a customer self-help systems in repeatedly searching for a relevant or adequate response to their queries. Consequently, computing and communication systems implementing or providing the embodiments of the present disclosure are transformed into more operationally efficient devices and systems.

In addition to improving overall computing performance, employing artificial intelligence to provide personalized self-help content significantly improves the field of data storage systems by reducing the inefficient management of user generated content, according to one embodiment. Therefore, both human and non-human resources are utilized more efficiently. Furthermore, by employing artificial intelligence to provide personalized self-help content, loyalty in the customer self-help system is increased, which results in repeat customers, and reduced abandonment of use of the data storage system, according to one embodiment.

The disclosed embodiments provide one or more technical solutions to the technical problem of customer self-help systems by employing artificial intelligence to provide personalized self-help content. These and other embodiments of the customer self-help system are discussed in further detail below.

<FIG> is a functional block diagram of a production environment <NUM> for providing personalized self-help content in response to receipt of a user query, in accordance with various embodiments. Embodiments of the present disclosure provide methods and systems for employing artificial intelligence to provide personalized self-help content in response to a user query.

The production environment <NUM> includes a service provider computing environment <NUM> and a client computing environment <NUM>. The various computing environments of the production environment <NUM> are coupled together by one or more physical or virtual networks <NUM>. The computing environments <NUM> and <NUM> are communicatively coupled to each other through the one or more physical or virtual networks <NUM>, with a communication channel <NUM> and a communication channel <NUM>, according to one embodiment.

The service provider computing environment <NUM> represents one or more computing systems such as a server or distribution center that is configured to receive, execute, and host one or more data storage systems, according to one embodiment. The service provider computing environment <NUM> represents a traditional data center computing environment, a virtual asset computing environment (e.g., a cloud computing environment), or a hybrid between a traditional data center computing environment and a virtual asset computing environment, according to one embodiment.

The service provider computing environment <NUM> includes a customer self-help system <NUM> to receive a user query data <NUM> from the client computing environment <NUM> and to provide personalized self-help content data <NUM> that is responsive to the user query data <NUM>, according to one embodiment. The customer self-help system <NUM> includes a pre-process sub-system <NUM> and a real-time process sub-system <NUM> for generating and providing the personalized self-help content data <NUM>, in response to the user query data <NUM>, according to one embodiment.

The pre-process sub-system <NUM> analyzes self-help content from a variety of sources and transforms the self-help content into self-help content components that facilitate generating the personalized self-help content data <NUM>, according to one embodiment. The pre-process sub-system <NUM> includes a self-help content data store <NUM> and a pre-processor <NUM> for characterizing and categorizing the self-help content, according to one embodiment.

The self-help content data store <NUM> includes self-help content data <NUM> and self-help content components data <NUM>, according to one embodiment. The self-help content data <NUM> represents self-help content and includes a variety of data representing content that can be provided to the users to answer users' questions, in response to the user query data <NUM>, according to one embodiment. The user query data <NUM> represents a user query having one or more query terms, according to one embodiment. The self-help content data <NUM> includes crowdsourced customer support content and service provider content (including definitions content), according to one embodiment.

The self-help content components data <NUM> are identified by applying the self-help content data <NUM> to the pre-processor <NUM>, according to one embodiment. The self-help content components data <NUM> include characteristics of the self-help content data <NUM> which is categorized or searchable by the characteristics, according to one embodiment. In one embodiment, the self-help content components data <NUM> are a cloned and modified version of the self-help content data <NUM>. In one embodiment, the self-help content components data <NUM> represent a modified version of the self-help content data <NUM> that replaces the self-help content data <NUM> after being characterized and categorized through the pre-processor <NUM>.

The real-time process sub-system <NUM> receives the user query data <NUM> and generates the personalized self-help content data <NUM> based on an analysis of the user query data <NUM> by determining which of the self-help content components data <NUM> to combine to generate the personalized self-help content data <NUM>, according to one embodiment. The real-time process sub-system <NUM> includes an intent extractor engine <NUM> and a composer <NUM> for analyzing the user query data <NUM> and for determining which of the self-help content components data <NUM> to use to generate the personalized self-help content data <NUM>, according to one embodiment.

The intent extractor engine <NUM> receives one or more of the user query data <NUM> and user profile data <NUM> to determine a query intent data <NUM> for the user query data <NUM>, according to one embodiment. The intent extractor engine <NUM> determines the query intent data <NUM> by providing the user query data <NUM> and the user profile data <NUM> to one or more algorithms, according to what one embodiment. The algorithms of the intent extractor engine <NUM> include, but are not limited to, one or more natural language processing algorithms, one or more classifier algorithms, and one or more social algorithms, according to various embodiments. The intent extractor engine <NUM> applies the same one or more algorithms to the user profile data <NUM> in addition to the user query data <NUM> to determine the query intent data <NUM>, according to one embodiment. After determining the query intent data <NUM>, the intent extractor engine <NUM> provides the query intent data <NUM> to the composer <NUM>, according to one embodiment.

The user profile data <NUM> includes prior user profile data <NUM>, new user profile data <NUM>, and optionally the determined query intent data <NUM>, according to one embodiment. The prior user profile data <NUM> includes, but is not limited to, any information about a user that was used or that was collected to prepare a user's tax return, authentication information for user, click-stream data that represents navigation behavior of the user within one or more service provider products or services, and user history within the customer self-help system <NUM>, according to one embodiment. The new user profile data <NUM> includes information collected about the user in one or more current or recent sessions with the customer self-help system <NUM>, according to one embodiment. In one embodiment, after determining the query intent data <NUM>, the intent extractor engine <NUM> for the real-time process sub-system <NUM> updates the user profile data <NUM> with the query intent data <NUM>, according to one embodiment. The user profile data <NUM> includes, but is not limited to, data representing one or more of a user's name, a date of birth, an address, a zip code, a home ownership status, a marital status, an annual income, a job title, an employer's address, spousal information, children's information, asset information, medical history, occupation, information regarding dependents, salary and wages, interest income, dividend income, business income, farm income, capital gain income, pension income, individual retirement account ("IRA") distributions, unemployment compensation, education expenses, health savings account deductions, moving expenses, IRA deductions, student loan interest deductions, tuition and fees, medical and dental expenses, state and local taxes, real estate taxes, personal property tax, mortgage interest, charitable contributions, casualty and theft losses, unreimbursed employee expenses, alternative minimum tax, foreign tax credit, education tax credits, retirement savings contribution, child tax credits, residential energy credits, and any other information that is currently used, that can be used, or that may be used in the future to prepare a tax return for a user, according to one embodiment. The user profile data <NUM> also includes, but is not limited to, computing system characteristics data <NUM> of the client computing environment <NUM> and subscription information data <NUM> of any service provider services subscribed to by a user of the client computing environment <NUM>, according to one embodiment.

The composer receives the query intent data <NUM> and pulls self-help content components data <NUM> from the self-help content data store <NUM> to aggregate one or more self-help content components data <NUM> into the personalized self-help content data <NUM>, according to the invention. The composer <NUM> matches characteristics of the query intent data <NUM> with characteristics of the self-help content components data <NUM> to determine which of the self-help content components data <NUM> are responsive to the user query data <NUM>, according to the invention. After identifying one or more of the self-help content components data <NUM> that have characteristics that are similar to the query intent data <NUM>, the composer <NUM> combines the identified self-help content components data <NUM> into the personal personalized self-help content data <NUM>, according to the invention.

The customer self-help system <NUM> includes system memory <NUM> and one or more system processors <NUM> for storing and executing the customer self-help system <NUM> and the functional components of the customer self-help system <NUM>, according to one embodiment. The system memory <NUM> includes volatile memory, non-volatile memory, local memory, cloud storage memory, and one or more combinations thereof, according to one embodiment. The one or more system processors <NUM> execute instructions that represent the customer self-help system <NUM> that are stored within the system memory <NUM>, according to one embodiment.

The client computing environment <NUM> includes the user query data <NUM>, computing system characteristics data <NUM>, and subscription information data <NUM>, according to one embodiment. The user query data <NUM> represents a question or concern that a user submits to the customer self-help system <NUM> through the client computing environment <NUM>, according to one embodiment. The user query data <NUM> includes a number of query terms that are analyzed along with the user profile data <NUM> by the intent extractor engine <NUM>, to enable the composer <NUM> to generate the personalized self-help content data <NUM>, according to one embodiment.

The computing system characteristics data <NUM> include characteristics such as, but not limited to, an operating system, a platform manufacturer (Apple or PC), a platform type (e.g., mobile, smart phone, tablet, laptop, desktop,), Internet Protocol ("IP") address, and a ZIP Code of operation for the client computing environment <NUM>, according to one embodiment. The subscription information <NUM> identifies contractual relationships between a user and the service provider for the use of one or more products or services provided by the service provider (e.g., the customer self-help system <NUM> or one or more financial management systems), according to one embodiment.

Although several features of the customer self-help system <NUM> are represented by various illustrated or described functional representations, any of the functional representations may be combined into fewer functional representations or may be further separated into further functional representations, according to various embodiments.

<FIG> illustrates a process <NUM> of characterizing and categorizing self-help content into self-help content components and updating a self-help content data store with the self-help content components, to transform the self-help content data store into a data store that facilitates generating personalized self-help content by a composer of the customer self-help system <NUM> (shown in <FIG>), according to one embodiment. Referring to <FIG> and <FIG> together, the process <NUM> is illustrated with the pre-process sub-system <NUM>, according to one embodiment. The self-help content data store <NUM> is implemented and illustrated as a self-help content data store 120A and a self-help content data store 120B, according to one embodiment. The self-help content data store 120A represents the self-help content data store <NUM> before the self-help content data store <NUM> is updated to include or be categorized with the self-help content components data <NUM>, according to one embodiment. The self-help content data store 120B represents the self-help content data store <NUM> after the self-help content data store <NUM> has been updated with the self-help content components data <NUM>.

The self-help content data store 120A includes the self-help content data <NUM>, according to one embodiment. The self-help content data <NUM> includes service provider generated content data <NUM> and user generated content data <NUM>, according to the invention.

The service provider generated content data <NUM> includes white papers, questions, answers, frequently asked questions, answers to frequently asked questions, tutorials, audio/video content, interactive content, or other content that can be used to assist users in learning about taxes, tax preparation, a tax return preparation system, or other relevant subject matter, according to various embodiments. The service provider generated content data <NUM> includes definitions content such as, but not limited to, acronym definitions, definitions of tax-specific terms (e.g., tax jargon), and/or definitions of terms that are related to tax law, preparing tax returns, and the tax return preparation system, according to various embodiments. The user generated content data <NUM> is crowdsourced customer support content and includes questions and responses that are submitted by a community of question askers and response providers that use the customer self-help system <NUM> or another question and answer customer support system that is associated with one or more service provider services, according to one embodiment. In one embodiment, the user generated content <NUM> includes the user queries that are entered by a user into the customer self-help system <NUM>. In one embodiment, the user queries are not saved in the self-help content data store <NUM>. In one embodiment, questions that represent better articulated versions of the user query data <NUM> are stored in the self-help content data store <NUM>.

The pre-processor <NUM> reads the self-help content data <NUM> from the self-help content data store 120A, applies one or more content processing algorithms <NUM> to the self-help content data <NUM> to identify characteristics of the self-help content data <NUM> that are used to define and categorize the self-help content components data <NUM>, according to one embodiment. The content processing algorithms <NUM> include one or more of a natural language processing algorithm <NUM>, a classifier algorithm <NUM>, and a social algorithm <NUM>, according to one embodiment. The pre-processor <NUM> applies one or more of the content processing algorithms <NUM> to the self-help content data <NUM> to identify or generate the self-help content components data <NUM>, which are used to generate the personalized self-help content data <NUM> that is responsive to the user query data <NUM>, according to one embodiment.

The natural language processing algorithm <NUM> represents one or more algorithms that use content terms of the self-help content data <NUM> to identify one or more topics of the self-help content data <NUM>, according to one embodiment. The topics of the self-help content data <NUM> are representative of the meaning of the self-help content data <NUM>, according to one embodiment. The natural language processing algorithm <NUM> also uses the content terms of the self-help content data <NUM> to determine the assertiveness or tone, the platform, the version, the quality, and the likelihood of user satisfaction of the self-help content data <NUM>, according to various embodiments. In one embodiment, the natural language processing algorithm <NUM> is a probabilistic topic model that is at least partially executed using one or more of Latent Dirichlet Allocation ("LDA") algorithm, a Latent Semantic Indexing ("LSI") algorithm, a query clustering algorithm, and a query deduplication algorithm.

An example of an implementation of a probabilistic topic model that can be executed using a Latent Dirichlet allocation algorithms for the natural language process algorithm <NUM> is illustrated in the diagram <NUM> of a probabilistic topic model, which is illustrated in <FIG>, according to one embodiment. Referring to <FIG>, <FIG>, and <FIG>, the diagram <NUM> shows one technique, based on search terms and user profile characteristics, for determining a relevant topic for content terms in self-help content data <NUM>, according to one embodiment. The diagram <NUM> includes example content <NUM>, which includes content term <NUM>, content term <NUM>, content term <NUM>, and content term <NUM>, according to one embodiment. Although four example content terms are illustrated, many more s content terms or fewer content terms can also be received and analyzed to identify a relevant topic for the example content <NUM>, according to one embodiment.

The diagram <NUM> includes two example entries for a topics database (not shown) that can be used to determine a topic that is relevant to the content terms <NUM>, <NUM>, <NUM>, <NUM>, according to one embodiment. The diagram <NUM> includes a topics database entry <NUM> and a topics database entry <NUM>, to illustrate an example process of determining a relevant, a more relevant, a highest relevant, or multiple relevant topics for the content terms <NUM>, <NUM>, <NUM>, <NUM>, according to one embodiment. The topics database entry <NUM> includes a topic <NUM>, topic terms <NUM>, and topic term probabilities <NUM>, according to one embodiment. The topics database entry <NUM> includes a topic <NUM>, topic terms combined with context characteristics <NUM>, and topic term probabilities combined with context characteristics probabilities <NUM>, according to one embodiment. The topics database entries <NUM> and <NUM> are examples of entries that are made to the topics database (not shown), according to one embodiment. The topics <NUM> and <NUM> include a numerical identifier (e.g., topic "<NUM>" and topic "<NUM>") and an alphabetical identifier (e.g., "intent to contact" topic and "change/amend" topic), according to one embodiment.

The topics database entry <NUM> includes context characteristics of "submitfedreturnpg", "2014deductionscredits", "emplymt_status?Y", "k1form", "incomeexplore", and "TRSversion?free", which represent examples of user profile characteristics, according to one embodiment. For these example context characteristics, "submitfedreturnpg" represents an example of a user experience display identifier for a user experience display page for submitting a federal tax return, "2014deductionscredits" represents an example of a user experience display identifier for a user experience display page for answering questions about deductions and credits for <NUM> taxes, "emplymt_status?Y" represents a user characteristic for whether the user is employed, "k1form" represents an example of a user experience display identifier for a user experience display page for filling out a K1 tax form, "incomeexplore" represents an example of a user experience display identifier for a user experience display page for determining income for a user in a tax return preparation system, and "TRSversion?free" represents an identifier of a free version of a tax return preparation system, according to one embodiment.

The customer self-help system <NUM> determines a topic relevance score <NUM> for the topic <NUM> and a topic relevance score <NUM> for the topic <NUM> by combining or adding the topic term probabilities and context characteristics probabilities that are associated with one or more of the content terms <NUM>, <NUM>, <NUM>, <NUM>, and the user profile characteristics. The customer self-help system <NUM> searches the topics database entries <NUM> and <NUM> for topic terms that match the content terms <NUM>, <NUM>, <NUM>, <NUM> and for user profile characteristics that exist during the submission of the content terms <NUM>, <NUM>, <NUM>, <NUM>, according one embodiment. The customer self-help system <NUM> then associates the topic term probabilities <NUM>, <NUM> of the topic terms <NUM>, <NUM> that match the content terms <NUM>, <NUM>, <NUM>, <NUM> and content context, to associate the relevant topic term probabilities <NUM>, <NUM>, to the content terms <NUM>, <NUM>, <NUM>, <NUM>, according one embodiment. For each topic <NUM> and <NUM>, the customer self-help system <NUM> determines the topic relevance scores <NUM>, <NUM>, by combining the topic term probabilities <NUM>, <NUM> that are relevant to and associated with the content terms <NUM>, <NUM>, <NUM>, <NUM> and user profile characteristics.

As a specific and illustrative example, if the content term <NUM> is the topic term "number", the content term <NUM> is the topic term "phone", the content term <NUM> is the topic term "PIN", the content term <NUM> is the search query term "service", the user profile characteristic <NUM> includes "submitfedreturnpg", and the user profile characteristic <NUM> includes "emplymt_status?Y", then the topic relevance score <NUM> for the topic <NUM> is <NUM>, and the topic relevance score <NUM> for the topic <NUM> is. <NUM>, without taking context characteristics into account. If context characteristics are factored into the topic relevance score <NUM> for the topic <NUM>, then the topic relevance score <NUM> for the topic <NUM> increases to. Accordingly, the topic relevance score <NUM> for the topic <NUM> makes the topic <NUM> - "change/amend" more relevant to the content terms <NUM>, <NUM>, <NUM>, <NUM> than the topic <NUM> - "intent to contact", because the topic relevance score <NUM> is greater than the topic relevance score <NUM>, according to one example of an embodiment.

The natural language process algorithm <NUM>, the content processing algorithms <NUM>, the pre-processor <NUM>, or the pre-process sub-system <NUM> determines more relevant, most relevant, or highest relevant topics for the content terms by ranking, sorting, and/or comparing the topic relevance scores <NUM>, <NUM> for each of the topics <NUM>, <NUM>, according to one embodiment. The customer self-help system <NUM> determines that the topic with the highest topic relevance score is the highest relevant topic to the content terms <NUM>, <NUM>, <NUM>, <NUM>, according one embodiment.

Returning to <FIG> and the process <NUM>, the content processing algorithms <NUM> include the classifier algorithm <NUM> for optionally identifying the characteristics of the self-help content data <NUM> and the self-help content components data <NUM>, according to one embodiment. The classifier algorithm <NUM> receives the self-help content data <NUM> (in addition to any user profile information stored with the self-help content data <NUM>) as an input, and the classifier algorithm <NUM> outputs likelihoods of characteristics of the self-help content data <NUM>, according to one embodiment. The classifier algorithm <NUM> is a predictive model that is defined by applying one or more classifier algorithms to existing self-help content that has already been associated with one or more particular characteristics, according to one embodiment. By applying one or more classifier algorithms to the existing self-help content, a predictive model can be defined and enabled to identify similarities between the self-help content data <NUM> and the existing self-help content from which the predictive model is defined, according to one embodiment. Classifier algorithms include, but are not limited to, regression, logistic regression, decision trees, artificial neural networks, support vector machines, linear regression, nearest neighbor methods, distance based methods, naive Bayes, linear discriminant analysis, k-nearest neighbor algorithm, and any other know or later developed classifier algorithm, according to various embodiments.

After one or more of the natural language processing algorithm <NUM> and the classifier algorithm <NUM> characterize the self-help content data <NUM>, by which the self-help content data <NUM> is categorized into one or more self-help content components data <NUM>, the pre-process sub-system <NUM> selectively makes the characterizations public to users of the customer self-help system <NUM>, according to one embodiment. By publicizing the characterizations to the users of the customer self-help system <NUM>, the pre-process sub-system <NUM> enables crowdsourcing the correction of characterizations made by one or more of the natural language processing algorithm <NUM> and the classifier algorithm <NUM>, according to one embodiment. The social algorithm <NUM> quantifies the responses received from the users of the customer self-help system <NUM> and accepts or rejects the characterization or classifications that are determined by one or more of the natural language processing algorithm <NUM> and the classifier algorithm <NUM>, according to one embodiment.

The self-help content data store 120B includes the self-help content components data <NUM> that have been characterized or classified by one or more of the content processing algorithms <NUM>, according to one embodiment. The self-help content components data <NUM> represent characterization, and categorization of the self-help content data <NUM>, according to one embodiment. The self-help content components data <NUM> include media content data <NUM>, universal content data <NUM>, and user specific content data <NUM>, according to one embodiment. The media content data <NUM> includes audio files, video files, and other multimedia files, according to one embodiment. The universal content data <NUM> represents content that is been identified (e.g., based on topic) as being agnostic to one or more product versions, computing system platforms, and user personality types, according to one embodiment. The user specific content data <NUM> represents classification of portions of the self-help content data <NUM>, which enables personalized matching of portions of the self-help content data <NUM> to particular users based on the user query data <NUM> and the user profile data <NUM>, according to one embodiment. The user specific content data <NUM> includes content ID data <NUM>, contents topics data <NUM>, content details data <NUM>, content terms data <NUM>, content tone data <NUM>, semantic specific content data <NUM>, version specific content data <NUM>, platform specific content data <NUM>, user characteristics specific content data <NUM>, and other non-universal content data <NUM>, according to various embodiments.

The self-help content components data <NUM> are categorized into self-help content data store 120B by characteristics and sub-characteristics, according to one embodiment. For example, the self-help content data store 120B includes tables or other data structures with columns that identify characteristics of each of the self-help content components data <NUM>, according to one embodiment. The characteristics include, but are not limited to, type of media (e.g., video, audio, text), whether the content is applicable to all users, whether the content is applicable to specific users, the assertiveness of the content, the tone of the content, the likelihood that users are going to find the content to be satisfying, the conciseness of the content, and the relevance of the content to a particular computing system or to particular type of user, according to various embodiments.

The content ID data <NUM> is a characteristic of the user specific content data <NUM> that is used to identify an entry in the self-help content data store 120B, according to one embodiment.

The content topics data <NUM> represent one or more topics that the content processing algorithms <NUM> have identified with a particular entry in the self-help content data store 120B, according to one embodiment.

Content details data <NUM> represent the description of an answer, frequently asked questions ("FAQs"), other service provider generated content, or other user generated content, according to one embodiment.

The content terms data <NUM> represent the individual words that are analyzed by one or more of the content processing algorithms <NUM> to determine the content topics data <NUM>, according to one embodiment.

The content tone data <NUM> represents a level of assertiveness of the content details data <NUM>, as determined by one or more of the content processing algorithms <NUM>, and which may affect the likelihood of the user being satisfied with a particular entry in the self-help content data store 120B, according to one embodiment.

The semantic specific content data <NUM> represents characteristics of the content details data <NUM> that are related to quality such as the sophistication, clarity, and likely completeness of the content details data <NUM>, according to one embodiment.

The version specific content data <NUM> represents identification of a particular version of a service provider product that is referenced in the content details data <NUM> or in the contents topics data <NUM>, according to one embodiment.

The platform specific content data <NUM> represents identification of a particular platform to which the content details data <NUM> are directed, according to one embodiment. For example, if a user generated content is specifically directed to navigating a Mac OS (e.g., OS X), a Mac browser (e.g., Safari), or other Apple product, the content details data <NUM> or content terms data <NUM> within the content details data <NUM> are identified as being relevant to Mac users, according to one embodiment.

The user characteristics specific content data <NUM> represents identification of user characteristics that include characteristics such as those described above in association with the user profile data <NUM>, according to one embodiment.

The other non-universal content data <NUM> represents one or more additional characteristics of the self-help content data <NUM> by which the self-help content components data <NUM> are classified or categorize within the self-help content data store 120B, according to various embodiments.

<FIG> illustrates a flow diagram of a process <NUM> for characterizing self-help content into self-help content components and updating the self-help content data store with the self-help content components, according to one embodiment. The process <NUM> includes references to <FIG>, <FIG>, and <FIG>, according to one embodiment.

In one embodiment, at BEGIN <NUM>, the process <NUM> begins.

In one embodiment, at RECEIVE SELF-HELP CONTENT INCLUDING SERVICE PROVIDER GENERATED CONTENT AND USER GENERATED CONTENT <NUM>, the process <NUM> receives the self-help content data <NUM> including the service provider generated content data <NUM> and the user generated content data <NUM>, according to one embodiment.

In one embodiment, at STORE THE SELF-HELP CONTENT IN A SELF-HELP CONTENT DATA STORE <NUM>, the process <NUM> stores the self-help content data <NUM> in the self-help content data store <NUM>, according to one embodiment. The self-help content data store is a database or other data structure that includes one or more tables or related data structures for storing and organizing the self-help content data <NUM>, according to one embodiment.

In one embodiment, at PROVIDE THE SELF-HELP CONTENT TO A PRE-PROCESSOR, WHEREIN THE PRE-PROCESSOR INCLUDES ONE OR MORE CONTENT PROCESSING ALGORITHMS <NUM>, the process <NUM> provides the self-help content data <NUM> to the pre-processor <NUM>, wherein the pre-processor <NUM> includes one or more content processing algorithms <NUM>. The one or more content processing algorithms <NUM> include, but are not limited to, the natural language process algorithm <NUM>, the classifier algorithm <NUM>, and the social algorithm <NUM>, according to one embodiment.

In one embodiment, at DETERMINE, WITH THE ONE OR MORE CONTENT PROCESSING ALGORITHMS, CHARACTERISTICS OF THE SELF-HELP CONTENT <NUM>, the process <NUM> determines, with the one or more content processing algorithms <NUM>, characteristics of the self-help content data <NUM>. Examples of characteristics of the self-help content data <NUM> include, but are not limited to, the type of media, whether the content is universally applicable to users, content topic, content details, content terms, content tone, whether the content is version specific, whether the content is platform specific, user characteristics of the content, semantic specific and characteristics of the content, according to one embodiment.

In one embodiment, at UPDATE THE SELF-HELP DATA STORE WITH THE CHARACTERISTICS OF THE SELF-HELP CONTENT TO CATEGORIZE THE SELF-HELP CONTENT INTO SELF-HELP CONTENT COMPONENTS WITHIN THE SELF-HELP DATA STORE, TO ENABLE THE SELF-HELP SYSTEM TO GENERATE PERSONALIZED SELF-HELP CONTENT IN RESPONSE TO RECEIPT OF A USER QUERY <NUM>, the process <NUM> updates the self-help content data store <NUM> with the characteristics of the self-help content data <NUM> to categorize the self-help content data <NUM> into self-help content components data <NUM> within the self-help content data store <NUM>, to enable the customer self-help system <NUM> to generate personalized self-help content data <NUM> in response to receipt of a user query data <NUM>. In one embodiment, updating the self-help data store includes adding additional columns to tables in the self-help content data store for each characteristic that is identified or can be identified by any of the content processing algorithms <NUM>, according to one embodiment. By adding additional columns to tables or other data structures in the self-help content data store, the characteristics of the self-help content data <NUM> becomes searchable by the composer <NUM>, according to one embodiment.

In one embodiment, at END <NUM>, the process <NUM> terminates.

<FIG> and <FIG> illustrates a process <NUM> of analyzing self-help content to identify self-help components within the self-help content, according to one embodiment. The following discussion of <FIG> and <FIG> includes reference to <FIG>, <FIG>, and <FIG>.

In one embodiment, at BEGIN <NUM>, the process <NUM> begins, according to one embodiment.

In one embodiment, at ACCESS SELF-HELP CONTENT STORED IN A SELF-HELP CONTENT DATA STORE <NUM>, the process <NUM> accesses the self-help content data <NUM> stored in the self-help content data store <NUM>.

In one embodiment, at SELECT FROM ONE OF A PLURALITY OF CONTENT PROCESSING ALGORITHMS TO APPLY TO THE SELF-HELP CONTENT OF THE SELF-HELP CONTENT DATA STORE, WHEREIN THE PLURALITY OF CONTENT PROCESSING ALGORITHMS INCLUDE A NATURAL LANGUAGE PROCESSING (NLP) ALGORITHM, A CLASSIFIER ALGORITHM, AND A SOCIAL ALGORITHM <NUM>, the process <NUM> selects from one of a plurality of the content processing algorithms <NUM> to apply to the self-help content data <NUM> of the self-help content data store <NUM>, wherein the plurality of content processing algorithms <NUM> include a natural language processing algorithm <NUM>, a classifier algorithm <NUM>, and a social algorithm <NUM>.

In one embodiment, at NLP ALGORITHM SELECTED? <NUM>, the process <NUM> determines if the natural language process algorithm <NUM> is selected by the pre-processor <NUM> for application to the self-help content data <NUM>. If NLP ALGORITHM SELECTED? <NUM> is true, NLP ALGORITHM SELECTED? <NUM> proceeds to IDENTIFY CONTENT TERMS OF EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, according to one embodiment. If NLP ALGORITHM SELECTED? <NUM> is false, NLP ALGORITHM SELECTED? <NUM> proceeds to CLASSIFIER ALGORITHM SELECTED? <NUM>, according to one embodiment.

In one embodiment, at IDENTIFY CONTENT TERMS OF EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> identifies content terms of each entry of the self-help content data <NUM>.

In one embodiment, at DETERMINE TOPIC RELEVANCE SCORES FOR THE CONTENT TERMS OF EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> determines topic relevance scores for the content terms of each entry of the self-help content data <NUM>.

In one embodiment, at IDENTIFY MOST RELEVANT TOPICS BY SORTING THE TOPIC RELEVANCE SCORES FOR EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> identifies the most relevant topics by sorting the topic relevance scores for each entry of the self-help content data <NUM>.

In one embodiment, at CLASSIFIER ALGORITHM SELECTED? <NUM>, the process <NUM> determines if the classifier algorithm <NUM> is selected for execution. If CLASSIFIER ALGORITHM SELECTED? <NUM> is true, CLASSIFIER ALGORITHM SELECTED? <NUM> proceeds to IDENTIFY CONTENT TERMS OF EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, according to one embodiment. If CLASSIFIER ALGORITHM SELECTED? <NUM> is false, CLASSIFIER ALGORITHM SELECTED? <NUM> proceeds to SOCIAL ALGORITHM SELECTED? <NUM> (shown on <FIG>, according to one embodiment.

In one embodiment, at IDENTIFY CONTENT TERMS OF EACH ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> identifies content terms of each entry of the self-help content.

In one embodiment, at APPLY ONE OR MORE OF THE CONTENT TERMS AND ONE OR MORE USER CHARACTERISTICS TO A PREDICTIVE MODEL THAT IS AT LEAST PARTIALLY DEFINED USING ONE OR MORE CLASSIFIER ALGORITHMS <NUM>, the process <NUM> applies one or more of the content terms and user profile data <NUM> to a predictive model that is at least partially defined using one or more classifier algorithms <NUM>.

In one embodiment, at COMPARE AN OUTPUT OF THE PREDICTIVE MODEL TO ONE OR MORE THRESHOLDS TO DETERMINE A LIKELIHOOD OF RELEVANCE BETWEEN EACH ENTRY OF THE SELF-HELP CONTENT AND ONE OR MORE TOPICS <NUM>, the process <NUM> compares an output of the predictive model to one or more thresholds to determine a likelihood of relevance between each entry of the self-help content data <NUM> and one or more topics.

Referring now to <FIG>, in one embodiment, at SOCIAL ALGORITHM SELECTED? <NUM>, the process <NUM> determines whether a social algorithm <NUM> has been selected. If SOCIAL ALGORITHM SELECTED? <NUM> is true, SOCIAL ALGORITHM SELECTED? <NUM> proceeds to ASSIGN A TOPIC TO AN ENTRY OF THE SELF-HELP CONTENT <NUM>, according to one embodiment. If SOCIAL ALGORITHM SELECTED? <NUM> is false, SOCIAL ALGORITHM SELECTED? <NUM> proceeds to END <NUM>, according to one embodiment.

In one embodiment, at ASSIGN A TOPIC TO AN ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> assigns a topic to an entry of the self-help content data <NUM>.

In one embodiment, at PROVIDE THE TOPIC AND THE ENTRY TO USERS OF A SELF-HELP SYSTEM TO CROWDSOURCE OPINIONS OF USERS TO QUANTIFY THE RELEVANCE OF THE TOPIC TO THE ENTRY OF THE SELF-HELP CONTENT <NUM>, the process <NUM> provides a topic and the entry to users of customer self-help system <NUM> to crowdsource opinions of users to quantify the relevance of the topic to the entry of the self-help content data <NUM>.

In one embodiment, at ASSOCIATE THE ENTRY OF THE SELF-HELP CONTENT WITH THE RELEVANCE OF THE TOPIC THAT WAS QUANTIFIED BY THE CROWDSOURCE OPINIONS OF USERS OF THE SELF-HELP SYSTEM <NUM>, the process <NUM> associates the entry of the self-help content data <NUM> with the relevance of the topic that was quantified by the crowdsource opinions of users of the customer self-help system <NUM>. In one embodiment, users of the customer self-help system <NUM> quantify relevance of the topic by providing an 'up vote' or 'down vote', a 'thumbs up' or 'thumbs down', an 'agree' or a 'disagree' response, or providing optional text feedback after voting content up or down. In one embodiment, users who vote content up or down are provided with an option (e.g., a text box) to explain their reasons for their vote.

In one embodiment, at END <NUM>, the process <NUM> ends.

<FIG> illustrates a process <NUM> for generating personalized self-help content at least partially based on the user query, user profile data, and self-help content components, according to one embodiment.

Referring to <FIG> and <FIG>, the real-time process sub-system <NUM> uses the intent extractor engine <NUM> to generate the personalized self-help content data <NUM>, at least partially based on the user query data <NUM> and the user profile data <NUM>, according to one embodiment. The intent extractor engine <NUM> includes one or more intent extraction algorithms <NUM> for analyzing the user query data <NUM> and the user profile data <NUM>, according to one embodiment. The intent extraction algorithms <NUM> include a natural language process algorithm <NUM> and a classifier algorithm <NUM>, according to one embodiment.

The natural language processing algorithm <NUM> applies one or more natural language processing techniques to the user query data <NUM> and the user profile data <NUM> to determine the query intent data <NUM> of the user query data <NUM>, according to one embodiment. The natural language processing algorithm <NUM> includes a probabilistic topic model that determines one or more topics that are relevant to the user query data <NUM>, according to one embodiment. The probabilistic topic model is defined using a Latent Dirichlet allocation algorithm, according to one embodiment. The natural language process algorithm operates similar to the natural language process algorithm <NUM> (shown in <FIG>) that is described in the process <NUM> above, according to one embodiment. In one embodiment, the customer self-help system <NUM> uses either the natural language process algorithm <NUM> or the natural language process algorithm <NUM> in both process <NUM> and process <NUM>.

The classifier algorithm <NUM> includes one or more predictive models that are generated by applying one or more predictive model techniques to existing data, according to one embodiment. The classifier algorithm <NUM> is similar to the classifier algorithm <NUM> (shown in <FIG>) that is described in the process <NUM> above, according to one embodiment. In one embodiment, the customer self-help system <NUM> uses either the classifier algorithm <NUM> or the classifier algorithm <NUM> in both process <NUM> and process <NUM>.

By applying the user query data <NUM> and the user profile data <NUM> to one or more of the intent extraction algorithms <NUM>, the intent extractor engine <NUM> generates the query intent data <NUM>, according to one embodiment. The query intent data <NUM> includes one or more of user app profile data <NUM>, product version data <NUM>, user communication style preferences data <NUM>, a query summary data <NUM>, a query topic data <NUM>, and metadata <NUM>, according to various embodiments. The user app profile data <NUM> includes information representing the frequency with which a user uses the customer self-help system <NUM>, the user's credentials, and the user's role (e.g., question asking user or question answering user) within the customer self-help system <NUM>, according to one embodiment. The product version data <NUM> includes information representing a mobile, online, or desktop version of service provider product (e.g., tax return preparation system) that the user is seeking assistance with, according to one embodiment. The user communication style preferences data <NUM> include data representing whether a user prefers lengthy explanations or brief/concise explanations to user queries, according to one embodiment. The user communication style preferences data <NUM> are determined at least partially by clickstream data (e.g., up votes and down votes) for a user that is stored in the user profile data <NUM> for a user, according to one embodiment. The query summary data <NUM> includes data representing a title of the user query data <NUM>, according to one embodiment. The query topic data <NUM> includes data representing one or more topics that are representative of the user query data <NUM>, according to one embodiment.

The metadata <NUM> includes data representing user profile data <NUM> and other information that is related to the user query data <NUM>, according to one embodiment. The metadata <NUM> includes, but is not limited to, the platform of the client computing environment <NUM>, the operating system of the client computing environment <NUM>, the state from which the user submits the user query data <NUM>, a content connection type (e.g., Wi-Fi, LTE, satellite, other cellular or telecommunications standards) from which of the communication channel <NUM> and by which the client computing environment <NUM> communicates with the customer self-help system <NUM>, a date of request (e.g., during tax season), and a query tone (assertive, passive), according to various embodiments.

The intent extractor engine <NUM> provides the query intent data <NUM> to the composer <NUM>, to enable the composer <NUM> to generate the personalized self-help content <NUM>, according to one embodiment. The composer <NUM> receives the query intent data <NUM> and pulls the self-help content components data <NUM> from the self-help content data store <NUM> to populate or generate the personalized self-help content data <NUM>, which is responsive to the user query data <NUM>, according to one embodiment. The composer <NUM> matches characteristics of the query intent data <NUM> with characteristics of the self-help content components data <NUM> to determine which portions of the self-help content components data <NUM> to use to generate the personalized self-help content <NUM>, according to one embodiment.

In one embodiment, the composer <NUM> uses a cross-reference table <NUM> to match up the characteristics of the query intent data <NUM> or user query data <NUM> with characteristics of the self-help content components data <NUM>, according to one embodiment. The cross-reference table <NUM> include rows and columns that correlate the characteristics of the user of the query intent data <NUM> with the characteristics of the self-help content components <NUM>, according to one embodiment. By correlating the characteristics of the query intent data <NUM> with the characteristics of the self-help content components data <NUM>, the composer <NUM> identifies the relevant portions of the self-help content data store <NUM> that are relevant to the user query data <NUM>, in the context of the user profile data <NUM>, according to one embodiment. In one embodiment, the characteristics of the user query data <NUM> that are identified by the intent extractor engine <NUM> are the same as the characteristics of the self-help content data <NUM> that are identified by the pre-processor <NUM>, to facilitate matching the query intent data <NUM> with the self-help content components data <NUM>. By identifying and selecting relevant portions of the self-help content data store <NUM>, the composer <NUM> or the intent extractor engine <NUM> are able to personalize and improve responses that are provided in response to the user query data <NUM>, according to one embodiment.

<FIG> illustrates a process <NUM> of generating personalized self-help content with artificial intelligence in a customer self-help system, according to one embodiment. The discussion of process <NUM> references <FIG>, <FIG>, and <FIG>.

In one embodiment, at RECEIVE USER QUERY AND USER PROFILE DATA <NUM>, the process <NUM> receives the user query data <NUM> and the user profile data <NUM>.

In one embodiment, at PROVIDE ONE OR MORE OF THE USER QUERY AND THE USER PROFILE DATA TO AN INTENT EXTRACTOR ENGINE, WHEREIN THE INTENT EXTRACTOR ENGINE INCLUDES ONE OR INTENT EXTRACTION ALGORITHMS <NUM>, process <NUM> applies the user query data <NUM> and the user profile data <NUM> to the intent extractor engine <NUM>, wherein the intent extractor engine <NUM> includes one or more intent extraction algorithms <NUM>. The one or more intent extraction algorithms <NUM> include the natural language process algorithm <NUM> and the classifier algorithm <NUM>, according to one embodiment.

In one embodiment, at DETERMINE, WITH THE ONE OR MORE INTENT EXTRACTION ALGORITHMS, A QUERY INTENT THAT INCLUDES CHARACTERISTICS OF THE USER QUERY <NUM>, process <NUM> determines, with one or more intent extraction algorithms <NUM>, the query intent data <NUM> that includes characteristics of the user query data <NUM>.

In one embodiment, at PROVIDE THE QUERY INTENT TO A COMPOSER <NUM>, process <NUM> provides the query intent data <NUM> to the composer <NUM>.

In one embodiment, at EXTRACT, FROM THE SELF-HELP CONTENT DATA STORE, SELF-HELP CONTENT COMPONENTS THAT HAVE CHARACTERISTICS THAT ARE SIMILAR TO CHARACTERISTICS OF THE USER QUERY BASED ON THE QUERY INTENT <NUM>, process <NUM> extracts, from the self-help content data store <NUM>, self-help content components data <NUM> that have characteristics that are similar to characteristics of the user query data <NUM> based on the query intent data <NUM>.

In one embodiment, at AGGREGATE THE EXTRACTED SELF-HELP CONTENT COMPONENTS INTO PERSONALIZED SELF-HELP CONTENT <NUM>, process <NUM> aggregates the extracted self-help content components data <NUM> into the personalized self-help content data <NUM>. Example embodiments of the personalized self-help content data <NUM> are illustrated in <FIG> and <FIG>.

In one embodiment, at PROVIDE THE PERSONALIZED SELF-HELP CONTENT TO THE CLIENT COMPUTING ENVIRONMENT IN RESPONSE TO THE USER QUERY <NUM>, process <NUM> provides the personalized self-help content data <NUM> to the client computing environment <NUM> in response to the user query data <NUM>.

In one embodiment, at END <NUM>, process <NUM> ends.

<FIG> illustrates a process <NUM> of generating personalized self-help content with artificial intelligence in a customer self-help system, according to one embodiment.

In one embodiment, at RECEIVE A USER QUERY <NUM>, the process <NUM> receives the user query data <NUM>. The process also receives the user profile data <NUM>, according to one embodiment.

In one embodiment, at SELECT ONE OF A PLURALITY OF INTENT EXTRACTION ALGORITHMS TO ANALYZE THE USER QUERY, WHEREIN THE PLURALITY OF INTENT EXTRACTION ALGORITHMS INCLUDE ONE OR MORE OF A NATURAL LANGUAGE PROCESS (NLP) ALGORITHM AND A CLASSIFIER ALGORITHM <NUM>, the process <NUM> selects one of the plurality of intent extraction algorithms <NUM> to analyze the user query data <NUM>, wherein the plurality of intent extraction algorithms <NUM> include one or more of a natural language process algorithm <NUM> and a classifier algorithm <NUM>.

In one embodiment, at NLP ALGORITHM SELECTED? <NUM>, the process <NUM> determines if NLP ALGORITHM SELECTED? <NUM> is true. If NLP ALGORITHM SELECTED? <NUM> is true, NLP ALGORITHM SELECTED? <NUM> proceeds to IDENTIFY QUERY TERMS OF THE USER QUERY <NUM>, according to one embodiment. If NLP ALGORITHM SELECTED? <NUM> is false, NLP ALGORITHM SELECTED? <NUM> proceeds to CLASSIFIER ALGORITHM SELECTED? <NUM>, according to one embodiment.

In one embodiment, at IDENTIFY QUERY TERMS OF THE USER QUERY <NUM>, the process <NUM> identifies query terms of the user query data <NUM>.

In one embodiment, at DETERMINE TOPIC RELEVANCE SCORES FOR THE QUERY TERMS <NUM>, the process <NUM> determines a topic relevance scores for the query terms. An example of techniques that can be used to determine topic relevance scores are illustrated in <FIG> and are described in the corresponding description above.

In one embodiment, at IDENTIFY MOST RELEVANT TOPICS BY SORTING THE TOPIC RELEVANCE SCORES <NUM>, the process <NUM> identifies relevant or most relevant topics by sorting the topic relevance scores.

In one embodiment, at CLASSIFIER ALGORITHM SELECTED? <NUM>, the process <NUM> determines if the classifier algorithm <NUM> has been selected. If CLASSIFIER ALGORITHM SELECTED? <NUM> is true, CLASSIFIER ALGORITHM SELECTED? <NUM> proceeds to IDENTIFY QUERY TERMS OF THE USER QUERY <NUM>, according to one embodiment. If CLASSIFIER ALGORITHM SELECTED? <NUM> is false, CLASSIFIER ALGORITHM SELECTED? <NUM> proceeds to END <NUM>, according to one embodiment.

In one embodiment, at APPLY ONE OR MORE OF THE QUERY TERMS AND ONE OR MORE USER PROFILE DATA TO A PREDICTIVE MODEL THAT IS AT LEAST PARTIALLY DEFINED USING ONE OR MORE CLASSIFIER ALGORITHMS <NUM>, the process <NUM> applies one or more of the query terms and one or more user profile data <NUM> to a predictive model that is at least partially defined using one or more classifier algorithms <NUM>.

In one embodiment, at COMPARE AN OUTPUT OF THE PREDICTIVE MODEL TO ONE OR MORE THRESHOLDS TO DETERMINE A LIKELIHOOD OF RELEVANCE BETWEEN THE USER QUERY AND ONE OR MORE TOPICS <NUM>, the process <NUM> compares an output of the predictive model to one or more thresholds to determine a likelihood of relevance between the user query data <NUM> and one or more topics.

<FIG> is a data block diagram of an example of personalized self-help content <NUM>, according to one embodiment. The personalized self-help content <NUM> includes a user query <NUM>, universal content <NUM>, and user specific content <NUM>, according to one embodiment. The user query <NUM> is a specific illustrative example of the user query data <NUM> (shown in <FIG>). The universal content <NUM> is a specific illustrative example of the universal content data <NUM> (shown in <FIG>), which is relevant to the user query <NUM> but which is generic to the platform or operating system of the client computing environment of the user, according to one embodiment. The user specific content <NUM> is a specific illustrative example of the user specific content data <NUM> (shown in <FIG>), according to one embodiment.

The user specific content <NUM> includes instructions to "click" on "jump to donations", which indicates that the platform of the client computing environment <NUM> has been identified as a desktop or laptop computer where clicking a mouse is likely how a user is interacting with the user experience, according to one embodiment.

The user specific content <NUM> includes instructions to "tap" on "take me to my return", which indicates that the platform of the client computing environment <NUM> has been identified as a mobile device or a touch screen-based device where tapping a screen is likely how a user is interacting with the user experience, according to one embodiment.

As discussed in more detail above, using the above embodiments, with little or no modification and/or input, there is considerable flexibility, adaptability, and opportunity for customization to meet the specific needs of various parties under numerous circumstances.

In the discussion above, certain aspects of one embodiment include process steps and/or operations and/or instructions described herein for illustrative purposes in a particular order and/or grouping. However, the particular order and/or grouping shown and discussed herein are illustrative only and not limiting. Those of skill in the art will recognize that other orders and/or grouping of the process steps and/or operations and/or instructions are possible and, in some embodiments, one or more of the process steps and/or operations and/or instructions discussed above can be combined and/or deleted. In addition, portions of one or more of the process steps and/or operations and/or instructions can be re-grouped as portions of one or more other of the process steps and/or operations and/or instructions discussed herein. Consequently, the particular order and/or grouping of the process steps and/or operations and/or instructions discussed herein do not limit the scope of the invention as claimed below.

The present invention has been described in particular detail with respect to specific possible embodiments. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. For example, the nomenclature used for components, capitalization of component designations and terms, the attributes, data structures, or any other programming or structural aspect is not significant, mandatory, or limiting, and the mechanisms that implement the invention or its features can have various different names, formats, and/or protocols. Further, the system and/or functionality of the invention may be implemented via various combinations of software and hardware, as described, or entirely in hardware elements. Also, particular divisions of functionality between the various components described herein are merely exemplary, and not mandatory or significant. Consequently, functions performed by a single component may, in other embodiments, be performed by multiple components, and functions performed by multiple components may, in other embodiments, be performed by a single component.

Some portions of the above description present the features of the present invention in terms of algorithms and symbolic representations of operations, or algorithm-like representations, of operations on information/data. These algorithmic and/or algorithm-like descriptions and representations are the means used by those of skill in the art to most effectively and efficiently convey the substance of their work to others of skill in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs and/or computing systems. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as steps or modules or by functional names, without loss of generality.

Unless specifically stated otherwise, as would be apparent from the above discussion, it is appreciated that throughout the above description, discussions utilizing terms such as, but not limited to, "activating," "accessing," "adding," "aggregating," "alerting," "applying," "analyzing," "associating," "calculating," "capturing," "categorizing," "classifying," "comparing," "creating," "defining," "detecting," "determining," "distributing," "eliminating," "encrypting," "extracting," "filtering," "forwarding," "generating," "identifying," "implementing," "informing," "monitoring," "obtaining," "posting," "processing," "providing," "receiving," "requesting," "saving," "sending," "storing," "substituting," "transferring," "transforming," "transmitting," "using," etc., refer to the action and process of a computing system or similar electronic device that manipulates and operates on data represented as physical (electronic) quantities within the computing system memories, resisters, caches or other information storage, transmission or display devices.

The present invention also relates to an apparatus or system for performing the operations described herein. This apparatus or system may be specifically constructed for the required purposes, or the apparatus or system can comprise a general purpose system selectively activated or configured/reconfigured by a computer program stored on a computer program product as discussed herein that can be accessed by a computing system or other device.

Those of skill in the art will readily recognize that the algorithms and operations presented herein are not inherently related to any particular computing system, computer architecture, computer or industry standard, or any other specific apparatus. Various general purpose systems may also be used with programs in accordance with the teaching herein, or it may prove more convenient/efficient to construct more specialized apparatuses to perform the required operations described herein. The required structure for a variety of these systems will be apparent to those of skill in the art. In addition, the present invention is not described with reference to any particular programming language and it is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to a specific language or languages are provided for illustrative purposes only and for enablement of the contemplated best mode of the invention at the time of filing.

The present invention is well suited to a wide variety of computer network systems operating over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to similar and/or dissimilar computers and storage devices over a private network, a LAN, a WAN, a private network, or a public network, such as the Internet.

It should also be noted that the language used in the specification has been principally selected for readability, clarity and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the claims below.

Claim 1:
A customer self-help system, comprising:
at least one processor;
at least one communication channel coupled to the at least one processor; and
at least one memory coupled to the at least one processor, the at least one memory having stored therein instructions which when executed by any set of the at least one processor, perform a process for generating personalized self-help content that is responsive to a user query, the process including:
storing (<NUM>) self-help content data in a self-help content data store, wherein the self-help content data comprise service provider generated content data and user generated content data;
determining (<NUM>) self-help content characteristics representing a plurality of characteristics of the self-help content data stored in the self-help content data store using one or more content processing algorithms;
modifying (<NUM>) the self-help content data store to include the characteristics of the self-help content to categorize the self-help content data into self-help content components;
receiving, with a customer self-help system, user query data representing a user query having a plurality of query terms;
applying one or more intent extraction algorithms to the user query data to generate query intent data representing a query intent for the user query, wherein the query intent data includes user query characteristics data representing a plurality of characteristics of the user query;
identifying relevant portions of the self-help content data by searching the self-help content data store for self-help content components that have characteristics that match one or more of the characteristics of the user query;
aggregating (<NUM>) the relevant portions of the self-help content data into personalized self-help content data representing personalized self-help content that is relevant to and responsive to the user query by:
matching characteristics of the query intent data with characteristics of the self-help content components to determine which of the self-help content components are responsive to the user query, and
combining the self-help content components that are responsive to the user query into
the personalized self-help content data; and
providing (<NUM>) the personalized self-help content data to a client computing environment from which the user query data was received.