Keyword acquiring device, content providing system, keyword acquiring method, a computer-readable recording medium and content providing method

A keyword related to a user's interest is acquired. A keyword acquiring device including a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node records a keyword associated with content previously selected by a user as a log, extracts a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in the log, extracts a partial tree including the extracted keywords from the keyword tree, and acquires a keyword in a node having no other lower node as a keyword related to the user's interest.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique of acquiring a keyword related to a user's interest.

Priority is claimed on Japanese Patent Application No. 2011-247694, filed Nov. 11, 2011, the contents of which are incorporated herein by reference.

2. Description of Related Art

In the past, techniques of recommending another product or another moving image to a user based on a product or a moving image selected by the user have been proposed. For example, JP 2011-096255 A discloses a technique of recommending to the user using collaborative filtering. The collaborative filtering has been used in various fields as a technique of recommending to the user. For example, in book purchase sites, based on a book accessed by the user, another book accessed by another person who has accessed the same book is recommended using collaborative filtering.

However, in the above-mentioned technique, a recommendation is performed under the assumption that the user who has accessed a certain book will also have an interest in another book accessed by another user who accessed the same book. However, actually, users have various preferences, and thus a recommendation made based on a browsing habit of another user is not necessarily in tune with the user's preference. For this reason, it is difficult for the technique according to the related art to improve the accuracy of recommendation, and an enormous amount of access logs are necessary to increase the accuracy. In addition, as a fundamental problem, it is difficult to acquire a keyword related to the user's interest. In other words, when it becomes possible to acquire a keyword related to the user's interest, it is possible to estimate a product, a moving image, or the like suitable for the user's interest.

SUMMARY OF THE INVENTION

In light of the foregoing, the present invention is directed to provide a technique capable of acquiring a keyword related to the user's interest.

According to an aspect of the present invention, there is provided a keyword acquiring device including a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node, a log storage unit that records a keyword associated with content previously selected by a user as a log, a partial tree extracting unit that extracts a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in the log storage unit, and extracts a partial tree including the extracted keywords from the keyword tree, and a keyword acquiring unit that acquires a keyword in a node having no other lower node as a keyword related to the user's interest.

According to an aspect of the present invention, in the keyword acquiring device, the keyword acquiring unit sorts each node of the partial tree for every two or more nodes having the same upper node based on a count number representing the number of keywords recorded in the log storage unit, explores the partial tree in order starting from a partial tree which is large in a count number of a highest node, and acquires a predetermined number of keywords.

According to the present invention, there is provided a content providing system including a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node, a log storage unit that records a keyword associated with content previously selected by a user as a log, a partial tree extracting unit that extracts a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in the log storage unit, and extracts a partial tree including the extracted keywords from the keyword tree, a keyword acquiring unit that acquires a keyword in a node having no other lower node as a keyword related to the user's interest, a keyword storage unit that stores content and a keyword in advance in association with each other, and a content providing unit that provides content corresponding to the keyword acquired by the keyword acquiring unit to the user.

According to the present invention, in the content providing system, the content providing unit receives a keyword selected by the user from a user terminal that outputs the keyword acquired by the keyword acquiring unit on a screen, and provides the content associated with the selected keyword in the keyword storage unit to the user.

According to the present invention, there is a provided a keyword acquiring method performed by a keyword acquiring device including a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node, and the keyword acquiring method includes recording a keyword associated with content previously selected by a user as a log, extracting a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in the log, extracting a partial tree including the extracted keywords from the keyword tree, and acquiring a keyword in a node having no other lower node as a keyword related to the user's interest.

According to the present invention, there is a computer-readable recording medium in which a computer program is recorded, the computer program causes a computer, which includes a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node, to execute recording a keyword associated with content previously selected by a user as a log, extracting a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in the log, extracting a partial tree including the extracted keywords from the keyword tree, and acquiring a keyword in a node having no other lower node as a keyword related to the user's interest.

According to the present invention, there is provided a content providing method performed by a content providing system including a tree storage unit that stores a keyword tree obtained by performing hierarchization according to the number of appearances and relevance in advance using a keyword associated with content as a node and a keyword storage unit that stores content and a keyword in advance in association with each other, and the content providing method includes recording a keyword associated with content previously selected by a user as a log, extracting a plurality of keywords based on a predetermined condition from a log corresponding to a certain user recorded in a log storage unit, extracting a partial tree including the extracted keywords from the keyword tree, acquiring a keyword in a node having no other lower node as a keyword related to the user's interest, and providing content corresponding to the keyword acquired in the acquiring of the keyword to the user.

According to the embodiments of the present invention, it is possible to acquire a keyword related to the user's interest.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1is a system configuration diagram illustrating a system configuration of a content providing system1. The content providing system1includes a user terminal10, a moving image server20, and a keyword acquisition server30which are connected via a network to communicate one another. In the content providing system1illustrated inFIG. 1, moving image data is provided as a concrete example of content. Here, when other content is provided in the content providing system1, the moving image server20is replaced with a server that provides other content.

