The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
In the following detailed description of embodiments of the invention, reference is made to the accompanying drawings in which like references indicate similar elements, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, functional, and other changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
Furthermore, category data can be sparse, which means that the category data has a large dimensionality. In one embodiment, the category data is sparse because the categories are discrete and lack a natural similarity measure between them. Examples of category data include electronic program guide (EPG) data, and content metadata. The data system 10 includes an input processing module 9 to preprocess and load the category data 11 from database input 8A-N. In one embodiment, database input 8A-N can be one of several community-generated sources, such as WIKIPEDIA, etc.
The category data 11 is grouped into clusters, and/or classified into folders by the clustering/classification module 12. Details of the clustering and classification performed by module 12 are below. The output of the clustering/classification module 12 is an organizational data structure 13, such as a cluster tree or a dendrogram. A cluster tree may be used as an indexed organization of the category data or to select a suitable cluster of the data.
Many clustering applications require identification of a specific layer within a cluster tree that best describes the underlying distribution of patterns within the category data. In one embodiment, organizational data structure 13 includes an optimal layer that contains a unique cluster group containing an optimal number of clusters.
A data analysis module 14 may use the folder-based classifiers and/or classifiers generated by clustering operations for automatic recommendation or selection of content. The data analysis module 14 may automatically recommend or provide content that may be of interest to a user or may be similar or related to content selected by a user. In one embodiment, a user identifies multiple folders of category data records that categorize specific content items, and the data analysis module 14 assigns category data records for new content items with the appropriate folders based on similarity.
A user interface 15 also shown in
Clustering is a process of organizing category data into a plurality of clusters according to some similarity measure among the category data. The module 12 clusters the category data by using one or more clustering processes, including seed based hierarchical clustering, order-invariant clustering, and subspace bounded recursive clustering. In one embodiment, the clustering/classification module 12 merges clusters in a manner independent of the order in which the category data is received.
In one embodiment, the group of folders created by the user may act as a classifier such that new category data records are compared against the user-created group of folders and automatically sorted into the most appropriate folder. In another embodiment, the clustering/classification module 12 implements a folder-based classifier based on user feedback. The folder-based classifier automatically creates a collection of folders, and automatically adds and deletes folders to or from the collection. The folder-based classifier may also automatically modify the contents of other folders not in the collection.
In one embodiment, the clustering/classification module 12 may augment the category data prior to or during clustering or classification. One method for augmentation is by imputing attributes of the category data. The augmentation may reduce any scarceness of category data while increasing the overall quality of the category data to aid the clustering and classification processes.
Although shown in
As illustrated in
Database input module 9 further comprises database dimension reduction module 15. As stated above, category datasets can be sparse. Reducing the dimensionality of the datasets improves the efficiency and quality of modules using the datasets, because the datasets are denser and easier to search and/or process. In one embodiment, database dimension reduction module 15 reduces the dimensionality of category dataset 11 by modifying the term relations between the terms in category dataset 11 and the content. A term relation is data that define the relationship between a term in category data 11 and the one or more particular pieces of content associated with that term. In another embodiment, database dimension reduction module 15 reduces the dimensionality of category dataset 11 by reducing the number of terms in category dataset 11. A particular methodology for reducing category data dimensionality is described in the co-pending U.S. patent application, entitled “DIMENSIONALITY REDUCTION FOR CONTENT CATEGORY DATA”, application Ser. No. ______, attorney docket no. 80398.P655. As described in application Ser. No. ______, the category data dimensionality is reduced based on the category names in the category dataset and relation data, where the relation data defines a relationship between the category dataset and the content associated with the category dataset.
In one embodiment, database input module 9 extracts category data for a particular piece of content from content metadata. Content metadata is information that describes content used by data system 10.
Category data for a particular piece of content is one or more terms that describe the different categories associated with the piece of content. As illustrated in
One problem with generating accurate and up to date content 150 is maintaining the large amount of content. For example, a week of television programming could have thousands of programs with thousands of individual terms describing the programs. One possible way to reduce the cost and time to maintain a large amount of content data is to extract content metadata from community-generated web sites, such as a wiki-based web site. A wiki based web site is a multilingual Web-based free-content encyclopedia that allows users to easily add and edit content. An example is the publicly available WIKIPEDIA service. Thus, the wiki encyclopedia is written collaboratively by many users, allowing most articles to be edited by anyone with a web browser. This can allow for a relatively inexpensive way to generate metadata for content.
Method 200 can take advantage of the information contained in a wiki by harvesting the information through web retrievals. At block 202, method 200 receives information about the content of the interest. For example, in one embodiment, method 200 receives the title, genre, and information about the actors, actresses, producer, director, etc.). Based on the content information received, method 200 retrieves a web page associated with the content at block 204. One embodiment of web retrieval is further described in
At block 206, method 200 extracts the text from the retrieved web page. Text extraction extract terms that describe or are associated with the content of interest. One embodiment text extraction is further described in
Optionally, at block 208, method 200 removes the stop terms from the extracted text. In one embodiment, stop terms are punctuation that delineate sentences, clauses, etc. Alternatively, stop term can include other marks, such as a, the, an, of, in, but, or, etc. By removing the stop terms, the extracted text is left with terms associated with the content and other non-stop terms.
Optionally, at block 210, method 200 removes the stem terms from the extracted text using one of the stemming algorithms well-known in the art, such as, but not limited to Paice/Husk, Porter, Lovins, Dawson, Krovetz, etc. Stemming reduces a term to its stem or root form. For example, the words “computing” and “computation” have the stem “compute”. Stemming term further reduces the variants of terms in the extracted text so that stemming can reduce the number of terms in the extracted text.
At block 212, method 200 adds terms from the modified extracted text to the metadata for that content. For example, method 200 extract terms about the content's genre, actors, actresses, awards, producers, directors, reviews, links to further information, etc. In one embodiment, method 200 adds the extracted terms to category data. In this embodiment, method 200 adds the extracted terms to category data 11 that are useful to categorize the content, such as, but not limited to genre, actors, actresses, awards, producers, directors, etc. Alternatively, method 200 can catergorize the data. In alternate embodiments, method 200 adds terms to a separate metadata database used to store content metadata.
At block 306, method 300 opens the URL formed in block 304. While in one embodiment, method 306 opens the URL by making a Hypertext transfer protocol (HTTP) request, in alternate embodiments, method 300 opens the URL using different protocols (secure HTTP (HTTPS), etc.). Method 308 returns the URL contents at block 308.
At block 404, method 400 specifies the HTML parser actions. Parser action define how the HTML parser extracts words from the received web page. For example, method 400 could specify to remove all text within HTML tags, remove all HTML tags except for the HTML “META” tag, to ignore words starting with a number, etc. Furthermore, in another embodiment, method 400 could specify parser actions based on other types of formats (XHTML, XML, SGML, etc.). Based on the specified parser actions, method 400 parses the HTML page into separate words at block 406 using an algorithm known in the art, such as, parser actions known in the art, such as splitting terms at white space (except for cases such as “Mr. X”, “Joe Public”, etc.). At block 408, method 400 extracts the first N words from the parsed HTML page. In one embodiment, N is a rough limit on words. Alternatively, N can be a limit on the number of paragraphs processed, such as, selecting words from the first N paragraphs of text. Limiting the number of words extracted helps maintain a smaller size of category data because the metadata extracted is used as input into category data 11. Alternatively, method 400 extracts all the words from the parsed HTML page.
The following descriptions of
In practice, the methods described herein may constitute one or more programs made up of machine-executable instructions. Describing the method with reference to the flowchart in
The web server 608 is typically at least one computer system which operates as a server computer system and is configured to operate with the protocols of the World Wide Web and is coupled to the Internet. Optionally, the web server 608 can be part of an ISP which provides access to the Internet for client systems. The web server 608 is shown coupled to the server computer system 610 which itself is coupled to web content 640, which can be considered a form of a media database. It will be appreciated that while two computer systems 608 and 610 are shown in
Client computer systems 612, 616, 624, and 626 can each, with the appropriate web browsing software, view HTML pages provided by the web server 608. The ISP 604 provides Internet connectivity to the client computer system 612 through the modem interface 614 which can be considered part of the client computer system 612. The client computer system can be a personal computer system, a network computer, a Web TV system, a handheld device, or other such computer system. Similarly, the ISP 606 provides Internet connectivity for client systems 616, 624, and 626, although as shown in
Alternatively, as well-known, a server computer system 628 can be directly coupled to the LAN 622 through a network interface 634 to provide files 636 and other services to the clients 624, 626, without the need to connect to the Internet through the gateway system 620. Furthermore, any combination of client systems 612, 616, 624, 626 may be connected together in a peer-to-peer network using LAN 622, Internet 602 or a combination as a communications medium. Generally, a peer-to-peer network distributes data across a network of multiple machines for storage and retrieval without the use of a central server or servers. Thus, each peer network node may incorporate the functions of both the client and the server described above.
Network computers are another type of computer system that can be used with the embodiments of the present invention. Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 708 for execution by the processor 704. A Web TV system, which is known in the art, is also considered to be a computer system according to the embodiments of the present invention, but it may lack some of the features shown in
It will be appreciated that the computer system 700 is one example of many possible computer systems, which have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an input/output (I/O) bus for the peripherals and one that directly connects the processor 704 and the memory 708 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.
It will also be appreciated that the computer system 700 is controlled by operating system software, which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of an operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash., and their associated file management systems. The file management system is typically stored in the non-volatile storage 714 and causes the processor 704 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 714.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This patent application is related to the co-pending U.S. patent application, entitled “______”, application Ser. No. ______, attorney docket no. 80398.P649, and co-pending U.S. patent application, entitled “DIMENSIONALITY REDUCTION FOR CONTENT CATEGORY DATA”, application Ser. No. ______, attorney docket no. 80398.P655. The related co-pending applications are assigned to the same assignee as the present application.