The introduction of social networking has transformed the manner in which people communicate, share experiences, and exchange information via the Internet. The transformation has led to people sharing an increasing amount of content and content information through applications and websites. To help users find relevant content and content information, many applications and websites provide content recommendations. The recommendations can assist users in locating related content that is similar to previously accessed content. However, content recommendations are often generated from teams of experts. For example, recommendations for audio content can be generated by categorizing a song according to predetermined categories and recommending other songs within the same category. However, the predetermined categories can be static and unable to be rapidly modified. Furthermore, the recommendations can be based on the input of a relatively small number of individuals.
The following detailed description may be better understood by referencing the accompanying drawings, which contain specific examples of numerous objects and features.
The techniques for generating content recommendations described herein can utilize content entries to identify information related to content. Content, as referred to herein, includes audio media, video media, audio books, or any other content. The content entries, as referred to herein, include any website or application that allows users to add, modify, or delete information pertaining to a wide variety of topics. For example, a content entry may include a wiki entry that allows users to add, modify, or delete information pertaining to the subject matter of the wiki entry. Since the content entries are generated and maintained by users, the information stored in the content entries can be continuously updated. Therefore, the content entries allow for a dynamic source of information that can be utilized for generating recommendations.
The processor 102 may be connected through a system bus 104 (e.g., PCI, PCI Express, HyperTransport®, Serial ATA, among others) to an input/output (I/O) device interface 106 adapted to connect the computing system 100 to one or more I/O devices 108. The I/O devices 108 may include, for example, a keyboard and a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others. The I/O devices 108 may be built-in components of the computing system 100, or may be devices that are externally connected to the computing system 100.
The processor 102 may also be linked through the system bus 104 to a display interface 110 adapted to connect the computing system 100 to a display device 112. The display device 112 may include a display screen that is a built-in component of the computing system 100. The display device 112 may also include a computer monitor, television, or projector, among others, that is externally connected to the computing system 100.
A network interface card (NIC) 114 may be adapted to connect the computing system 100 through the system bus 104 to a network 116. The network 116 may be a wide area network (WAN), local area network (LAN), or the Internet, among others. Through the network 116, the computing system 100 may retrieve information located in content entries that are stored on a server 118.
The computing system also includes a memory device 120 that stores instructions that are executable by the processor 102. The processor 102 can be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The memory device 120 can include random access memory (e.g., SRAM, DRAM, SONOS, eDRAM, EDO RAM, DDR RAM, RRAM, PRAM, among others), read only memory (e.g., Mask ROM, PROM, EPROM, EEPROM, among others), flash memory, or any other suitable memory systems. The memory device 120 may also include a hard drive, an optical drive, a USB flash drive, an array of drives, or any combinations thereof. The memory device 120 may include a recommendation application 122 that is adapted to generate content recommendations as described herein. The recommendation application 122 may obtain recommendation data from the server 118 and I/O devices 108, among other hardware devices. Recommendation data, as described herein, includes any information stored in a content entry, information received by an I/O device 108, or any other information that can be used to generate content recommendations. The server 118 can create, send, and store content entries or any other information related to content.
It is to be understood that the block diagram of
At block 202, the recommendation application 122 of
At block 204, the recommendation application 122 selects a content entry for the identified content. As discussed above, a content entry includes websites or applications that allow users to add, modify, or delete information. The content entry for the content can be located by searching a content source, which includes any number of content entries related to any number of topics. For example, a search of a wiki source based on the name of a music artist can identify the wiki entry for the music artist. The information included in the wiki entry can include biographical information, related music artists, types of music performed by the music artist, band members, awards, and other information related to the music artist. An example of a content entry is provided in
At block 206, the recommendation application 122 identifies keywords in the content entry. The keywords can indicate categorical information about the content of the content entry. For example, keywords in a wiki entry can indicate genres of music that a music artist has performed. The keywords can be located in various sections within the wiki entry, such as a content description section. The content description section may contain biographical information related to the content. In some examples, keywords can be identified based on the number of times certain terms are repeated. For example, the word, “country,” may be identified as a keyword if “country” is repeated a specified number of times in a content entry. In some examples, the keywords can be stored in a data structure, such as a linked list, array, or vector, among others.
The keywords in a content entry can also be identified based on user preferences. For example, users may indicate that different keywords have varying degrees of importance. In this example, user preferences may be stored in the computing system 100. The user preferences can also indicate a weighted average for various keywords. The weights used in the weighted average can be assigned to keywords that pertain to broader categories, e.g., music genres, subgenres, awards, discographies, band members, among others. For example, keywords that identify genres of music that a music artist has performed may receive a larger weight than keywords that identify awards the music artist has won. Therefore, the genres of music that a music artist has performed may influence a recommendation more than other keywords that receive smaller weights.
In some examples, multiple content entries may include information relating to the same content. For example, one wiki entry may include information related to content that a second wiki entry does not include. Since the separate wiki entries may contain different information, different keywords can be identified in separate wiki entries. The keywords may then be combined to provide one set of identified keywords.
At block 208, the recommendation application 122 generates a tag for the content based on the keywords. The tag can provide a classification for the content based on any number of the identified keywords. The tag can include a genre of music, a name of a music artist, or a subgenre of music, among others. For example, keywords for a music artist can indicate the music artist is a jazz musician from the 1940's. Therefore, the tag can include a jazz music classification along with a 1940's classification, which provides a type of related music from a specific time period.
In some examples, the tag can be generated by applying user preferences to the identified keywords. For example, a user's preference can indicate the user is interested in audio media recommendations that are from the same genre of music and include music artists with common band members. Accordingly, a tag can be generated to include keywords that relate to the genre of music and band members for audio content. In other examples, a user may seek recommendations for music artists that sound similar to a particular music artist. The recommendation application 122 may identify a number of keywords for the music artist related to a genre of music, a time period, band members, and awards, among others. However, the user preferences may indicate that specific categories of keywords are to be included in a tag, while excluding other keywords. In this way, the tag can be based on a user's preferences. Once the tag is generated, the tag can be stored in the content entry as discussed in greater detail below in relation to
At block 210, the recommendation application 122 identifies recommendations based on the tag. For example, a tag can indicate that a music artist performs rock music. Accordingly, recommendations based on this tag may include rock musicians. In some examples, a set of potential recommendations can be generated based on a content description of a wiki entry. For example, a song may be identified as belonging to a genre of music. The genre of music can then be used to locate similar songs that represent potential recommendations.
A set of actual recommendations can then be selected from the potential recommendations. In some examples, the tag can include user preferences that indicate the related content that is to be included in the actual recommendations. For example, a user may specify a preference for a specific subgenre of music. As such, a potential recommendation list of blues music can be narrowed to a subgenre of blues, such as electric blues. In other examples, a music artist may perform a particular song that belongs to a different genre of music than the music artist typically performs. While the potential recommendations may include music artists related to the genre of music the music artist typically performs, the tag for the particular song may indicate that music artists of a different genre are to be included in the actual recommendations. In this way, the actual recommendations may be a subset of the potential recommendations.
The potential and actual recommendations can be stored in any type of data structure including a linked list, binary tree, or array, among other data structures. In some examples, the potential and actual recommendations can be stored in the server along with the tags and content entries. In other examples, the potential and actual recommendations can be stored in a computing system.
At block 212, the recommendation application 122 displays the recommendations. In some examples, recommendations are specific to a user and displayed by the recommendation application 122 on a computing system. In these examples, the recommendations may be displayed proximate to the content for which the recommendations are based. For example, the recommendations may include a list of similar songs that belong to the same genre as a particular song. The list of similar songs included in the recommendations may be displayed near the song for which the recommendations are based. In other examples, the recommendations can be added to the content entry, so that other users can use the recommendations. For example, the recommendations may include music artists that perform music in the same genre as a particular music artist. The recommendations may be displayed in a content entry in a recommendation section that displays user specific recommendations that have been generated and stored on a server. In these examples, users can browse the recommendations that have been generated for other users based on their preferences. The process ends at block 214.
The process flow diagram of
The block diagram of
At block 402, the recommendation application 122 generates a playlist. The playlist can include a variety of different content. For example, a playlist can include any number of songs by various music artists or other forms of visual or audio media. The playlist can be generated by the recommendation application 122, or any other application or user. For example, the playlist can be created by randomly selecting songs from a particular time period or genre of music.
At block 404, the recommendation application 122 generates a tag for each item in the playlist. An item can be any type of content such as audio media or video media. In some examples, a content entry is detected for each item, as discussed above in relation to
At block 406, the recommendation application identifies a theme for the playlist. For example, the tags for each item of the playlist may share a common genre of music such as rock. Therefore, the playlist can be identified as a rock playlist. In other examples, the tags for each item of the playlist may indicate the time period of the music. Therefore, the playlist may be identified as a 1970's playlist that includes music from various genres of music from the 1970's time period.
The process flow diagram of
The various software components discussed herein may be stored on the tangible, non-transitory, computer-readable medium 500, as indicated in
The present examples may be susceptible to various modifications and alternative forms and have been shown only for illustrative purposes. Furthermore, it is to be understood that the present techniques are not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the true spirit and scope of the appended claims.