The user terminal10is an information processing device such as a mobile phone, a smart phone, a personal computer (PC), a game machine, or a television receiver. The user terminal10receives moving image data from the moving image server20via a network and then reproduces the moving image data. The moving image server20is configured using an information processing device such as a mainframe, a workstation, or a PC. The moving image server20receives a moving image request from the user terminal10, and transmits moving image data according to the moving image request to the user terminal10. The keyword acquisition server30is configured using an information processing device such as a mainframe, a workstation, or a PC. The keyword acquisition server30acquires a keyword related to an interest of the user of the user terminal10based on moving image data previously requested by the user terminal10.

Next, the respective devices will be described in detail.

The user terminal10includes a central processing unit (CPU), a memory, an auxiliary storage device, and the like which are connected via a bus, and executes a user terminal program. As the user terminal program is executed, the user terminal10functions as a device including an input unit101, a display unit102, a communication unit103, and a control unit104. All or some functions of the user terminal10may be implemented using hardware such as an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field programmable gate array (FPGA). The user terminal program may be in a computer readable recording medium. For example, a portable medium such as a flexible disk, a magneto-optical disc, a read only memory (ROM), a compact disc-read only memory (CD-ROM) or a storage device such as a hard disk installed in a computer system may be used as the computer readable recording medium. The user terminal program may be transmitted or received through an electric telecommunication line.

The input unit101is configured using an existing input device such as a keyboard, a pointing device (a mouse, a tablet, or the like), a button, and a touch panel. The input unit101is operated by the user when the user's instruction is input to the user terminal10. The input unit101may be an interface that connects the input device to the user terminal10. In this case, the input unit101inputs an input signal generated according to the user's input to the input device to the user terminal10.

The display unit102is an image display device such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), or an organic electro luminescence (EL) display. The display unit102displays a moving image play screen, a recommendation display screen, or a keyword display screen. The display unit102may be an interface that connects the image display device to the user terminal10. In this case, the display unit102generates a video signal used to display the moving image play screen, the recommendation display screen, or the keyword display screen, and outputs the video signal to the image display device connected thereto.

The communication unit103is a communication device such as a network card. The communication unit103performs communication with the moving image server20or the moving image acquiring server30via a network N.

The control unit104generates the moving image p screen or the recommendation display screen, and outputs the moving image play screen or the recommendation display screen to the display unit102. Specifically, the control unit104operates as follows. When the user selects moving image data through the input unit101, the control unit104generates data (a moving image request) to request the selected moving image data. The moving image request includes a user ID and a moving image ID. The user ID is identification information representing the user of the user terminal10. The moving image ID is identification information representing moving image data selected by the user. The control unit104transmits the generated moving image request to the moving image server20. Upon receiving the moving image data according to the moving image request from the moving image server20, the control unit104reproduces the moving image data, and outputs the moving image play screen to the display unit102. The reproduced moving image data is displayed on the moving image play screen.

The moving image server20includes a CPU, a memory, an auxiliary storage device, and the like which are connected to one another via a bus, and executes a moving image server program. As the moving image server program is executed, the moving image server20functions as a device including a communication unit201, a moving image storage unit202, a tag storage unit203, and a control unit204. All or some functions of the moving image server20may be implemented using hardware such as an ASIC, a PLD, or an FPGA. The moving image server program may be in a computer readable recording medium. For example, a portable medium such as a flexible disk, a magneto-optical disc, a ROM, a CD-ROM or a storage device such as a hard disk installed in a computer system may be used as the computer readable recording medium. The moving image server program may be transmitted or received through an electric telecommunication line.

The communication unit201is a communication device such as a network card. The communication unit201performs communication with the user terminal10and the keyword acquisition server30via the network N.

The moving image storage unit202is configured using a storage device such as a magnetic hard disk device or a semiconductor memory device. The moving image storage unit202stores a plurality of pieces of moving image data.

The tag storage unit203is configured using a storage device such as a magnetic hard disk device or a semiconductor memory device. The tag storage unit203stores a tag table.FIG. 2is a diagram illustrating a concrete example of a tag table. The tag table stores one or more tags for each moving image ID. The moving image ID is identification information of moving image data stored in the moving image storage unit202. The tag is character string information representing a keyword related to moving image data.

Upon receiving the moving image request from the user terminal10, the control unit204reads moving image data corresponding to the moving image ID included in the moving image request from the moving image storage unit202. Then, the control unit204outputs the read moving image data to the user terminal10. In addition, the control unit204reads a tag associated with the moving image ID included in the moving image request from the tag storage unit203. Then, the control unit204transmits the read tag to the keyword acquisition server30together with the user ID and the moving image ID included in the moving image request.

