Surface live events in search results
By identifying and selectively revealing live broadcast events in the search system, the problem of difficulty in effectively revealing live broadcast events in the search results in the prior art is solved, and a more efficient search experience and resource utilization are achieved.
Patent Information
- Application Number
- CN202010884042.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2014-06-16
- Filing Date
- 2015-06-08
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2035-12-13
AI Technical Summary
It is difficult for existing search systems to effectively reveal live broadcast events in search results, resulting in users needing to submit multiple queries to find relevant information, increasing the demand and response time of system resources.
By identifying live events and selectively providing a graphical representation of live events in search results, including obtaining entities associated with live events, comparing entities to identify live events in response to queries, and determining whether to be revealed in search results based on quality scores and time difference thresholds.
It reduces the number of queries submitted by users, reduces the demand for system resources, improves the relevance and user experience of search results, and reduces the load on system resources.
Smart Images

Figure CN112182342B_ABST
Abstract
Description
[0001] Description of the case
[0002] This application is a divisional application of Chinese invention patent application No. 201580032623.X, filed on June 8, 2015. Background Art
[0003] The Internet provides access to a wide variety of resources, such as image files, audio files, video files, and web pages. A search system can identify resources in response to a query submitted by a user and provide information about the resource in a manner useful to the user. The user can browse (e.g., select) the search results to obtain information of interest. Summary of the invention
[0004] The present specification relates to surfacing live events in search results.
[0005] Embodiments of the present disclosure generally relate to selectively exposing live events in searches. More specifically, embodiments of the present disclosure relate to identifying live events and selectively providing graphical representations of live events in search results.
[0006] Generally, the innovative aspects of the subject matter described in this specification can be embodied in a method comprising the following actions: obtaining an entity set based on one or more terms of a query; obtaining one or more entities associated with each of a plurality of live events; identifying a live event responsive to the query based on comparing at least one entity in the entity set with one or more entities associated with each of the plurality of live events; determining that an event search result corresponding to the live event is to be displayed in the search results, and in response: providing an event search result for display, the event search result including information associated with the live event, the information including an indicator of the occurrence of the live event.
[0007] The innovative aspects of the subject matter described in this specification can also be embodied in a method comprising the following actions: receiving a set of live events from one or more sources; determining a quality score for each live event in the set of live events; determining that the quality score of a live event exceeds a threshold quality score, and in response, including the live event in a subset of live events; and selectively providing an event in a search result for display to a user based on one or more live events in the subset of live events.
[0008] Other implementations of these aspects include corresponding systems, apparatus, and computer programs configured to perform the actions of the methods and encoded on computer storage.
[0009] Optionally, these and other embodiments may respectively include one or more of the following features: determining that event search results corresponding to a live event are to be displayed in the search results includes: determining that the occurrence of the live event is within a threshold time period after receiving the query; an indicator indicates that the live event occurs simultaneously with the display of the search results; an indicator indicates the time when the live event is scheduled to occur; the threshold time period is determined based on an indication of the intent of the query; if the intent indicates an intent to search for live events, the threshold time period is set to a first value, and, if the intent does not indicate an intent to search for live events, the threshold time period is set to a second value less than the first value; determining that event search results corresponding to a live event are to be displayed in the search results includes: determining that a fact summary associated with at least one entity is to be displayed in the search results; providing event search results includes transmitting a search result document including instructions for displaying one or more general search results as well as the event search results; the action further includes receiving a query from a user.
[0010] Particular implementations of the subject matter described in this specification may be implemented to achieve one or more of the following advantages. In some examples, live events are exposed in search results that may be relevant to the user and / or may be what the user is searching for. In this manner, the user does not need to submit one or more additional queries to find information associated with the live event. This reduces the number of queries submitted to the search system and the responses from the search system, for example, thereby reducing the demand on system resources (e.g., memory, processor) and increasing available bandwidth.
[0011] The details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 An example environment is depicted in which a search system provides search results.
[0013] Figure 2 An example environment for identifying live events is depicted.
[0014] Figure 3 Depicted is an example search results page that includes live events.
[0015] Figure 4 Depicted are example processes that may be performed in accordance with implementations of the present disclosure.
[0016] Figure 5 Depicted are example processes that may be performed in accordance with implementations of the present disclosure.
[0017] Like reference numbers and designations in each drawing indicate like elements. DETAILED DESCRIPTION
[0018] Embodiments of the present disclosure generally relate to selectively surfacing live events in a search. More specifically, embodiments of the present disclosure relate to identifying live events and selectively providing graphical representations of live events in search results. In some embodiments, a live event index is provided, and the live event index includes live events that are determined to be of sufficient quality to be surfacing in search results. In some embodiments, one or more live events can be provided from the live event index in response to a query, and live event search results corresponding to the one or more live events can be displayed in the search results.
[0019] Figure 1 An example environment 100 is depicted in which a search system provides search results. In some examples, the example environment 100 enables a user to interact with one or more computer-implemented services. Example computer-implemented services may include a search service, an email service, a chat service, a document sharing service, a calendar sharing service, a photo sharing service, a video sharing service, a blog service, a microblogging service, a social networking service, a location (location-aware) service, a check-in service, and a rating and review service. Figure 1 In the example of FIG. 1 , a search system 120 is depicted that provides search services, as described in further detail herein.
[0020] Continue to refer Figure 1 , the example environment 100 includes a network 102, such as a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof, connecting websites 104, user devices 106, and a search system 120. In some examples, the network 102 can be accessed through a wired and / or wireless communication link. For example, a mobile computing device (such as a smart phone) can access the network 102 using a cellular network. The environment 100 can include millions of websites 104 and user devices 106.
[0021] In some examples, a website 104 is provided as one or more resources 105 associated with a domain name and hosted by one or more servers. An example website is a set of web pages formatted in a suitable machine-readable language (e.g., Hypertext Markup Language (HTML)) that can contain content. Example content includes text, images, multimedia content, and programming elements (e.g., scripts). Each website 104 is maintained by a publisher (e.g., an entity that manages and / or owns the website).
[0022] In some examples, resources 105 are data provided via network 102 and are associated with a resource address, such as a uniform resource locator (URL). In some examples, resources 105 that may be provided by website 104 include: web pages, word processing documents, and portable document format (PDF) documents, images, videos, and feeds, among other suitable digital content. Resources 105 may include content such as text, phrases, images, and sounds and may include embedded information such as meta information and hyperlinks, and / or embedded instructions such as scripts.
[0023] In some examples, user device 106 is an electronic device that can request and receive resource 105 through network 102. Example user device 106 includes personal computers, laptop computers, and mobile computing devices (e.g., smart phones and / or tablet computing devices) that can send and receive data through network 102. As used throughout this document, the term "mobile computing device" ("mobile device") represents a user device configured to communicate through a mobile communication network. Smart phones (e.g., phones that can communicate through the Internet) are examples of mobile devices. User device 106 can execute user applications (e.g., web browsers) through network 102 to facilitate the sending and receiving of data.
[0024] In some examples, to facilitate searching for resources 105, search system 120 identifies resources 105 by crawling and indexing resources 105 provided on website 104. Data about resources 105 can be indexed based on the resources corresponding to the data. The index and (optionally) cached copies of resources 105 are stored in search index 122.
[0025] The user device 106 submits the search query 109 to the search system 120. In some examples, the user device 106 may include one or more input modes. Example modes may include a keyboard, a touch screen, and / or a microphone. For example, a user may type a search query using a keyboard and / or a touch screen. As another example, a user may speak a search query, and the user's voice may be captured by a microphone and processed by speech recognition to provide a search query.
[0026] In response to receiving a search query 109, the search system 120 accesses a search index 122 to identify resources 105 related to the search query 109, e.g., having at least a minimum specified relevance score for the search query 109. The search system 120 identifies the resource 105, generates a search result display 111 including search results 112 identifying the resource 105, and returns the search result display 111 to the user device 106. The search results 112 include general search results in response to the query. In the example context, the search result display may include one or more web pages, e.g., one or more search result pages. In some examples, web pages may be provided based on web documents that may be written in any appropriate machine-readable language. However, it is contemplated that embodiments of the present disclosure may include other appropriate display types. For example, search results may be provided in a display generated by an application executed on a computing device, and / or in a display generated by an operating system (e.g., a mobile operating system). In some examples, search results may be provided based on any appropriate form (e.g., Javascript-html, plain text).
[0027] Search results 112 are data generated by search system 120 that identifies resources 105 that are responsive to a particular search query and includes links to resources 105. Example search results 112 may include a web page title, a text snippet, or a portion of an image extracted from a web page, and a uniform resource locator (URL) of the web page. In some examples, the data provided in search results 112 may be retrieved from a resource data store. For example, search system 120 may provide search results display 111 that displays search results 112. In some examples, search results display 111 may be populated with information provided from a resource data store (e.g., a web page title, a text snippet, or a portion of an image extracted from a web page).
[0028] In some examples, data for search queries 109 submitted during a user session is stored in a data store, such as historical data store 124. For example, search system 120 can store received search queries in historical data store 124.
[0029] In some examples, selection data specifying actions taken in response to search results 112 provided in response to each search query 109 is also stored in the historical data store 124, such as by the search system 120. These actions may include whether a search result 112 is selected, such as by clicking on the search result 112 with a pointer or by hovering the pointer over the search result 112. For each selection of a search result 112, the selection data may also include data identifying the search query 109 that provided the search result 112.
[0030] According to an embodiment of the present disclosure, example environment 100 also includes a live event system 130 that is communicatively coupled (eg, directly coupled or coupled through a network (such as network 102)) to search system 120. Figure 1 109 as separate systems, but it is contemplated that search system 120 may include live event system 130. In some implementations, live event system 130 identifies content published by one or more websites that qualifies as a live event to be selectively exposed in search results, as described in further detail herein. In some examples, live event system 130 stores event data associated with the selected live event in live event data store 132. Live event system 130 identifies one or more live events that may be relevant to search query 109 and are ready for display based on the data stored in live event data store 132. In some examples, live event system 130 determines whether to display one or more live events in a search result display and, if so, identifies one or more live events to be presented in search result display 111 based on the data provided in live event data store 132. In some examples, search result display 111 includes search results 112 that identify resource 105 and live event search results 113 that provide search result display 111 to user device 106. Live event search results 113 include graphical representations of one or more live events.
[0031] Embodiments of the present disclosure generally relate to selectively exposing live events in searches. More specifically, embodiments of the present disclosure relate to identifying live events and selectively providing graphical representations of live events in search results. In some embodiments, a set of live events is provided from a superset of live events. In some examples, the set of live events includes live events that can be selectively exposed in search results. In some examples, a quality score for each live event in the superset of live events is determined, and the live events are included in the set of live events based on the corresponding quality scores. In some embodiments, one or more live event search results are provided in the search results in response to a query. In some examples, one or more live events to be included in the search results are selected based on one or more entities shared between the query and the live events in the set of live events.
[0032] In some embodiments, a live event includes content that is to be streamed live to one or more resources (e.g., web pages) and viewable in the one or more resources at a specified day and at a specified time. In some examples, the content includes audio and / or video. In some examples, the content is streamed live to one or more web pages of one or more computer-implemented services. For example, a live event can be provided as a video that is streamed live and viewable on a web page of a computer-implemented video sharing service. As another example, a live event can be provided as a live video chat session that can be viewed on a web page of a computer-implemented social networking service or a computer-implemented chat service.
[0033] In some embodiments, a live event superset is provided. In some examples, the live event superset includes live events of one or more computer-implemented services. An example live event may include a State of the Union address published by the President of the United States, which will be streamed at a specific date and time for live viewing at one or more resources (e.g., a webpage of www.whitehouse.gov). Another example live event may include a performance hosted by a user from the user's home, which will be streamed at a specific date and time for live viewing at one or more computer-implemented services (e.g., a video sharing service). In some examples, a live event is associated with at least one computer-implemented service, for example, a live event is scheduled to occur in at least one computer-implemented service and can be viewed through the at least one computer-implemented service. For example, a first live event may be scheduled on a first computer-implemented service (e.g., a video sharing service), and a second live event may be scheduled on a second computer-implemented service (e.g., a chat service). Both the first live event and the second live event may be included in the live event superset.
[0034] In some embodiments, each live event in the live event superset includes corresponding event data. Example event data may include the organizer of the live event, one or more entities associated with the live event, a description of the live event, the time of the live event, the date of the live event, and the URL of the resource, through which the live event will be published. In some examples, the organizer of the live event includes a user who schedules the live event using a corresponding computer-implemented service. In some examples, the user includes a user registered with the computer-implemented service, for example, with a profile and / or credentials established to the computer-implemented service. For example, the organizer can log in to the computer-implemented service and can schedule the live event, for example, enter the description of the live event, the time of the live event, and the date of the live event. In general, the term "entity" can represent something as a discrete unit, for example, a person, place, thing, or idea associated with an event. In some examples, one or more entities associated with a live event may include one or more people, brands, companies, universities, colleges, non-profit organizations, government agencies, etc. For example, a company that sponsors a live event can be included in one or more entities associated with the live event.
[0035] In some examples, a set of entities for a live event can be provided based on structured data. For example, multiple entities and information associated with these entities can be stored as structured data in an entity graph. In some examples, the entity graph includes multiple nodes and edges between nodes. In some examples, the nodes represent entities, and the edges represent relationships between entities. In some examples, an entity graph can be provided based on an example schema that structures data based on domains, types, and attributes. In some examples, a domain includes one or more types that share a namespace. In some examples, a namespace is provided as a directory of uniquely named objects, wherein each object in the namespace has a unique name, such as an identifier. In some examples, a type refers to a "is" relationship about a topic and is used to maintain a set of attributes. In some examples, a topic represents an entity, such as a person, a place, or a thing. In some examples, each topic can have one or more types associated with the topic. In some examples, an attribute is associated with a topic, and a "has" relationship between a topic and an attribute value is defined. In some examples, an attribute value can include another topic. In some examples, data associated with the live event is provided to an entity annotator, which selects one or more entities from an entity graph and includes the one or more entities in a set of entities associated with the live event.
[0036] In some embodiments, event data is processed for each live event in the superset of live events to provide a corresponding quality score. In some examples, the quality score reflects the degree of quality of the live event and is based on event data, such as the organizer, one or more entities associated with the event. For example, a public State of the Union address by the President of the United States may have a relatively high quality score, but a performance hosted by a user from the user's home may have a relatively low quality score.
[0037] In some embodiments, the quality score of the live event is determined based on one or more sub-scores. Example sub-scores may include an organizer score, one or more entity scores, and a description score. In some examples, the organizer score is determined as the average value of the one or more sub-scores. In some examples, the organizer score is determined as the weighted average of the one or more sub-scores. For example, corresponding weights can be applied to corresponding sub-scores. In this way, the corresponding scores can affect the quality score based on the corresponding weights. For example, the organizer score can be given a heavier weight than the description score, so that the contribution to the quality score provided by the organizer score is greater than the description score.
[0038] In some examples, the organizer score is specific to the organizer of the event and can be based on information associated with the organizer. Example information can include the number of quality live events organized by the organizer and / or the number of followers the organizer has within one or more computer-implemented services. In some examples, the organizer score is determined at least in part based on the number of quality live events organized by the organizer and / or at least in part based on the number of followers the organizer has.
[0039] For example, a set of live events organized by an organizer may be provided, and the set of live events may include corresponding quality scores. In some examples, if the quality score of the live event exceeds a threshold quality score, the live event is designated as a qualified live event. In some examples, if the organizer has not organized other live events (except for the current live event for which the quality score is determined), or the organizer has not organized a quality live event, the organizer score may be set to a minimum value, e.g., 0. In some examples, if the organizer has organized at least a threshold number of quality live events, the organizer score may be set to a maximum value, e.g., 1. In some examples, the organizer score may be set to a value between the minimum and maximum values based on the number of quality live events that the organizer has scheduled.
[0040] As another example, one or more users of a computer-implemented service may be referred to as followers of the organizer within the corresponding computer-implemented service. In some examples, a follower is a user who has been elected to automatically receive information associated with another user within the computer-implemented service. For example, a follower of an organizer may automatically receive information associated with a live event that the organizer has scheduled. In some examples, the number of followers that the organizer has may be received from one or more computer-implemented services. In some examples, if the number of followers exceeds a threshold number of followers, the organizer score may be set to a maximum value, e.g., 1. In some examples, if the number of followers does not exceed a threshold number of followers, the organizer score may be set to a minimum value, e.g., 0. In some examples, the organizer score may be set to a value between a minimum value and a maximum value based on the number of followers that the organizer has.
[0041] In some embodiments, an organizer score may be provided based on the number of quality live events and the number of followers. For example, a first score may be determined based on the number of quality live events, and a second score may be determined based on the number of followers. In some examples, an organizer score may be provided based on a first score and a second score. For example, the organizer score may be an average of the first score and the second score. As another example, the organizer score may be a weighted average of the first score and the second score, wherein corresponding weights are applied to the first score and the second score.
[0042] In some embodiments, the entity score is specifically for entities associated with the live event. As described above, example entities include people, brands, companies, universities, colleges, non-profit organizations, and government agencies. In some examples, the entity score indicates the popularity of the corresponding entity. For example, the entity score can be provided based on the number of queries received (e.g., by a search system) that explicitly include the corresponding entity and / or are associated with the corresponding entity. As another example, the entity score can be provided based on the number of times the corresponding entity is explicitly referenced in posts published by one or more social networking services and / or the number of times the corresponding entity is associated with posts published by one or more social networking services. In some embodiments, the entity score is received from an entity score index. For example, one or more computer-implemented services can determine the entity score and store the entity score in the entity score index.
[0043] In some embodiments, a description score is provided based on the description associated with the event (if any). In some examples, the description score is determined based on the length of the description. For example, the length can be provided as a word count. In some examples, the word count is determined as the number of words included in the description. In some examples, the word count only includes the number of unique words provided in the description. For example, if a word appears many times in the description, the word is only counted once. In some examples, the word count does not include stop words. For example, before determining the word count, one or more stop words can be filtered out from the description. Example stop words can include "the", "is", "it", "are", "a" and "an".
[0044] In some embodiments, the word count is compared to one or more threshold word counts. In some examples, if the word count exceeds the threshold word count, the description score can be set to be equal to a maximum value, for example, 1. In some examples, if the word count does not exceed the threshold word count, the description score can be set to be equal to a minimum value, for example, 0. In this way, a relatively short description can be assigned a lower score than a relatively long description. In some examples, a description that is too long may also result in a lower description score. For example, the word count can be compared to a first threshold word count and a second threshold word count. If the word count exceeds the second threshold word count and does not exceed the first threshold word count, the description score can be set to be equal to the maximum value. If the word count exceeds the first threshold word count or does not exceed the second threshold word count, the description score can be set to be equal to the minimum value.
[0045] In some embodiments, a live event set is provided based on the quality scores of live events in a superset of live events. In some examples, the quality scores of live events in the superset of live events are compared with a threshold quality score. In some examples, if the quality score exceeds the threshold quality score, the live event is included in the live event set. In some examples, if the quality score does not exceed the threshold quality score, the live event is not included in the live event set. In this manner, the live event set can be described as a subset of the superset of live events. In some examples, the live event set can include the same live events as the superset of live events. For example, if the quality scores of all events in the superset of live events exceed the threshold quality score, all events in the superset of live events are also included in the live event set.
[0046] According to an embodiment of the present disclosure, the live events in the live event set are stored in the live event data storage, for example, Figure 1Live event data store 132. In some examples, event data associated with each live event is also stored in the live event data store. In some implementations, the live event data store includes live events that can be selectively exposed in search results in response to a query.
[0047] According to an embodiment of the present disclosure, in response to a query, one or more live event search results are selectively provided in the search results. In some embodiments, a query is received, and an entity set associated with the query is provided. In some examples, the entity set includes one or more entities. In some examples, the one or more entities associated with the query are provided from a query table that maps the query to one or more entities. In some examples, the query is provided to an entity annotator, which selects one or more entities from an entity graph and returns the one or more entities.
[0048] In some embodiments, one or more entities in the entity set associated with the query are compared with entities in the entity set associated with the live event stored in the live event data store. In some examples, if at least one entity associated with the query matches an entity associated with the live event, the live event is determined to be a qualified live event, e.g., eligible to be displayed in the search results. In some examples, at least one entity associated with the query may match entities associated with two or more live events. Therefore, the two or more live events are determined to be qualified live events, e.g., eligible to be displayed in the search results. Therefore, qualified live events include live events that have been determined to be responsive to the query.
[0049] In some implementations, a determination is made as to whether to display a fact summary in the search results in response to the query. In some examples, the fact summary corresponds to at least one entity associated with the query that matches an entity associated with the live event. In some examples, if the fact summary is to be displayed, the live event may be displayed in the search results. In some examples, if the fact summary is not to be displayed, the live event is not displayed in the search results.
[0050] In some examples, a fact summary can be provided for a query that has been determined to reference a particular entity, such as a person, place, country, landmark, animal, historical event, organization, business, sports team, sporting event, movie, song, album, game, work of art, or any other entity. For example, it can be determined that a fact summary is to be displayed for an entity associated with the query. In response, the fact summary can be triggered for display.
[0051] Typically, a factual overview of a particular entity may include content related to the particular entity. In some embodiments, a factual overview includes a collection of factual information that is considered to be related to a particular entity. For example, a factual overview of an actor may include biographical information about the actor, as well as content associated with movies or television shows in which the actor has appeared. In some embodiments, a factual overview includes an overview of information related to a particular entity. For example, a factual overview of a country may include a map of the country, the flag of the country, the official language of the country, and / or other facts and content related to the country. In some examples, the information provided in the factual overview may be pulled from one or more resources (e.g., a web page) and may be merged to populate the factual overview.
[0052] In some embodiments, a determination is made as to whether to actually expose a qualified live event in the search results based on a time associated with the qualified live event. In some examples, if the qualified live event is scheduled too far away relative to the time when the query was sent or received, the qualified live event is not exposed in the search results. In some examples, if the qualified live event is not scheduled too far away relative to the time when the query was sent or received, the qualified live event is exposed in the search results. In some examples, if the qualified live event is currently occurring, for example, occurring when the query was sent or received, the qualified live event is exposed in the search results. In some examples, if the qualified live event is over, the qualified live event is not exposed in the search results.
[0053] In some embodiments, a time difference is determined for each qualified live event in the qualified live event set. In some examples, the time difference is determined based on the time when the query is sent or received and the time when the corresponding live event is scheduled to occur. In some examples, the time when the corresponding live event is scheduled to occur is measured in days, hours, minutes, and seconds. In some examples, the time difference is provided in seconds. If the live event is scheduled to occur in the future, the time difference is positive, if the time when the live event starts is approximately the same as the time when the query is sent or received, the time difference is zero, and if the live event is occurring or has occurred, the time difference is negative.
[0054] In some embodiments, the time difference is compared to one or more time difference thresholds. In some examples, if the time difference exceeds the time difference threshold, the corresponding qualified live event is not exposed in the search results. In some examples, if the time difference does not exceed the time difference threshold, the corresponding qualified live event can be exposed in the search results. In some examples, a set of live events to be exposed is provided, and the set of live events to be exposed includes one or more qualified live events whose corresponding time difference does not exceed the threshold time difference.
[0055] In some embodiments, a time difference threshold may be provided based on a query. In some examples, the intent of the query is determined, and the time difference threshold is based on the intent. In some examples, the intent of the query reflects the intent of the user who submitted the query. Example intents may include general intents and specific intents. In some examples, the general intent indicates that the user submits a query for general information related to one or more terms of the query. For example, the example query [state of the union (State of the Union)] may be associated with a general intent, such as that the user may look for general information. In some examples, the specific intent indicates that the user submits a query for dedicated information related to one or more terms of the query. For example, the example query [live stream state of the union (Streaming Live State of the Union)] may be associated with a specific intent, such as that the user is looking for resources that can live watch the State of the Union. In some embodiments, if the intent is determined to be a specific intent, the time difference threshold is set to a first value, and if the intent is determined not to be a specific intent but other intents, such as a general intent, the time difference threshold is set to a second value less than the first value. In this way, in response to a specific intent, live events that will occur in the farther future may be revealed in the search results, but in response to an intent that is not a specific intent, live events that will occur in the future are not revealed in the search results.
[0056] In some embodiments, the intent of the query can be determined based on one or more query patterns. In some examples, the query pattern includes a pattern of one or more terms included in the query. Each query pattern can be associated with a corresponding intent. In some examples, the query is compared with one or more query patterns, and if the query matches the query pattern, the intent associated with the query pattern is selected. For example, example query patterns may include [watch live*(live watch*)], [*watch live(*live watch)], and [watch*live(live*watch)], each of which is associated with a specific intent, where * indicates a wildcard. It can be determined that the example query [watch stateof the union live(live watch the state of the union)] matches the query pattern [watch*live(live*watch)], and, therefore, it can be determined that the query is associated with a specific intent.
[0057] As described above, a set of live events to be revealed is provided, and the set of live events to be revealed includes one or more qualified live events whose corresponding time difference does not exceed a threshold time difference. In some examples, each live event in the set of live events to be revealed is revealed in the search results. For each live event in the set of live events to be revealed, an event search result is provided, which provides a graphical representation of the corresponding live event. In some examples, the event search results include event data. For example, the event search results may include the title and description of the live event. In some examples, the event search results include a URL that enables a user to select the URL and browse to the resource that is publishing the live event. In some examples, the event search results include a time indicator that indicates the time from the start of the live event or whether the live event is currently occurring. In some examples, the time indicator is provided based on the time difference determined for the corresponding live event.
[0058] Figure 2 An example environment 200 for identifying live events is depicted. The example environment 200 includes a live event identifier 202, an entity annotator 204, and a search system 206. In some examples, the search system 206 is coupled to a live event identifier 202, an entity annotator 204, and a search system 206. Figure 1 In some examples, the live event identifier 202, the entity annotator 204, and the search system 206 may be provided as one or more computer executable programs executed by one or more computing devices, respectively.
[0059] In some embodiments, the live event identifier 202 receives event data for the live event from one or more data sources 208, 210. In some examples, each data source 208, 210 is specific to a computer-implemented service. For example, the data source 208 may be associated with a video sharing service and may include event data for a live event scheduled for the video sharing service. As another example, the data source 208 may be associated with a social networking service and may include event data for a live event scheduled for the social networking service. In some examples, the live event is provided from a data source 208, 210 included in a superset of live events. In some examples, the live events in the superset of live events are processed by the live event identifier 202 to provide a set of live events. In some examples, the event data associated with the set of live events is stored in a data store 212.
[0060] In some embodiments, the live event identifier 202 identifies a live event to be included in a live event set, as described herein. For example, the live event identifier 202 determines a quality score for each live event in a superset of live events, as described herein. In some examples, the live event identifier 202 can request and receive data from one or more data sources that can be used when calculating the quality score. For example, the live event identifier 202 can request and receive an entity set from an entity annotator 204. For example, the entity annotator 204 can receive entity data associated with the live event (e.g., from the live event identifier), and select one or more entities from an entity graph, and provide the entity set associated with the live event to the live event identifier 202. As another example, the live event identifier 202 can request and receive an entity score from an entity score index (not shown). As another example, the live event identifier 202 can request and receive data associated with an event organizer, such as follower data, from the one or more data sources 208, 210.
[0061] In some implementations, the search system 206 selectively exposes live events in search results, as described herein. In some examples, the search system 206 receives a query and determines whether to display live event search results in response to the query. For example, the search system 206 can provide a set of qualified live events based on entities associated with the query and entities associated with corresponding live events, can determine a time difference for the corresponding live events, and can determine whether to include the live event in the search results based on the time difference.
[0062] Figure 3 An example search results page 300 including a live event is depicted. Although the example search results page 300 is depicted as being inside a web browser, this is for context only and is not intended to limit the scope of the present disclosure to any one web browser or even to implementations involving serving web pages. The illustrated search results page 300 includes a search box 302, a search query 304, a search button 306, user information 308, general search results 310, and in-depth article search results 312.
[0063] In the depicted example, search query 304 is provided as [state of the union]. In response to search button 306, general search results 310 are displayed, and live event search results 312 are displayed. General search results 310 represent resources responsive to the query, such as web pages published on an encyclopedia website that generally describe the address of the state of the union. Live event search results 312 represent live events responsive to the query.
[0064] Figure 4 An example process 400 is depicted that may be performed according to an embodiment of the present disclosure. Figure 1 The example environment 100 is used to implement the example process 400, the Figure 1 The example environment 100 of the example system 100 is such as a search system 120 and / or a live event system 130. In some examples, the example system 400 can be provided by one or more computer executable programs executed using one or more computing devices. The example process 400 can be performed to selectively expose live events in search results.
[0065] A query is received (402). For example, Figure 1 The search system 120 receives the query. Obtain a set of entities associated with the query (404). For example, the set of entities can be requested and received from a query table, as described herein. Obtain a set of entities associated with the live event (406). For example, the set of entities can be requested and received from a live event data store (e.g., Figure 1 The live event data store 132, live event data store 212) provides an entity set associated with the corresponding live event. The entities are compared (408) between the entity set associated with the query and each entity set in the entity set associated with the live event.
[0066] Determine whether one or more live events respond to the query (410). For example, determine whether at least one entity associated with the query matches an entity of one or more live events based on the comparison. In some examples, a qualified live event set is provided, and the qualified live event set includes live events having entities that match the entity associated with the query. In some examples, if at least one entity associated with the query does not match an entity of one or more live events, it is determined that no live event responds to the query, and a search result of no live events is provided (412). In some examples, if at least one entity associated with the query matches an entity of one or more live events in the live events, it is determined whether to display a fact summary (414). In some examples, if the fact summary is not displayed, a search result of no live events is provided (412). In some examples, if the fact summary is to be displayed, it is determined whether the time difference associated with the corresponding live event exceeds a time difference threshold (416). In some examples, if the time difference of all live events in the qualified live event set exceeds the time difference threshold, a search result of no live events is provided (412). In some examples, if the time difference of the live events in the set of eligible live events does not exceed the time difference threshold, the live event is included in the set of live events to be exposed. Search results with one or more live events are provided (418). For example, the search results can include one or more live event search results, each live event search result being a graphical representation of a corresponding live event in the set of live events to be exposed.
[0067] Figure 5 An example process 500 is depicted that may be performed according to an embodiment of the present disclosure. Figure 1 The example environment 100 implements the example process 500, the Figure 1 The example environment 100 is, for example, a search system 120 and / or a live event system 130. In some examples, the example system 500 can be provided by one or more computer executable programs executed using one or more computing devices. The example process 500 can be performed to identify one or more live events that can be exposed in search results.
[0068] Obtain a live event superset (502). For example, receive one or more live events from each of a plurality of data sources, and include the one or more live events in the live event superset. In some examples, for example, receive event data associated with each live event in the live event superset from a data source. Determine a quality score for each live event in the live event superset (504). For example, determine the quality score based on one or more of an organizer score, one or more entity scores, and a description score, as described herein. Provide a live event set based on the corresponding quality score (506). For example, compare the quality score of the live event in the live event superset with a threshold quality score. In some examples, if the quality score exceeds the threshold quality score, the live event is included in the live event set. In some examples, if the quality score does not exceed the threshold quality score, the live event is not included in the live event set. In this manner, the live event set can be described as a subset of the live event superset. In some examples, the live event set can include the same live events as the live event superset. For example, if the quality scores of all events in the live event superset exceed a threshold quality score, then all events in the live event superset are also included in the live event set.
[0069] The embodiments of the subject matter and operations described in this specification can be implemented in a digital electronic circuit system, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or a combination of one or more thereof. The embodiments of the subject matter described in this specification can be implemented by using one or more computer programs, that is, one or more modules of computer program instructions encoded on a computer storage medium for execution by a data processing device or for controlling the operation of a data processing device. Alternatively or in addition, program instructions can be encoded in an artificially generated propagation signal, for example, an electrical signal, an optical signal, or an electromagnetic signal generated by a machine executed by a data processing device to encode information to transmit information to a suitable receiving device. The computer storage medium can be, or be included in a computer-readable storage device, a computer-readable storage base, a random or serial access memory array or device, or a combination of one or more thereof. In addition, although the computer storage medium is not a propagation signal, the computer storage medium can be the source or destination of the computer program instructions encoded in the artificially generated propagation signal. The computer storage medium can also be, or be included in, one or more discrete physical components or media (e.g., multiple CDs, disks, or other storage devices).
[0070] The operations described in this specification may be implemented as operations performed by a data processing apparatus on data stored in one or more computer-readable storage devices or received from other sources.
[0071] The term "data processing device" covers a wide variety of devices, apparatuses, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or multiple or a combination of the above. The device may include a dedicated logic circuit system, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The device and execution environment can implement a variety of different computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures.
[0072] Computer programs (also referred to as programs, software, software applications, scripts, or codes) may be written in any form of programming language (including: compiled or interpreted, declarative, or procedural languages), and may be deployed in any form (including: as a stand-alone program or module, component, subroutine, object, or other unit suitable for a computing environment). Computer programs may, but need not, correspond to files in a file system. Programs may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), or in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files storing one or more modules, subroutines, or portions of code). Computer programs may be deployed to execute on one computer or on multiple computers located at one site or distributed in multiple sites and interconnected by a communications network.
[0073] The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform actions by operating input data and generating output. The processes and logic flows may also be performed by a dedicated logic circuit system (e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit)), and the device may also be implemented as a dedicated logic circuit system.
[0074] Processors suitable for executing computer programs include, for example, general-purpose microprocessors, special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer may include a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., disks, magneto-optical disks, or optical disks) for storing data, or a computer may be operatively coupled to receive data from the mass storage device or to transfer data to the mass storage device or to perform both. However, a computer need not have such a device. In addition, a computer may be embedded in another device, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and storage devices, including: for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0075] To provide interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic input, voice input, or tactile input. In addition, the computer may interact with the user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.
[0076] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes a backend component (e.g., as a data server), or a computing system that includes a middleware component (e.g., an application server), or a computing system that includes a frontend component (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in the present invention), or a computing system that includes any combination of one or more such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communications network). Examples of communications networks include local area networks ("LANs") and wide area networks ("WANs"), internets (e.g., the Internet), and peer-to-peer networks (e.g., adhoc peer-to-peer networks).
[0077] The computing system includes a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship between the client and the server is generated by computer programs running on the respective computers and having a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to the client device (e.g., in order to display data to a user interacting with the client device and receive user input from the user interacting with the client device). Data generated on the client device (e.g., the result of the user interaction) can be received from the client device at the server.
[0078] Although the present invention includes many specific implementation details, these details should not be regarded as limitations on the scope of any embodiment of the present invention or the content that may be claimed, but as descriptions specific to example embodiments. Certain features described in the context of separate embodiments in this specification may also be implemented in a single embodiment in combination. On the contrary, the various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable sub-combination. In addition, although the features may be described above as working in certain combinations and initially even the features are claimed in the same manner, one or more features from the claimed combination may be deleted from the combination in some cases, and the claimed combination may involve a sub-combination or a change in the sub-combination.
[0079] Similarly, although operations are shown in a particular order in the accompanying drawings, it should not be understood that such operations need to be performed in the particular order shown or in a sequential order, or that all illustrated operations need to be performed to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous. In addition, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can usually be integrated together in a single software product or encapsulated in multiple software products.
[0080] Thus, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve the desired results. Additionally, the processes depicted in the accompanying drawings do not necessarily require the particular order or sequential order shown to achieve the desired results. In certain embodiments, multitasking and parallel processing may be advantageous.
Claims
1. A computer-implemented method executed by one or more processors, the method comprising: receiving a request for a resource; determining, by the one or more processors, whether the intent of the request is to search for live streaming content of a live event based on the one or more terms of the request, wherein the determining comprises comparing the one or more terms of the request to one or more request patterns, wherein at least one of the request patterns is associated with an intent to search for a live event including live streaming content; In response to determining that the intent is to search for live events including live streaming content of the live event based on the one or more terms of the request: identifying, by the one or more processors, a live event responsive to the request; determining that the live event includes content to be streamed live and that an occurrence of the live streaming content of the live event is within a threshold period of time after receiving the request; Determining, by the one or more processors, that a live event search result corresponding to the live event is to be displayed in the search results based on determining that the live event includes content to be live streamed and that the live streaming content occurs within a threshold time; and A live event search result for each live event is provided by the one or more processors, wherein the live event search result includes an indicator indicating the search result, and the indicator provides a streaming occurrence of the live event when selected.
2. The method according to claim 1, wherein: The indicator indicates that the live event is occurring simultaneously with the display of the search results.
3. The method according to claim 1, wherein: The indicator indicates a time when the live event is scheduled to occur.
4. The method according to claim 1, wherein: Determining that an event search result corresponding to the live event is to be displayed in the search results includes: A fact summary associated with at least one entity is determined to be displayed in the search results.
5. The method according to claim 1, wherein: The request is a query.
6. A system comprising: Data storage for storing data; as well as One or more processors, the one or more processors configured to interact with the data store, the one or more processors further configured to perform operations, the operations comprising: receiving a request for a resource; determining, based on the one or more terms of the request, whether the intent of the request is to search for live streaming content of a live event, wherein the determining comprises comparing the one or more terms of the request to one or more request patterns, wherein at least one of the request patterns is associated with an intent to search for a live event including live streaming content; In response to determining that the intent is to search for live events including live streaming content of the live event based on the one or more terms of the request: identifying, by the one or more processors, a live event responsive to the request; determining that the live event includes content to be streamed live and that an occurrence of the live streaming content of the live event is within a threshold period of time after receiving the request; Determining that a live event search result corresponding to the live event is to be displayed in the search results based on determining that the live event includes content to be live streamed and that the live streaming content occurs within a threshold time; and A live event search result for each live event is provided by the one or more processors, wherein the live event search result includes an indicator indicating the search result, and the indicator provides a streaming occurrence of the live event when selected.
7. The system according to claim 6, wherein: The indicator indicates that the live event is occurring simultaneously with the display of the search results.
8. The system according to claim 6, wherein: The indicator indicates a time when the live event is scheduled to occur.
9. The system according to claim 6, wherein: Determining that an event search result corresponding to the live event is to be displayed in the search results includes: A fact summary associated with at least one entity is determined to be displayed in the search results.
10. The system according to claim 6, wherein: The request is a query.
11. A non-transitory computer storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving a request for a resource; determining, based on the one or more terms of the request, whether the intent of the request is to search for live streaming content of a live event, wherein the determining comprises comparing the one or more terms of the request to one or more request patterns, wherein at least one of the request patterns is associated with an intent to search for a live event including live streaming content; In response to determining that the intent is to search for live events including live streaming content of the live event based on the one or more terms of the request: identifying, by the one or more processors, a live event responsive to the request; determining that the live event includes content to be streamed live and that an occurrence of the live streaming content of the live event is within a threshold period of time after receiving the request; Determining, by the one or more processors, that a live event search result corresponding to the live event is to be displayed in the search results based on determining that the live event includes content to be live streamed and that the live streaming content occurs within a threshold time; and A live event search result for each live event is provided, wherein the live event search result includes an indicator indicating the search result, and the indicator, when selected, provides a streaming occurrence of the live event.
12. The non-transitory computer storage medium of claim 11, wherein: The indicator indicates that the live event is occurring simultaneously with the display of the search results.
13. The non-transitory computer storage medium of claim 11, wherein: The indicator indicates a time when the live event is scheduled to occur.
14. The non-transitory computer storage medium of claim 11, wherein: Determining that an event search result corresponding to the live event is to be displayed in the search results includes: A fact summary associated with at least one entity is determined to be displayed in the search results.
15. The non-transitory computer storage medium of claim 11, wherein: The request is a query.
Citation Information
Patent Citations
Event searching
CN101578603A
Display method and device for search result
CN103092958A