US 6973663 B1
A device that detects and displays similar programs within a video system includes a memory, a display and a receiver that receives an input stream of television program content and electronic program guide data, wherein. the program guide data includes a plurality of attributes characterizing television programs within the television program content. The receiver separates electronic program guide data from the input stream while the memory stores the electronic program guide data separated from the input stream. Upon receiving a first user request, a controller compares a first set of attributes relating to at least one television program within the television content with second sets of attributes relating to further television programs within the television program content to determine a correlation between the first television program and each of the further television programs. In this manner, the controller identifies the television programs that have attributes that are similar to the attributes of the first television program based on the correlation and displays indications of the television programs found to be similar.
1. A program similarity detecting device comprising:
a receiver adapted to receive an input stream of television program content and electronic program guide data, and adapted to separate the electronic program guide data from the input stream, wherein the program guide data includes a plurality of attributes characterizing television programs within the television program content;
a memory coupled to the receiver and adapted to store the electronic program guide data;
a controller coupled to the memory; and
a display coupled to the controller;
wherein the controller is programmed to compare a first set of attributes relating to at least one television program within the television program content to a second set of attributes relating to a second television program within the television program content to calculate a similarity score for the second television program based on a weighted combination of at least two attributes from the second set of attributes, and wherein the controller is programmed to cause the display to generate a first display indicating the second television program based on the similarity score.
2. The device of
3. The device of
4. The device of
5. The device of
6. The device of
7. The device of
8. The device of
9. The device of
10. The device of
11. The device of
12. A method of identifying similar programs within a video reception system comprising:
storing first characterizing information associated with a first television program;
receiving further characterizing information associated with each of a second set of television programs;
comparing the first characterizing information and each of the further characterizing information to determine a similarity score for each of the second set of television programs, wherein each similarity score is calculated based on a weighted combination of attributes associated with a corresponding one of the programs from the second set television programs;
selecting a third set of television programs from the second set of television programs based on the similarity scores; and
displaying indications of the third set of television programs.
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
21. The method of
22. A method of displaying program similarity explanations comprising the steps of:
receiving program guide data including characterizing information for each of a plurality of television programs;
storing the program guide data in a memory;
identifying a first set of television programs;
storing attribute information for the first set of television programs;
comparing the characterizing information of the first set of television programs with attribute information for a second set television programs;
calculating a similarity score for each of the second set of television programs, wherein each of the similarity scores is based on a weighted combination of attributes associated with the second set of television programs that match attributes associated with the first set of television programs; and
displaying an indication of at least one of the television programs within the second set of television programs based on the similarity scores.
23. The method of
24. The method of
This application claims priority from U.S. Provisional Application No. 60/126,913, filed Mar. 29, 1999 entitled “Method And Apparatus For Viewing Similarity Matching Explanations.”
The present invention relates to the presentation of electronic program guide information to a viewer and, more particularly, to a method and apparatus for detecting and viewing similar programs within a video system.
Television programs are distributed to viewers by a variety of broadcasting methods. These methods include traditional analog broadcast television (National Television Systems committee or “NTSC” standard), the upcoming digital broadcast television (Advanced Television Systems Committee or “ATSC” standard), cable television (both analog and digital), satellite broadcasting (both analog and digital), as well as other methods. These methods allow channels of television content to be multiplexed and transmitted over a common transmission medium.
Channel numbers are typically used to identify the stream of television content offered by a content provider. Program guide information is typically transmitted along with the television content. The program guide information includes a set of channel definition parameters that define which portions of the transmitted television content are associated with the various channels, and also typically includes schedule information for display on users' televisions. The schedule information informs users what television programs are currently on, and what television programs will be shown in the near future.
While it is possible to classify programs being televised and present the user with schedule information which matches the users' preferences in television programs, the user does not always know or have the opportunity to view the classification criteria used to clarify the presented schedule information.
A device or method for detecting and viewing similar programs within a video system includes a receiver having a tuner that receives an input stream of television program content and electronic program guide data, a memory and a display. The receiver separates electronic program guide data from the input stream while the memory stores the electronic program guide data separated from the input stream. The program guide data includes a plurality of attributes characterizing television programs within the television program content. Upon receiving a first user request, a controller compares a first set of attributes relating to at least one television program within the television content with different second sets of attributes relating to other television programs within the television content to determine a correlation between the two sets of attributes. The controller then identifies the television programs that have attributes which are similar to the attributes of the first television program based on the correlation and displays indications of the television programs found to be similar.
In accordance with one aspect of the invention, a program similarity detecting device includes a receiver adapted to receive an input stream of television program content and electronic program guide data, and adapted to separate the electronic program guide data from the input stream. Preferably, the program guide data includes a plurality of attributes characterizing television programs within the television program content. The program similarity detecting device further includes a memory coupled to the receiver that is adapted to store the electronic program guide data, a controller coupled to the memory and a display coupled to the controller.
In this embodiment, the controller is programmed to compare a first set of attributes relating to at least one television program within the television program content to a second set of attributes relating to a second television program within the television program content to determine a correlation between the first set of attributes and the second set of attributes. Additionally, the controller is programmed to determine whether the second television program is a similar to the first television program based on the correlation between the first set of attributes and the second set of attributes. The controller is also programmed to cause the display to generate a first display indicating the second television program if the second television program is determined to be similar to the first television program. The controller may also be programmed to cause the display to generate a second display including an explanation describing the correlation between the first set of attributes and the second set of attributes.
In accordance with another aspect of the invention, a method of identifying similar programs within a video reception system includes storing first characterizing information associated with a first television program, receiving further characterizing information associated with each of a set of second television programs and performing a similarity comparison between the first characterizing information and each of the further characterizing information to determine a third set of television programs. The third set of television programs includes the television programs within the second set of television programs having further characterizing information that matches the first characterizing information to a specific degree. The method of identifying similar programs within a video reception system additionally includes displaying indications of the third set of television programs. Moreover, the method may include displaying an explanation of the results of the similarity comparison and displaying an attribute associated with the further characterizing information that matches an attribute associated with the first characterizing information.
In accordance with yet another aspect of the invention, a method of displaying program similarity explanations includes transmitting program guide data, receiving the program guide data, storing the program guide data in a memory, identifying a first set of television programs and storing characterizing information for the first set of television programs. The method then correlates the characterizing information of the first set of television programs with characterizing information of a second set television programs and displays an indication of the television programs within the second set of television programs that are correlated to a predetermined degree with the first set of television programs. Moreover, the method may display an explanation of the correlation between the first set of television programs and at least one of the television programs within the second set of television programs that is correlated to a predetermined degree with the first set of television programs.
I. Transmission of Television Content, Program Guide Data and Advertising Data
Television broadcasting system 20 includes transmission station 26, uplink dish 30, satellite 32 and one or more receiver stations 34A–34C (collectively referred to as receiver stations 34). The transmission station 26 includes a plurality of input lines 22 for receiving various signals, such as analog television signals, digital television signals, video tape signals, original programming signals, and computer generated signals containing HTML content and digital video server signals. Each input line 22 typically corresponds to a single television channel. Transmission station 26 also includes a plurality of schedule feeds 24 and advertising feeds 25. Schedule feeds 24 provide electronic schedule information about the timing and content of various television channels, such as that found in television schedules contained in newspapers and television guides. The electronic schedule information from the schedule feeds 24 is converted into program guide data by the transmission station 26.
The transmission station 26 receives and processes the various input signals received on input lines 22 and schedule feeds 24, converts the received signals into a standard form, combines the standard signals into a single output data stream 28, and continuously sends output data stream 28 to uplink dish 30. The output data stream 28 is preferably a modulated signal, which is modulated by the transmission station 26 using standard frequency and polarization modulation techniques. In a preferred embodiment, the output data stream 28 is a multiplexed signal including 16 frequency bands. The transmission station 26 is described in further detail below with respect to
The uplink dish 30 continuously receives the output data stream 28 from the transmission station 26, amplifies the received signal and transmits the signal to a satellite 32. Although a single uplink dish and satellite are shown in
The satellite 32 revolves in geosynchronous orbit about the earth. The satellite 32 includes a plurality of transponders that receive signals transmitted by the uplink dish 30, amplify the received signals, frequency shift the received signals to higher frequency bands, and then transmit the amplified, frequency shifted signals back to receiver stations 34. A total of 32 transponders are preferably used in the present invention.
Receiver stations 34 receive and process the signals transmitted by the satellite 32. The receiver stations 34 include hardware and software for separating the electronic program guide data from the received signals, and processing the electronic program guide data. The receiver stations 34 are described in further detail below with respect to
The input signal adapters 36 receive input signals from the input lines 22, and convert the input signals to a standard form. As mentioned above, signals from the input lines 22 may include analog televison signals, digital television signals, video tape signals, original programming signals, computer generated signals containing HTML content, digital video server signals as well as amu others desired signals. Also, the input lines 22 can receive signals from digital video servers having hard discs or other digital storage media. The input signal adapters 36 preferably convert the input signals to a high quality analog format. The high quality analog signals are output by the input signal adapters 36 to the A/D converters 38. The A/D converters 38 convert the analog signals received from the input signal adapters 36 to digital signals, and compress the digital signals using MPEG2 encoding, although other compression schemes may be used.
During the MPEG2 encoding step, the A/D converters 38 also perform a statistical multiplexing operation. During the statistical multiplexing operation, the A/D converters 38 determine the amount of bandwidth that each channel will use. The amount of bandwidth allowed for each channel is determined based upon the content of the signal on that channel, and the amount of bandwidth used by other channels. For a program such as the motion picture “Independence Day,” which has a very dynamic picture content with a great deal of movement and numerous bright explosions, the signal cannot be compressed as much as a more static video signal like an information channel. The greater the dynamic content of the signal, the less the signal can be compressed and the greater the bandwidth required.
Typically, 30 Mega bits of data per second are transmitted by the uplink dish 30 for each transponder in the satellite 32. Each transponder receives and transmits data for about 6 channels. Thus, on average each channel occupies approximately 5 Mega bits of data per second. During the statistical multiplexing operation, the amount of compression for each channel, and correspondingly the amount of information transmitted for each channel, is adjusted up or down depending upon the amount of available space for each transponder. The combiner 42 feeds back information to the A/D converters 38 during the statistical multiplexing operation, informing the A/D converters 38 of the amount of bandwidth used by various channels. The A/D converters 38 then adjust the amount of compression of a signal based on the information fed back from the combiner 42.
The MPEG2 encoded digital data are output by the A/D converters 38 to the combiner 42. The combiner 42 groups the MPEG2 encoded digital data from each A/D converter 38 into a plurality of packets, with each such packet marked with a service channel identification (SCID) number. The SCIDs are later used by the receiver 64 (shown in
The program transmitting system 44 processes audio signals in the same manner as video signals, and the combiner 42 combines digital audio signals with the digital video signals very any known or desired technique. The combiner 42 also receives electronic program guide data from the input lines 58 (as described below with respect to the program guide transmitting system 46) and adds that data to the output data stream 28. The assembly and processing of the electronic program guide data prior to it being sent to the combiner 42 is described in more detail below.
The output data stream 28, which is output by the combiner 42, is a multiplexed signal that is modulated by the combiner 42 using standard frequency and polarization modulation techniques. The output data stream 28 preferably includes 16 frequency bands, with each frequency band being either left polarized or right polarized. Because there are 32 transponders in the preferred embodiment, each of the 16 frequency bands are shared by two transponders. Therefore, transponder one is assigned frequency one, left polarization; transponder two is assigned frequency one, right polarization; transponder three is assigned frequency two, left polarization, etc.
Also shown in
The schedule feeds 24 provide electronic schedule information about the timing and content of various television channels, such as that found in television schedules contained in newspapers and televison guides. The schedule feeds 24 may also provide HTML content.
The database 48 is a computer-based system that receives data from the schedule feeds 24 and organizes that data into a standard format. Program guide data and HTML data may also be manually entered into the program guide database 48 through the data entry station 50. HTML data can be created with commercially available applications, including Claris software, Microsoft software and Adobe software. The compiler 52 reads the standard form data out of the database 48, converts the data into the proper format for transmission to users (specifically, the data is converted into program guide and HTML objects as discussed below) and outputs the data to one or more of the sub-databases 54. The compiler 52 includes a filter program for HTML data that makes sure that only, for example, the subset of HTML version 4.0 that is defined in receiver 64 (shown in
The program guide and HTML objects are temporarily stored in the sub-databases 54 until the cyclers 56 request the information. Each of the cyclers 56 preferably transmits objects to the combiner 42 at a different rate than the other cyclers 56. For example, the cycler 56A may transmit objects to the combiner 42 every second, while the cyclers 56B and 56C may transmit objects every 5 seconds and every 10 seconds, respectively.
Because the receiver 64 (shown in
All of the objects output by the plurality of the cyclers 92 are combined by the combiner 42. The combiner 42 combines the objects with the digital video and audio data output by the A/D converters 38 on output lines 40 and transmits output data stream 28, which includes the program guide data, HTML data and the digital video and audio data, to the uplink dish 30.
II. Format of Transmitted Program Guide and Advertising Data
Prior to transmitting data to the sub-databases 54, the compiler 52 organizes the program guide data from the database 48 into objects. Each object preferably includes an object header and an object body. The object header identifies the object type, object ID, version number of the object and characterizing information. The object type identifies the type of the object. The various types of objects are discussed below. The object ID uniquely identifies the particular object from other objects of the same type. The version number of an object uniquely identifies the object from other objects of the same type and object ID. The object body includes data for constructing a portion of a program guide that is ultimately displayed on a user's television, and is also used for channel definition parameters.
Prior to transmission, each object is preferably broken down by the compiler 52 into multiple frames. Each frame is made up of a plurality of 126 byte packets. Each frame includes a frame header, program guide data and a checksum. Each frame header includes the same information as the object header described above—object type, object ID and version number. The frame header uniquely identifies the frame, and its position within a group of frames that make up an object. The checksum is examined by receiver 64 to verify the accuracy of the data within received frames.
The system described herein may use over 15 different object types. The objects that are used for providing channel definition parameters include boot objects, charmer list objects, channel objects and conditional objects. Other objects, such as HTML (Hyper Text Markup Language) objects, are used to provide channel content. Still further objects, such as program objects, general schedule objects and master schedule objects are used by receiver 64 to generate a display of a program guide on a user's television.
A boot object identifies the SCIDs where all other objects can be found. A boot object is always transmitted on the same channel, which means that each packet of data that makes up a boot object is marked with the same SCID number. Boot objects are transmitted frequently to ensure that receivers 64 that have been shut off, and are then turned back on, immediately receive information indicating the location of the various program guide objects. Thus, boot objects are sent from the compiler 52 to a cycler 56 with a high rate of transmission.
III. Receiving and Processing Program Guide Data
The receiver dish 60 receives signals sent by the satellite 32, amplifies the received signals and passes the signals on to the tuner 70. The tuner 70 operates under control of the CPU 74. The tuner 70 is preferably two separate tuners, a first tuner for tuning to digital DSS and ATSC channels, and a second tuner for tuning to analog NTSC channels. The functions performed by the CPU 74 are controlled by a control program stored in the memory 78. The memory 78 also stores a parameter table, which includes a variety of parameters for the receiver 64 such as a list of channels the receiver 64 is authorized to process and generate displays for, the zip code and area code for the area in which receiver 64 is used, and the model number of the receiver 64. The clock 76 provides the current local time to the CPU 74. The interface 82 is preferably coupled to a telephone jack at the site of the receiver station 34. The interface 82 allows the receiver 64 to communicate with the transmission station 26 via telephone lines. The interface 82 may also be used to transfer data to and from a network, such as the Internet.
The signals sent from the receiver dish 60 to the tuner 70 are digital signals that are grouped into a plurality of packets. Each packet includes a header that identifies the SCID number for the packet, and the type of data contained in the packet (e.g, audio data, video data, or program guide data). The tuner 70 includes multiple output lines for transmitting video data, audio data, and program guide data. As packets are received from the receiver dish 60, the tuner 70 identifies the type of each packet and outputs each packet on the appropriate output line, as discussed in more detail below. If the tuner 70 identifies a packet as program guide data, the tuner 70 outputs the packet to the memory 78. Program guide data is stored in a guide database in the memory 78.
In addition to the digital satellite signals received by the receiver dish 60, other sources of television content are also preferably used. For example, the alternate content source 62 provides additional television content to the television 66. The alternate content source 62 is coupled to the tuner 70 and can be an antenna for receiving off-the-air signals NTSC signals, a cable for receiving ATSC signals, or any other content source. Although only one alternate content source 62 is shown, multiple sources can be used.
Initially, as data enters the receiver 64, the tuner 70 looks for a boot object. Boot objects are always transmitted with the same SCID, so the tuner 70 knows that it must look for packets marked with that SCID. A boot object identifies the SCIDs where all other objects can be found. The information from the boot object is used by the tuner 70 to identify packets of advertising data and program guide data and to route these packets to the memory 78.
As program guide data and advertising data are received and stored in the database within the memory 78, the CPU 74 performs various operations on the data in preparation for displaying a program guide on the television 66. These operations include packet assembly, object assembly and object processing.
The first operation performed on the program guide data stored in the guide database in the memory 78 is packet assembly. During the packet assembly operation, the CPU 74 examines the stored program guide data and determines the locations of the packet boundaries.
The next step performed by the CPU 74 is object assembly. During the object assembly step, the CPU 74 combines packets to create object frames, and then combines the object frames to create program guide objects. The CPU 74 examines the checksum transmitted within each object frame, and verifies whether the frame data was accurately received. If the object frame was not accurately received, it is discarded from the memory 78. Also during the object assembly step, the receiver 64 discards assembled objects that are of an object type that the receiver 64 does not recognize. The receiver 64 maintains a list of known object types in the memory 78. The CPU 74 examines the object header of each received object to determine the object type. The CPU 74 compares the object type of each received object to the list of known object types stored in the memory 78. If the object type of an object is not found in the list of known object types, the object is discarded from the memory 78.
The last step performed by the CPU 74 on received program guide is object processing. During the object processing step, the objects stored in the database are combined to create a digital image of a program guide. The digital image of the program guide is later converted to an analog signal that is sent to the television 66 for display to a user.
IV. Processing Channel Objects
Users select a particular channel to watch on the television 66 using the remote control 86. The remote control 86 emits infrared signals that are received by the infrared (IR) receiver 84 in the receiver 64. Other types of data entry devices may be alternatively be used, such as an ultra-high frequency (UHF) remote control, a keypad on the receiver 64, a remote keyboard and a remote mouse, etc. channels are preferably selected using the remote control 86 to navigate around an electronic television program guide, such as the program guide 88 shown in
The program guide 88 includes a grid 90, cells 92, a channel list 94, scroll buttons 96A and 96B, time indicators 98A–98C (collectively referred to as time indicators 98), a jump button 100, a time button 102, day indicators 104, an information window 106, and category buttons 108A, 108B and 108C (collectively referred to as category buttons 108). The various buttons and cells are highlighted by navigating around the program guide 88 using remote control 86.
The grid 90 includes a plurality of the cells 92. Each cell 92 includes a program title, and may provide additional information. The channel list 94 includes a list of channel names or channel numbers, or both. The channel list 94 may also include icons, such as icons that represent particular channels. The names and channel numbers for each entry in the channel list 94 are obtained from the channel object for that entry. The time indicators 98A, 98B and 98C (referred to collectively as “time indicators 98”) indicate start and end times of the various programs displayed in the grid 90. Although half-hour time blocks (a time block is the length of time between two time indicators 98) are shown in the program guide 88, other time block lengths may be used instead. Scroll buttons 96A and 96B allow users to scroll up and down the channel list 94 and to display different channels. Day indicators 104 indicate the day for which program information is presently being displayed. In
The information window 106 provides additional information about programs displayed in the grid 90. The type of information displayed in the information window 106 depends on which category button 108A–108C is currently selected. Users select one of the category buttons 108A–108C using the remote control 86. As shown in
The program guide 88 preferably includes schedule information for numerous channels, including DSS channels, ATSC channels and NTSC channels, regardless of whether the channel content is actually transmitted by the television broadcasting system 20. Program guide 88 preferably includes schedule information for the television content generated by the alternate content source 62.
V. Similarity Matching
Through the use of similarity matching, a user can request that the receiver 64 find television programs in the electronic schedule which are similar to a television program that he or she likes. The user can store these preferred programs in the memory 78 and use the characterizing information particular to these programs to query the receiver 64 for similar programs even after the preferred program has been transmitted.
The first part of similarity matching involves the user selecting one or more program titles from the program guide 88. This usually can be done by navigating around the program guide 88 using the remote control 86 and highlighting the cell 92 containing the preferred program titles. Once the appropriate program title is highlighted, a similarity search is selected using the remote control 86. Although the similarity search can be preformed in many ways, one method would utilize a “similarity” button 107, on the remote control 86.
The characterizing information can be organized into attributes. Attributes include information such as category descriptors that identify the type and category of the program, name descriptors that identify the name of the program selected, credits information that identifies the names and roles of those involved in the production of the program, and key words and phrases in the description of the program. Category descriptors preferably provide a two-tiered category classification, such as “sports/baseball” or “movie/drama,” although any number of tiers may be used including single tiers.
Attributes also include indicators that the program is one of a particular series or that the program is one of a group of associated programs. For example, each episode of Star Trek, The Next Generation will have the same series indicator. The Star Trek movies, and various Star Trek series may all have the same group indicator, even if they are not part of one particular series. The CPU 74 keeps track of the program selection made by users, and stores the attributes for selected programs in the memory 78.
The second part of similarity matching involves correlating the characteristics of programs in a television programming schedule with the information compiled regarding the individual user's viewing selections. The receiver 64 uses similarity matching to determine how well television programs from the electronic program guide fit a user's preferred television program attributes stored in the memory 78. The preferred television program is one that the user selects for similarity matching.
As discussed earlier, program guide data are broadcast to the receiver 64 along with television content. Each television program transmitted has associated program objects which are used to create an electronic program guide (discussed above in
The receiver 64 uses the similarity algorithm to compare schedule television program attributes to the selected television program attributes. The similarity algorithm can be used to weight certain attributes to calculate a similarity score tailored in specific ways (discussed in
The third part of similarity matching involves using correlations between the characteristics of schedule program objects and the selected television program to display program titles which are similar in some manner to the selected television program title. One example of using similarity scores to match television programs to an individual user's preferences is to display those television programs from the electronic program guide which have at least a predetermined cutoff similarity score. In order to accomplish this action, the CPU 74 examines the list of calculated similarity scores stored in the memory 78 (Block 126). A “cutoff” value or range is built into the logic 80 in the receiver 64 (Block 128) or may be selected by the user. The receiver 64 compares each score to the “cutoff” similarity score. Only those television programs with program objects that have a similarity score above the cutoff score or range of scores are retained to be displayed in the electronic program guide (Block 130).
To illustrate, assume that the category descriptor is an important attribute required to have acceptable search results from a user similarity request. A similarity algorithm which heavily weights the category descriptor attribute relative to the other attributes will insure that a television program in the same category as the selected program has a relatively high similarity score, even though other attributes associated with the television program may not match the list of common attributes in the user's selection history. So, if the preferred program title is “Monday Night Football” any objects which are classified under the category descriptor “Sports” or “Sports/Football” will receive a high matching score. In this way, the user is likely to see program objects in the electronic program guide which describe television programs that match the category attribute, regardless of how few of the other attributes of the program object match the list of attributes from the preferred television program. Therefore the basketball television program “Timberwolves vs. Spurs” will receive a higher matching score than the television program “All the Right Moves” a movie about high school football. Of course, similarity algorithms may be weighted in any fashion to emphasize some attributes over other attributes.
The cutoff value can be a value which doesn't change. Alternatively, the cutoff value may vary depending on the number of programs which match the selected program. For example, if 100 programs are found which meet the cutoff score, the CPU 74 in the receiver 64 can specify that a higher cutoff score be used to narrow the results from the search. On the other hand, if no programs are found which meet the cutoff score, the CPU 74 can specify that a lower cutoff score be used. If desired, a user may select the cutoff value.
The example similarity algorithm explained below with reference to
In the example similarity algorithm illustrated in
Here, the schedule television program has category, description, and name attributes which match the selected (preferred) television program. First, the CPU 74 matches the category descriptor in the selected television program and calculates a score for the category attribute (Block 134). To accomplish this step, the CPU 74 counts the number of category descriptors common to the selected television program and the schedule program object and weights the count by multiplying the count by thirty.
Next, the CPU 74 examines the selected television program and the schedule program object for description field attributes. Specifically, the CPU 74 looks for words common in the description fields to calculate a description score (Block 136). The CPU 74 filters out less significant words such as “and”, “is” and “the” in order to determine a more meaningful description score. The CPU 74 counts the number of significant words common to both the selected television program and the schedule program object and weights that number by multiplying the count by ten.
Next, the CPU 74 calculates a name score by examining the name descriptor attributes in both the selected television program and the schedule program objects (Block 138). If the name descriptor matches, the CPU 74 weights the count by multiplying the number of name descriptors that appear in both the selected program and the scheduled program by five.
Finally, the CPU 74 calculates the similarity score for the schedule program object by adding the category score, the description score, and the name score together (Block 140). The calculated score for that schedule program object (and its associated program title) is stored in memory 78 (Block 142) so that the CPU 74 can compare the newly calculated similarity score with similarity scores for other television programs, and later use the calculated similarity scores to select program objects to be displayed in the electronic program guide.
Although similarity matching has been described using a single television program selected by the viewer, other methods of determining which program a user might prefer exist. One alternative method is to allow a viewer the option of saving multiple programs they enjoy in the memory 78. Upon selecting a dedicated button on the remote control, or a link on the display screen, the user can select a “programs I might like” option. The receiver would take attributes from the preferred programs saved in the memory 78 and find attributes which occur most often. For example, by comparing the attributes of ten saved programs, the receiver 64 (through CPU 74) can determine that 80% of the programs contain the category descriptor “sports,” 30% contain the category descriptor “football”, and 10% contain the word “football” in its description. The receiver 64 can use these percentages to weight attributes in the similarity algorithm (as discussed in
As mentioned earlier, the receiver 64 not only determines which television programs to display in the electronic program guide, but can also determine how to display the similarity matched television programs according to how high a similarity score they have. For example, a television program having a high similarity score could be displayed more prominently over a television program having a low similarity score. This may be accomplished using larger font, colors, underlining, bold font, or any number of additional methods. In this way, users are alerted to television programs in the electronic program guide which are customized to their interests.
The steps discussed for similarity matching include compiling attribute information for the selected television program object and the scheduled program objects, utilizing a similarity algorithm to weight the attributes, and comparing the resulting program object “score” against a cutoff score to determine which scheduled television programs are to be displayed. Next, the receiver returns the results of the similarity search to the user, displaying a results the screen 144. The results screen is created using a similar process used to create of the electronic program guide described in
One example of the results screen 144 is shown in
The results title 146 includes a digital image portion which reads “Other programs now on similar to” and the title of the selected program title 147 “Splash.” In this example, the user is requesting similarity matches to the movie “Splash.” The results of the requested search is shown by the receiver 64 displaying the transmission channels 148 and the results program titles 150 for the television programs whose attributes matched the user selected program title 147 “Splash” according some criteria. The selected program title 147 is a romantic comedy movie about a mermaid. A user looking at the results of the similarity search may be confused by the result program titles 150 which were presented by the receiver 64 as being “similar” to the selected program title 147. The first result program title 150, “Grace Under Fire,” is a half-hour situation comedy starring a well known comedienne. The second result program title 150, “Apollo 13,” is a movie about an ill-fated NASA manned lunar mission. The third result program title 150, “Roxanne,” is a modem movie version of the play “Cyrano de Bergerac.” The fourth result program title 150, “Grumpy Old Men,” is a movie comedy about two men living in the state of Minnesota. None of the four result program titles 150 seem to have an immediate intuitive connection that would indicate to the user why the receiver would display them as being similar to the selected program title 147. Here, the result program titles 150 are arranged in order according to the transmission channel 148, although any method of ordering may be used. One alternate method would include using the value of the score calculated by the similarity algorithm to arrange the result program titles 150 from most, for example, similar to least similar.
The receiver 64 may provide an explanation to the user by displaying the attributes used by the CPU 74 on the television 66, describing why each results program title 150 was matched to the selected program title 147. By selecting the explanation indicator 152A–152D proximate to each result program title 150 (using the remote control as discussed with respect to
Once again, the explanation screen 154 is generated by the receiver 64 using a digital image stored in the memory 78. The explanation screen 154 shown in
To determine what the explanation screen 154 is to display to the user, the receiver 64 examines which attributes contained in the result program title 150 “Apollo 13” match attributes contained in the selected program title 147 “Splash.” In this example, the receiver 64 determined that the program objects for each of the television programs has the same director attribute. Next, the receiver 64 selects the stored digital image “Both programs list (blank) as Director” and inserts the specific attribute “Ron Howard” in the blank and displays the resulting text on the television 66.
Similarly, if the user selected the explanation indicator 152D (from
An alternate embodiment of the results screen 144B is shown in
By providing matching information to the user, the invention gives the user a more complete understanding of the viewing options available to him or her. This is done using the receiver 64 to store program information and user preferences in the memory 78. The CPU 74 searches through these information and preferences to determine television programs from the program schedule which match the preferences of the user. The user can request that the receiver 64 display the explanation 158 to indicate why CPU 74 matched particular television programs, by requesting that the CPU 74 display matching attributes. These attributes are displayed by the receiver 64 in an understandable intuitive fashion. Providing the user with the matching information better enables the user to navigate through a large amount of television schedule information and to find programming that suits his or her preferences.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.