Upon receiving a tag request from the keyword acquisition server30, the control unit204transmits tag table information stored in the tag storage unit203to the keyword acquisition server30.

The keyword acquisition server30includes a CPU, a memory, an auxiliary storage device, and the like which are connected to one another via a bus, and executes a keyword acquisition program. As the keyword acquisition program is executed, the keyword acquisition server30functions as a device including a communication unit301, a tag tree storage unit302, a tag tree generating unit303, a log storage unit304, a log generating unit305, a partial tree generating unit306, and a keyword acquiring unit307. All or some functions of the keyword acquisition server30may be implemented using hardware such as an ASIC, a PLD, or an FPGA. The keyword acquisition program may be in a computer readable recording medium. For example, a portable medium such as a flexible disk, a magneto-optical disc, a ROM, a CD-ROM or a storage device such as a hard disk installed in a computer system may be used as the computer readable recording medium. The keyword acquisition program may be transmitted or received through an electric telecommunication line.

The communication unit301is a communication device such as a network card. The communication unit301performs communication with the user terminal10or the moving image server20via the network N.

The tag tree storage unit302is configured using a storage device such as a magnetic hard disk device or a semiconductor memory device. The tag tree storage unit302stores a tag tree generated by the tag tree generating unit303.

The tag tree generating unit303generates a tag tree (a keyword tree) at a predetermined timing, and records the generated tag tree in the tag tree storage unit302. For example, the predetermined timing may be a time which is fixed every day, may be a time when a predetermined amount of new moving image data is registered to the moving image server, or may be any other timing. A concrete process of a tag tree generating method is as follows. When a predetermined timing arrives, the tag tree generating unit303transmits a tag request to the moving image server20. The tag tree generating unit303receives the tag table information from the moving image server20, and generates the tag tree based on the tag table information.

FIG. 3is a diagram illustrating a concrete example of a tag tree. The tag tree is data of a tree structure obtained by performing hierarchization according to the number of appearances and relevance using one tag associated with moving image data as one node. In the following description, terms such as a node A1and a node A2are used when a tree structure is described, whereas terms such as a tag A1and a tag A2are used when a tag associated with each node is described.

InFIG. 3, nodes (for example, A1and B1) positioned in a lower portion are nodes of an upper layer, and nodes (for example, A19and A20) positioned in an upper portion are nodes of a lower layer. In the tag tree configured with nodes A1to A20, the node A1is a highest node. The nodes A2, A3, and A4are connected as nodes lower than the node A1. The tag tree has the structure illustrated inFIG. 3.

A method of generating the tag tree will be described. The number of appearances of a tag X1in the tag table is represented by Nx1, and the number of appearances of a tag X2is represented by Nx2. The number of appearances represents the number of times that a tag appears in the tag table, and for example, the number of moving images ID to which a corresponding tag is registered in the tag table may be used as the number of appearances. Here, when the tag X1and the tag X2satisfy both a condition (a condition 1) represented by Formula 1 and a condition (a condition 2) represented by Formula 2, the tag X1and the tag X2are connected to each other by a link in the tree structure, and the tag X1becomes a node higher than the tag X2. In Formula 2, Th1represents a threshold value.

The condition 1 is a condition that the number of appearances (an appearance frequency) of the tag X1be larger than the number of appearances (an appearance frequency) of the tag X2. The condition 2 is a condition that a co-occurrence probability of the tag X1and the tag X2be the threshold value (Th1) or more.

The tag tree generating unit303determines whether or not a combination of all tags has satisfied both the condition 1 and the condition 2, and generates the tag tree.

The log storage unit304is configured using a storage device such as a magnetic hard disk device or a semiconductor memory device. The log storage unit304accumulates log information generated by the log generating unit305.

The log generating unit305records a tag associated with moving image data previously selected by the user of the user terminal10in the log storage unit304as a log. For example, the log generating unit305records a log as follows. The log generating unit305receives a tag corresponding to moving image data selected by the user, a user ID of the user, and a moving image ID of the moving image data from the moving image server20. The log generating unit305records the received tag, the user ID, and the moving image ID in the log storage unit304in association with one another. At this time, the log generating unit305determines whether or not the number of moving images ID recorded in association with the same user ID is a predetermined number or more. Here, when it is determined that the number of moving images ID recorded in association with the same user ID is the predetermined number or more, the log generating unit305discards the oldest log (a combination of the moving image ID, the user ID, and the tag), and records a new log (a combination of the moving image ID, the user ID, and the tag). However, when it is determined that the number of moving images ID recorded in association with the same user ID is less than the predetermined number, the log generating unit305records a new log without discarding an old log.

The partial tree generating unit306generates a partial tree based on the tag tree stored in the tag tree storage unit302and the log stored in the log storage unit304. A timing (keyword acquisition timing) at which the partial tree generating unit306generates the partial tree can be any timing. The partial tree is data of a tree structure configured by cutting only a tag recorded as a log from the tag tree. Here, when a tag recorded as a log is cut, if a tag recorded as a log is presented on a layer higher or lower than the corresponding tag, the partial tree generating unit306cuts each node together with a link connecting both nodes.

