Method and system for creating structured data using machine learning extracts and semantic graphs to facilitate search, recommendations and discovery
A system using machine learning and semantic graphs addresses the challenge of finding content in a vast metadata landscape by enhancing search accuracy and reducing frustration through contextually relevant recommendations.
Patent Information
- Application Number
- JP2020573388
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-02-28
- Filing Date
- 2019-09-04
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2039-09-04
AI Technical Summary
Consumers face difficulty in finding desirable content due to the vast amount of unstructured metadata, leading to 'show dumping', where traditional search and recommendation systems fail to provide accurate results as the amount of content increases, and existing technologies lack semantic understanding.
A system combining machine learning techniques with semantic graphs to analyze user inputs, identify relevant entities, and generate structured data for improved search, recommendation, and discovery mechanisms, using a semantic graph to determine the relevance of entities within a text string.
Enhances search accuracy by providing contextually relevant results, reducing consumer frustration, and increasing viewership for content owners by leveraging the importance of nodes in a semantic graph to improve F1 scores.
Smart Images

Figure 0007616805000005 
Figure 0007616805000006 
Figure 0007616805000007
Abstract
Description
[Background technology]
[0001] Consumers today have the advantage of choice, but from a vast array of content including movies, programs, news, and short-form video from an array of linear and streaming services. With so much content available for consumption, consumers may find it difficult to filter this content to find what they want to view. In fact, too much available content can lead to a phenomenon known as "show dumping," in which consumers easily abandon a program due to challenges associated with accessing it. Show dumping creates significant problems for both content owners and content consumers. Content owners may invest large amounts in producing content, but struggle to ensure that consumers have access to that content. Similarly, content consumers are unable to find desirable content because the content is difficult to find, despite being readily available. Summary of the Invention [Means for solving the problem]
[0002] In view of such problems, methods and systems are described herein for applications that allow users to more quickly and easily find the content they want to consume. Providing this solution requires a deeper understanding of the content. For example, as the amount of content increases, traditional search and recommendation techniques increasingly fail users because there is so much content and little structured metadata. Once this problem is understood, the solution described herein can be used to overcome this problem. For example, traditional search and recommendation systems rely on entity extraction based on statistics-driven models. For example, in such systems, identified terms (e.g., descriptive terms in metadata for media assets) are assigned other related terms based on statistics indicating the likelihood that the related terms correspond to the identified terms. Thus, when an input (e.g., a user search request) is received, the system compares the terms in the input with the related terms. If one or more of the related terms correspond to the terms in the input, the system determines a match.
[0003] However, as the amount of content grows, and therefore the amount of terms, related terms, etc. identified for that content grows exponentially, these traditional statistically-driven models for entity extraction are unable to provide accurate search results tailored to the desires of individual users. For example, despite the existence of ever more powerful processors capable of processing ever-increasing amounts of data, these systems have yet to solve the aforementioned problems due to their inability to interpret inputs other than the traditional statistically-driven models. In particular, these systems are unable to gain a semantic understanding of a particular input and use this information to drive the search, recommendation, and discovery process.
[0004] At the threshold level, as noted above, adding more information (e.g., regarding semantic relationships) to a system that is overloaded with excess data only seems to exacerbate the existing problems. However, recent advances in machine learning provide ways to efficiently use this increased data to provide desired results. Specifically, by using a specific architecture that features four distinct stages, namely, pronoun resolution, candidate identification, semantic graph construction, and node scoring, the systems and methods described herein provide applications that provide an enhanced F1 score, which is the harmonic mean between precision and recall and is used as a statistical measure to evaluate performance, when providing search, recommendation, and discovery mechanisms. That is, the systems and methods herein train machine learning models that automatically determine the relevance of entities in a given text string by leveraging the importance of nodes in a semantic graph to provide better results to users. In practical terms, combining machine learning techniques with semantic graphs in this unique manner adds much-needed context, reducing consumer frustration as well as improving audience reach for content owners.
[0005] In some aspects, the methods and systems described herein provide search, recommendation, and discovery mechanisms. For example, the system may collect a dataset. A user may input a text string from an external dataset, or the system may actively collect data from the web to input data into the dataset. The system may then perform pronoun resolution across the dataset. For example, the system may identify and label each pronoun in a text string in the dataset. The system may then perform candidate identification across the dataset. For example, the system may identify all noun chunks in a text string in the dataset by applying POS (part of speech) tags to the dataset. The system may then create a semantic graph that identifies multiple key entities and multiple associations between the multiple key entities. The semantic graph may include nodes corresponding to candidates from the dataset connected by directed edges that represent semantic relationships between the nodes. The system may then receive user input via a user input interface. The user input may be a text string or an utterance. The system may then process the user input using the semantic graph. For example, the system may match candidates from the user input with nodes in the semantic graph. By traversing the dependency tree, the system may learn the meaning of the input. The system may further learn relevant information related to the input. The system may then generate output based on the processed user input. For example, the output may include an answer to the user input, a recommendation based on the user input, information related to the user input, or other information.
[0006] In some aspects, the method and system provide content recommendations by automatically determining the relevance of entities in a text string. For example, the system may receive, via a user input interface, a text string such as "What was the movie with the iceberg? It sinks the ship." The system may then identify, via a control circuit, a pronoun in the text string. For example, the system may identify "it" as a pronoun. The system may then convert the pronoun to an appropriate noun to create a converted text string. For example, the system may determine that the pronoun "it" refers to the noun "iceberg" to create a converted text string of "What was the movie with the iceberg? The iceberg sinks the ship." The system may then identify, via a control circuit, a noun chunk in the converted text string. For example, the system may identify the noun "iceberg" as the first noun chunk and the noun "ship" as the second noun chunk. The system may then process the noun chunks using a classifier based on a semantic graph featuring a plurality of noun chunks, where each of the plurality of noun chunks is scored based on a closeness centrality metric and a betweenness centrality metric, where the closeness centrality metric is a measure of the sum of the lengths of the shortest paths between each node and each of the other nodes in the semantic graph, and where the betweenness centrality metric is a measure of the centrality of each node in the semantic graph. For example, the semantic graph may feature a plurality of nouns as nodes, where the nouns correspond to nouns of a data set from a particular source, and / or of a particular subject. The system may then determine entities by the control circuitry based on processing the noun chunks using the classifier. For example, the system may determine entities (e.g., nouns, entities, titles of media content, computer-generated queries, etc.) by determining a score for each node in the semantic graph. The system may then determine the node with the highest score and search for the entity corresponding to that node.The system may then generate the entity for display on a display device in response to the received text string. For example, the system may include the entity in a computer-generated response to the user. The computer-generated response may include a list of search results featuring media content that corresponds to the entity.
[0007] It should be noted that the methods and systems described herein for one embodiment may be combined with other embodiments described herein. The present invention provides, for example, the following: (Item 1) 1. A method for providing content recommendations by automatically determining relevance of entities in a text string, the method comprising: receiving, by a user input interface, a text string; identifying, by a control circuit, a pronoun within the text string; converting, by said control circuitry, said pronouns to nouns to create a converted text string; identifying, by the control circuitry, noun chunks within the converted text string; processing, by the control circuitry, the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; determining, by the control circuitry, an entity based on processing the noun chunk using the classifier; and generating the entity for display on a display device in response to the received text string; A method comprising: (Item 2) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; The method according to item 1, comprising: (Item 3) 3. The method of claim 1 or 2, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 4) 4. The method of claim 1, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation, or discovery mechanism. (Item 5) 5. The method of any one of claims 1 to 4, wherein creating the transformed text string by transforming the pronouns to the nouns comprises transforming the pronouns using a coreference transformation. (Item 6) 6. The method of claim 1, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 7) 7. The method according to any one of items 1 to 6, wherein the semantic graph is a knowledge base representing semantic relationships between concepts in a network. (Item 8) 13. A computer program comprising computer readable instructions which, when executed by each of one or more processors, cause the one or more processors to perform the method recited in any of the preceding items. (Item 9) 1. A system for providing content recommendations by automatically determining relevance of entities in a text string, the system comprising: a user input interface configured to receive a text string; A control circuit, the control circuit comprising: identifying pronouns within the text string; creating a transformed text string by transforming the pronouns into nouns; identifying noun chunks within the converted text string; processing the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; determining entities based on processing the noun chunks using the classifier; and generating the entity for display on a display device in response to the received text string; a control circuit configured to Including, the system. (Item 10) The control circuit includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; 10. The system of claim 9, configured to determine entities based on processing the noun chunks using the classifier. (Item 11) 11. The system of claim 9 or 10, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 12) 12. The system of claim 9, wherein the control circuitry is configured to generate the entity for display in response to the received text string by generating the entity for display in a search, recommendation, or discovery mechanism. (Item 13) 13. The system of claim 9, wherein the control circuitry is configured to create the transformed text string by transforming the pronoun into the noun using a coreference transformation. (Item 14) 14. The method of claim 9, wherein the control circuitry is configured to identify the noun chunks in the converted text string by using part-of-speech tagging to identify the noun chunks. (Item 15) 15. The method according to claim 9, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. [Brief description of the drawings]
[0008] These and other objects and advantages of the present disclosure will become apparent from a consideration of the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout.
[0009] [Figure 1] FIG. 1 illustrates an illustrative example of a user interface according to some embodiments of the present disclosure.
[0010] [Diagram 2] FIG. 2 illustrates another illustrative example of a user interface according to some embodiments of the present disclosure.
[0011] [Diagram 3] FIG. 3 is a block diagram of an example user equipment device according to some embodiments of the disclosure.
[0012] [Figure 4] FIG. 4 is a block diagram of an exemplary media system according to some embodiments of the disclosure.
[0013] [Diagram 5] FIG. 5 shows a table featuring the results of an example model, according to some embodiments of the present disclosure.
[0014] [Figure 6] FIG. 6 is an illustrative example of an architecture that may be used to provide search, recommendation, and discovery mechanisms in accordance with some embodiments of the present disclosure.
[0015] [Figure 7] FIG. 7 illustrates an example semantic graph in accordance with some embodiments of the present disclosure.
[0016] [Figure 8] 8-10 show illustrative examples of extracted entities and casts according to some embodiments of the present disclosure. [Figure 9] 8-10 show illustrative examples of extracted entities and casts according to some embodiments of the present disclosure. [Figure 10] 8-10 show illustrative examples of extracted entities and casts according to some embodiments of the present disclosure.
[0017] [Figure 11]FIG. 11 shows an illustrative example of a user interface according to some embodiments of the present disclosure.
[0018] [Figure 12] FIG. 12 illustrates another illustrative example of a user interface according to some embodiments of the present disclosure.
[0019] [Figure 13] FIG. 13 illustrates yet another illustrative example of a user interface according to some embodiments of the present disclosure.
[0020] [Figure 14] FIG. 14 illustrates an example flowchart of a process used to provide a search, recommendation, and discovery mechanism according to some embodiments of the present disclosure.
[0021] [Figure 15] FIG. 15 illustrates an example flowchart of a process used to determine an entity according to some embodiments of the present disclosure.
[0022] [Figure 16] FIG. 16 illustrates an illustrative example of an architecture that may be used to provide search, recommendation, and discovery mechanisms in accordance with some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Described herein are methods and systems that use a combination of semantic graphs and machine learning to automatically generate structured data, recognize important entities / keywords, and create weighted connections that generate more relevant search results and recommendations. For example, by inferring related entities, metadata results become richer and more meaningful, accelerating consumer decision making and improving audience reach for content owners.
[0024] As referred to herein, a semantic graph can be a network that represents semantic relationships between concepts. In particular, the semantic graphs described herein can represent semantic relationships between different parts of speech. For example, in this network, the semantic graph can consist of vertices that correspond to concepts and edges, which represent semantic relationships between the concepts.
[0025] For example, in a semantic graph, concepts may represent each of the eight parts of speech (e.g., noun, verb, adjective, adverb, preposition, conjunction, including coordinating conjunctions, subordinating conjunctions, conjunctive adverbs, correlative conjunctions, and / or interjections). These parts of speech, and metadata indicating the part of speech of each word (i.e., concept) in the semantic graph, are used by the system to determine how words (e.g., representing nodes in the graph) can be combined to create interpretable sentences. The connections between these words are then ranked to interpret queries posed to the system (e.g., by users) and generate responses to the queries.
[0026] FIG. 1 illustrates an application of the method and system. In FIG. 1, a user interface 100 is displayed on a display device. The user interface 100 has a text string 102 received (e.g., via user input to a user input interface). In response, the system generates program recommendations 104 for display. The following example illustrates how keywords in a semantic graph can indicate a deeper understanding of the content and provide a richer search experience. For example, for the text string 102 ("Movies in which a person falls in love with an operating system"), the system via the semantic graph responds with a program recommendation 102 corresponding to the movie "Her". In this embodiment, the semantic graph is constructed based on a dataset that includes keywords and depictions from plot details of media content. It should be noted that the dataset can include any type of data from any data source and / or based on a particular subject. In FIG. 1, the system has determined that the words "love" and "operating system" in the text string 102 are highly relevant and contextual keywords. The system flags semantic keywords as "Good_Keyword" and indexes these keywords with high weight in the search system.
[0027] FIG. 2 illustrates another application of the method and system. In FIG. 2, user interface 200 is a display on a display device. User interface 200 receives a text string 202 (e.g., via user input to a user input interface), which corresponds to the movie "Argo." For example, in response to a user request, the system may recommend other content that shares similar characteristics to "Argo." In response, the system generates program recommendations 204 and 206 for display. In addition, the system generates a score for each of the similar movies. For example, program recommendation 204 includes score 208. Additionally or alternatively, the system may generate a link for accessing a program corresponding to the program recommendation. For example, FIG. 2 includes link 210, which is a link for accessing a program corresponding to program recommendation 204.
[0028] In FIG. 2, entities (e.g., program recommendations 204 and 206) are considered semantic concepts, and entity similarity is used in recommendations. For example, in movies, “Argo,” “CIA,” “thriller,” and “war” are important subject, genre, and thematic concepts. The system leverages one or more of these to recommend similar movies such as “Fair Game” and “Syriana.” For example, the semantic graph described herein improves search results by weighting the most important nodes from unstructured text (e.g., media content metadata). In contrast, keywords extracted from models driven by statistical methods such as Term Frequency-Inverse Document Frequency (“TF-IDF”) do not distinguish between contextual and irrelevant elements. TF-IDF is a numerical statistic intended to reflect how important a word is to documents in a collection or corpus. It is often used as a weighting factor in information retrieval, text mining, and user modeling search. TF-IDF values increase proportionally to the number of times a word appears in a document, offset by the number of documents in the corpus that contain the word, but this helps reconcile the fact that some words generally occur more frequently. In such cases, a common term like "love" would have high term and document frequency and would not be considered an appropriate weight keyword in a traditional TF-IDF-based model. In contrast, the semantic graph approach improves on traditional statistics by measuring keyword relevance based on context importance. The determination of context importance is based on the position of the keyword in the semantic graph and the keyword's relationships to other concepts, as explained below.
[0029] It should be noted that the semantic graph mechanism can be applied to a variety of content, including media assets such as movies and television programs, as well as news articles, short-form content, and even one-off events such as award shows. In fact, the semantic graph mechanism can be applied to any media asset. As referred to herein, the terms "media asset" and "content" should be understood to mean a user electronically consumable set of content such as television programs, pay-per-view programs, on-demand programs (such as video-on-demand (VOD) systems), Internet content (e.g., streaming content, downloadable content, webcasts, etc.), video clips, audio, content information, photos, rotating images, documents, playlists, websites, articles, books, e-books, blogs, chat sessions, social media, applications, games, and / or any other media or multimedia, and / or combinations thereof. The guidance application also allows users to navigate among and locate content. As referred to herein, the term "multimedia" should be understood to mean content that utilizes at least two of the above different content forms, e.g., text, audio, images, video, or interactive content forms. The content may be recorded, played, displayed, or accessed by user equipment devices, but may also be part of a live performance.
[0030] For any of these media assets, information determined from the semantic graph may be applied to improve content discovery and generate relevant results and meaningful recommendations for consumers. Additionally or alternatively, the semantic graph may be used by the system for the identification of trending topics. For example, the system may extract trending topics from unstructured sources such as Google News. For example, from news articles, the system may highlight the most relevant entities and suppress noisy entities of fleeting mentions, and the node scoring mechanism of the semantic graph may evaluate the most relevant entities.
[0031] Additionally or alternatively, the semantic graph may be used by the system to extract named entities. For example, the system may find named entities in text and classify them into predefined categories such as people's names, organizations, places, expressions of time, quantities, monetary values, percentages, etc. The system may then automatically extract contextually significant entities or keywords from unstructured text (e.g., news articles, content descriptions) for content discovery.
[0032] Additionally or alternatively, the semantic graph may be used by the system for role importance, which is a classification of important and non-important cast members and roles in the content based on the node scores of the semantic graph. For example, in Figures 8 and 9, important roles determined to achieve high scores are shown. These important roles may be displayed in the displays of Figures 1 and 2.
[0033] Note also that the system can use semantic graphs in combination with machine learning to better understand content and quickly identify relevant entities / keywords based on context, extending entertainment discovery beyond the sometimes laborious "search and find" approach. Thus, viewers no longer need to remember exact titles or characters, but can instead use natural language to find content of interest. This foundation for context-relevant voice search results and recommendations satisfies consumers' desire to quickly find the right content and enables content owners to grow audiences for their long-tail catalogs.
[0034] FIG. 3 illustrates a generalized embodiment of an exemplary user equipment device 300 that may provide the search, recommendation, and discovery mechanisms discussed herein. For example, user equipment device 300 may be a smartphone device or a remote control. In another example, user equipment system 301 may be a user television equipment system. In such a case, the device may store a semantic graph in memory and / or access the semantic graph to process requests. User television equipment system 301 may include a set-top box 316. Set-top box 316 may be communicatively connected to speaker 314 and display 312. In some embodiments, display 312 may be a television display or a computer display. In some embodiments, set-top box 316 may be communicatively connected to user interface input 310. In some embodiments, user interface input 310 may be a remote control. Set-top box 316 may include one or more circuit boards. In some embodiments, the circuit boards may include processing circuitry, control circuitry, and storage (e.g., RAM, ROM, hard disk, removable disk, etc.). In some embodiments, the circuit board may include input / output paths. A more specific implementation of the user equipment device is described below in connection with FIG. 4. Each one of the user equipment devices 300 and the user equipment system 301 may receive content and data via input / output (hereinafter, I / O) paths 302. The I / O paths 302 may provide content (e.g., broadcast programs, on-demand programs, Internet content, content available over a local area network (LAN) or wide area network (WAN), and / or other content) and data to the control circuitry 304, which includes processing circuitry 306 and storage device 308. The control circuitry 304 may be used to send and receive commands, requests, and other appropriate data using the I / O paths 302. The I / O paths 302 may connect the control circuitry 304 (and specifically the processing circuitry 306) to one or more communication paths (described below).An I / O function may be provided by one or more of these communication paths, but is shown as a single path in FIG. 3 to avoid overcomplicating the drawing.
[0035] The control circuitry 304 may be based on any suitable processing circuitry, such as processing circuitry 306. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores) or a supercomputer. In some embodiments, the processing circuitry may be distributed across multiple separate processors or processing units, such as multiple of the same type of processing unit (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). In some embodiments, the control circuitry 304 executes instructions for an application stored in memory (e.g., storage 308). In particular, the control circuitry 304 may be instructed by the application to perform the functions discussed above and below. For example, the application may provide instructions to the control circuitry 304 to generate a media guidance display. In some implementations, any actions performed by the control circuitry 304 may be based on instructions received from an application.
[0036] In a client / server based embodiment, the control circuitry 304 may include appropriate circuitry for communicating with a guidance application server or other network or server. Instructions for implementing the functionality described above may be stored on the guidance application server. The communications circuitry may include a cable modem, an integrated services digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, an Ethernet card, a wireless modem for communicating with other equipment, or other appropriate communications circuitry. Such communications may involve the Internet or any other suitable communications network or path (described in more detail in connection with FIG. 4). Additionally, the communications circuitry may include circuitry to enable peer-to-peer communication of user equipment devices, or communication of user equipment devices at remote locations from one another (described in more detail below).
[0037] The memory may be electronic storage provided as storage device 308 that is part of control circuitry 304. As referred to herein, the phrase "electronic storage device" or "storage device" should be understood to mean any device for storing electronic data, computer software, or firmware, such as random access memory, read-only memory, hard drives, optical drives, digital video disc (DVD) recorders, compact disc (CD) recorders, BLU-RAY® Disc (BD) recorders, BLU-RAY® 3D Disc recorders, digital video recorders (DVRs; sometimes referred to as personal video recorders or PVRs), solid state devices, quantum storage devices, game consoles, game media, or other suitable fixed or removable storage devices, and / or any combination thereof. Storage 308 may be used to store various types of content described herein, as well as the media guidance data described above. Non-volatile memory may also be used (e.g., to run boot routines and other instructions). Cloud-based storage, as described in connection with FIG. 4, may be used to supplement or in place of storage 308.
[0038] The control circuitry 304 may include video generation and tuning circuitry, such as one or more analog tuners, one or more MPEG-2 decoders or other digital decoding circuitry, high definition tuners, or any other suitable tuning or video circuitry, or a combination of such circuits. Encoding circuitry (e.g., for converting over-the-air, analog, or digital signals to MPEG signals for storage) may also be provided. The control circuitry 304 may also include scaler circuitry for upconverting and downconverting content to a preferred output format of the user equipment 300. The circuitry 304 may also include digital-to-analog converter circuitry and analog-to-digital converter circuitry for converting between digital and analog signals. The tuning and encoding circuitry may be used by the user equipment device to receive and display, play, or record content. The tuning and encoding circuitry may also be used to receive guidance data. For example, the circuitry described herein, including tuning, video generation, encoding, decoding, encryption, decoding, scaler, and analog / digital circuitry, may be implemented using software running on one or more general-purpose or special-purpose processors. Multiple tuners may be provided to handle simultaneous tuning functions (e.g., monitoring and recording functions, picture-in-picture (PIP) functions, multi-tuner recording, etc.) If storage 308 is provided as a device separate from user equipment 300, the tuning and encoding circuitry (including multiple tuners) may be associated with storage 308.
[0039] A user may send instructions to control circuitry 304 using user input interface 310. User input interface 310 may be any suitable user interface, such as a remote control, a mouse, a trackball, a keypad, a keyboard, a touch screen, a touch pad, a stylus input, a joystick, a voice recognition interface, or other user input interface. Display 312 may be provided as a standalone device or may be integrated with other elements of each one of user equipment device 300 and user equipment system 301. For example, display 312 may be a touch screen or a touch-sensitive display. In such circumstances, user input interface 310 may be integrated or combined with display 312. The display 312 may be one or more of a monitor, a television, a liquid crystal display (LCD) for a mobile device, an amorphous silicon display, a low temperature polysilicon display, an electronic ink display, an electrophoretic display, an active matrix display, an electrowetting display, an electrofluidic display, a cathode ray tube display, a light emitting diode display, an electroluminescent display, a plasma display panel, a high performance addressing display, a thin film transistor display, an organic light emitting diode display, a surface conduction electron emitter display (SED), a laser television, a carbon nanotube, a quantum dot display, an interferometric modulator display, or other suitable device for displaying visual images. In some embodiments, the display 312 may be HDTV compatible. In some embodiments, the display 312 may be a 3D display, and interactive applications and any suitable content may be displayed in 3D. A video card or graphics card may generate output to the display 312. The video card may provide various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2 / MPEG-4 decoding, television output, or the ability to connect multiple monitors. The video card may be any of the processing circuitry described above in connection with control circuitry 304.A video card may be integrated with control circuitry 304. Speakers 314 may be provided integrated with other elements of each of user equipment device 300 and user equipment system 301, or may be stand-alone units. Audio components of video and other content displayed on display 312 may be played through speakers 314. In some embodiments, the audio may be delivered to a receiver (not shown), which processes and outputs the audio via speakers 314.
[0040] The guidance application may be implemented using any suitable architecture. For example, it may be a standalone application implemented entirely on each one of user equipment device 300 and user equipment system 301. In such an approach, the application's instructions are stored locally (e.g., in storage 308) and data used by the application is periodically downloaded (e.g., using an out-of-band feed, an Internet resource, or another suitable approach). Control circuitry 304 may retrieve the application's instructions from storage 308 and process the instructions to generate any of the displays discussed herein. Based on the processed instructions, control circuitry 304 may determine an action to perform when input is received from input interface 310. For example, up and down movement of a cursor on a display may be indicated by the processed instructions when input interface 310 indicates that the up / down button has been selected.
[0041] In some embodiments, the application is a client / server based application. Data used by a thick or thin client implemented on each one of the user equipment devices 300 and user equipment systems 301 is retrieved on demand by issuing requests to a server remote to each one of the user equipment devices 300 and user equipment systems 301. In one example of a client / server based guidance application, the control circuitry 304 executes a web browser that interprets web pages provided from a remote server. For example, the remote server may store instructions for the application on a storage device. The remote server may process the stored instructions using circuitry (e.g., the control circuitry 304) to generate the displays discussed above and below. The client device may receive the displays generated by the remote server and display the contents of the displays locally on the equipment device 300. In this manner, the processing of the instructions is performed remotely by the server while the resulting displays are provided locally on the equipment device 300. The equipment device 300 may receive inputs from a user via the input interface 310 and send those inputs to the remote server for processing and generating corresponding displays. For example, the appliance device 300 may send a communication to the remote server indicating that the up / down button was selected via the input interface 310. The remote server may process instructions according to the input and generate a display of the application corresponding to the input (e.g., a display to move the cursor up or down). The generated display is then sent to the appliance device 300 for presentation to the user.
[0042] In some embodiments, the application is downloaded and interpreted or otherwise executed by an interpreter or virtual machine (executed by control circuitry 304). In some embodiments, the guidance application may be encoded in ETV Binary Interchange Format (EBIF) and received by control circuitry 304 as part of an appropriate feed and interpreted by a user agent executing on control circuitry 304. For example, the guidance application may be an EBIF application. In some embodiments, the guidance application may be defined by a series of JAVA-based files that are received and executed by a local virtual machine or other suitable middleware executed by control circuitry 304. In some such embodiments (e.g., those using MPEG-2 or other digital media encoding schemes), the guidance application may be encoded and transmitted in an MPEG-2 Object Carousel, for example, with the MPEG audio and video packets of the program.
[0043] Each one of user equipment devices 300 and user equipment systems 301 of FIG. 3 may be implemented in system 400 of FIG. 4 as user television equipment 402, user computer equipment 404, wireless user communications devices 406, or any other type of user equipment suitable for accessing content, such as non-portable gaming devices. For brevity, these devices may be collectively referred to herein as user equipment or user equipment devices and may be substantially similar to the user equipment devices described above. The user equipment devices may function as standalone devices or may be part of a network of devices, although applications may be implemented on the user equipment devices. Various network configurations of devices may be implemented, as described in more detail below.
[0044] User equipment devices utilizing at least some of the system features described above in connection with FIG. 3 may not be classified solely as user television equipment 402, user computer equipment 404, or wireless user communications devices 406. For example, user television equipment 402 may be Internet-enabled, allowing access to the Internet, as may some user computer equipment 404, while user computer equipment 404, like some television equipment 402, may include a tuner, allowing access to television programming. Applications may have the same layout on various types of user equipment or may be tailored to the display capabilities of the user equipment. For example, on user computer equipment 404, a guidance application may be provided as a website accessed by a web browser. In another example, the guidance application may be scaled down for wireless user communications devices 406.
[0045] In system 400, there are typically multiple of each type of user equipment device, although to avoid overcomplicating the drawing, only one of each is shown in Figure 4. Furthermore, each user may utilize multiple types of user equipment devices and multiple of each type of user equipment device.
[0046] In some embodiments, a user equipment device (e.g., user television equipment 402, user computer equipment 404, wireless user communication device 406) may be referred to as a "second screen device." For example, the second screen device may supplement the content presented on the first user equipment device. The content presented on the second screen device may be any appropriate content that supplements the content presented on the first device. In some embodiments, the second screen device provides an interface for adjusting settings and display settings of the first device. In some embodiments, the second screen device is configured for interacting with other second screen devices or for interacting with a social network. The second screen device may be located in the same room as the first device, in another room in the same house or building but different from the first device, or in a different building from the first device.
[0047] A user may also define various settings to maintain consistent application settings between in-home and remote devices. Settings include the settings described herein, channel and program favorites, programming settings that the guidance application utilizes to make programming recommendations, display preferences, and other desired guidance settings. For example, if a user sets a channel as a favorite on a website such as www.Tivo.com on an office personal computer, the same channel appears on the user's home devices (e.g., the user's television equipment and the user's computer equipment) and, if desired, on the user's mobile devices. Thus, changes made on one user equipment device may change the guidance experience on other user equipment devices, whether they are the same or different types of user equipment devices. Additionally, changes made may be based on settings entered by the user and on user activity monitored by the guidance application.
[0048] User equipment devices may be coupled to communications network 414. That is, user television equipment 402, user computer equipment 404, and wireless user communications device 406 are coupled to communications network 414 via communications paths 408, 410, and 412, respectively. Communications network 414 may be one or more networks including the Internet, a cellular network, a mobile voice or data network (e.g., a 4G or LTE network), a cable network, a public switched telephone network, or other types of communications networks, or a combination of communications networks. Paths 408, 410, and 412, separately or together, may include one or more communications paths, such as satellite paths, fiber optic paths, cable paths, paths supporting Internet communications (e.g., IPTV), free space connections (e.g., for broadcast or other wireless signals), or other suitable wired or wireless communications paths, or a combination of such paths. Path 412 is drawn with a dotted line in the exemplary embodiment shown in Figure 4 to indicate that it is a wireless path, and paths 408 and 410 are drawn with a solid line to indicate that they are wired paths (although these paths could be wireless paths if desired). Communication with a user equipment device may be provided by one or more of these communication paths, but are shown in Figure 4 as a single path between each device to avoid overcomplicating the drawing.
[0049] Although communication paths are not depicted between the user equipment devices, these devices may communicate directly with each other via communication paths such as those described above in connection with paths 408, 410, and 412, as well as other short-range point-to-point communication paths, such as a USB cable, an IEEE 1394 cable, wireless paths (e.g., Bluetooth, infrared, IEEE 402-11x, etc.), or other short-range communications via wired or wireless paths. BLUETOOTH is a certification mark owned by Bluetooth SIG, INC. User equipment devices may also communicate directly with each other via indirect paths via communications network 414.
[0050] System 400 includes a remote network 424. Remote network 424 may be a cloud-based network including multiple servers and devices for content delivery. For example, remote network 424 may include origin server 417 and edge server 419. For example, a content delivery network (CDN) may have edge servers store (cache) content in strategic locations to reduce the load on one or more origin servers. By placing static assets such as images, HTML, JavaScript files (and possibly other content) as close as possible to the requesting client machines, edge server caches can reduce the time it takes to load web resources. System 400 includes a content source 416 and a media guidance data source 418 coupled to communications network 414 via communications paths 420 and 422, respectively. Paths 420 and 422 may include any of the communications paths described above in connection with paths 408, 410, and 412. Communication between content source 416 and media guidance data source 418 may be via one or more communications paths, which are shown in FIG. 4 as paths 420 and 422 to avoid overcomplicating the drawing. Additionally, there may be more than one of each of content source 416 and media guidance data source 418, although only one of each is shown in FIG. 4 to avoid overcomplicating the drawing. (Different types of each of these sources are described below.) If desired, content source 416 and media guidance data source 418 may be integrated into one source device. Although communication between sources 416 and 418 and user equipment devices 402, 404, and 406 is shown as being via communications network 414, in some embodiments sources 416 and 418 may communicate directly with user equipment devices 402, 404, and 406 via communications paths (not shown), such as the communications paths described above in connection with paths 408, 410, and 412.
[0051] The content sources 416 may include one or more types of content distribution equipment, including television distribution facilities, cable system headends, satellite distribution facilities, programming sources (e.g., television broadcast stations such as NBC, ABC, HBO, etc.), intermediate distribution facilities and / or servers, Internet providers, on-demand media servers, and other content providers. NBC is a trademark owned by National Broadcasting Company, Inc., ABC is a trademark owned by American Broadcasting Company, Inc., and HBO is a trademark owned by Home Box Office, Inc. The content sources 416 may be content originators (e.g., television broadcast stations, webcast providers, etc.) or non-content originators (e.g., on-demand content providers, Internet providers of broadcast program content for download, etc.). The content sources 416 may include cable sources, satellite providers, on-demand providers, Internet providers, over-the-top content providers, or other content providers. The content sources 416 may also include remote media servers used to store different types of content (including video content selected by a user) at a location away from any user equipment device. Systems and methods for remotely storing content and providing remotely stored content to user equipment are discussed in more detail in connection with U.S. Pat. No. 7,761,892 to Ellis et al., issued July 20, 2010, the entirety of which is incorporated herein by reference.
[0052] Media guidance data source 418 may provide media guidance data such as the media guidance data described above. The media guidance data may be provided to user equipment devices using any suitable approach. In some embodiments, the guidance application may be a stand-alone interactive television program guide that receives program guide data via a data feed (e.g., a continuous feed or a trickle feed). Program schedule data and other guidance data may be provided to user equipment on television channel sideband using in-band digital signals, using out-of-band digital signals, or by any other suitable data transmission technique. Program schedule data and other media guidance data may be provided to user equipment on multiple analog or digital television channels.
[0053] In some embodiments, guidance data from media guidance data source 418 may be provided to user's equipment using a client / server approach. For example, the user equipment device may pull the media guidance data from a server or, alternatively, the server may push the media guidance data to the user equipment device. In some embodiments, a guidance application client resident on the user's equipment may initiate a session with source 418 to obtain guidance data when needed, e.g., when the guidance data becomes stale or when the user equipment device receives a request to receive data from a user. Media guidance may be provided to user equipment at any suitable frequency (e.g., upon request from the user equipment, continuously, daily, for a user-specified period, for a system-specified period, etc.). Media guidance data source 418 may provide the application itself or software updates for the application to user equipment devices 402, 404, and 406.
[0054] In some embodiments, the media guidance data may include viewer data. For example, the viewer data may include current and / or past user activity information (e.g., the content a user typically watches, the time of day a user watches content, whether a user interacts with social networks, the time a user interacts with social networks and posts information, the type of content a user typically watches (e.g., pay TV or free TV), mood, brain activity information, etc.). The media guidance data may also include subscription data. For example, the subscription data may identify sources or services to which a particular user subscribes and / or sources or services to which a particular user previously subscribed but later terminated access (e.g., whether a user subscribes to a premium channel, whether a user added a premium level of service, whether a user increased their Internet speed). In some embodiments, the viewer data and / or subscription data may identify patterns for a given user for a period of more than one year. The media guidance data may include a model (e.g., a survivor model) used to generate a score indicative of the likelihood that a given user will terminate access to a service / source. For example, an application may process the viewer data with the subscription data using the model to generate a value or score indicative of the likelihood that a particular user will terminate access to a particular service or source. In particular, a higher score may indicate a higher confidence that the user will terminate access to a particular service or source. Based on the score, the application may generate promotions to induce the user to retain the particular service or source that the score indicates the user is likely to terminate access to.
[0055] An application may be, for example, a stand-alone application implemented on a user equipment device. For example, an application may be implemented as a set of software or executable instructions that may be stored on storage 308 and executed by control circuitry 304 of each of the user equipment devices 300 and user equipment systems 301. In some embodiments, an application may be a client / server application where only a client application resides on the user equipment device and a server application resides on a remote server. For example, an application may be implemented partially as a client application on the control circuitry 304 of each of the user equipment devices 300 and user equipment systems 301 and partially on a remote server as a server application (e.g., media guidance data source 418) executing on the control circuitry of the remote server. When executed by the control circuitry of the remote server (such as media guidance data source 418), the application may instruct the control circuitry to generate guidance application displays and transmit the generated displays to the user equipment device. The server application may instruct the control circuitry of media guidance data source 418 to transmit data for storage on the user equipment. The client application may instruct control circuitry in the receiving user equipment to generate the guidance application display.
[0056] The content and / or media guidance data delivered to user equipment devices 402, 404, and 406 may be over-the-top (OTT) content. OTT content delivery allows Internet-enabled user devices, including any of the user equipment devices described above, to receive content transmitted over the Internet, including any of the content described above, in addition to content received over a cable or satellite connection. OTT content is delivered over an Internet connection provided by an Internet Service Provider (ISP), but a third party delivers the content. The ISP may not be responsible for the viewing capabilities, copyright, or redistribution of the content, and may only transmit IP packets provided by the OTT content provider. Examples of OTT content providers include YOUTUBE®, NETFLIX, and HULU, which provide audio and video over IP packets. YouTube® is a trademark owned by Google Inc., Netflix is a trademark owned by Netflix Inc., and Hulu is a trademark owned by Hulu, LLC. The OTT content provider may additionally or alternatively provide the media guidance data described above. In addition to content and / or media guidance data, providers of OTT content may distribute applications (e.g., web-based applications or cloud-based applications) or the content may be displayed by applications stored on user equipment devices.
[0057] Media guidance system 400 is intended to illustrate several approaches or network configurations by which user equipment devices and sources of content and guidance data may communicate with one another for purposes of accessing content and providing media guidance. The embodiments described herein may be applied in any one or subset of these approaches, or in systems employing other approaches for delivering content and providing media guidance. The following four approaches provide specific illustrations of the generalized example of FIG. 4:
[0058] In one approach, user equipment devices may communicate with each other within a home network. The user equipment devices may communicate with each other via the short-range point-to-point communication scheme described above, via an indirect path through a hub or other similar device provided on the home network, or directly through communications network 414. Multiple individuals within a single home may each operate different user equipment devices on the home network. As a result, it may be desirable for various media guidance information or settings to be communicated between different user equipment devices. For example, it may be desirable for a user to maintain consistent application settings on different user equipment devices in a home network, as described in detail in U.S. Patent Publication No. 2005 / 0251827, filed July 11, 2005, by Ellis et al., which is incorporated herein by reference in its entirety. Various types of user equipment devices within a home network may also communicate with each other to transmit content. For example, a user may transmit content from the user's computing equipment to a portable video player or portable music player.
[0059] In the second approach, a user may have multiple types of user equipment for accessing content and obtaining media guidance. For example, some users may have a home network that is accessed from within the home and from mobile devices. The user may control the home devices through applications implemented on remote devices. For example, the user may access an online application on a website through a personal computer in the office or through a mobile device such as a PDA or a web-enabled cell phone. The user may set various settings (e.g., recordings, reminders, or other settings) on the online guidance application to control the user's home equipment. The online guide may control the user's equipment directly or by communication with an application on the user's home equipment. Various systems and methods for user equipment devices to communicate when the user equipment devices are remote from each other are described, for example, in U.S. Patent No. 8,046,801 to Ellis, issued Oct. 25, 2011, which is incorporated herein by reference in its entirety.
[0060] In a third approach, users of user equipment devices inside and outside the home may use applications to communicate directly with content sources 416 and access content. Specifically, within the home, users of user television equipment 402 and user computer equipment 404 may access applications to navigate among content and locate desired content. Users may also use wireless user communications devices 406 to access applications outside the home to navigate among content and locate desired content.
[0061] In a fourth approach, user equipment devices may operate in a cloud computing environment to access cloud services. In a cloud computing environment, various types of computing services for sharing, storing or distributing content (e.g., video sharing sites and social networking sites) are provided by a collection of network-accessible computing and storage resources, referred to as the "cloud." For example, a cloud may include a collection of server computing devices, which may be located in a central or distributed location, that provide cloud-based services to various types of users and devices connected over a network, such as the Internet via communications network 414. These cloud resources may include one or more content sources 416 and one or more media guidance data sources 418. Additionally or alternatively, the remote computing sites may include other user equipment devices, such as user television equipment 402, user computer equipment 404, wireless user communications devices 406, etc. For example, the other user equipment devices may provide access to stored copies of videos or streamed videos. In such an embodiment, the user equipment devices may operate in a peer-to-peer manner without communicating with a central server.
[0062] The cloud provides access to services such as content storage, content sharing, and social networking services, among other examples, for user equipment devices, and access to the above content. Services can be provided in the cloud through cloud computing service providers or through other providers of online services. For example, cloud-based services can include content storage services, content sharing sites, social networking sites, or other services that distribute user-sourced content for viewing by other users on connected devices. These cloud-based services enable user equipment devices to store content in the cloud and receive content from the cloud, rather than storing content locally and accessing the locally stored content.
[0063] Users may record content using a variety of content capture devices, such as camcorders, video-mode digital cameras, audio recorders, mobile phones, handheld computing devices, etc. Users may upload content, for example, directly to a content storage service on the cloud from user computing equipment 404 or wireless user communications devices 406 that have content capture mechanisms. Alternatively, users may first transfer content to a user equipment device, such as user computing equipment 404. The user equipment device that stores the content uploads the content to the cloud using a data transmission service on communications network 414. In some embodiments, the user equipment device itself is a cloud resource, and other user equipment devices can access the content directly from the user equipment device where the user saved the content.
[0064] Cloud resources may be accessed by a user equipment device using, for example, a web browser, an application, a desktop application, a mobile application, and / or any combination of those access applications. A user equipment device may be a cloud client that relies on cloud computing for application delivery, or a user equipment device may have capabilities that do not allow access to some cloud resources. For example, some applications that run on a user equipment device may be cloud applications, i.e., applications that are delivered as a service over the Internet, while other applications may be stored and executed on the user equipment device. In some embodiments, a user device may receive content from multiple cloud resources simultaneously. For example, a user device may stream audio from one cloud resource while downloading content from a second cloud resource. Or, a user device may download content from multiple cloud resources for more efficient downloading. In some embodiments, a user equipment device may use cloud resources for processing operations, such as the processing operations performed by the processing circuitry described in connection with FIG. 3.
[0065] The methods and systems described herein use a combination of semantic graphs and machine learning to automatically generate structured data, recognize important entities / keywords, and create weighted connections that generate more relevant search results and recommendations. An example of the speed at which more relevant search results and recommendations are achieved is shown in FIG. 5. FIG. 5 is a results table (table 500) for an exemplary model with a test split of a manually curated list of the top 10,000 movies. The table includes precision, recall, and F1 scores when running a decision tree classifier with and without the graph mechanism. The F1 score is a measure of the accuracy of a test run that takes into account precision and recall (described below). Precision is the number of correct positive results divided by the number of all positive results returned by the classifier. Recall is the number of correct positive results divided by the number of all relevant samples (all samples that should have been identified as positive). The harmonic mean of precision and recall is then taken to create the F1 score. The F1 score ranges from 1 (indicating perfect precision and recall) to 0. As shown, recall is high for models without a graph mechanism, and precision is low as expected because models without a graph mechanism cannot distinguish between high-quality and low-quality entities. Thus, by using the semantic graph described herein, search, recommendation, and discovery mechanisms can obtain results with higher precision and F1 scores. For example, using a semantic graph, a system can rank entities (e.g., keywords in or about a movie, objects in a movie, key plot points, etc.) to return more relevant requests, but also determine the domain of entities related to a particular keyword. The entities can correspond to nodes in the semantic graph, and each of these nodes can be rated higher or lower.
[0066] In Figure 5, the system measures the precision and recall of the model by comparing the model results to a manually curated list of entities. The system defines precision as the ratio of the number of machine-generated entities that match the manually curated list (N) to the total number of machine-generated entities (K).
number
number
[0067] FIG. 6 is an illustrative example of an architecture used to provide search, recommendations, and discovery mechanisms. As shown in FIG. 6, the system collects a dataset and generates a semantic graph that identifies key entities and their associations. Features from the dataset and the semantic graph flow through a machine learning model to infer the most contextually significant entities. This process involves four stages: pronoun conversion, candidate identification, semantic graph creation, and user input processing.
[0068] In step 602, the system collects a dataset. For example, a user may input a text string from a known dataset. Additionally or alternatively, the system may collect data using a web crawler to populate the dataset. In some embodiments, to build the semantic graph, the system is trained on a specific dataset. The dataset is selected based on the input the system may receive. In particular, the system is trained on data that reflects the user tone of a typical conversation. To obtain interactions that feature an appropriate tone, the selected dataset is based on datasets that feature certain criteria, such as content based on user collaboration or content generated / modified by users. In some embodiments, the content is further selected from forums that feature a simplified markup language to facilitate data collection. For example, the system may pull data from a wiki website. Using data from these sources, the system can improve the training of the model to reflect the typical tone of requests from users.
[0069] Additionally or alternatively, the system is trained with data that reflects typical conversational content of user queries. In particular, the system may obtain datasets from wiki plot sections, summary sections, category references in plot sections, and noun chunks from plots. Using these specific types of data, the system can improve the training of the model to reflect the typical content of requests from users.
[0070] The dataset can then be split into a 70:30 ratio of training data to validation data to build a training model. For example, the model can be trained on the training dataset. The training dataset represents the parameters of the model (e.g., weights of connections between nodes in a semantic graph), such as recognizing important entities / keywords in search results or recommendations and creating weighted connections. The model (e.g., neural net or naive Bayes classifier) is then trained on the training dataset using a supervised learning method (e.g., gradient descent or stochastic gradient descent). For example, the system can determine whether the inferred entities are relevant for a given search request. Once the model is trained on the training dataset and results are generated, the system can compare the results to actual results (or target results). Based on the actual results of the comparison and the particular learning algorithm being used, the parameters of the model are adjusted. Through an iterative process, the system fits the trained model to predict important entities / keywords that may be included in search results or recommendations for a user's search query.
[0071] In step 604, the system performs pronoun transformation. Pronoun transformation is important for identifying entity relationships necessary for a rich and accurate semantic graph. In this step of the process, the system transforms all pronouns throughout sentences in the text string. For example, the system may use a Python implementation of end-to-end neural coreference transformation, which can determine the noun or proper noun to which the pronoun refers (e.g., "noun chunk").
[0072] Coreference occurs when two or more expressions (such as pronouns, phrases, objects, etc.) in a text refer to the same thing (such as a proper noun). For example, in the text string "Bill said he would come," the proper noun "Bill" and the pronoun "he" refer to the same person, namely Bill. Coreference is a key concept underlying the phenomenon of association in the field of syntax. In some embodiments, the system may develop a neural network to transform pronouns. For example, the system may receive, via the control circuit 304, the text string "John helped Mary. He is a doctor." The system may transform the pronouns to create a transformed text string "John helped Mary. John is a doctor."
[0073] In traditional systems, the system first reviews the input document to detect mentions of entities (such as pronouns). The system then clusters the entities (such as pronouns) such that each pronoun cluster corresponds to the same proper noun. To perform these steps, the system may rely on parsers and preprocessing for detection and clustering. In end-to-end neural coreference, the system considers all spans between entities, ranks the spans between entities, and creates a factorization model to organize the search space. The system may then detect, with high probability, the noun chunk to which a given pronoun refers.
[0074] For span ranking, the system processes each span in the input document and assigns an antecedent to every span. In some cases, the system creates an implicit span. From the resulting clusters, the system identifies three types of spans: i) spans with no previous mentions, ii) mentions with no previous links, and iii) spans with predicted coreference links. For each span, the system makes an independent decision and applies a pairwise coreference score that determines the likelihood of coreference between two spans. The system then determines the antecedent based on the pair with the highest score. Additional discussion of end-to-end coreferences can be found in Lee, 2017, End-to-end Neural Coreference Resolution, In Proceedings of Empirical Methods in Natural Language Processing (EMNLP2017), pp. 188-197, which is incorporated by reference in its entirety.
[0075] In step 606, the system (e.g., via control circuitry 304) performs candidate identification. For example, the system may apply POS (part of speech) tags to the processed text to identify all noun chunks as nodes in a semantic graph. Part of speech tagging (POS tagging or PoS tagging or POST), also called grammatical tagging or word category disambiguation, is the process of marking up words in a text (corpus) as corresponding to a particular part of speech based on both their definition and their context (i.e., their relationship to adjacent related words in a phrase, sentence, or paragraph).
[0076] For example, to create a semantic graph, the system may determine a word category for each word in the text. The word categories may include each of the eight parts of speech (e.g., nouns, verbs, adjectives, adverbs, prepositions, conjunctions (including coordinating conjunctions, subordinating conjunctions, conjunctive adverbs, correlative conjunctions), and / or interjections). These parts of speech, and metadata (i.e., concepts) indicating the part of speech of each word in the semantic graph, are used by the system to determine how words (e.g., representing nodes in the graph) can be combined to create interpretable sentences. In some embodiments, part-of-speech tagging is performed in the context of computational linguistics using algorithms that associate hidden parts of speech, and discrete terms, according to a set of descriptive tags. Part-of-speech tagging algorithms are classified into two distinctive groups: rule-based and probabilistic. For rule-based part-of-speech tagging, the system is manually constructed using a set of manual rules. For example, the system may include a rule indicating that words preceding the tagged word are to be tagged in a particular way through if-then statements. Statistical (or probabilistic) part-of-speech tagging assumes that each word is known and has a finite set of possible tags. These tags can be drawn from a dictionary or morphological analysis. For example, if a word has multiple possible tags, the system may use statistical techniques to determine the sequence of part-of-speech tags. The system may also use a hybrid approach that combines rule-based and probabilistic methods. Finally, it is noted that in some embodiments, part-of-speech tagging may be performed manually.
[0077] To perform part-of-speech tagging, the system may use software libraries for advanced natural language processing. In some embodiments, the system may use SpaCy, a Python library for advanced natural language processing, to enhance identification through part-of-speech tagging functionality. In addition to part-of-speech tagging, the system may use additional mechanisms such as non-destructive tokenization, named entity recognition, statistical models for multiple languages, pre-trained word vectors, labeled dependency analysis, syntax-driven sentence segmentation, text classification, built-in visualizers for syntax and named entities, and / or deep learning integration.
[0078] In step 608, the system creates a semantic graph. A semantic graph is a knowledge base that represents semantic relationships between concepts in a network. The system uses a semantic graph as a form of knowledge representation. It is a directed (e.g., a graph made up of a set of vertices connected by edges, the edges having a direction associated with the vertices) and / or undirected graph consisting of nodes that may represent concepts and / or entities and edges that represent semantic relationships between the concepts and / or entities. As described below, FIG. 7 provides an exemplary semantic graph. For example, for each of the candidates (e.g., “Jack”, “doctor”, etc.) that appear in a text string (e.g., “Jack is a doctor.”), the semantic graph may indicate the relationship between these terms. In such an example, the candidates may represent vertices of the semantic graph, and the relationships between the candidates (e.g., “is”) are represented by edges in the semantic graph. Additionally, in a second text string (e.g., “He has an office on First Street.”), the semantic graph may indicate the relationship between the term “He” and the term “Jack”. The relationships between these terms can be found by traversing the dependency tree (created based on part-of-speech tagging) while interweaving the dependency tree to create a semantic network. For example, in some embodiments, the system finds that the connections are through verbs, and an undirected graph (i.e., a graph in which the edges have no direction at all) is created using these edges. In the semantic graph 700, "Jack" and "doctor" are connected by "is." In the dependency tree, "is" connects the terms "Jack" and "doctor."
[0079] In some embodiments, the dependency tree may represent the syntactic structure of a string according to some context-free grammar. The dependency tree may be constructed based on either the compositional relations of a composition grammar (phrase structure grammar) or the dependencies of a dependency grammar. Dependency trees may be generated during the processing of natural language sentences and computer languages such as programming languages.
[0080] In some embodiments, the system trains using decision tree classifiers and random forest classifiers. A decision tree classifier is a flow chart-like structure, where each internal (non-leaf) node indicates a test of an attribute, each branch represents the result of the test, and each leaf (or terminal) node holds a class label. The top node of the tree is the root node. A random forest classifier may operate by building multiple decision trees during training and outputting a class that is the mode (classification) or average prediction (regression) of the classes of the individual trees. A random decision forest corrects for the habit of decision trees to overfit the training set. It is noted that the system may implement any decision tree algorithm.
[0081] A semantic graph is defined by the nodes of the graph. Each node is further defined by its centrality. The four types of centrality include degree, closeness, betweenness, and indegree. In contrast to degree and indegree centrality, a semantic graph is defined by its closeness and betweenness. For example, during the calculation, the system (e.g., via the control circuitry 304) determines the graph structure based on closeness centrality and betweenness centrality. With respect to closeness centrality, the closeness centrality (or closeness) of a node measures its centrality in the network, which is calculated as the sum of the lengths of the shortest paths between the node and all other nodes in the graph. Thus, the more central a node is, the closer it is to all other nodes. The closeness centrality of a node C(x) is expressed as follows:
number
[0082] Regarding betweenness centrality, "betweenness" centrality is a measure of graph centrality based on shortest paths. For every pair of nodes in a connected graph, there exists at least one shortest path between the nodes, thus minimizing either the number of edges the path passes through (for unweighted graphs) or the sum of the edge weights (for weighted graphs). The betweenness centrality for each node is the number of these shortest paths that pass through the vertex. Betweenness centrality g(v) is expressed as:
number
[0083] After the semantic graph is trained, the system may begin to use the semantic graph (e.g., via the control circuitry 304) to analyze user input and identify user responses. For example, this process is described below in connection with FIG. 14. At step 610, the system receives user input (e.g., via the control circuitry 304). The user input may be a user's utterance or a text string received via a user input interface (e.g., the user input interface 310). The system may perform operations such as speech-to-text processing on the user's utterance to obtain a text string corresponding to the utterance. The system may further break down the user input into components (e.g., into candidates, and eight parts of speech) for further processing.
[0084] In step 612, the system processes the user input using the semantic graph created in step 608. The system may match candidates from the user input to nodes in the semantic graph. For example, if the user input is a text string "Jack is a doctor. He has an office on First Street," the system may match the candidates "Jack," "doctor," "office," and "First Street" to nodes in the semantic graph. Furthermore, relationships between candidates (e.g., "is") are represented by edges in the semantic graph. These relationships may be indicated with words such as "is," "has," and "on." The semantic graph may further indicate relationships between the terms "he" and "Jack." The relationships between these terms may be found by traversing a dependency tree. In the semantic graph 700, "Jack" and "doctor" are connected by "is." In the dependency tree, "is" connects the terms "Jack" and "doctor."
[0085] In step 614, the system generates an output based on the processed user input. The system may use the processing completed in step 612 to determine entities associated with components of the user input (e.g., the user input received in step 612). The system may traverse the semantic graph to determine nodes that are closely associated with nodes that represent the user input. For example, the system may identify nodes that bridge gaps between the user input nodes. The system may construct an output that includes the identified nodes and edges connecting the nodes. The output may include answers to questions posed in the user input or may include additional information that expands on the user input. The output may be a statement, links to additional resources, or other forms of output.
[0086] 7 provides an example semantic graph 700. For example, for each of the candidates appearing in the text string ("Jack wanted to learn more about Mary."), the system checks whether the words in the text string are connected by traversing a dependency tree created using spaCy. In some embodiments, the system determines that the connections are through verbs, and an undirected graph is created using these edges. In the semantic graph 700, "Jack" and "Mary" are connected by the verbs "wanted" and "learn."
[0087] In some embodiments, the dependency tree may represent the syntactic structure of a string according to some context-free grammar. The dependency tree may be constructed based on either the compositional relations of a composition grammar (phrase structure grammar) or the dependencies of a dependency grammar. Dependency trees may be generated during the processing of natural language sentences and computer languages such as programming languages.
[0088] A dependency tree includes a part-of-speech tag for each candidate in the text string. For example, "Jack" is labeled "PROPN," indicating that Jack is a proper noun. A dependency tree uses arcs to connect the words in the dependency tree. Each arc has a "head" and a "child," indicating a dependency relationship; that is, the child depends on the head. In Figure 7, for example, "wanted" and "learn" are connected by an arc, with "wanted" being the head while "learn" is the child and depends on "wanted." The arc further indicates a modification; that is, the child modifies the head. For example, "more" is a child of "learn," indicating that "more" modifies "learn." Each word in a dependency tree has exactly one head. Each word may have any number of children, including zero children.
[0089] Each arc can be assigned a label indicating the type of syntactic relationship that connects its child to its head. For example, in Figure 7, "wanted" is connected to "learn" by an arc labeled "xcomp," indicating that "learn" is the complement of the open clause of "wanted."
[0090] Thus, the meaning of a string is decomposed into part-of-speech tags and arcs that indicate the syntactic relationships between words. Traversing a dependency tree, such as the dependency tree in Figure 7, reveals how the words in a string are connected.
[0091] Figures 8-10 show illustrative examples of entities and characters extracted by the system. For simplicity, nodes with low scores have been removed. Figure 8 corresponds to the movie "Pulp Fiction." The system determines that the entity "Briefcase" scores high (because it is McGuffin that drives the plot), which may be difficult to show in a statistical model such as TF-IDF. The TF-IDF score for a general term like "Briefcase" is very low, and statistical models cannot capture the semantic relevance of the phrase in the context of the movie. Figure 9 corresponds to the movie "Dr. Strangelove." The system identifies important entities such as "Russia," "CRM-114," and "Water Fluoridation," all of which could not have been extracted by traditional models. It can also be seen that characters that are essential to the plot of the movie receive higher scores.
[0092] Figure 10 is an illustrative example of the system being applied to the news article "Sending Tesla Roadster to Mars." The system successfully extracted entities such as "Tesla Roadster," "Elon Musk," "Mars," and "Starman," while removing "noise," i.e., unimportant keywords such as "Kevin Anderson," "bio threat," "Harry Potter," and "bacteria."
[0093] Figure 11 illustrates an application of the method and system corresponding to the use described in Figure 1. In Figure 11, an interface user 1100 is displayed on a display device. The user interface 1100 receives a text string (e.g., via user input to a user input interface). In response, the system generates program recommendations for display. The following example illustrates how keywords in a semantic graph can indicate a deeper understanding of content and provide a richer search experience.
[0094] It should be noted that the methods and systems described herein may be implemented in applications for providing media guidance. For example, the amount of content available to users in a given content delivery system can be enormous. As a result, many users desire a form of media guidance via an interface that allows users to efficiently navigate content selections and easily identify desired content. Applications that provide such guidance are referred to herein as interactive media guidance applications, or, in some cases, media guidance applications or guidance applications.
[0095] Interactive media guidance applications may take a variety of forms depending on the content for which they provide guidance. One typical type of media guidance application is an interactive television program guide. Interactive television program guides (also called electronic program guides) are well-known guidance applications that, among other things, enable users to navigate among and locate various types of content and media assets. Interactive media guidance applications may generate graphical user interface screens that enable users to navigate among, locate, and select content.
[0096] The media guidance application and / or any instructions for implementing any of the embodiments described herein may be encoded on a computer-readable medium. A computer-readable medium includes any medium capable of storing data. A computer-readable medium may be transitory, including but not limited to electrical or electromagnetic signal propagation, or may be non-transitory, including but not limited to volatile and non-volatile computer memory or storage devices such as hard disks, floppy disks, USB drives, DVDs, CDs, media cards, register memory, processor cache, random access memory ("RAM"), etc.
[0097] With the advent of the Internet, mobile computing, and high speed wireless networks, users are accessing media on user equipment devices that they did not traditionally have access to. As referred to herein, the phrases “user equipment device,” “user equipment,” “user device,” “electronic device,” “electronic equipment,” “media equipment device,” or “media device” should be understood to mean any device for accessing such content, such as a television, a smart television, a set-top box, an integrated receiver decoder (IRD) for handling satellite television, a digital storage device, a digital media receiver (DMR), a digital media adapter (DMA), a streaming media device, a DVD player, a DVD recorder, a connected DVD, a local media server, a BLU-RAY® player, a BLU-RAY® recorder, a personal computer (PC), a laptop computer, a tablet computer, a Web TV box, a personal computer television (PC / TV), a PC media server, a PC media center, a handheld computer, a landline phone, a personal digital assistant (PDA), a mobile phone, a portable video player, a portable music player, a portable game console, a smartphone, or other television equipment, computing equipment, or wireless device, and / or combinations thereof. In some embodiments, user equipment devices may have front and rear screens, multiple front screens, or multiple angled screens. In some embodiments, user equipment devices may have front and / or rear cameras. These user equipment devices enable users to navigate among and find the same content that is available via a television. As a result, media guidance may also be available on these devices.The guidance provided may be for content available only through a television, for content available only through one or more other types of user equipment devices, or for content available through both a television and one or more other types of user equipment devices. The media guidance application may be provided as an online application (i.e., provided on a website) or as a stand-alone application or client on a user equipment device. Various devices and platforms on which the media guidance application may be implemented are described in detail below.
[0098] One of the functions of a media guidance application is to provide media guidance data to a user. As referred to herein, the phrases "media guidance data" or "guidance data" should be understood to mean any data related to content or data used to operate the guidance application. For example, guidance data may include program information, guidance application settings, user settings, user profile information, media listings, media related information (e.g., air time, air channel, title, description, rating information (e.g., parental control rating, critics rating, etc.), genre or category information, actor information, logo data for broadcaster or provider logos, etc.), media format (e.g., standard definition, high definition, 3D, etc.), advertising information (e.g., text, images, media clips, etc.), on-demand information, blogs, websites, and any other type of guidance data that helps a user navigate and locate desired content selections.
[0099] It should be noted that the techniques, methods and systems described herein may be applied to multiple types of user interfaces and applications. Two exemplary media guidance applications for implementing these techniques are shown in FIGS. 12-13. FIGS. 12-13 show exemplary display screens that may be used to provide media guidance data. The display screens shown in FIGS. 12-13 may be implemented on any suitable user equipment device or platform. The displays in FIGS. 12-13 are shown as full-screen displays, but may be fully or partially overlaid on the displayed content. A user may indicate a desire to access content information by selecting a selectable option provided on the display screen (e.g., a menu option, a listing option, an icon, a hyperlink, etc.) or by pressing a dedicated button (e.g., a guide button) on a remote control or other user input interface or device. In response to user instructions, the media guidance application may provide media guidance data on the display screen organized in one of several ways: by time and channel in a grid, by time, channel, source, type of content, category (e.g., movies, sports, news, kids, or other programming categories), or by other predefined, user-defined, or other organization criteria.
[0100] FIG. 12 shows an exemplary grid of program listings display 1200 arranged by time and channel that allows access to different types of content on a single display. Display 1200 may include a grid 1202 that includes (1) columns of channel / content type identifiers 1204, where each channel / content type identifier (which is a cell in the column) identifies a different channel or type of content available, and (2) rows of time identifiers 1206, where each time identifier (which is a cell in the row) identifies a time block of programming. Grid 1202 also includes cells of program listings, such as program listings 1208, where each listing provides the title of the program offered on the listing's associated channel and time. Using a user input device, a user can select a program listing by moving highlight region 1210. Information related to a program listing selected by highlight region 1210 may be provided in program information region 1212. Area 1212 may include, for example, the program title, a description of the program, the time the program will be offered (if applicable), the channel on which the program will be broadcast (if applicable), the program's ratings, and other requested information.
[0101] In addition to providing access to linear programming (e.g., content scheduled to be transmitted to multiple user equipment devices at predetermined times and provided according to a schedule), the media guidance application also provides access to non-linear programming (e.g., content that is accessible to user equipment devices at any time and is not provided according to a schedule). Non-linear programming may include content from a variety of content sources, including on-demand content (e.g., VOD), Internet content (e.g., streaming media, downloadable media, etc.), locally stored content (e.g., content stored on any of the above user equipment devices or other storage devices), or other time-independent content. On-demand content may include movies or other content provided by a particular content provider (e.g., HBO On Demand, which offers "The Sopranos" and "Curb Your Enthusiasm"). HBO ON DEMAND is a service mark owned by Time Warner Company LP and others. SOPRANOS and CURB YOUR ENTHUSIASM are trademarks owned by Home Box Office, Inc. Internet content may include web events, such as chat sessions or webcasts, or content available on demand as streaming or downloadable content, such as through an Internet website or Internet access (eg, FTP).
[0102] Grid 1202 may provide media guidance data for non-linear programming including on-demand listings 1214, recorded content listings 1216, and Internet content listings 1218. A display that combines media guidance data for content from different types of content sources is sometimes referred to as a "mixed media" display. Various permutations of the types of media guidance data that may be displayed that differ from display 1200 may be based on user selection or guidance application definition (e.g., displaying only recorded and broadcast listings, displaying only on-demand and broadcast listings, etc.). As shown, listings 1214, 1216, and 1218 are shown as spanning a block of time displayed in grid 1202 to indicate that selection of these listings may provide access to a dedicated display of on-demand listings, recorded listings, or Internet listings, respectively. In some embodiments, listings of these content types may be included directly in grid 1202. In response to a user selecting one of navigation icons 1220, additional media guidance data may be displayed. (Pressing an arrow key on a user input device may affect the display in a similar manner as selecting navigation icon 1220.)
[0103] Display 1200 may also include video area 1222, advertisements 1224, and options area 1226. Video area 1222 may allow a user to watch and / or preview programs that are currently available, will be available in the future, or have been available. The content of video area 1222 may correspond to or be independent of one of the listings displayed in grid 1202. A grid display that includes a video area is sometimes referred to as a picture-in-guide (PIG) display. The PIG display and its functionality are described in detail in U.S. Pat. No. 6,564,378, issued May 13, 2003 to Satterfield et al. and U.S. Pat. No. 6,239,794, issued May 29, 2001 to Yuen et al., which are incorporated herein by reference in their entireties. The PIG display may be included in other media guidance application display screens of the embodiments described herein.
[0104] Advertisements 1224 may provide advertisements for content that may be currently viewable, may be viewable in the future, or may never be viewable depending on the viewer's access rights (e.g., subscription programming) and may correspond to one or more content listings in grid 1202 or may be unrelated. Advertisements 1224 may also be for products or services related or unrelated to the content displayed in grid 1202. Advertisements 1224 may be selectable and provide further information about the content, provide information about the product or service, enable purchase of the content or product or service, provide content related to the advertisement, and so forth. Advertisements 1224 may be targeted based on user profile / preferences, monitored user activity, the type of display provided, or other suitable targeted advertising basis.
[0105] Although advertisements 1224 are shown as rectangular or banner shaped, advertisements may be provided in any suitable size, shape, and location within the guidance application display. For example, advertisements 1224 may be provided as rectangular shapes horizontally adjacent to grid 1202. This may also be referred to as panel advertisements. Additionally, advertisements may be overlaid on content or the guidance application display or embedded within the display. Advertisements may also include text, images, rotating images, video clips, or other types of content as described above. Advertisements may be stored on the user equipment device having the guidance application, in a database connected to the user equipment, in a remote location (including a streaming media server), or other storage means, or a combination of these locations. Providing advertisements in media guidance applications is discussed in more detail, for example, in Knudson et al., U.S. Patent Application Publication No. 2003 / 0110499, filed January 17, 2003, U.S. Patent No. 6,756,997, issued June 29, 2004 to Ward III et al., and U.S. Patent No. 6,388,714, issued May 14, 2002 to Schein et al., which are incorporated herein by reference in their entireties. It will be understood that advertisements may be included in other media guidance application display screens of the embodiments described herein.
[0106] Options area 1226 may allow a user to access different types of content, media guidance application displays, and / or media guidance application features. Options area 1226 may be part of display 1200 (and other display screens described herein) or may be invoked by the user by selecting an option on the screen or by pressing a dedicated or assignable button on a user input device. Selectable options in options area 1226 may relate to features related to program listings in grid 1202 or may include options available from a main menu display. Features related to program listings may include finding other broadcast times or reception methods for the program, recording the program, enabling continuous recording of the program, setting programs and / or channels as favorites, purchasing the program, or other features. Options available from a main menu display may include search options, VOD options, parental control options, Internet options, cloud-based options, device sync options, second screen device options, options to access different types of media guidance data displays, options to subscribe to premium services, options to edit the user's profile, options to access a search overlay, or other options.
[0107] The media guidance application may be personalized based on user preferences. A personalized media guidance application allows a user to customize displays and mechanisms to create a personalized "experience" with the media guidance application. This personalized experience may be created by allowing the user to input these customizations and / or by the media guidance application monitoring user activity to determine various user settings. A user may access the personalized guidance application by logging in or otherwise identifying themselves to the guidance application. Customization of the media guidance application may occur according to a user profile. Customization may include various presentation schemes (e.g., color schemes of the display, font size of text, etc.), aspects of the content listings displayed (e.g., HDTV only or 3D programming only, user-specified broadcast channels based on favorite channel selections, channel display redirection, recommended content, etc.), desired recording mechanisms (e.g., recording for a particular user or series recording, recording quality, etc.), parental control settings, customized presentation of Internet content (e.g., presentation of social media content, email, electronically distributed articles, etc.), and other desired customizations.
[0108] The media guidance application may allow a user to provide user profile information or may automatically compile user profile information. The media guidance application may, for example, monitor the content the user accesses and / or certain other interactions the user may have with the guidance application. In addition, the media guidance application may obtain all or portions of other user profiles associated with a particular user (e.g., from other websites on the Internet that the user accesses, such as www.Tivo.com, other media guidance applications that the user accesses, other interactive applications that the user accesses, other user equipment devices of the user, etc.) and / or obtain information about the user from other sources to which the media guidance application may have access. As a result, the user may be provided with a unified guidance application experience across the user's different user equipment devices. Additional personalized media guidance application features are described in detail in U.S. Patent Application Publication No. 2005 / 0251827, filed July 11, 2005, by Ellis et al., U.S. Patent No. 7,165,098, issued January 16, 2007, by Boyer et al., and U.S. Patent Application Publication No. 2002 / 0174430, filed February 21, 2002, by Ellis et al., each of which is incorporated by reference in its entirety into this specification.
[0109] Another display configuration for providing media guidance is shown in FIG. Video mosaic display 1300 includes selectable options 1302 for content information organized based on content type, genre, and / or other organization criteria. In display 1300, television listings option 1304 is selected, thus providing listings 1306, 1308, 1310, and 1312 as broadcast program listings. In display 1300, the listings may provide graphical images including cover art, still images from the content, video clip previews, live video from the content, or other types of content that indicate to the user the content described by the media guidance data in the listing. Each of the graphical listings may also be accompanied by text to provide further information about the content associated with the listing. For example, listing 1308 may include multiple portions including media portion 1314 and text portion 1316. The media portion 1314 and / or text portion 1316 may be selectable to view the content full screen or to view information related to the content displayed in the media portion 1314 content (e.g., to display listings for the channel on which the video is displayed).
[0110] The listings in display 1300 are of different sizes (i.e., listing 1306 is larger than listings 1308, 1310, and 1312), although all listings could be the same size if desired. The listings may be different sizes or graphically enhanced to indicate user interest or highlight particular content, as desired by the content provider or based on user preferences. Various systems and methods for graphically highlighting content listings are discussed, for example, in U.S. Patent Application Publication No. 2010 / 0153885, filed Nov. 12, 2009, by Yates, which is incorporated herein by reference in its entirety.
[0111] FIG. 14 illustrates an embodiment of a process for generating entities based on the search, recommendation, and discovery features described herein. Note that each step of process 1400 can be performed by the control circuitry 304 (e.g., in a manner instructed by an application to control the circuitry 304) or any other system components shown in FIGS. 3-4. The control circuitry 304 can be part of the user equipment (e.g., a device that can have any or all of the functionality of the means for consuming content 402, the system controller 404, and / or the wireless communication device 406), or can be part of a remote server separated from the user equipment via a communication network 414, or distributed across a combination of both.
[0112] In step 1402, the system receives a text string. The text string may be received via the user input interface 310. The text string may be received from a user or from another electronic device.
[0113] In step 1404, the system identifies pronouns in the text string (e.g., via the control circuitry 304). In some embodiments, part-of-speech tagging is performed in the context of computational linguistics using algorithms that associate hidden parts of speech, and discrete terms, according to a set of descriptive tags. Part-of-speech tagging algorithms are categorized into two distinctive groups: rule-based and probabilistic. In the case of rule-based part-of-speech tagging, the system is constructed manually using a set of manual rules. For example, the system may include a rule that indicates that words preceding a tagged word are tagged in a certain way through if-then statements. Statistical (or probabilistic) part-of-speech tagging assumes that each word is known and has a finite set of possible tags. These tags may be drawn from a dictionary or morphological analysis. For example, if a word has multiple possible tags, the system may use statistical techniques to determine the sequence of part-of-speech tags. The system may also use a hybrid approach that combines rule-based and probabilistic. Finally, it is noted that in some embodiments, part-of-speech tagging may be performed manually.
[0114] To perform part-of-speech tagging, the system may use software libraries for advanced natural language processing. In some embodiments, the system may use SpaCy, a Python library for advanced natural language processing, to enhance identification through part-of-speech tagging functionality. In addition to part-of-speech tagging, the system may use additional mechanisms such as non-destructive tokenization, named entity recognition, statistical models for multiple languages, pre-trained word vectors, labeled dependency analysis, syntax-driven sentence segmentation, text classification, built-in visualizers for syntax and named entities, and / or deep learning integration.
[0115] In step 1406, the system performs pronoun transformation. Specifically, the system transforms pronouns to nouns to create a transformed text string. Pronoun transformation is important for identifying entity relationships necessary for a rich and accurate semantic graph. In this step of the process, the system transforms all pronouns across sentences in the text string. For example, the system may use a Python implementation of end-to-end neural coreference transformation, which can determine the noun or proper noun (e.g., "noun chunk") to which a pronoun refers. In end-to-end neural coreference, the system considers all spans between entities, ranks the spans between entities, and creates a factorization model to organize the search space. The system may then detect, with high probability, the noun chunk to which a given pronoun refers.
[0116] For span ranking, the system processes each span in the input document and assigns an antecedent to every span. In some cases, the system creates implicit spans. From the resulting clusters, the system identifies three types of spans: i) spans with no previous mentions, ii) mentions with no previous links, and iii) spans with predicted coreference links. For each span, the system makes an independent decision and applies a pairwise coreference score that determines the likelihood of coreference between two spans. The system then determines the antecedent based on the pair with the highest score.
[0117] In step 1408, the system identifies (e.g., via the control circuitry 304) noun chunks in the converted text string. For example, the system may apply POS (part of speech) tagging to the processed text to identify all noun chunks as nodes in a semantic graph, as discussed above in connection with Figure 6. Note that in some embodiments, part of speech tagging may be performed manually.
[0118] In step 1410, the system processes the identified noun chunks using a classifier based on a semantic graph featuring a number of nodes. As discussed in more detail above in connection with FIG. 6, a semantic graph is a knowledge base that represents semantic relationships between concepts in a network. The system uses a semantic graph as a form of knowledge representation. It is a directed and / or undirected graph consisting of nodes that may represent concepts and / or entities, and edges that represent semantic relationships between the concepts and / or entities. An exemplary semantic graph is described above in connection with FIG. 7.
[0119] For example, the system may determine (e.g., via control circuitry 304) text features. The text features may include: the candidate's POS tags extracted by the system using spaCy; the candidate's TF-IDF (Term Frequency-Inverse Document Frequency) value calculated on a plot of the dataset; the candidate's capitalization in the text blurb; whether the candidate has a link to another data source (such as a website) in the metadata (set to false if not); whether the candidate is mentioned as a related subject category (set to false if not); whether the candidate is mentioned in the first paragraph and / or prominent position of the data source (set to false if not); the type of candidate and / or page type tagged using the first line and categories tagged into seven types: program, person, fictional, place, organization, sport, and phrase (including the default type for all candidates).
[0120] In some embodiments, high quality information is obtained by devising patterns and trends through means such as statistical pattern learning. Determining text mechanics may include structuring the input text (usually parsing with the addition of some derived linguistic features and removal of others, followed by insertion into a database), deriving patterns within the structured data, and evaluating and interpreting the final output. Note that "high quality" in text mechanics may refer to some combination of relevance, novelty, and interestingness. Typical text mechanics may include text classification, text clustering, concept / entity extraction, creating detailed taxonomies, sentiment analysis, document summarization, entity relationship modeling (i.e., learning relationships between named entities). In some embodiments, text analysis involves information retrieval, lexical analysis to study word frequency distribution, data mining techniques including pattern recognition, tagging / annotation, information extraction, link and association analysis, visualization, and predictive analytics.
[0121] The system may then score the nodes (e.g., via control circuitry 304). In some embodiments with many connected components, the system may compute these features separately for each connected component. The system may use the model resulting from the process of FIG. 6 above.
[0122] In step 1412, the system determines (e.g., via control circuitry 304) entities based on processing the noun chunks with the classifier in step 1410. An exemplary process for determining entities based on processing the noun chunks with the classifier is discussed above in connection with Figure 6. In step 1414, the system generates entities for display (e.g., on display device 312) in response to the received text string.
[0123] It should be noted that this embodiment may be combined with any other embodiment in this description, and that process 1400 is not limited to the devices or control components used to describe process 1400 in this embodiment.
[0124] FIG. 15 illustrates an embodiment of a process for determining entities based on processing noun chunks using a classifier, as described herein. Note that each step of process 1500 may be performed by the control circuitry 304 (e.g., in a manner instructed by an application to control the circuitry 304) or any other system components shown in FIGS. 3-4. The control circuitry 304 may be part of the user equipment (e.g., a device that may have any or all of the functionality of the means for consuming content 402, the system controller 404, and / or the wireless communication device 406), or part of a remote server separated from the user equipment by the communication network 414, or distributed across a combination of both.
[0125] In step 1502, the system assigns a score (e.g., via control circuitry 304) to each entity. For example, the semantic graph may be used by the system for role importance, where role importance is a classification of important and unimportant cast members and roles within the content based on node scores from the semantic graph. For example, in Figures 8 and 9, important roles are shown that have been determined to achieve high scores.
[0126] In step 1504, the system ranks each entity based on its respective score. In step 1506, the entity with the highest score is determined to correspond to the received text string. A specific example discussing the scoring and ranking mechanism is described in more detail above in connection with FIG.
[0127] It should be noted that this embodiment may be combined with any other embodiment in this description, and that process 1500 is not limited to the devices or control components used to describe process 1500 in this embodiment.
[0128] Figure 16 is an illustrative example of an architecture used to provide the search, recommendation, and discovery mechanisms described herein. As shown in Figure 16, the system receives a text string as input and turns the text string into a semantic graph that identifies key entities and their associations. Features from the text string and the semantic graph flow through a machine learning model to infer the most contextually significant entities. This process involves four stages: pronoun conversion, candidate identification, semantic graph creation, and node scoring.
[0129] In step 1602, the system receives a text string. The text string may be received via the user input interface 310. The text string may be received from a user or from another electronic device.
[0130] In step 1604, the system performs pronoun transformation. Pronoun transformation is important for identifying entity relationships necessary for a rich and accurate semantic graph. In this step of the process, the system transforms all pronouns throughout sentences in the text string. For example, the system may use a Python implementation of end-to-end neural coreference transformation, which can determine the noun or proper noun to which the pronoun refers (e.g., "noun chunk").
[0131] For example, coreference occurs when two or more expressions in a text refer to the same person or thing. They have the same referent. For example, in the text string "Bill said he would come," the proper noun "Bill" and the pronoun "he" refer to the same person, namely Bill. Coreference is the main concept underlying the binding phenomenon in the field of syntax. The theory of binding investigates the syntactic relationship that exists between co-referential expressions in sentences and texts. In some embodiments, the system may develop a neural network to transform pronouns. For example, the system may receive, via the control circuit 304, the text string "John helped Mary. He is a doctor." The system may transform the pronouns to create a transformed text string "John helped Mary. John is a doctor."
[0132] In step 1606, the system (e.g., via the control circuitry 304) performs candidate identification. For example, the system may apply POS (part of speech) tags to the processed text to identify all noun chunks as nodes in a semantic graph. Part of speech tagging (POS tagging or PoS tagging, or POST), also called grammatical tagging or word category disambiguation, is the process of marking up words in a text (corpus) as corresponding to a particular part of speech based on both their definition and their context, i.e., their relationship to adjacent and related words in a phrase, sentence, or paragraph. For example, an application may identify words in a text string as nouns, verbs, adjectives, adverbs, etc. In some embodiments, part of speech tagging is performed in the context of computational linguistics using algorithms that associate hidden parts of speech, and discrete terms, according to a set of descriptive tags. Part of speech tagging algorithms are classified into two distinctive groups: rule-based and probabilistic. E. Brill's tagger, one of the first and most widely used English POS taggers, employs a rule-based algorithm. Note that in some embodiments, part-of-speech tagging may be performed manually.
[0133] In some embodiments, the system may use SpaCy, a Python library for advanced natural language processing, to enhance identification through part-of-speech tagging capabilities, thus leveraging its rich structure to identify more candidates, such as links from plot, synopsis, and category mentions.
[0134] In step 608, the system creates a semantic graph. A semantic graph is a knowledge base that represents the semantic relationships between concepts in a network. The system uses a semantic graph as a form of knowledge representation. It is a directed and / or undirected graph consisting of nodes, which may represent concepts and / or entities, and edges, which represent the semantic relationships between the concepts and / or entities. Figure 7, discussed above, provides an exemplary semantic graph.
[0135] In step 1610, the system (e.g., via control circuitry 304) determines a graph organization based on closeness centrality and betweenness centrality. With respect to closeness centrality, the closeness centrality (or proximity) of a node measures its centrality in the network and is calculated as the sum of the lengths of the shortest paths between the node and all other nodes in the graph (e.g., as described in FIG. 6).
[0136] The dataset may be split into a training set and a test set in a 70:30 ratio. For example, the system may take 10,000 media content lists (e.g., based on popularity) from a data source (e.g., a website), extract candidate entities / keywords from the metadata of the media content (e.g., plot descriptions), manually validate them, and create positive (accept all) and negative (reject all) labels in the dataset. The training set is used to build the model, and the test set is evaluated and used for benchmarking. The system uses machine learning to create a function that maps inputs to outputs based on examples of input-output pairs (e.g., training data). It infers the function from labeled training data, which consists of a set of training examples. In supervised learning, each example is a pair consisting of an input object (usually a vector) and a desired output value (also called a supervision signal). The system learning algorithm analyzes the training data and generates an inferred function that can be used to map new examples. The learned algorithm can then be used to correctly determine class labels for unseen instances (e.g., user queries in text strings).
[0137] In step 1612, the system may determine (e.g., via the control circuitry 304) text features. The text features may include: the candidate's POS tags extracted by the system using spaCy; the candidate's TF-IDF (Term Frequency-Inverse Document Frequency) value calculated on a plot of the dataset; the candidate's capitalization in the text blurb; whether the candidate has a link to another data source (such as a website) in the metadata (set to false if not); whether the candidate is mentioned as a related subject category (set to false if not); whether the candidate is mentioned in the first paragraph and / or prominent position of the data source (set to false if not); the type of candidate and / or page type tagged using the first line and categories tagged into seven types: program, person, fictional, place, organization, sport, phrase (including the default type for all candidates).
[0138] In some embodiments, high quality information is obtained by devising patterns and trends through means such as statistical pattern learning. Determining text mechanics may include structuring the input text (usually parsing with the addition of some derived linguistic features and removal of others, followed by insertion into a database), deriving patterns within the structured data, and evaluating and interpreting the final output. Note that "high quality" in text mechanics may refer to some combination of relevance, novelty, and interestingness. Typical text mechanics may include text classification, text clustering, concept / entity extraction, creating detailed taxonomies, sentiment analysis, document summarization, entity relationship modeling (i.e., learning relationships between named entities). In some embodiments, text analysis involves information retrieval, lexical analysis to study word frequency distribution, data mining techniques including pattern recognition, tagging / annotation, information extraction, link and association analysis, visualization, and predictive analytics.
[0139] In step 1614, the system scores the nodes (e.g., via control circuitry 304). In some embodiments with many connected components, the system computes these features separately for each connected component. In some embodiments, the system uses the nine above (seven text features and two graph features), normalizes them, trains a classifier on the manually curated data, and uses this model to predict entities. Algorithms that perform classification, especially in concrete implementations, are known as classifiers. Classification and clustering are examples of the more general problem of pattern recognition, which is the assignment of some kind of output value to certain input values. Other examples are regression, which assigns a real-valued output to each input, sequence labeling, which assigns a class to each member of a sequence of values (e.g., part-of-speech tagging, which assigns a part of speech to each word in an input sentence), parsing, which assigns a parse tree to an input sentence and describes the syntactic structure of the sentence, etc.
[0140] In some embodiments, the system trains using a decision tree classifier and a random forest classifier. A decision tree classifier is a flow chart-like structure, where each internal (non-leaf) node indicates a test of an attribute, each branch represents the result of the test, and each leaf (or terminal) node holds a class label. The top node of the tree is the root node. A random forest classifier may operate by building multiple decision trees during training and outputting a class that is the mode (classification) or average prediction (regression) of the classes of the individual trees. A random decision forest corrects for the habit of decision trees to overfit the training set. It should be noted that the system may implement any decision tree algorithm. In step 614, the system (e.g., via the control circuitry 304) determines the entities (e.g., as shown and described in connection with Figures 9-10).
[0141] The above-described embodiments of the present disclosure are presented for purposes of illustration and not limitation, and the present disclosure is limited only by the following claims. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and that the flow charts or examples related to one embodiment may be combined with any other embodiment in any suitable manner, performed in a different order, or performed in parallel. Furthermore, the systems and methods described herein may be performed in real time. It should also be noted that the above-described systems and / or methods may be applied to or used in accordance with other systems and / or methods. This specification discloses embodiments including, but not limited to, the following. (Item 1) 1. A method for providing a search, recommendation, and discovery mechanism, the method comprising: collecting, by the control circuitry, a data set; performing, by said control circuitry, pronoun conversion across said data set; performing candidate discrimination across the data set by the control circuitry; creating, by the control circuitry, a semantic graph that identifies a plurality of primary entities and a plurality of associations between the plurality of primary entities; receiving user input via a user input interface; processing, by the control circuitry, the user input using the semantic graph; generating, by the control circuitry, an output based on the processed user input; A method comprising: (Item 2) 2. The method of claim 1, wherein the semantic graph comprises a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 3) 2. The method of claim 1, wherein the dataset is split into a ratio of training data and validation data, and the training data is used to train the control circuit on the semantic graph. (Item 4) 2. The method of claim 1, wherein performing the pronoun transformation comprises transforming the pronouns using coreference transformation. (Item 5) 2. The method of claim 1, wherein the candidate identification includes grammatical tagging and word category disambiguation. (Item 6) 2. The method of claim 1, wherein the user input is received from a user or directly from an electronic device. (Item 7) 2. The method of claim 1, wherein processing the user input includes matching a plurality of candidates from the user input with a plurality of nodes in the semantic graph. (Item 8) 2. The method of claim 1, wherein relationships between candidates from the user input are identified by traversing a dependency tree. (Item 9) 2. The method of claim 1, wherein the output includes search results or recommendations based on the user input. (Item 10) 2. The method of claim 1, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. (Item 11) 1. A system for providing a search, recommendation and discovery mechanism, the system comprising: Memory, A control circuit, the control circuit comprising: Collecting a dataset; performing pronoun translation across the dataset; performing candidate identification across the dataset; creating a semantic graph that identifies a number of primary entities and a number of associations between the number of primary entities; Receiving user input; processing the user input using the semantic graph; and generating an output based on the processed user input; a control circuit configured to Including, the system. (Item 12) Item 12. The system of item 11, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 13) 12. The system of claim 11, wherein the dataset is split into a ratio of training data and validation data, and the training data is used to train the control circuit on the semantic graph. (Item 14) Item 12. The system of item 11, wherein performing the pronoun conversion includes converting the pronouns using coreference conversion. (Item 15) Item 12. The system of item 11, wherein the candidate identification includes grammatical tagging and word category disambiguation. (Item 16) 12. The system of claim 11, wherein the user input is received from a user or directly from an electronic device. (Item 17) 12. The system of claim 11, wherein processing the user input includes matching a plurality of candidates from the user input with a plurality of nodes in the semantic graph. (Item 18) 12. The system of claim 11, wherein relationships between candidates from the user input are identified by traversing a dependency tree. (Item 19) 12. The system of claim 11, wherein the output includes search results or recommendations based on the user input. (Item 20) Item 12. The system of item 11, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. (Item 21) 1. A system for providing a search, recommendation and discovery mechanism, the system comprising: A means for collecting the data set; means for performing pronoun translation across said dataset; means for performing candidate identification across the entire data set; means for creating a semantic graph that identifies a number of primary entities and a number of associations between the plurality of primary entities; means for receiving user input; means for processing the user input using the semantic graph; means for generating an output based on the processed user input; Including, the system. (Item 22) 22. The system of claim 21, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 23) 22. The system of claim 21, wherein the dataset is split into a ratio of training data and validation data, and the training data is used to train the control circuit on the semantic graph. (Item 24) 22. The system of claim 21, wherein performing the pronoun conversion includes converting the pronouns using coreference conversion. (Item 25) 22. The system of claim 21, wherein the candidate identification includes grammatical tagging and word category disambiguation. (Item 26) 22. The system of claim 21, wherein the user input is received from a user or directly from an electronic device. (Item 27) 22. The system of claim 21, wherein processing the user input includes matching a plurality of candidates from the user input with a plurality of nodes in the semantic graph. (Item 28) 22. The system of claim 21, wherein relationships between candidates from the user input are identified by traversing a dependency tree. (Item 29) 22. The system of claim 21, wherein the output includes search results or recommendations based on the user input. (Item 30) 22. The system of claim 21, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. (Item 31) 1. A method for providing a search, recommendation, and discovery mechanism, the method comprising: Collecting a dataset; performing pronoun translation across the dataset; performing candidate identification across the dataset; creating a semantic graph that identifies a number of primary entities and a number of associations between the number of primary entities; Receiving user input; processing the user input using the semantic graph; and generating an output based on the processed user input; A method comprising: (Item 32) 32. The method of claim 31, wherein the semantic graph comprises a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 33) 33. The method of claim 31 or 32, wherein the dataset is split into a ratio of training data and validation data, and the training data is used to train the control circuit on the semantic graph. (Item 34) 34. The method according to any one of claims 31 to 33, wherein performing the pronoun conversion includes converting the pronouns using coreference conversion. (Item 35) 35. The method according to any one of claims 31 to 34, wherein the candidate identification includes grammatical tagging and word category disambiguation. (Item 36) 36. The method according to any one of claims 31 to 35, wherein the user input is received from a user or directly from an electronic device. (Item 37) 37. The method according to claim 31, wherein processing the user input includes matching a plurality of candidates from the user input with a plurality of nodes in the semantic graph. (Item 38) 38. The method according to any one of claims 31 to 37, wherein the relationships between the candidates from the user input are identified by traversing a dependency tree. (Item 39) 39. The method of claim 31, wherein the output includes search results or recommendations based on the user input. (Item 40) 40. The method according to any one of claims 31 to 39, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. (Item 41) A non-transitory computer readable medium having recorded thereon instructions for providing a search, recommendation and discovery mechanism, the instructions comprising: instructions for collecting the data set; instructions for performing pronoun translation across the dataset; instructions for performing candidate identification across the dataset; instructions for creating a semantic graph that identifies a number of primary entities and a number of associations between the number of primary entities; instructions for receiving user input; instructions for processing the user input using the semantic graph; instructions for generating output based on the processed user input; A non-transitory computer readable medium comprising: (Item 42) Item 42. The non-transitory computer-readable medium of item 41, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 43) Item 42. The non-transitory computer-readable medium of item 41, wherein the dataset is divided into a ratio of training data and validation data, and the training data is used to train the control circuit on the semantic graph. (Item 44) Item 42. The non-transitory computer-readable medium of item 41, wherein performing the pronoun conversion includes converting the pronouns using coreference conversion. (Item 45) Item 42. The non-transitory computer-readable medium of item 41, wherein the candidate identification includes grammatical tagging and word category disambiguation. (Item 46) Item 42. The non-transitory computer-readable medium of item 41, wherein the user input is received from a user or directly from an electronic device. (Item 47) Item 42. The non-transitory computer-readable medium of item 41, wherein processing the user input includes matching a plurality of candidates from the user input with a plurality of nodes in the semantic graph. (Item 48) Item 42. The non-transitory computer-readable medium of item 41, wherein relationships between the candidates from the user input are identified by traversing a dependency tree. (Item 49) Item 42. The non-transitory computer-readable medium of item 41, wherein the output includes search results or recommendations based on the user input. (Item 50) Item 42. The non-transitory computer-readable medium of item 41, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts in a network. (Item 51) 1. A method for providing content recommendations by automatically determining relevance of entities in a text string, the method comprising: receiving, by a user input interface, a text string; identifying, by a control circuit, a pronoun within the text string; converting, by said control circuitry, said pronouns to nouns to create a converted text string; identifying, by the control circuitry, noun chunks within the converted text string; processing, by the control circuitry, the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; determining, by the control circuitry, an entity based on processing the noun chunk using the classifier; and generating the entity for display on a display device in response to the received text string; A method comprising: (Item 52) 52. The method of claim 51, wherein the semantic graph comprises a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 53) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; 52. The method according to item 51, comprising: (Item 54) Item 54. The method of item 53, wherein each entity is scored based on seven text features and two graph features. (Item 55) 52. The method of claim 51, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 56) 52. The method of claim 51, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation, or discovery mechanism. (Item 57) Item 52. The method of item 51, wherein the text string is received from a user or from an electronic device. (Item 58) 52. The method of claim 51, wherein creating the transformed text string by transforming the pronouns to the nouns includes transforming the pronouns using a coreference transformation. (Item 59) 52. The method of claim 51, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 60) 52. The method of claim 51, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts within a network. (Item 61) 1. A system for providing content recommendations by automatically determining relevance of entities in a text string, the system comprising: Memory, A control circuit, the control circuit comprising: Receiving a text string; identifying pronouns within the text string; creating a transformed text string by transforming the pronouns into nouns; identifying noun chunks within the converted text string; processing the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; determining entities based on processing the noun chunks using the classifier; and generating the entity for display in response to the received text string; a control circuit configured to Including, the system. (Item 62) Item 62. The system of item 61, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 63) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; Item 62. The system according to item 61, comprising: (Item 64) Item 64. The system of item 63, wherein each entity is scored based on seven textual features and two graphical features. (Item 65) Item 62. The system of item 61, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 66) 62. The system of claim 61, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation, or discovery mechanism. (Item 67) Item 62. The system of item 61, wherein the text string is received from a user or from an electronic device. (Item 68) Item 62. The system of item 61, wherein creating the transformed text string by transforming the pronoun to the noun includes transforming the pronoun using a coreference transformation. (Item 69) 62. The system of claim 61, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 70) Item 62. The system of item 61, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts within a network. (Item 71) 1. A system for providing content recommendations by automatically determining relevance of entities in a text string, the system comprising: means for receiving a text string; means for identifying pronouns within said text string; means for converting the pronouns to nouns to create a converted text string; means for identifying noun chunks within the converted text string; means for processing the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; means for determining entities based on processing the noun chunks using the classifier; and means for generating the entity for display on a display device in response to the received text string; Including, the system. (Item 72) Item 72. The system of item 71, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 73) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; Item 72. The system of item 71, comprising: (Item 74) Item 74. The system of item 73, wherein each entity is scored based on seven textual features and two graphical features. (Item 75) Item 72. The system of item 71, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 76) 72. The system of claim 71, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation, or discovery mechanism. (Item 77) Item 72. The system of item 71, wherein the text string is received from a user or from an electronic device. (Item 78) 72. The system of claim 71, wherein creating the transformed text string by transforming the pronoun to the noun includes transforming the pronoun using a coreference transformation. (Item 79) 72. The system of claim 71, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 80) Item 72. The system of item 71, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts within a network. (Item 81) 1. A method for providing content recommendations by automatically determining relevance of entities in a text string, the method comprising: Receiving a text string; identifying pronouns within the text string; creating a transformed text string by transforming the pronouns into nouns; identifying noun chunks within the converted text string; processing the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; determining entities based on processing the noun chunks using the classifier; and generating the entity for display in response to the received text string; A method comprising: (Item 82) 82. The method of claim 81, wherein the semantic graph comprises a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 83) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; 83. The method according to item 81 or 82, comprising: (Item 84) Item 84. The method of item 83, wherein each entity is scored based on seven text features and two graph features. (Item 85) 85. The method according to any one of items 81 to 84, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 86) 86. The method of any one of claims 81 to 85, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation or discovery mechanism. (Item 87) 87. The method according to any one of items 81 to 86, wherein the text string is received from a user or from an electronic device. (Item 88) 88. The method of any one of claims 81 to 87, wherein creating the transformed text string by transforming the pronoun to the noun includes transforming the pronoun using a coreference transformation. (Item 89) Item 89. The method of any one of items 81 to 88, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 90) 80. The method according to any one of items 81 to 89, wherein the semantic graph is a knowledge base representing semantic relationships between concepts in a network. (Item 91) 1. A non-transitory computer readable medium having recorded thereon instructions for providing content recommendations by automatically determining relevance of entities in text strings, the instructions comprising: instructions for receiving a text string; instructions for identifying pronouns within the text string; instructions for converting the pronouns to nouns to create a converted text string; instructions for identifying noun chunks within the converted text string; instructions for processing the noun chunks using a classifier based on a semantic graph featuring a plurality of nodes, each of the plurality of nodes being scored based on a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node and each other node in the semantic graph, and the betweenness centrality metric being a measure of the centrality of each node in the semantic graph; instructions for determining entities based on processing the noun chunks using the classifier; and instructions for generating the entity for display on a display device in response to the received text string; A non-transitory computer readable medium comprising: (Item 92) Item 92. The non-transitory computer-readable medium of item 91, wherein the semantic graph includes a plurality of nodes, each of the plurality of nodes corresponding to an entity from a dataset of entities. (Item 93) Determining an entity based on processing the noun chunks using the classifier includes: Scoring each entity; ranking each entity based on its respective score; selecting the entity with the highest score; Item 92. The non-transitory computer-readable medium of item 91, comprising: (Item 94) Item 94. The non-transitory computer-readable medium of item 93, wherein each entity is scored based on seven textual features and two graphical features. (Item 95) Item 92. The non-transitory computer-readable medium of item 91, wherein the classifier is a decision tree classifier or a random forest classifier. (Item 96) Item 92. The non-transitory computer-readable medium of item 91, wherein generating the entity for display in response to the received text string includes generating the entity for display in a search, recommendation, or discovery mechanism. (Item 97) Item 92. The non-transitory computer-readable medium of item 91, wherein the text string is received from a user or from an electronic device. (Item 98) Item 92. The non-transitory computer-readable medium of item 91, wherein creating the transformed text string by transforming the pronoun to the noun includes transforming the pronoun using a coreference transformation. (Item 99) Item 92. The non-transitory computer-readable medium of item 91, wherein identifying the noun chunks in the converted text string includes identifying the noun chunks using part-of-speech tagging. (Item 100) Item 92. The non-transitory computer-readable medium of item 91, wherein the semantic graph is a knowledge base that represents semantic relationships between concepts within a network. (Item 101) 1. A computer-implemented method for providing results to a search query, the method comprising: receiving a search query that includes references to a plurality of entities; performing pronoun conversion on the search query using control circuitry; using the control circuitry to process a search query using a graph including a plurality of nodes joined by a plurality of edges, a subset of the plurality of nodes representing the plurality of entities associated with transformed pronouns of the search query; using the control circuitry to identify a node of the graph that is connected to two nodes of the subset based on a proximity metric, the proximity metric being inversely proportional to a distance between the node and one of the two nodes; providing a reference to an entity represented by the node of the graph as a result of the search query; A method comprising: (Item 102) Item 102. The method of item 101, wherein the plurality of entities is a first plurality of entities, and processing the search query using the graph includes matching the first plurality of entities with a second plurality of entities represented by the plurality of nodes. (Item 103) Item 103. The method of item 101 or 102, further comprising selecting a plurality of data sets that reflect a user tone of the conversation. (Item 104) Item 104. The method of item 103, further comprising processing the plurality of data sets using part-of-speech (POS) tagging. (Item 105) Identifying the nodes of the graph that are connected to two nodes of the subset based on the proximity metric includes: scoring each of the plurality of nodes of the graph based on a distance between the each of the plurality of nodes and another node; determining which node has the highest score of the scored nodes of the graph; The method according to any one of items 101 to 104, comprising: (Item 106) 1. A system for providing results to a search query, the system comprising: means for receiving a search query that includes references to a plurality of entities; means for performing pronoun conversion on the search query; means for processing a search query using a graph including a plurality of nodes connected by a plurality of edges, a subset of the plurality of nodes representing the plurality of entities associated with a transformed pronoun of the search query; means for identifying a node of the graph that is connected to two nodes of the subset based on a proximity metric, the proximity metric being inversely proportional to a distance between the node and one of the two nodes; means for providing a reference to an entity represented by the node of the graph as a result of the search query; Including, the system. (Item 107) Item 107. The system of item 106, wherein the plurality of entities is a first plurality of entities, and processing the search query using the graph includes matching the first plurality of entities with a second plurality of entities represented by the plurality of nodes. (Item 108) Item 108. The system of item 106 or 107, further comprising means for selecting a plurality of data sets reflecting a user tone of a conversation. (Item 109) Item 109. The system of item 108, further comprising means for processing the plurality of data sets using part-of-speech (POS) tagging. (Item 110) Identifying the nodes of the graph that are connected to two nodes of the subset based on the proximity metric includes: scoring each of the plurality of nodes of the graph based on a distance between the each of the plurality of nodes and another node; determining which node has the highest score of the scored nodes of the graph; The system according to any one of items 101 to 109, comprising: (Item 111) A non-transitory computer readable medium having instructions encoded thereon that, when executed by control circuitry, perform a method, the method comprising: receiving a search query that includes references to a plurality of entities; performing pronoun conversion on the search query using control circuitry; using the control circuitry to process a search query using a graph including a plurality of nodes joined by a plurality of edges, a subset of the plurality of nodes representing the plurality of entities associated with transformed pronouns of the search query; using the control circuitry to identify a node of the graph that is connected to two nodes of the subset based on a proximity metric, the proximity metric being inversely proportional to a distance between the node and one of the two nodes; providing a reference to an entity represented by the node of the graph as a result of the search query; A non-transitory computer readable medium comprising: (Item 112) Item 112. The non-transitory computer-readable medium of item 111, wherein the plurality of entities is a first plurality of entities, and processing the search query using the graph includes matching the first plurality of entities with a second plurality of entities represented by the plurality of nodes. (Item 113) Item 113. The non-transitory computer-readable medium of item 111 or 112, further comprising selecting a plurality of data sets that reflect a user tone of the conversation. (Item 114) Item 114. The non-transitory computer-readable medium of item 113, further comprising processing the plurality of data sets using part-of-speech (POS) tagging. (Item 115) Identifying the nodes of the graph that are connected to two nodes of the subset based on the proximity metric includes: scoring each of the plurality of nodes of the graph based on a distance between the each of the plurality of nodes and another node; determining which node has the highest score of the scored nodes of the graph; A non-transitory computer-readable medium according to any one of items 111 to 114, comprising:
Claims
1. 1. A method of operating a system for providing media content recommendations by automatically determining relevance of entities in a text string, the system comprising control circuitry and a user input interface, the method comprising: the user input interface receiving a text string; the control circuit identifying pronouns within the text string; the control circuit identifying a noun to which the pronoun refers; the control circuit creating a transformed text string by replacing the pronoun with the noun; the control circuit identifying a noun phrase within the converted text string; the control circuitry processes the noun phrases using a classification algorithm that uses a semantic graph including a plurality of nodes to determine a subset of a plurality of nodes that are closely associated with each noun from the noun phrase, the determined subset of the plurality of nodes corresponding to a plurality of entities; obtaining a plurality of scores for the determined subset of the plurality of nodes by calculating a score for each of the determined subset of the plurality of nodes using a closeness centrality metric and a betweenness centrality metric, the closeness centrality metric being a measure of the sum of the lengths of the shortest paths between each node of the subset and each other node in the semantic graph, and the betweenness centrality metric being a measure of the number of shortest paths that pass through each node of the subset; the control circuitry determining an entity of the plurality of entities based on an ordering of the plurality of scores from highest score to lowest score, the entity corresponding to a node of the determined subset of the plurality of nodes having the highest score of the plurality of scores, the entity being associated with at least one of a subject, a genre, or a thematic concept of media content, the entity being a noun, a title of media content, or a computer-generated query; and causing, in response to the received text string, an indication of the media content associated with the determined entity associated with the node having the highest score to be displayed on a display device as recommended media content. A method comprising:
2. 2. The method of claim 1 , wherein the control circuitry, in response to the received text string, causing an indication of the media content associated with the entity to be displayed comprises displaying the entity in the user input interface provided via the display device.
3. 3. The method of claim 1, wherein the control circuitry identifying the noun to which the pronoun refers comprises the control circuitry identifying the noun to which the pronoun refers using a coreference transformation that determines the noun to which the pronoun refers.
4. 4. The method of claim 1, wherein the control circuitry identifying the noun phrases in the converted text string comprises the control circuitry identifying the noun phrases using part-of-speech tagging.
5. The method according to any one of claims 1 to 4, wherein the semantic graph is a knowledge base representing semantic relationships between concepts in a network.
6. A computer program comprising computer readable instructions which, when executed by respective one or more processors, cause the one or more processors to perform a method according to any of claims 1 to 5.
7. 1. A system for providing media content recommendations by automatically determining relevance of entities in a text string, the system comprising: the user input interface configured to receive a text string; The control circuit is configured to carry out a method according to any one of claims 1 to 5. Including, the system.
Citation Information
Cited By
Real-time collateral recommendation
US12591914B2
Real-time collateral recommendation
US20230274322A1