FIG. 4is a diagram illustrating a concrete example of a partial tree. Here, each of fields41to44surrounded by a dashed line (hereinafter referred to as “dashed fields”) represents a partial tree. In the following, reference numerals41to44are used to represent a partial tree. The partial tree41includes tags A2, A5, A6, A12, and A13as logs but does not include tags A1, A19, and A20as logs and thus is a partial tree extracted by the partial tree generating unit306. The partial tree42includes tags A8and A15as logs but does not include a tag A3as a log and thus is a partial tree extracted by the partial tree generating unit306. The partial tree43includes a tag A4as a log but does not include tags A1, A10, and A11as logs and thus is a partial tree extracted by the partial tree generating unit306. The partial tree44includes tags B1to B7, B9, and B10as logs but does not include tags B8and B11as logs and thus is a partial tree extracted by the partial tree generating unit306.

The partial tree generating unit306outputs the generated partial tree to the keyword acquiring unit307. The keyword acquiring unit307acquires a keyword related to the user's interest corresponding to a log used by the partial tree generating unit306based on the partial tree generated by the partial tree generating unit306. Next, a concrete process of the keyword acquiring unit307will be described.

FIG. 5is a diagram of a hierarchy of a partial tree. As illustrated inFIG. 5, the keyword acquiring unit307places highest nodes of the partial trees41to44(A2, A8, A4, and B1) on the same layer, and places a root node VR as a node of a layer immediately higher than that of the highest nodes.

Next, the keyword acquiring unit307sorts the nodes of the partial tree in units of two or more nodes having the same host node based on a count number representing the number of tags in each node. The count number refers to a node representing the number of times that each tag appears in the user's log.FIG. 6is a diagram illustrating a concrete example of each tag and a count number. For example, the fact that the count number of the tag A2is 10 represents that the tag A2in the user's log which is a processing target appears ten times (is associated with ten moving images ID).

FIG. 7is a diagram illustrating a sorting example of each node when the count number ofFIG. 6is given. The keyword acquiring unit307sorts each non-sorted partial tree illustrated inFIG. 5based on the count number illustrated inFIG. 6as illustrated inFIG. 7. InFIG. 7, in each of the nodes having the same host node, a node positioned at the left side is large in the count number, and a node positioned at the right side is small in the count number. For example, the description will be made using the highest nodes of the partial trees41to44as an example. The highest nodes of the partial trees41to44have the same host node (the root node VR). The count numbers of the highest nodes of the partial trees41to44are 10 (the node A2), 11 (the node A8), 15 (the node A4), and 8 (the node B1), respectively. Here, when the nodes are sorted in descending order of the counter numbers, 15 (the node A4), 11 (the node A8), 10 (the node A2), and 8 (the node B1) are obtained. Thus, after sorting, the partial trees41to44are arranged in order of the partial trees43,42,41, and44.

As another concrete example, the description will be made in connection with the nodes A5and A6of the partial tree41. The nodes A5and A6have the same host node (the node A2). Here, the count number of the node A5is 5, and the count number of the node A6is 7. Thus, when the two nodes are sorted, the nodes A6and the node A5are arranged in order as illustrated inFIG. 7. The nodes A15and B2to B4belonging to another partial tree are present on the same layer as the nodes A5and A6. However, the nodes A15and B2to B4have different upper nodes from the nodes A5and A6. In other words, the upper node of the node A5and the node A6is the node A2, whereas the upper node of the node A15is the node A8, and the upper node of the nodes B2to B4are the node B1. That is, the nodes A15and B2to B4have different upper nodes from the nodes A5and A6. Thus, the keyword acquiring unit307performs sorting between the two nodes in connection with the nodes A5and A6. In other words, the keyword acquiring unit307does not perform sorting between the nodes A5and A6and either of the node A15and the nodes B2to B4. This is similarly applied to other nodes.

FIG. 8is a diagram illustrating a concrete example of an exploration order of the keyword acquiring unit307. The keyword acquiring unit307explores the partial tree in descending order of the count numbers of the highest nodes and acquires a predetermined number of tags. In the exploration, the keyword acquiring unit307acquires a tag in a node having no lower node as a keyword related to the user's interest.

A concrete example ofFIG. 8will be described below. First, the keyword acquiring unit307explores the partial tree43which is highest in the count number of the highest node starting from the root node VR (S1). The keyword acquiring unit307determines whether or not the arrived node A4has a lower node. The node A4does not have a lower node. In this case, the keyword acquiring unit307acquires the tag of the node A4as the keyword related to the user's interest. At this time, the keyword acquiring unit307updates the number of acquired keywords to one (1). Then, the keyword acquiring unit307determines whether or not the number of acquired keywords is larger than a predetermined number. In the present embodiment, the predetermined number of keywords is set to seven (7). Since the number of acquired keywords is not larger than the predetermined number as this point in time, the keyword acquiring unit307keeps exploring.

Since all nodes of the partial tree43have been explored, the keyword acquiring unit307starts to explore the next partial tree42(S2). First, the keyword acquiring unit307determines whether or not the arrived node A8has a lower node. The node A15is present as a lower node of the node A8. Thus, the keyword acquiring unit307keeps exploring without acquiring the tag A8(S3). The keyword acquiring unit307determines whether or not the subsequently arrived node A15has a lower node. The node A15has no lower node. In this case, the keyword acquiring unit307acquires the tag of the node A15as the keyword related to the user's interest. At this time, the keyword acquiring unit307updates the number of acquired keywords to two (2). Then, the keyword acquiring unit307determines whether or not the number of acquired keywords is larger than the predetermined number. Since the number of acquired keywords is not larger than the predetermined number at this point in time, the keyword acquiring unit307keeps exploring.

Since all nodes of the partial tree42have been explored, the keyword acquiring unit307starts to explore the next partial tree41(S4). Thereafter, the keyword acquiring unit307explores the partial tree42in order (S5to S8), and acquires the tags (the tag A6, the tag A12, and the tag A13) having no lower node as the keyword. Since the number of acquired keywords is five (5) and is not larger than the predetermined number at this point in time, the keyword acquiring unit307keeps exploring.

Since all nodes of the partial tree41have been explored, the keyword acquiring unit307starts to explore the next partial tree44(S9). The keyword acquiring unit307performs the exploration of S10to S12and acquires the tags (the tags B7and B2) having no lower node as the keyword. At this point in time, the number of acquired keywords is seven (7) and is equal to the predetermined number. In other words, when the exploration is continuously performed and then the keyword is newly acquired, the number of acquired keywords exceeds the predetermined number. Thus, the keyword acquiring unit307ends the exploration at this point in time.

FIG. 9is a diagram illustrating the tags acquired by the keyword acquiring unit307. The tags illustrated inFIG. 9are acquired as the keyword related to the user's interest through the keyword acquiring unit307. Next, a method of using the keyword acquired by the keyword acquiring unit307will be described using several concrete examples.

The keyword acquiring unit307transmits the acquired keyword to the user terminal10of the user corresponding to the user ID. Upon receiving the keyword from the keyword acquisition server30, the control unit104of the user terminal10outputs the keyword display screen to the display unit102.FIG. 10is a diagram illustrating a concrete example of the keyword display screen. One or more keywords selected by the keyword acquisition server30are displayed on the keyword display screen as a selection candidate.

In the concrete example ofFIG. 10, five keywords acquired by the keyword acquiring unit307are listed on the keyword display screen together with a character string “tags in which you might be interested.” Specifically, a keyword501“OO famous song link,” a keyword502“invigorating song,” a keyword503“OO's original song,” a keyword504“tried to let him/her sing,” and a keyword505“tried to dance” are arranged in a line at predetermined intervals together with underlines as selection candidates. The number of keywords displayed on the keyword display screen, an arrangement method thereof, and the like are not limited to the example ofFIG. 10.

Here, when the user operates the input unit101and selects a keyword from among the selection candidates, the control unit104generates a keyword request of the selected keyword, and then transmits the keyword request to the moving image server20. The keyword request includes a user ID and a keyword.

Upon receiving the keyword request from the user terminal10, the control unit204of the moving image server20selects one or more pieces of moving image data based on the tag table and the keyword. For example, the control unit204may select moving image data associated with a tag matching the received keyword. For example, the control unit204may select moving image data associated with a predetermined number or more of tags matching the received keyword. The control unit204transmits the selected moving image data to the user terminal10of the user corresponding to the user ID. The control unit104of the user terminal10reproduces the received moving image data.

[Recommendation of Moving Image]

The keyword acquiring unit307transmits the acquired keyword to the moving image server20associated with the user ID. Upon receiving the keyword and the user ID from the keyword acquisition server30, the control unit204of the moving image server20selects one or more pieces of moving image data based on the tag table and the keyword. For example, the control unit204may select moving image data associated with a tag matching the received keyword. For example, the control unit204may select moving image data associated with a predetermined number or more of tags matching the received keyword. The control unit204generates data (recommendation data) to introduce the selected moving image data to the user. Then, the control unit204transmits the recommendation data to the user terminal10of the user corresponding to the user ID.

Upon receiving the recommendation data from the moving image server20, the control unit104of the user terminal10outputs the recommendation display screen to the display unit102.FIG. 11is a diagram illustrating a concrete example of the recommendation display screen. One or more pieces of moving image data selected by the moving image server20and one or more keywords acquired by the keyword acquisition server30are displayed on the recommendation display screen as selection candidates.

In the concrete example ofFIG. 11, five keywords acquired by the keyword acquiring unit307are listed on the recommendation display screen together with a character string “tags in which you might be interested.” In addition, introduction information601to603of the moving image data selected by the moving image server20is displayed on the recommendation display screen together with a character string “moving image list recommended to you.” Listing of keywords has been described above with reference toFIG. 10, and thus a description thereof will not be repeated. A display of “moving image list recommended to you” will be concretely described.

The introduction information includes information related to moving image data. For example, a thumbnail image of moving image data, a posting date and time, a title of moving image data, the number of play times of moving image data, the number of comments posted on moving image data, the number of times that moving image data is registered to a person's list, a keyword used to select moving image data, and the like are included in the introduction information.

The introduction information will be described using the introduction information601as an example. A thumbnail image is displayed on the leftmost side. The remaining introduction information is displayed on the right side of the thumbnail image as text. Text such as “posted at 07:00 on Oct. 15, 2007” is displayed as the posting date and time. Text such as “snow of January” is displayed as a title of moving image data. Text such as “VIEWS: 1800” is displayed as the number of play times of moving image data. Text such as “comments: 0” is displayed as the number of comments posted on moving image data. Text such as “my list: 1” is displayed as the number of times that moving image data is registered to a person's list. A text such as “this is recommended to you based on your potential interest in the tag “links for songs by OO” is displayed as a keyword used to select moving image data. An underline is attached to a character string such as “links for songs by OO.” A character string with an underline attached thereto represents that a corresponding character string is a keyword acquired by the keyword acquisition server30. For example, a keyword such as “links for famous songs by OO” is displayed on a screen upper portion as the keyword501. The number of pieces of the introduction information displayed on the recommendation display screen, an arrangement thereof, and the like are not limited to the example ofFIG. 11.

Here, when the user operates the input unit101and selects moving image data from among the selection candidates, the control unit104generates the moving image request of the generated moving image data, and transmits the moving image request to the moving image server20.

Upon receiving the moving image request from the user terminal10, the control unit204of the moving image server20transmits moving image data according to the moving image request to the user terminal as described above. The control unit104of the user terminal10reproduces the received moving image data.

FIG. 12is a flowchart illustrating the flow of an operation of the keyword acquisition server30. As pre-processing of the process illustrated inFIG. 12, the tag tree generating unit303generates and records a tag tree at a predetermined timing. Upon receiving a tag corresponding to moving image data selected by the user, the user ID of the user, and the moving image ID of the moving image data, the log generating unit305generates a log based on the received information, and records the log in the log storage unit304(step S101). At this time, the moving image data selected by the user and the tag associated with the moving image data are transmitted to the user terminal10through the moving image server20and then displayed on the user terminal10.FIG. 13is a diagram illustrating a concrete example of the moving image play screen. The moving image play screen includes a tag display field600to display a tag and a moving image play field700to reproduce a moving image. A tag associated with the moving image data reproduced in the moving image play field700is displayed on the tag display field600. The moving image data selected by the user is reproduced on the moving image play field700. In addition, a comment701posted on moving image data which is being reproduced is displayed on the moving image play field700.

The description of the process of the keyword acquisition server30will continue. After the log is recorded in the log storage unit304, the process of S101is repeatedly executed until a keyword acquisition timing arrives. When the keyword acquisition timing arrives (Yes in step S102), the partial tree generating unit306generates the partial tree (step S103). Next, the keyword acquiring unit307performs the sorting process on the partial tree (step S104). Then, the keyword acquiring unit307acquires a predetermined number of keywords based on the sorted partial tree (step S105).

In the keyword acquisition server30having the above-described configuration, a tag tree is generated in advance based on the number of appearances and the relevance. Then, a partial tree including a tag corresponding to content (moving image data) previously selected by the user is generated. Then, a node having no lower node is acquired as the keyword related to the user's interest from among nodes configuring the partial tree. As described above, a keyword is acquired based on a log of the user rather than a log selected by another person, and thus the keyword related to the user's interest can be acquired with a high degree of accuracy.

The keyword acquiring unit307may acquire each node having no lower node as the keyword related to the user's interest without performing the sorting process on the partial trees.

The condition 2 used when the tag tree generating unit303generates the tag tree is not necessarily limited to the condition expressed by Formula 2. The condition 2 may be a condition expressed by any other formula as far as the co-occurrence probability is a threshold value or more. For example, the condition 2 may be a condition expressed by the following Formula 3:

In Formula 3, Th2represents a threshold value.

The keyword acquiring unit307may perform weighting on a plurality of acquired keywords. For example, the keyword acquiring unit307may perform weighting by the following process.

First, the keyword acquiring unit307divides the count number of the highest node by the number of nodes acquired in the partial tree for each of the partial trees41to44. Then, the keyword acquiring unit307divides a value obtained by the division by the sum of the counter numbers of the highest nodes of all the partial trees41to44. The keyword acquiring unit307applies a value obtained by the division to each node (keyword) acquired in each of the partial trees41to44as a weight.

The keyword acquiring unit307may decide a weight of each keyword by any calculation as long as the calculation is performed based on a count number.

(Selection of Moving Image Data According to Weighting)

Here, when the keyword acquiring unit307performs weighting on each keyword, the control unit204of the moving image server20may generate recommendation data as follows. First, the control unit204allocates a keyword to each of a predetermined number of recommendation limits. At this time, for example, the control unit204performs the allocation according to weighting of each keyword. More specifically, the control unit204allocates a keyword having a large weight to a large number of recommendation limits, and a keyword having a small weight to a small number of recommendation limits. For example, when a predetermined number is 10, weights of keywords A, B, and C are 0.5, 0.3, and 0.2, respectively, the keyword A is allocated to five recommendation limits, the keyword B is allocated to three recommendation limits, and the keyword C is allocated to two recommendation limits.

Next, the control unit204selects moving image data associated with a tag matching a keyword by the predetermined number of the recommendation limits for each keyword. For example, the control unit204selects ten pieces of moving image data associated with a tag matching the keyword A, selects ten pieces of moving image data associated with a tag matching the keyword B, and selects ten pieces of moving image data associated with a tag matching the keyword C.

Next, the control unit204randomly allocates one piece of moving image data among the moving image data selected on the allocated key to each recommendation limit. Through this process, moving image data is allocated to each of the predetermined number of recommendation limits. The control unit204generates recommendation data based on the allocation result, and transmits the recommendation data to the user terminal10. For example, when the recommendation data displayed on the screen illustrated inFIG. 11is generated, three recommendation limits are generated. In other words, the number of pieces of introduction information displayed on the recommendation display screen corresponds to the number of recommendation limits.

(Score of Moving Image Data)

The control unit204may perform scoring on each piece of moving image data. For example, the score is calculated as follows.

The control unit204acquires the number of users (the number of lists) who have registered each piece of moving image data to their list. The list is a bookmark function, that is, a function by which moving image data preferred by the user can be registered as a favorite. By registering moving image data as a favorite, the user can easily access favorite moving image data from a site dedicated to the user or the like. When the user operates the user terminal10and registers moving image data as a favorite, the control unit104of the user terminal10transmits the moving image ID of the moving image registered as a favorite and the user ID to the moving image server20. The control unit204of the moving image server20registers the received moving image ID and the user ID to a favorite table in association with each other. The control unit204acquires the number of lists of each moving image data with reference to the favorite table.

Further, the control unit204acquires a time (elapsed time since posting) that has elapsed after each piece of moving image data is registered in the moving image server20. For example, the control unit204may register a date and time when moving image data is registered to the moving image storage unit202and then can acquire the elapsed time since posting of each piece of moving image data.

The control unit204calculates the list/elapsed time since posting as a score for each piece of moving image data. The control unit204selects moving image data in descending order of the scores. For example, as described above, when moving image data corresponding to a predetermined number of recommendation limits is selected, the control unit204selects moving image data corresponding to the predetermined number from among the moving image data associated with the tag matching each keyword in descending order of scores.

A method by which the keyword acquiring unit307explores the partial tree is not necessarily limited to the above example.FIG. 14is a diagram illustrating a first modified example of the method by which the keyword acquiring unit307explores the partial tree. The number of keywords acquired in one layer of each partial tree may be limited to a predetermined number. In the example ofFIG. 14, the number of keywords acquired in one layer of the partial tree is limited to one (1). The difference between the process ofFIG. 14and the process ofFIG. 8will be described below.

The keyword acquiring unit307explores the partial tree41, arrives at the node A12(S7), and then determines whether or not another node lower than the arrived node A12is present. The node A12has no lower node. Here, the keyword acquiring unit307updates the number of keywords acquired in a third layer of the partial tree41from zero (0) to one (1). The keyword acquiring unit307determines whether or not the number of keywords acquired in the same layer of the same partial tree is larger than a predetermined number (1). In this case, the number of keywords acquired in the third layer of the partial tree41is not larger (equal to) the predetermined number (1). Thus, the keyword acquiring unit307acquires the tag of the node A12as the keyword related to the user's interest. At this time, the keyword acquiring unit307updates the number of acquired keywords to four (4). Then, the keyword acquiring unit307determines whether or not the number of acquired keywords is larger than a predetermined number. Since the number of acquired keywords is not larger than the predetermined number at this point in time, the keyword acquiring unit307keeps exploring.

Next, the keyword acquiring unit307keeps exploring the partial tree41, and then arrives at the node A13(S8). The keyword acquiring unit307determines whether or not another node lower than the arrived node A13is present. The node A13has no lower node. Here, the keyword acquiring unit307updates the number of keywords acquired in the third layer of the partial tree41from one (1) to two (2). The keyword acquiring unit307determines whether or not the number of keywords acquired in the same layer of the same partial tree is larger than a predetermined number (1). In this case, since the number of keywords acquired in the third layer of the partial tree41is two and thus larger than the predetermined number (1), the keyword acquiring unit307does not acquire the tag of the node A13as the keyword related to the user's interest. Then, the keyword acquiring unit307moves to a next node, and keeps exploring.

FIG. 15is a diagram illustrating a second modified example of the method by which the keyword acquiring unit307explores the partial tree. The number of keywords acquired in each partial tree may be limited to a predetermined number. In the example ofFIG. 15, the number of keywords acquired in one partial tree is limited to two (2). The difference between the process ofFIG. 15and the process ofFIG. 8will be described below.

The keyword acquiring unit307explores the partial tree41, arrives at the node A6(S5), and then determines whether or not another node lower than the arrived node A6is present. The node A6has no lower node. Thus, the keyword acquiring unit307acquires the tag of the node A6as the keyword related to the user's interest. At this time, the keyword acquiring unit307updates the number of acquired keywords to three (3). Then, the keyword acquiring unit307determines whether or not the number of acquired keywords is larger than a predetermined number. Since the number of acquired keywords is not larger than the predetermined number at this point in time, the keyword acquiring unit307keeps exploring. Further, the keyword acquiring unit307updates the number of keywords acquired in the partial tree41from zero (0) to one (1). The keyword acquiring unit307determines whether or not the number of keywords acquired in the same partial tree has reached a predetermined number (2). In this case, the number of keywords acquired in the partial tree41has not reached a predetermined number (2). Thus, the keyword acquiring unit307keeps exploring the partial tree41.

The keyword acquiring unit307explores the partial tree41, arrives at the node A12through the node A5(S6and S7), and then determines whether or not another node lower than the arrived node A12is present. The node A12has no lower node. Thus, the keyword acquiring unit307acquires the tag of the node A12as the keyword related to the user's interest. At this time, the keyword acquiring unit307updates the number of acquired keywords to four (4). Then, the keyword acquiring unit307determines whether or not the number of acquired keywords is larger than a predetermined number. Since the number of acquired keywords is not larger than the predetermined number at this point in time, the keyword acquiring unit307keeps exploring. Further, the keyword acquiring unit307updates the number of keywords acquired in the partial tree41from one (1) to two (2). The keyword acquiring unit307determines whether or not the number of keywords acquired in the same partial tree has reached a predetermined number (2). In this case, the number of keywords acquired in the partial tree41has reached the predetermined number (2). Thus, the keyword acquiring unit307ends the exploration of the partial tree41, and starts to explore the next partial tree44(S8).

The partial tree exploring method of the keyword acquiring unit307has been described above with reference toFIGS. 8,14, and15, but the exploration of the partial tree may be performed by a combination of the plurality of methods.

Data (text, a still image, a moving image, or the like: hereinafter, referred to as “advertisement data”) related to an advertisement other than moving image data may be provided to the user terminal10as content. For example, advertisement data associated with a keyword which the user has selected through the keyword display screen may be provided by an advertisement server. In this case, the advertisement server has the configuration similar to the moving image server20, advertisement data is used instead of moving image data, and an advertisement ID is used instead of the moving image ID. The detailed operation is the same as described above in connection with selection of a keyword.

Further, advertisement data according to the keyword acquired by the keyword acquisition server30may be provided to the user. In this case, the advertisement server has the configuration similar to the moving image server20, advertisement data is used instead of moving image data, an advertisement ID is used instead of the moving image ID, and an advertisement display limit is used instead of the recommendation limit. The detailed operation is the same as described above in connection with recommendation of a moving image.

The log generating unit305may be configured such that the log of the same moving image ID is not recorded more than once in the log storage unit304. Specifically, the log generating unit305may have the following configuration. First, when a new log is generated and recorded, the log generating unit305determines whether or not a moving image ID of the new log matches a moving image ID of a previously recorded log. Here, when mismatched, the log generating unit305records the new log in the log storage unit304as described above. However, when matched, the log generating unit305discards the new log and does not record the new log in the log storage unit304.

The log generated by the log generating unit305need not necessarily include a moving image ID. The log generating unit305may record a tag and a user ID in association with other identification information as a log instead of a moving image ID. Alternatively, the log generating unit305may record the number of tags to record, a tag, and a user ID in association with one another as a log instead of a moving image ID. Through this configuration, even when the moving image ID is not recorded as a log, it is possible to appropriately identify a tag and a user ID of an oldest log which is a deletion target when the number of logs is larger than a predetermined number.

As described above, the exemplary embodiments of the present invention have been described with reference to the accompanying drawings, but a concrete configuration is not limited to the above embodiments and also includes a design or the like that is within the scope not departing from the gist of the invention.