Systems and methods for improved searching and categorization of media content items based on their destination - Patents.com

The computing system addresses the lack of contextual awareness in traditional media content systems by selecting items based on destination, reducing resource consumption and improving relevance through a dynamic keyboard interface.

JP7787239B2Active Publication Date: 2025-12-16GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024103146
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-02-21
Filing Date
2024-06-26
Publication Date
2025-12-16
Estimated Expiration
2040-04-30

AI Technical Summary

Technical Problem

Traditional systems for communicating media content items lack contextual awareness regarding the intended destination, leading to inefficient and resource-intensive searches for contextually relevant content.

Method used

A computing system selects media content items based on the destination, considering factors like cultural sensitivities, technical characteristics of the recipient device, and user preferences to provide contextually relevant content through a dynamic keyboard interface.

Benefits of technology

Reduces computational resources and improves relevance by automatically suggesting media content items tailored to the intended destination, enhancing user experience and inter-device compatibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007787239000001
    Figure 0007787239000001
  • Figure 0007787239000002
    Figure 0007787239000002
  • Figure 0007787239000003
    Figure 0007787239000003
Patent Text Reader

Abstract

To provide systems and methods for improved searching and categorizing of media content items on the basis of a destination for the media content items.SOLUTION: A method includes: a step 702 of receiving, by a user computing device, data that describes a destination for a media content item including the media content item and a digital location such as website and social networking page; a step 704 of selecting one or more media content items on the basis of the data that describes the destination for the media content item; and a step 706 of displaying the selected media content item in a dynamic keyboard interface by the user computing device.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. Provisional Patent Application No. 62 / 979,666, filed February 21, 2020, the disclosure of which is incorporated herein by reference in its entirety for all purposes.

[0002] FIELD OF THE DISCLOSURE This disclosure relates generally to searching and categorizing media, and more particularly, to searching and categorizing media content items based on the destination of the media content items. [Background technology]

[0003] Traditional approaches for communicating between mobile device users may rely solely on SMS, messaging via social networking applications, or "texting." Internet or mobile device users may exchange messages via these various mediums. However, sometimes users may wish to communicate via media content, such as GIFs (Graphics Interchange Format), or image files containing sets of still or animated images. Users may search the Internet for GIFs, copy the GIFs via their operating system's native web browser, and paste the GIFs into various messaging applications. These traditional systems are not well suited to providing categorized content within a dynamic interface without expending resources or requiring manual intervention. Furthermore, such traditional search approaches lack contextual awareness regarding the intended destination of the media content. Summary of the Invention [Means for solving the problem]

[0004] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the description that follows, or may be learned from the description, or may be learned by practice of the embodiments.

[0005] According to one aspect of the present disclosure, a computer-implemented method may include receiving, by a user computing device, data describing a destination of a media content item; selecting, by a computing system including the user computing device, one or more media content items based on the data describing the destination of the media content item; and providing, by the computing system, the media content item(s) for display by the user computing device in a dynamic keyboard interface.

[0006] According to another aspect of the present disclosure, a computing system can include at least one processor and at least one tangible, non-transitory computer-readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations. The operations can include receiving data describing destinations of media content items, selecting one or more media content items based on the data describing the destinations of the media content items, and providing the media content items for display in a dynamic keyboard interface.

[0007] Other aspects of the present disclosure are directed to various systems, apparatus, non-transitory computer-readable media, user interfaces, and electronic devices.

[0008] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain the relevant principles.

[0009] A detailed description of the embodiments, directed to persons skilled in the art, is set forth herein with reference to the accompanying drawings. [Brief explanation of the drawings]

[0010] [Figure 1A] FIG. 1 is a high-level block diagram illustrating a media content management system according to an aspect of the present disclosure. [Figure 1B] FIG. 1 is a high-level block diagram illustrating a process for performing a search to implement animated input in a dynamic interface, according to aspects of the present disclosure. [Figure 1C] FIG. 1 illustrates an exemplary user computing device displaying a message application interface and a dynamic keyboard interface displaying search results including media content items selected based on the destination of the media content items, according to aspects of the present disclosure. [Figure 1D] FIG. 1 illustrates another exemplary user computing device displaying an application interface and a dynamic keyboard interface displaying search results including media content items selected based on the destination of the media content items, according to aspects of the present disclosure. [Figure 2A] 1 is a network diagram of a system for sourcing, organizing, and retrieving presentational media content in a media content management system, illustrating a block diagram of the media content management system, according to one embodiment in accordance with aspects of the present disclosure. [Figure 2B] 1 depicts a high-level block diagram of a system for categorizing sourced content for performing searches in a media content management system, according to one embodiment in accordance with aspects of the present disclosure; [Figure 2C] 1 is a high-level block diagram of a system for composing composite content items in a media content management system, according to an aspect of the present disclosure. [Figure 3]1 is a high-level block diagram of a system for categorizing sourced content in a media content management system, according to aspects of the present disclosure. [Figure 4] FIG. 1 illustrates a high-level block diagram of a system for performing a search to implement animated input in a dynamic interface, according to an aspect of the present disclosure. [Figure 5A] 1 is an exemplary screenshot of a dynamic keyboard interface provided for interacting with content in a media content management system, according to an aspect of the present disclosure. [Figure 5B] 1 is an exemplary screenshot of a dynamic keyboard interface provided for interacting with content in a media content management system, according to an aspect of the present disclosure. [Figure 5C] 1 is an exemplary screenshot of a dynamic keyboard interface provided for interacting with content in a media content management system, according to an aspect of the present disclosure. [Figure 6] FIG. 1 illustrates an exemplary computing platform disposed within a device configured to source, organize, and / or retrieve expressive media content, according to aspects of the present disclosure. [Figure 7] FIG. 2 is a flowchart diagram of an exemplary method according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0011] Reference numbers repeated across the figures are intended to identify like features in various implementations.

[0012] overview In general, the present disclosure is directed to systems and methods for improved searching and categorization of media content items, such as short videos. A computing system can retrieve and display media content items based at least in part on the destination of the media content item (e.g., another user's computing device, a social networking platform, etc.) so that the selected media content item is more contextually relevant and useful to the user.

[0013] More particularly, according to aspects of the present disclosure, a user computing device may receive data describing a destination of a media content item. For example, a user may access a messaging application or a social networking application on the user computing device. The computing system may select one or more media content items based at least in part on the destination of the media content item. The computing system may provide the media content items for display by the user computing device (e.g., for selection by the user to send to the destination). Thus, the computing system may select media content items that are more contextually relevant and useful to the user based on where the user is preparing to send the media content item.

[0014] In some embodiments, the computing system can receive user input describing the intended recipient of the message. For example, a user can open a particular application into which to insert the media content item when the user selects the media content item. As another example, a user can provide input directed to a dynamic keyboard interface that indicates the destination of the media content item (e.g., selecting a destination from a list or entering the name of a recipient and / or application into the dynamic keyboard interface). Thus, the user can provide input that describes the destination of the media content item.

[0015] In some embodiments, a computing system (e.g., a user computing device) may receive a search query for media content items (e.g., via a dynamic keyboard interface displayed by the user computing device). In such embodiments, the computing system may select media content items based on the destination and the search query. However, in other embodiments, the computing system may automatically provide media content items without receiving a search query. For example, the dynamic keyboard interface may provide media content items as suggestions to the user based at least in part on the content of the message being drafted and the destination of the message (e.g., as an “auto-complete” feature).

[0016] In some embodiments, the destination of the media content item may include a computer application into which the media content item is to be inserted. The computing system may select the media content item based on content previously shared by the user of the computing device and / or other users through the particular computer application. Exemplary types of computer applications may include various social networking applications, messaging applications, email applications, web browsing applications, etc.

[0017] In some embodiments, the computing system may select a media content item based on data describing the location of the intended recipient of the message. For example, the data describing the destination of the media content item may describe the location of a user computing device intended to receive the message. The media content item may be selected based on cultural considerations associated with the country or geographic region in which the receiving user device is located. For example, when a message is drafted to be sent to a country or geographic region with particular cultural sensitivities, the computing system may dislike media content items in the search results that are insensitive and / or contextually inappropriate based on the particular cultural sensitivities. Conversely, the computing system may prefer media content items that are more relevant and / or appropriate based on cultural considerations associated with the country or geographic region in which the receiving user device is located. For example, the computing system may prefer media content items associated with upcoming holidays celebrated in the intended recipient's country. Thus, the computing system may select media content items to present to the user based on cultural information associated with the recipient's location.

[0018] As an example, a user may search for media content items to share via a particular computer application, such as a particular social networking platform application. The computing system may select which media content items to retrieve and display for the user based on characteristics of the particular computer application. For example, many social network platforms provide computer applications. Different social networking platforms generally favor different types of content. As an example, inspirational, thoughtful, and / or non-political media content items may generally be more appropriate for a social networking platform focused on art and / or photography. As another example, political, humorous, and / or edgy media content items may be more appropriate for a different particular social networking platform, etc. Furthermore, individual locations (e.g., pages, groups, etc.) within a particular social networking platform may favor particular types of content. In that example, a destination may be or include an individual location within a particular social networking platform. Thus, the computing system may select media content items based on a destination that is or includes a particular social networking application and / or a location within a particular social networking application.

[0019] As another example, a user may use a web browsing application to access a website. The user may search for media content items to submit to the website (e.g., in a post, message, comment, etc.) via the web browsing application. In this example, the destination may be or include a particular website.

[0020] In some embodiments, selecting a media content item based on the destination of the media content item may include considering one or more technical characteristics of the recipient computing device. For example, the recipient computing device may include a desktop computer, a laptop computer, a tablet, a smartphone, etc. The technical characteristics of such a recipient device may include the physical size of the display screen, the resolution of the display screen, processing power and / or availability, memory power and / or availability, and / or connection bandwidth. As an example, selecting a media content item for a recipient device having a small and / or low-resolution display screen may include selecting a low-resolution media content item. As another example, selecting a media content item for a recipient device may include selecting a media content item having a smaller file size, such as a media content item that includes fewer image frames (e.g., a shorter media content item). Thus, the technical characteristics of the recipient computing device may be considered when selecting a media content item based on the destination of the media content item.

[0021] In some embodiments, selecting a media content item based on data describing the destination of the media content item may include comparing one or more technical characteristics of the media content item to one or more technical characteristics of the recipient computing device and / or one or more thresholds determined based on the technical characteristics of the recipient computing device. For example, a media content item may be selected based on the resolution of the media content item and / or adjusted based on a maximum display resolution of the recipient device and / or a region of the display of a device assigned to display the media content item. A media content item may be selected based on having a resolution lower than the maximum display resolution of the recipient device and / or a region of the display of a device assigned to display the media content item. Additionally or alternatively, a media content item that is larger than the maximum display resolution of the recipient device and / or a region of the display of a device assigned to display the media content item may be resized (e.g., downsampled) to a resolution equal to or less than the maximum display resolution and / or the resolution of the region of the display of a device assigned to display the media content item. The threshold resolution may be calculated based on available storage space allocated to store the media content item on the recipient device and / or the total available storage space of the recipient device. The media content items may be selected based on a comparison of the file size and / or number of frames of the media content items to a threshold storage space and / or a threshold number of frames.

[0022] As another example, a media content item may be selected based on a comparison of the file size and / or number of frames of the media content item to a percentage of the available storage space allocated to store the media content item on the recipient device and / or the total available storage space of the recipient device. The media content item may be selected based on a comparison of the file size and / or number of frames of the media content item to a threshold storage space and / or a threshold number of frames. The media content item may be selected based on having a file size and / or number of frames smaller than the respective thresholds. Additionally or alternatively, the media content item may be processed and scaled down to reduce the file size and / or number of frames of the media content item based on the item's initial file size or initial number of frames being too large based on a percentage of the available storage space allocated to store the media content item on the recipient device and / or the total available storage space of the recipient device. The threshold storage space and / or threshold number of frames may be calculated based on the available storage space allocated to store the media content item on the recipient device and / or the total available storage space of the recipient device.

[0023] In some embodiments, media content items may be proactively suggested for selection by a user, for example, in a personal assistant context. Personal assistant functionality may be provided at the operating system level (e.g., of a smartphone, tablet, etc.). Aspects of the present disclosure may be incorporated into and / or provided via a personal assistant application and / or platform. In such a personal assistance application, contextual data associated with a user (e.g., user preferences, previous actions and / or messages, etc.) may be considered when selecting media content items to display for selection by a user. For example, when selecting one or more media content items based on a destination, previous content shared between the user and a particular recipient may be considered. Media content items selected in this manner may be more relevant and / or appropriate than media content items selected based on the user's general sharing history or based on the recipient / destination. However, in some embodiments, both data describing the destination and contextual data associated with the user may be considered. For example, a media content item may be selected based on a combination of contextual data associated with the user and data describing the destination. Such a media content item may be more relevant than an item selected solely based on either the contextual data associated with the user or the data describing the destination. Thus, in some embodiments, personal assistant functionality may be provided based on both contextual data associated with a user or data describing a destination.

[0024] One or more target attributes of a media content item can be selected based on the destination of the media content item. Exemplary target attributes of a media content item can include tone, text characteristics (if text is included in the media content item), duration, emotion, etc. Exemplary tone can include inspirational, thoughtful, political, aggressive, assertive, humorous, and lighthearted. Exemplary text characteristics can include color, bold vs. non-bold, all uppercase or lowercase, simple block letters vs. ornate / decorative text, etc. In the example described above with respect to a social networking platform that favors art and / or photography, a media content item that displays ornate and / or decorative text can be a preferred media content item that displays text that is bold and / or all uppercase. Thus, one or more target attributes (e.g., tone, emotional content, aesthetic attributes, etc.) can be selected for a media content item based on the destination of the media content item.

[0025] Aspects of the present disclosure may be used within a dynamic keyboard interface to search for and / or browse media content items. The dynamic keyboard interface may be integrated into a user device's operating system and / or may be provided or embedded across multiple computer applications (e.g., messaging applications, social networking applications, web browsing applications, etc.). The dynamic keyboard interface may provide a search query box for a user to enter a search query. The dynamic keyboard interface may display search results including one or more media content items. The media content items may be rendered animatedly in the dynamic keyboard interface.

[0026] A plurality of media content items may be provided for display (e.g., in a dynamic keyboard interface) for selection by a user. The plurality of media content items may be sorted and / or arranged based on various factors, including destination. Media content items selected in part based on destination may be displayed more prominently in the search results (e.g., displayed larger toward the top of the arrangement of media content items). In some embodiments, the dynamic keyboard interface may include a scrollable window. When a user scrolls or drags (e.g., downward or sideways) the scrollable window of search results, additional, less relevant results (e.g., media content items not selected based on destination) may be displayed.

[0027] The systems and methods of the present disclosure may provide several technical effects and benefits, including reducing the computational resources involved in searching for media content items and transmitting the resulting search results to a user computing device. A computing system may generate more relevant media content items by selecting media content items based at least in part on the destination of the media content items. Thus, a user may more easily find appropriate or specific media content items, thereby reducing the number of searches a user must perform to find desired media content items and thereby reducing the consumption of computational resources while displaying and transmitting the media content items.

[0028] Additionally, as described above, in some embodiments, selecting a media content item based on the destination of the media content item may include considering one or more technical characteristics of the recipient computing device. Exemplary technical characteristics of such a recipient device include the physical size of the display screen, the resolution of the display screen, processing power and / or availability, memory power and / or availability, and / or connection bandwidth. By selecting a media content item based on such technical characteristics, the recipient device may reduce delays in transmission to the recipient device (e.g., when bandwidth is constrained) and / or provide a solution to a technical problem of display by the recipient device (e.g., when resources are constrained). In one example, a lower-resolution media content item selected based on a recipient device having a small and / or low-resolution display screen may be displayed by the recipient device using fewer computing resources (e.g., because downsampling and / or resizing the media content item may be reduced or eliminated). As another example, a media content item having a smaller file size, such as a media content item including fewer image frames (e.g., a shorter media content item), may be selected for a recipient device with constrained resources (e.g., reduced processing power, reduced memory, and / or reduced connection bandwidth). The media content items may be selected based on a comparison of the technical characteristics of the media content items to a threshold determined based on the technical characteristics of the recipient computing device. Additionally or alternatively, the media content items may be processed, downsampled, downsized, etc. based on a comparison of the technical characteristics of the media content items to a threshold determined based on the technical characteristics of the recipient computing device.Transmitting and / or displaying such media content items may consume fewer resources by the recipient computing device and / or reduce latency associated with such transmission and / or display. Furthermore, such selection of media content items may improve inter-device compatibility by preventing media content items with excessive file sizes and / or resolutions from being transmitted to recipient devices that cannot display, receive, and / or store such media content items. Thus, aspects of the present disclosure provide a technical solution to a technical problem by considering the technical characteristics of the recipient computing device when selecting media content items based on the destination of the media content items.

[0029] As one example, the systems and methods of the present disclosure may be included or otherwise used within the context of an application, a browser plug-in, or other context. Thus, in some implementations, the models of the present disclosure may be included in or otherwise stored and implemented by a user computing device, such as a laptop, tablet, or smartphone. As yet another example, the models may be included in or otherwise stored and implemented by a server computing device that communicates with the user computing device according to a client-server relationship. For example, the models may be implemented by the server computing device as part of a web service (e.g., a web email service).

[0030] Referring now to the drawings, exemplary embodiments of the present disclosure will be described in more detail.

[0031] Exemplary Devices and Systems 1A is a high-level block diagram illustrating a media content management system 100, according to some embodiments. The media content management system 100 can receive media content items 104 from media content sources 124 stored in a media content store 106. The media content management system 100 may also maintain a destination database 105 that describes various attributes of common destinations for the media content items 104.

[0032] FIG. 1A and other figures use like reference numbers to identify like elements. A letter after a reference number, such as “102a,” indicates that the text specifically refers to the element having that particular reference number. A reference number in the text without a following letter, such as “102,” refers to any or all of the elements in the figures having that reference number (e.g., “102” in the text refers to reference numbers “102a” and / or “102b” in the figures). For simplicity and clarity, only two user devices 102 are shown in FIG. 1A. In one embodiment, administrators may access the media content management system 100 through user devices 102 (e.g., user devices 102a and 102b) via separate login processes.

[0033] Media content items 104 may include various types of content, such as animated GIFs (sequence of images), still images, audiovisual content items / videos, and composite content items, such as multiple animated GIFs and / or image content. Media content items 104 are received by the media content management system 100 and stored in the media content store 106. Media content items 104 may have one or more attributes, such as content source, dimensions, content branding (e.g., by a movie studio, product producer, etc.), characters included in the content, text strings included in the content, etc. In one embodiment, the attributes may include metadata attributes.

[0034] In the media content store 106, media content items 104 may be stored along with collections or groups of media content items 104. In one embodiment, collections may be created by an administrator of the media content management system 100. In one embodiment, collections may be created automatically based on one or more attributes shared by the media content items 104 in the collection. In addition, collections may be created and / or cross-referenced in relation to destinations 105 and respective attributes of the destinations 105. For example, each collection of media content items 104 and / or individual media content items 104 may be stored in association with a rank or score for each destination 105 (e.g., based on tone, emotional content, aesthetic attributes, etc.).

[0035] In one embodiment, a content association or unique identifier may be used to refer to a collection within the media content management system 100. For example, a media content item 104 may be "content associated" as part of the "#happy" collection in the media content management system 100. In one embodiment, a user or administrator may content associate a media content item 104 as part of the "#happy" collection. In another embodiment, a media content item 104 may be automatically associated with, or have automatically generated content associations, by the content associator module 108 using content associations stored in the content association store 118. In this manner, content may be sourced and categorized using content associations, such as "#happy," within the media content management system 100. Individual collections, or sets of files, may each be labeled with a content association within the media content management system 100. In one embodiment, a particular file may be associated with one or more content associations.

[0036] In one embodiment, a user of the media content management system 100 may add content to the media content management system 100 via a user device 102a. For example, a user may have installed an application extension 116 on the user device 102a to enable the user to “save” content items 114 discovered by browsing web pages 112 using a browser 110 on the user device 102a. By saving a content item 114 using the application extension 116, a uniform resource locator (URL), in one embodiment, may be stored in association with the content item 114 as an attribute of the content item. The application extension 116, in one embodiment, may include a downloadable application that allows a user to browse web pages and collect media content items presented on the web pages. As an example, a blog web page may post particularly interesting content items that may or may not be available on the media content management system 100. Using the application extension 116, a user can browse a web page 112, access menus via the browser 110, and select options to save one or more content items 114 presented on the web page 112. In one embodiment, the application extension 116 is a mobile application that enables the mobile browser 110 to perform this function. In other embodiments, the application extension 116 may be a browser extension application or applet that may be downloaded via the browser 110 on a mobile device or desktop computer. In a further embodiment, the application extension 116 may enable a user to directly upload content items 114 to the media content store 106 within the media content management system 100.

[0037] In another embodiment, a copy of the content item 114 is stored in the media content store 106 as part of the user's interaction with the application extension 116 as described above. In a further embodiment, a link or URL of the content item 114 is stored in the media content store 106. In yet another embodiment, a copy of the content item 114 is stored on the user device 102a as part of a "saved" collection or a user-created collection on the user device 102a. A user may sign in to their account on various user devices 102 to synchronize collections, including user-created collections such as "saved" collections, between the user devices 102.

[0038] The content items 114 may be presented on the web pages 112 or otherwise accessible via a web server or otherwise procured by an administrator of the media content management system 100. For example, content owners, such as movie studios, television studios, brand owners, and other content generators, may partner with an administrator of the media content management system 100 so that licensed content can be distributed and stored in the media content store 106. In such a procurement process, the content owners may provide media content items 104 with pre-populated attributes, as described above. The media content sources 124, such as content owners, may include, for example, content stores or databases on servers maintained and operated by third-party sources or websites. As part of the procurement process, the content items 104 may be categorized into one or more collections by associating and storing them with one or more content associations from the content association store 118. In one embodiment, the content associations may be generated automatically by the content associator module 108 based on the attributes of the content items 104. In another embodiment, the content associations may be selected through one or more user interfaces or through an application programming interface (API). In a further embodiment, the content associations may be made by a user of the media content management system 100 after the media content items 104 are stored in the media content store 106 through one or more user interfaces on the user device 102.

[0039] 1A , a dynamic keyboard interface 122 may be provided on user device 102b, for example. The dynamic keyboard interface 122 may include media content items 104 as well as collections of media content items 104. For example, the dynamic keyboard interface 122 may include a collection of media content items 104 that have been content associated with #FOMO. #FOMO is an internet slang expression meaning "fear of missing out." Thus, the media content items 104 included in the #FOMO collection may be about or include expressive statements about the specific expression "fear of missing out." One or more expressive statements may be extracted and / or otherwise interpreted from the media content items 104, in one embodiment. For example, a curation user may make a content association for a media content item 104 as "#FOMO" based on an image within the media content item 104 that relates to the expression "fear of missing out," such as flashing "FOMO" text within the image, captioned dialogue from a movie or television show indicating that a character within the image is lonely, friendless, or afraid of being left out at an otherwise cool event. Through a sourcing process, the expressive statements may be mapped to content associations within the media content management system 100. In one embodiment, these expressive statements may correlate to a user's search intent when performing a search via animated inputs within a dynamic interface.

[0040] 1A, the dynamic keyboard interface 122 may also include other animated media content items or regions of the dynamic keyboard that implement animated input. In addition to the "#FOMO" animated key, which further includes a champagne bottle, animated keys for two clasped hands, a crying baby, a pair of glasses, a "#happy" content association, and a "#LOL" content association are shown as exemplary animated keys. Although not shown, the animated keys may include media content items 104 that are rendered as animations in the dynamic keyboard interface 122, meaning that the content may move in a constant loop within the key. In one embodiment, the media content items 104 may be preprocessed to enable animated input in the dynamic interface.

[0041] Selecting one of the animated keys in the dynamic keyboard interface 122 may cause the user device 102b to communicate with the media content management system 100 via the search interface module 120. In one embodiment, user-specific information (e.g., the user's search history and / or the user's sharing history) may be stored as personalized information in each user's personalization store 150 of the dynamic keyboard interface 122. Other personalized information may be captured about the user device 102, such as location (via GPS and / or IP address), installed language keyboards, default language selection, phone information, contact information, installed messaging applications, etc. The data included in the personalization store 150 may be used by the search interface module 120 as one or more factors, for example, in determining the user's search intent. As further shown in FIG. 1B , the dynamic keyboard interface 122 may be rendered on the user device 102b via a dynamic keyboard application 130 installed on the user device 102b. The dynamic keyboard application 130 may install a dynamic keyboard user interface 132 that allows the dynamic keyboard interface 122 to be accessed across the user device 102b as a third-party keyboard. In this manner, a messaging user using the messaging application 140 can access the dynamic keyboard interface 122 from within the messaging application 140.

[0042] FIG. 1B is a high-level block diagram illustrating a process for performing a search to implement animated input in a dynamic interface, in one embodiment. As further illustrated in FIG. 1B, media content items 104 are rendered to a dynamic keyboard interface 122 via a dynamic keyboard user interface 132, which communicates with the search interface module 120. In one embodiment, a set of collections may be selected for display on the dynamic keyboard interface 122. As shown in FIG. 1B, the dynamic keyboard interface 122 includes the "#PLEASE," "#HAPPY," "#RUDE," and "#FACEPALM" collections. Although the hashtag symbol ('#') is used in the examples included herein, content associations do not necessarily have to begin with a hashtag. The displayed collections may be selected based at least in part on the destination of the media content items 104.

[0043] By selecting an animated key on the dynamic keyboard interface 122, a collection of media content items 104 may be retrieved from the media content store 106 by the search interface module 120 and then rendered by the dynamic keyboard user interface 132 within the dynamic keyboard interface 122. In this manner, the search user is searching the media content management system 100 using a selected content association, such as "#HAPPY." The retrieved collection of media content items 104 may be rendered within the dynamic keyboard interface 122. Furthermore, the particular media content items selected for display from the "#HAPPY" collection may be selected based on destination (e.g., based on tone, emotional content, aesthetic characteristics, etc.).

[0044] The "#HAPPY" collection may be updated and added to in real time, so that a searching user may be presented with different media content items 104 as new items are added to the collection. As described above, the media content items 104 may be pre-processed to reduce the file size of the content, thus allowing the media content items 104 to be quickly rendered on the dynamic keyboard interface 122.

[0045] The searching user may then select a media content item from the dynamic keyboard interface 122 by touching or otherwise interacting with the dynamic keyboard user interface 132. The selected media content item 144 may then be sent or pasted into the messaging user interface 142 of the messaging application 140. In one embodiment, the selected media content item 144 is selected by clicking, tapping, or touching the dynamic keyboard interface 122 and holding the selected media content item 144 to “copy” the content so that it can be “pasted” into the messaging application 140 via the messaging user interface 142. This copy and paste method, in one embodiment, may utilize the operating system of the user device 102 so that the selected media content item 144 is not permanently stored on the user device 102. In another embodiment, the searching user may search for media content via a search field on the dynamic keyboard interface 122, as described further herein. In this manner, the media content item 104 may be shared via any messaging platform available on the user's device. The personalized information may be imported into the personalization store 150, for example, via the search interface module 120, as described above.

[0046] Additionally, the personalization store 150 can store data describing a user's past interactions with particular destinations. The personalization store 150 can store data describing attributes of media content items 104 previously shared by the user or sent to each different destination. For example, the personalization store 150 can store data indicating that a user generally posts inspirational and / or artistic media content items to one particular destination, but posts political media content items to another particular destination. This information can be used to personalize the selection of media content items 104 based on the destination.

[0047] 1C and 1D show an exemplary first user computing device 145 and an exemplary second user computing device 146, respectively. Referring to FIG. 1C, the user computing device 145 can receive data describing a destination of a media content item. For example, a user can open or select a messaging application on the user computing device 145 (e.g., from a home page of an operating system user interface). In response, the user computing device 145 can display a messaging application interface 148. The user can provide user input (e.g., via a recipient input box 149) describing the intended recipient of the message. For example, the user can select a contact (e.g., “Recipient A”) to send the media content item to. Thus, in this example, the destination is Recipient A's user computing device.

[0048] In some embodiments, a computing system (e.g., a user computing device) may receive a search query for media content items (e.g., via a dynamic keyboard interface displayed by the user computing device). In such embodiments, the computing system may select media content items based on the destination and the search query. However, in other embodiments, the computing system may automatically provide media content items without receiving a search query. The dynamic keyboard interface may provide suggestions for media content items based on the content of the message being drafted and the destination of the message.

[0049] The computing system may select one or more media content items 152, 153, 154, 156 based at least in part on the destination of the media content items and may provide the media content items 152, 153, 154, 156 for display in the dynamic keyboard interface 151 displayed by the user computing device 145. Thus, the computing system may select media content items 152, 153, 154, 156 that are more contextually relevant and useful to the user based on where the user is preparing to send the media content items 152, 153, 154, 156.

[0050] The data describing the destination may describe the geographic location of a user computing device (e.g., recipient A's user computing device) intended to receive the message. The computing system may select media content items 152, 153, 154, 156 to display to the user based on cultural considerations associated with the country or region in which the receiving user device is located (e.g., recipient A's user computing device). For example, when a message is drafted to be sent to a country or region with particular cultural sensitivities (e.g., the country in which recipient A's user device is located), the computing system may dislike media content items in the search results (e.g., media content items 152, 153, 154, 156) that may be insensitive and / or contextually inappropriate based on the particular cultural sensitivities of the destination (e.g., the country or region). Such media content items may be filtered out or may only be displayed in additional search results (e.g., not immediately displayed). Conversely, the computing system may favor (e.g., display more prominently in the search results) media content items that are more relevant and / or appropriate based on the message recipient's cultural considerations. For example, a computing system may prefer media content items associated with upcoming holidays celebrated in the country of the intended recipient (e.g., recipient A). Thus, the computing system can select more contextually appropriate media content items 152, 153, 154, 156 to present to the user based on cultural information associated with the recipient's location.

[0051] Referring to FIG. 1D , as another example, a user may search for media content items to share via a particular computer application, “Application A.” The user may open the particular computer application to provide input to the computer system describing the destination of the media content items. An application interface 158 for Application A may be displayed. A dynamic keyboard interface 161 may be displayed along with the application interface. The computing system may select one or more media content items 160, 162, 164, 166 based at least in part on the destination of the media content items and provide the media content items 160, 162, 164, 166 for display by the user computing device 146. Thus, the computing system may select media content items 160, 162, 164, 166 that are more contextually relevant and useful to the user based on where the user is preparing to send the media content items 160, 162, 164, 166.

[0052] For example, a particular computer application can be or include a social networking application (e.g., for sharing content with other users). The computing system can select which media content items to retrieve and display for a user based on characteristics of the particular computer application. Different social networking platforms generally favor different types of content. Inspirational, thoughtful, and / or non-political media content items may generally be more appropriate for a social networking platform focused on art and / or photography. Political, humorous, and / or edgy media content items may be more appropriate for a different particular social networking platform, etc. Furthermore, individual locations (e.g., pages, groups, etc.) within a particular social networking platform may favor particular types of content. In that example, a destination may be or include an individual location within a particular social networking platform. Thus, the computing system may select media content items 160, 162, 164, 166 based on a destination that is or includes a particular social networking application (e.g., “Application A”) and / or a location within the particular social networking application.

[0053] As another example, the particular application may be or may include a web browsing application for accessing and / or interacting with a website. A user may search for media content items to submit to a website (e.g., in a post, message, etc.) via a web browsing application interface (which corresponds to interface 158 in this example). The destination may be or may include a particular website. For example, when a user is drafting a post for a particular website, the computing system may select media content items 160, 162, 164, 166 that are contextually relevant and / or appropriate for the particular website.

[0054] As another example, selecting media content items 160, 162, 164, 166 based on the destination of the media content items 160, 162, 164, 166 may include considering one or more technical characteristics of the recipient computing device. For example, recipient computing devices may include desktop computers, laptop computers, tablets, smartphones, etc. Technical characteristics of such recipient devices may include the physical size of the display screen, the resolution of the display screen, processing power and / or availability, memory power and / or availability, and / or connection bandwidth. As an example, selecting media content items for a recipient device having a small and / or low-resolution display screen may include selecting low-resolution media content items. As another example, selecting media content items for a recipient device may include selecting media content items having smaller file sizes, such as media content items that include fewer image frames (e.g., shorter media content items). Thus, the technical characteristics of the recipient computing device may be considered when selecting media content items 160, 162, 164, 166 based on the destination of the media content items 160, 162, 164, 166.

[0055] 1D , multiple media content items 160, 162, 164, 166 may be selected based on destination and provided for display (e.g., in a dynamic keyboard interface 161) for selection by a user. The multiple media content items 160, 162, 164, 166 may be sorted and / or arranged based on various factors, including destination. Media content items 160, 162, 164, 166 selected in part based on destination may be displayed more prominently in search results (e.g., displayed larger toward the top of the arrangement of media content items). For example, search results (including 160, 162, 164, 166) may be displayed in the dynamic keyboard interface 161 as a scrollable window. Media content items selected based on destination may be displayed in the dynamic keyboard interface in response to receiving a search query. Additional results not selected based on destination may be displayed in response to a user sliding or shifting (e.g., downward or sideways) the scrollable window of search results.

[0056] 2A is a network diagram of a system for categorizing sourced content for performing searches in a media content management system, showing a block diagram of the media content management system, according to one embodiment. The system environment includes one or more user devices 102, media content sources 124, a third-party application 202, the media content management system 100, and a network 204. In alternative configurations, different and / or additional modules may be included in the system.

[0057] The user device 102 may include one or more computing devices capable of receiving user input and transmitting and receiving data over the network 204. In another embodiment, the user device 102 may be a device with computer capabilities, such as a personal digital assistant (PDA), a mobile phone, a smartphone, a wearable device, or the like. The user device 102 is configured to communicate over the network 204. The user device 102 may execute an application, such as, for example, a browser application, that allows a user of the user device 102 to interact with the media content management system 100. In another embodiment, the user device 102 interacts with the media content management system 100 through an application programming interface (API) running on the user device's 102's native operating system.

[0058] In one embodiment, network 204 uses standard communication technologies and / or protocols. Thus, network 204 may be an Ethernet (registered trademark), 802.11, Worldwide Interoperability for Microwave Access (WiMAX), 3G, 4G, CDMA, Digital Subscriber Line (DSL), etc. Similarly, networking protocols used on network 204 may include Multiprotocol Label Switching (MPLS), Transmission Control Protocol / Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Hypertext Transport Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), and File Transfer Protocol (FTP). Data exchanged over network 204 may be represented using technologies and / or formats including Hypertext Markup Language (HTML) and Extensible Markup Language (XML). Additionally, all or some of the links may be encrypted using conventional encryption technologies such as Secure Sockets Layer (SSL), Transport Layer Security (TLS), and Internet Protocol Security (IPsec).

[0059] 2A includes a block diagram of a media content management system 100. The media content management system 100 includes a media content store 106, a content association store 118, a personalization store 150, a search interface module 120, a content associator module 108, a dynamic keyboard interface module 208, a web server 210, a dynamic keyboard presentation module 212, a content association management module 214, a sentiment analysis module 220, an image analyzer module 222, a motion analyzer 224, a natural language processing (NLP) parser 218, a heuristics engine 216, and a search router rules engine 206. In other embodiments, the media content management system 100 may include additional, fewer, or different modules for various applications. Conventional components such as network interfaces, security functions, load balancers, failover servers, and administration and network operations consoles are not shown to avoid obscuring the details of the system.

[0060] The web server 210 links the media content management system 100 to one or more user devices 102 via the network 204, and the web server 210 serves web pages as well as Java (registered trademark), Flash, XML, and other web-related content. The web server 210 may provide functionality for receiving and routing messages between the media content management system 100 and the user devices 102, such as, for example, instant messages, queued messages (e.g., email), text and SMS (Short Message Service) messages, or messages sent using any other suitable messaging technique. Users may send requests to the web server 210 to upload information, such as, for example, images or media content to be stored in the media content store 106. Additionally, the web server 210 may provide API functionality for sending data directly to the native user device operating system.

[0061] The content associator module 108 may automatically generate one or more content associations for a media content item 104 in the media content management system 100 based on attributes of the media content item 104. For example, machine learning techniques may be used by the content associator module 108 to determine relationships between the media content item 104 and the content associations stored in the content association store 118. In one embodiment, the content associator module 108 may identify one or more content sources, such as movie studios, movies, television studios, television programs, actors, genres, etc. In another embodiment, the content associator module 108 may automatically generate content associations for a media content item 104 based on an analysis of image frames within the media content item 104. In yet another embodiment, the content associator module 108 may use one or more computer vision techniques and other image processing methods via various third-party applications 202 to analyze image frames within the media content item 104 and automatically generate one or more content associations to be associated with the content item. In one embodiment, the content associator module 108 may utilize one or more third-party applications 202, an NLP parser 218, a sentiment analysis module 220, an image analyzer 222, a motion analyzer 224, and a heuristics engine 216 to analyze and parse text contained in a media content item 104, as well as video frames of the media content item 104, to automatically generate content associations and / or automatically select content associations stored in the content association store 118. In another embodiment, the NLP parser 218 may be combined with the sentiment analysis module 220 and may rely on analyzing images and / or audiovisual content to determine the sentiment of the media content item 104.For example, the image analyzer 222 and the motion analyzer 224 may be used to detect and / or classify a sequence of images showing smiling faces. The heuristics engine 216 may include rules that automatically associate a media content item 104 having a sequence of images analyzed to detect smiling faces with a “#happy” content association from the content association store 118 when the media content item 104 is stored in the media content store 106 within the media content management system 100. Alternatively, or in addition to this analysis, the NLP parser 218 may parse text strings included in the images and determine matches with the word “AWESOME.” Additionally, the NLP parser 218 may interpret smiling faces as signifying a positive emotion. The sentiment analysis module 220 may indicate that the word “AWESOME” is associated with a strong positive emotion, and the heuristics engine 216 may include rules that automatically associate the “#happy” content association (and / or other positive content associations) with media content items 104 that have a strong positive emotion.

[0062] The media content store 106 may include or be associated with a destination database 105 that describes various attributes of common destinations for media content items.

[0063] In one embodiment, the search interface module 120 may manage search requests and / or search queries for media content items 104 in the media content management system 100 received from user devices 102. In one embodiment, the search queries may be received at the search interface module 120 and processed by the search router rules engine 206. In another embodiment, the search interface module 120 may receive a request for a collection from a user device 102 based on content associations such as "#HAPPY," "#RUDE," or "#FOMO" as a result of an animated key or text search selection. In one embodiment, the search interface module 120 may communicate the search query to the search router rules engine 206 to process the request.

[0064] The content association management module 214 may manage one or more content associations associated with each media content item 104 in the media content management system 100. Content associations can be associated with media content items 104 via the content association management module 214 through various interfaces, such as a user interface and an application programming interface (API). The API may be used to receive, access, and store data from media content sources 124, third-party applications 202 (and / or websites), and user devices 102. The content association management module 214, in one embodiment, may manage how content associations are associated with media content items 104 through various procurement methods. Additionally, content associations and / or collections may be generated and / or cross-referenced in association with data describing destinations 105 and respective attributes of the destinations 105. For example, each collection of media content items 104 and / or individual media content items 104 may be stored in association with a rank or score for each destination 105 (e.g., based on tone, emotional content, aesthetic attributes, etc.).

[0065] The dynamic keyboard interface module 208 may manage interface communications between the media content management system 100 and the user device 102. For example, the dynamic keyboard interface 122 may include a menu selection element that allows a search user to view trending media content on the media content management system 100, as shown in FIGS. 1A-1C. "Trending" media content may include content that is frequently viewed and / or frequently shared by users of the media content management system 100. The dynamic keyboard interface module 208 may, for example, receive a request for trending media content and retrieve media content items 104 from the media content store 106 that have the highest number of shares in the past hour. In one embodiment, the dynamic keyboard interface module 208 may then provide the retrieved trending media content items to the dynamic keyboard interface 122 via the dynamic keyboard application 130 via the dynamic keyboard presentation module 212. The dynamic keyboard presentation module 212 may, for example, determine how the media content items are presented and in what order. In one embodiment, if no media content items 104 satisfy a search query or request from a user device, the dynamic keyboard interface module 208 may work in conjunction or coordination with the search interface module 120 and the search router rules engine 206 to deliver other popular or shared media content items 104. In one embodiment, content items may be selected by the dynamic keyboard interface module 208 from a third-party application 202 (or website) for inclusion in search results or animated keys in the dynamic keyboard interface 122.

[0066] The heuristic engine 216 may include one or more heuristic rules for determining one or more results. For example, the content associator module 108 may use the heuristic engine 216 to determine a ranking of candidate content associations for a media content item 104 based on attributes of the media content item 104. Particular attributes may have various heuristic rules associated with them, such as visual movement (e.g., a detected smiley face may be associated with the “#HAPPY” content association), visual characteristics (e.g., blinking text may indicate the importance of a text string, or a hashtag symbol may indicate a particular content association), content source, characters contained in the media content item, and other attributes. In one embodiment, various heuristic rules may be generated by an administrator to automatically generate content associations for content items based on attributes. In another embodiment, the heuristic rules may use parameter ranges for various attributes. For example, a selection of 30 media content items 104 for sharing by a particular user may be used in a heuristic rule to present the same media content item in response to a search query from the particular user that has few search results. The range here may be defined, for example, as a threshold number of shares.

[0067] The sentiment analysis module 220 may provide an analysis of various text received by the media content management system 100 to determine whether the text exhibits a positive connotation, a negative connotation, or a neutral connotation. This information may be used by various modules to efficiently translate search queries and extract the expressive intent of the search user. For example, a dictionary of terms may be used in multiple languages ​​to determine whether text is determined to have a positive connotation, a negative connotation, or a neutral connotation. The sentiment analysis module 220, in one embodiment, may use various third-party applications 202 to perform this analysis. Using the sentiment analysis module 220, the search router rules engine 206 may, for example, provide one or more collections of media content items 104 based on the connotation of the search query.

[0068] 2B is a high-level block diagram of a system for categorizing sourced content for performing searches in a media content management system, according to one embodiment. In one embodiment, the content association management module 214 may include a metadata analyzer module 240, a user interface module 242, a content association selection module 244, and an association association module 246.

[0069] When a media content item 104 having one or more attributes is received at the media content management system 100 from a media content source 124, the metadata analyzer module 240 may generate one or more content associations based on the attributes of the media content item 104. For example, a media content item 104 from a particular movie may be automatically content associated with that particular movie collection based on the movie metadata attributes associated with the media content item 104. In one embodiment, an administrator of the media content source 124 may associate one or more metadata attributes with the media content item 104. The metadata attributes may be stored in various ways in the source file of the media content item 104, such as in a header content association within the source file, as well as in other files associated with the source file, such as an XML file that describes the content items being procured in batches by the media content system 100.

[0070] In one embodiment, the metadata analyzer module 240 may parse metadata associated with a media content item 104 and automatically generate and / or select content associations from the content association store 118 based on one or more rules. As shown in FIG. 2B , the content association store 118 may store association-attribute relationships 250 such that attributes are associated with content associations. In this manner, the metadata analyzer module 240 may automatically assign content associations to the media content item 104 based on the association-attribute relationships 250 stored in the content association store 118.

[0071] Other metadata attributes that may be analyzed by the metadata analyzer module 240 include the Internet Protocol (IP) address of a mobile or user device used by a search user or curation user. The IP address may provide an indication of the user's geographic location, including country of origin. Alternatively, the mobile device's Global Positioning System (GPS) may include the user's current geographic location. As a result, different collections or content associations may be presented to the user based on the predominant language spoken in the user's geographic location. In another embodiment, another metadata attribute that may be analyzed by the metadata analyzer module 240 includes one or more languages ​​selected by the viewing user. In this manner, language preference may help inform search intent, curation intent, or both. For example, a word in French may have an entirely different meaning in Indonesian. As a result, language and country of origin may be metadata attributes that may be determined by the metadata analyzer module 240.

[0072] The user interface module 242 may provide a user device 102, such as a computer or mobile device, with one or more user interfaces for selecting one or more content associations for a procured media content item 104. For example, a curation user may be given the ability to assign one or more content associations from the content association store 118 to a media content item 104. In this manner, the content association management module 214 enables manual selection of content associations for categorizing a procured media content item 104.

[0073] According to one embodiment, the content association selection module 244 may provide one or more content associations from the content association store 118 in one or more user interfaces provided by the user interface module 242. In one embodiment, the content association selection module 244 may present predicted content associations based on the content association-attribute associations 250 stored in the content association store 118 for selection and / or review by a curation user operating the user device 102. For example, a media content item 104 may have a genre attribute of comedy based on pre-populated information from the media content source 124. In one embodiment, the “comedy” attribute may be associated with the “#HAPPY” content association, and thus the media content item 104 may have been assigned the “#HAPPY” content association by the metadata analyzer module 240. The content association selection module 244 may present the “#HAPPY” content association along with other related content associations in a user interface provided by the user interface module 242 to the curation user to assign or revoke the content association associated with the associated content item 104. In one embodiment, the association-attribute associations 250 stored in the content association store 118 may include content associations that are related to other content associations. For example, the "#HAPPY" content association may be related to the content associations of "LOL" and "LMAO" because both LOL and LMAO include the "laugh" interpretation. As a result, in one embodiment, other content associations may be presented for selection by the curation user.

[0074] As part of the procurement process, media content items may be preprocessed 252 before being stored in the media content store 106. This allows the media content items 104 to be quickly retrieved and seamlessly rendered in the dynamic keyboard interface 122 on the user device 102. The preprocessing 252 of the media content items may include reducing pixel count, modifying resolution definition, and other file size reduction techniques. In one embodiment, the dynamic keyboard presentation module 212 may be used to perform this preprocessing 252 of the media content items. Advantageously, the preprocessing 252 of the media content items allows the dynamic keyboard interface 122 presented to the user on the user device 102b to animate and simultaneously render at least two renderings of at least two media content items in the dynamic keyboard interface 122.

[0075] The association association module 246 may associate content associations with media content items 104 in the media content store 106. The content associations may be automatically associated with the content items by the metadata analyzer module 240 (or other modules in the media content management system 100), or the content associations may be associated as a result of a content association selection received via a user interface provided by the user interface module 242. As shown in FIG. 2B, item-association relationships 254 are stored in the media content store 106. Each content item may have a content identifier, and each content association may have a content association identifier such that the item-association relationships 254 may be stored in the media content store 106. As shown in FIG. 2B, a content item (“item”) may be associated with one or more associations (“ass'n”), and the item-association relationships 254 are stored, for example, in the media content store 106.

[0076] 2C is a high-level block diagram of a system for composing composite content items in a media content management system according to one aspect of the present disclosure. A composer interface 264 may be provided on a user device 102 that allows a viewing user to search for media content items 104 and select two or more content items to generate a composite content item. As shown, two content items have been selected in the composer interface 264 to create a composite content item 266 having the combined attributes of the two selected content items. For example, a viewing user may search for "No" via a search interface, which will be described in more detail below. Several content items 104 that satisfy the search term "No" may be retrieved. A first selected content item may be associated with a content association of "No" and "Chandler," and a second selected content item may be associated with a content association of "No" and "Taylor." As a result, the composite content item 266 may include the content associations "No," "Chandler," and "Taylor." The composite content item 266 may be received by the composer interface module 262 and stored by the composite item module 260 as a media content item 104 in the media content store 106. As further shown in FIG. 2C , in addition to the composer interface module 262, the composite item module 260 may operate in conjunction with or include a metadata analyzer module 240, a content association selection module 244, and an association association module 246, which operate in a similar manner as described above.

[0077] In at least some embodiments, a composite content item 266 may be associated with an expressive statement that conveys a different meaning than the individual content items included in the composite content item 266. Returning to the example above, a first content item 104 having the characters “Chandler” representing the statement “No” may convey a particular meaning to most users of the media content management system 100. A curation user of the media content management system 100 may associate other content associations with that particular content item 104, such as “#cool” and “FRIENDS.” A second content item 104 depicting celebrity Taylor Lautner may evoke a separate and different meaning from the first content item 104 depicting the character “CHANDLER” from the television show FRIENDS. The second content item 104 may be automatically or manually content associated with, for example, content associations of “cool” and / or “famous” in addition to the shared content association of “No.” As a result, the combination of the two media content items presents different information than each of the media content items presented separately. In one embodiment, the expression statement presented by the composite content item 266 may be a simple agglomeration of content associations associated with the individual content items included in the composite content item 266. In another embodiment, an expression statement distinct from the content associations included in the individual content items may be extracted or otherwise interpreted from the composite content item 266. This expression statement is stored with the associated content associations associated with the composite content item 266 and is used in correlating the intent of a search user to related content items, as described herein.

[0078] 3 is a high-level block diagram of a system for categorizing procured content in a media content management system, according to some examples. The content associator module 108 may include a content associating algorithm 406 for automatically selecting a content association 402 for a media content item 104. The content associator module 108 may further include a content association selector 408 for selecting a content association 402 from the content association store 118. The content associator module 108 may work in conjunction with or include an image analyzer 222, a motion analyzer 224, and a heuristics engine 216 to assist in automatically selecting a content association 402 for a media content item 104.

[0079] The image analyzer 222 may include computer vision techniques to recognize facial features, such as smiling faces, eyes, mouths, and distorted mouths. The image analyzer 222 may further include other computer vision techniques and / or pattern recognition algorithms to create a baseline training set for recognizing these facial characteristics. Similarly, the motion analyzer 224 may include computer vision techniques and / or pattern recognition algorithms, as well as machine learning and Bayesian estimation techniques to recognize crying, laughing, falling, and other actions that may be modeled in a similar manner. The motion analyzer 224 may also include eye-tracking functionality to identify eye positions within a set of images or animated images. The eye-tracking functionality of the motion analyzer 224 may be used in conjunction with one or more other modules within the media content management system 100 to generate new media content items 104, such as, for example, rendering a pair of sunglasses on an animated set of images over detected eyes in the images. Other modules may be used to add text to the media content items 104, such as the phrase “handle,” to create and / or generate new media content items 104. As previously described, the heuristics engine 216 may use various rules to reach a conclusion based on the received data. For example, as shown in FIG. 3, the media content item 104 may include, for example, a GIF of a crying baby. The image analyzer 222 may analyze frames of the GIF in the media content item 104 to determine facial characteristics, such as a pair of narrowed eyes, an open mouth in a frown-like position, raised eyebrows, etc. The motion analyzer 224 may identify that the media content item 104 includes a crying baby based on a baseline model of a crying baby and other machine learning techniques.

[0080] As a result, the content associator module 108 may select one or more content associations from the content association store 118 via the content association selector 408. The content association algorithm 406 may include one or more heuristic rules from the heuristics engine 216 to automatically generate content associations for the media content item 104. In this example, the "#sad" content association 402 is selected for the media content item 104. As previously described, content associations may be associated with other content associations, such as a crying content association being associated with the "#sad" content association 402. In this manner, the crying baby media content item 104 may be included in the "#sad" collection 404 based on the automatically generated content associations and stored in the media content store 106.

[0081] 4 is a high-level block diagram of a system for performing a search to implement animated input in a dynamic interface, according to some examples. The search router rules engine 206 may include a destination analyzer 601 that can be configured to receive data describing a destination of a media content item. Exemplary data describing the destination may include cultural data of a geographic area, data describing common attributes of media content items typically sent to the destination (e.g., posts on social media platforms, posts on websites, etc.). For example, the data describing the destination of a media content item may include data describing media content items previously shared by other users through a particular computer application.

[0082] The search router rules engine 206 may include a query analyzer 602, an intent extractor 604, an intent matcher 606, and a machine learning module 608. In one embodiment, the query analyzer 602 may break down received text and / or pictures into overlapping windows. For example, a search user may enter the search term “happy birthday” as a query. The query analyzer 602 may break down the query into overlapping words and partial words, such as “ha,” “happy,” “birth,” “birthday,” “happy birth,” and “happy birthday.” The query analyzer 602, in one embodiment, may provide the words and partial words to the search interface module 120 for searching within the media content store 106 based on the words and partial words on the content associations of the associated media content items.

[0083] In another embodiment, the query analyzer 602 may provide the words and partial words to the intent extractor 604. For example, the intent extractor 604 may have previously mapped or extracted intents from the query "happy birthday" to include intents to celebrate a birthday. Thus, the term "happy birthday" may be specifically mapped to only content items that have birthday elements, such as a cake, candles, the text string "happy birthday," a party, a person blowing candles, etc. The intent extractor 604 may further provide the words and partial words to a natural language processing (NLP) parser 218 to derive meaning and / or intent from the search terms. The NLP parser 218, in one embodiment, may be particularly useful when the search terms are not recognized. For example, if the search term is "happy dia de los muertos" and the Spanish term "dia de los muertos," meaning "Day of the Dead," is not included in the dictionary or corpus of training words, the intent extractor 604 may extract the search user's intent to celebrate something happy based on the word "happy" included in the search query. On the other hand, if "muertos" is included in a dictionary or text string included as a metadata attribute of a content item, the NLP parser 218 may rely on presenting content items associated with content associations of both "happy" and "muertos."

[0084] The intent matcher 606, in one embodiment, may be used in the search router rules engine 206 to match a search user's intent to one or more content associations in the content association store 118. Returning to the previous example, the term "happy" in the search query "happy dia de los muertos" may cause the search query to be matched by the intent matcher 606 to the "#happy" content association for further queries. In one embodiment, the term "muertos" may be matched to the "dead" content association and the "Halloween" content association. Because "dia de los muertos" is not directly related to Halloween but is in fact a Mexican holiday that occurs on November 1, some content items may not be presented. In one embodiment, the intent matcher 606 may refine the match between the search phrase and the content association. The match may, in one embodiment, be stored in the content association store 118.

[0085] In another embodiment, the intent matcher 606, in cooperation with the machine learning module 608, may analyze user feedback, such as selecting content items having both the “Halloween” attribute and the “skull” attribute when those items are presented in search results in response to a “happy dia de los muertos” search query. As a result, the intent matcher 606 may generate new matches between the search phrase “happy dia de los muertos” and content items having content associations of both “Halloween” and “skull.” In one embodiment, the intent matcher 606 may determine a likelihood score for the intent match based on probabilistic methods and / or machine learning for each match. This score may be stored in the content association store 118 for each intent match. These scores may further be based on statistical inference algorithms provided by the NLP parser 218 and the machine learning module 608.

[0086] The machine learning module 608 may use various machine learning methods, such as supervised and unsupervised learning methods, Bayesian knowledge bases, Bayesian networks, nearest neighbors, random walks, and other methods, to determine various results based on the received training data and received user feedback (based on whether viewing users select / share content items presented in a search result set). For example, a random content item may be presented along with content items having a certain attribute, such as a “#happy” content association. In other cases, the same content item may be presented randomly among search results for different content associations, such as “dog.” Although the randomly presented content item may not be associated with either the “#happy” content association or the “dog” content association, search and / or viewing users may frequently select and share the randomly presented content item. As a result, the machine learning module 608 may determine that the randomly presented content item is selected 80% of the time overall, 70% of the time when content associated with “#happy” is presented, and 60% of the time when content associated with “dog” is presented. The machine learning module 608 can be used to create heuristic rules to further automate the process and automatically suggest content items when a search query contains both the terms "#happy" and "dog," as well as when the search query contains one of the terms. In one embodiment, the machine learning module 608 can associate or relate content associations to content items based on content items being selected from among the search results that have a common attribute over a threshold percentage of time, such as 50%. According to at least one embodiment, correlations such as these may require administrator approval via a user interface.

[0087] The search router rules engine 206 may further include rules for processing search queries to optimize processing time and include search results even when no direct match exists within the media content management system 100. For example, the search router rules engine 206 may work in conjunction with the sentiment analysis module 220, the image analyzer 222, and / or the motion analyzer 224 to analyze content items in the media content store 106 that do not have associated attributes. The sentiment analysis module 220 may be used to process words, subwords, and search queries to determine whether the intent includes positive, negative, or neutral connotations. The image analyzer 222 may similarly be used to process incoming images received as search queries to extract the intent of the searching user. For example, if the image is a photo captured by a mobile device that is directly submitted as a query, the photo may be analyzed by the image analyzer 222 to detect visual characteristics, such as facial expressions and activities, occurring in the photo. Additionally, the motion analyzer 224 may be used to detect patterns of actions, behaviors, and movements such as laughing, crying, falling, shaking hands, fist bumps, slapping chests, looking disdainfully, tossing hair, etc. Rules may be included in the search router rules engine 206 to associate identified behaviors, actions, activities, and / or facial expressions with one or more facial expression statements that are stored as content associations in the content association store 118. These rules, in one embodiment, may be heuristic rules generated by the heuristics engine 216.

[0088] 5A-5C are illustrative screenshots of a dynamic keyboard interface provided for interacting with content in a media content management system, according to some examples. FIG. 5A shows an illustrative screenshot of a dynamic keyboard interface 122 provided on a mobile device via a native mobile application for text creation, specifically the IMESSAGE platform via APPLE IOS. Collection interface elements 802 are provided within the dynamic keyboard interface 122, including a "#PLEASE" collection, a "#RUDE" collection, a "#HAPPY" collection, and a "#FACEPALM" collection. When a user selects one of the collection interface elements 802 within the dynamic keyboard interface 122, media content items 104 associated with the selected collection, labeled with their content associations, may be rendered within the dynamic keyboard interface 122. A hashtag ('#') precedes the collection's content associations, but a hashtag is not required. Each of the collection interface elements 802 presented in the dynamic keyboard interface 122 includes media content items simultaneously presented in animation, giving the viewing user a preview of the animations available in the collection. The collections represented by the collection interface element 802 contain media content items that are rendered and presented animatedly simultaneously so that a user can quickly browse the various collections represented by the collection interface element 802. A tab interface 804 is also included in the dynamic keyboard interface 122. The tab interface 804 provides a navigation menu of features and options available on the dynamic keyboard interface 122. As shown in FIG. 5A , an icon on the tab interface 804 is highlighted because that menu tab is currently selected. The icons included in the tab interface 804 may be animated as well.A search query field 806 is also included in the dynamic keyboard interface 122. The search query field 806, in one embodiment, allows a viewing user to perform a search on the media content management system 100 using a text string. Although not shown, the search query field 806, in other embodiments, may receive images captured from the viewing user's mobile device, as well as images stored on the viewing user's mobile device. The dynamic keyboard interface 122 also includes an emoji search interface 808 for searching the media content management system 100 using a graphical representation of an expression or emoji.

[0089] 5B shows dynamic keyboard interface 122 in further detail. Tab interface 804, in one embodiment, may include an icon 810 for navigating to a user-generated collection, an icon 812 for navigating to an emotionally curated collection, an icon 814 for navigating to an expressively curated collection, an icon 816 for navigating to trending media content items, and an icon 818 for navigating to audio / visual curated content items. As further shown in FIG. 5B, tab interface 804 may include other icons for a user to interact with a mobile application on a mobile device, including an icon 801 for switching keyboards and an icon 803 for deleting content entered into the mobile application.

[0090] FIG. 5C shows an example screenshot of the dynamic keyboard interface 122 in further detail for each icon in the tab interface 804 when selected. The user-generated collections 810 may include collections procured by a user via a sharing extension application. For example, a user may browse a web page containing one or more media content items via a web browser and launch a sharing extension application to retrieve one or more media content items and save them to the user-generated collections 810. As shown in FIG. 5C, the user-generated collections 810 may include favorites, recent, saved, and cute. In this example, the recent collection may include content items most recently shared by a user using the media content management system 100 and / or the dynamic keyboard interface 122. The favorites, saved, and cute collections, in one embodiment, may be user-curated collections that include content items that have been manually associated with the collection or associated via either the sharing extension application or the dynamic keyboard interface.

[0091] 6 illustrates an exemplary computing platform disposed within a device configured to categorize sourced content for performing searches in media content management system 100, according to various embodiments. In some examples, computing platform 1000 may be used to implement computer programs, applications, methods, processes, algorithms, or other software to perform the techniques described above.

[0092] In some cases, the computing platform may be located on any other device, such as a wearable device or implement, a mobile computing device 1090b, or a computing device 1090a.

[0093] The computing platform 1000 includes a processor 1006, a system memory 1010 (e.g., RAM), a storage device 1008 (e.g., ROM), a communication interface 1012 (e.g., Ethernet), (registered trademark) Or a wireless controller, Bluetooth (registered trademark) The computing platform 1000 includes a bus 1004 or other communication mechanism for communicating information that interconnects subsystems and devices such as a processor, a controller, etc., to facilitate communication via ports on a communication link 1014, for example, to communicate with computing devices, including mobile computing devices and / or communication devices having processors. The processor 1006 may be implemented with one or more central processing units (“CPUs”), or one or more virtual processors, and any combination of CPUs and virtual processors. The computing platform 1000 exchanges data representing input and output via input / output devices 1002, including, but not limited to, a keyboard, a mouse, audio input (e.g., a voice-to-text device), a user interface, a display, a monitor, a cursor, a touch-sensitive display, an LCD or LED display, and other I / O-related devices.

[0094] According to some examples, the computing platform 1000 performs certain operations by the processor 1006 executing one or more sequences of one or more instructions stored in the system memory 1010. The computing platform 1000 can be implemented in a client-server configuration, a peer-to-peer configuration, or as any mobile computing device, including a smartphone or the like. Such instructions or data may be read into the system memory 1010 from another computer-readable medium, such as the storage device 1008. In some examples, hardwired circuitry may be used in place of or in combination with software instructions for implementation. Instructions may also be embedded in software or firmware. The term “computer-readable medium” refers to any tangible medium that participates in providing instructions to the processor 1006 for execution. Such media may take many forms, including, but not limited to, non-volatile and volatile media. Non-volatile media include, for example, optical or magnetic disks. Volatile media include dynamic memory, such as the system memory 1010.

[0095] Common forms of computer-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape, any other magnetic media, CD-ROMs, any other optical media, punch cards, paper tape, any other physical media with a pattern of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read. Additionally, instructions may be transmitted or received using transmission media. The term "transmission medium" can include any tangible or intangible medium capable of storing, encoding, or carrying instructions for execution by a machine, including digital or analog communication signals or other intangible media to facilitate communication of such instructions. Transmission media include coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 1004 for transmitting computer data signals.

[0096] In some examples, execution of the sequences of instructions may be performed by computing platform 1000. According to some examples, computing platform 1000 may be coupled to any other processors by communications link 1014 (e.g., a wired network such as a LAN, PSTN, or any wireless network including WiFi, Bluetooth, Zig-Bee, etc. of various standards and protocols) to execute sequences of instructions cooperatively (or asynchronously) with each other. Computing platform 1000 may send and receive messages, data, and instructions, including program code (e.g., application code), via communications link 1014 and communications interface 1012. Received program code may be executed by processor 1006 as it is received and / or stored in memory 1010 or other non-volatile storage for later execution.

[0097] In the depicted example, the system memory 1010 may include various modules containing executable instructions for implementing the functionality described herein. The system memory 1010 may include an operating system (“O / S”) 1030, as well as applications 1032 and / or logic modules 1050. In the depicted example, the system memory 1010 includes a content associator module 108 that includes a content association (“ass'n”) selector module 408 and a content association (“CA”) algorithm module 1040. The system memory 1010 may also include an image analyzer 222, a motion analyzer 224, a heuristics engine 216, a search interface module 120, a dynamic keyboard interface module 208, a dynamic keyboard presentation module 212, a sentiment analysis module 220, a natural language processing (NLP) parser 218, a search router rules engine 206 including a query analyzer 602, an intent extractor 604, an intent matcher 606, and a machine learning (ML) module 608, a content association ("ass'n") management ("mgmt.") module 214 including a metadata analyzer module 240, a user interface module 242, a content association selection module 244, and an association ("ass'n") association module 246. The system memory 1010 may further include a composite item module 260 and a composer interface module 262. One or more of the modules included in the memory 1010 may be configured to provide or consume output to implement one or more functions described herein.

[0098] In at least some examples, the structure and / or functionality of any of the above-described features may be implemented in software, hardware, firmware, circuitry, or a combination thereof. It should be noted that the above-described structures and components, and their functionality, may be aggregated with one or more other structures or elements. Alternatively, the elements and their functionality, if any, may be subdivided into constituent subelements. As software, the above-described techniques may be implemented using various types of programming or formatting languages, frameworks, syntaxes, applications, protocols, objects, or techniques. As hardware and / or firmware, the above-described techniques may be implemented using various types of programming or integrated circuit design languages, including hardware description languages ​​such as any register transfer language ("RTL") configured to design field programmable gate arrays ("FPGAs"), application specific integrated circuits ("ASICs"), or any other type of integrated circuit. According to some embodiments, the term "module" may refer, for example, to an algorithm or portion thereof, and / or logic implemented in either hardware circuitry or software, or a combination thereof. These may vary and are not limited to the examples or descriptions provided.

[0099] In some embodiments, the media content management system or one or more of its components, or any process or device described herein, may be in communication (e.g., wired or wireless) with or may be located within a mobile device, such as a mobile phone or computing device.

[0100] In some cases, a mobile device or any networked computing device (not shown) in communication with the action alert controller or one or more of its components (or any process or device described herein) can provide at least some of the structure and / or functionality of any feature described herein. As shown in the above-described figures, the structure and / or functionality of any of the above-described features may be implemented in software, hardware, firmware, circuitry, or any combination thereof. It should be noted that the above-described structures and components, and their functionality, may be aggregated or combined with one or more other structures or elements. Alternatively, elements and their functionality, if any, may be subdivided into constituent subelements. As software, at least some of the techniques described above can be implemented using various types of programming or formatting languages, frameworks, syntaxes, applications, protocols, objects, or techniques. For example, at least one of the elements shown in any of the figures can represent one or more algorithms. Alternatively, at least one of the elements can represent a portion of logic that includes a portion of hardware configured to provide the structure and / or functionality of the configuration.

[0101] For example, the dynamic keyboard presentation module 212, or any one or more components thereof, or any process or device described herein, may be implemented in one or more computing devices (i.e., a wearable device, an audio device (such as headphones or a headset), or any mobile computing device such as a mobile phone, whether worn or carried) that include one or more processors configured to execute one or more algorithms in memory. Thus, at least some of the elements in the above-described figures may represent one or more algorithms. Alternatively, at least one of the elements may represent portions of logic, including portions of hardware configured to provide the structure and / or functionality of the arrangement. These may vary and are not limited to the examples or descriptions provided.

[0102] Exemplary Methods 7 shows a flowchart diagram of a method 700 for retrieving according to an exemplary embodiment of the present disclosure. While FIG. 7 shows steps performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the particularly illustrated order or arrangement. Various steps of method 600 may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.

[0103] At 702, method 700 may include receiving data describing a destination (e.g., for a desired media content item), e.g., as described above with reference to Figures 1C and 1D. As an example, a user may select a recipient (e.g., another user) to send a message to via a messaging application. The destination may be or include the recipient's computing device and / or the location of the recipient's user computing device. As a further example, the destination may include a computer application, a website, a social networking platform (or a location therein) as the destination.

[0104] At 704, the method 700 may include selecting one or more media content items based on data describing a destination of the media content items, for example, as described above with reference to Figures 1C-2B and 4. The computing system may select the media content items based on a comparison of attributes of the destination and attributes of the media content items. Exemplary attributes may include tone, emotional content, and aesthetic quality (e.g., of text included in the media content items).

[0105] At 706, method 700 may include providing media content items for display by the user computing device to a dynamic keyboard interface, e.g., as described above with reference to Figures 1B-1D and 5A-5C. The media content items may be ranked and / or arranged for display (e.g., in the dynamic keyboard interface) based on data describing the destination of the media content items. Media content items that are generally more relevant (e.g., for selection based on the destination of the media content items) may be displayed more prominently (e.g., at the top of a group of results, larger, etc.).

[0106] Additional Disclosures The technology described herein refers to servers, databases, software applications, and other computer-based systems, as well as actions taken and information transmitted to and from such systems. The inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functions among components. For example, the processes described herein can be implemented using a single device or component, or multiple devices or components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.

[0107] As hardware and / or firmware, the structures and techniques described above may be implemented using various types of programming languages ​​or integrated circuit design languages, including hardware description languages ​​such as any register transfer language ("RTL") configured to design a field programmable gate array ("FPGA"), an application specific integrated circuit ("ASIC"), a multi-chip module, or any other type of integrated circuit.

[0108] For example, a media content management system including one or more components, or any process or device described herein, may be implemented on one or more computing devices including one or more circuits. Thus, at least one of the elements in the above-described figures may represent one or more components of hardware. Alternatively, at least one of the elements may represent a portion of logic, including a portion of circuitry configured to provide the structure and / or functionality of the configuration.

[0109] According to some embodiments, the term “circuit” can refer to any system including several components through which, for example, current flows to perform one or more functions, where components include discrete components and composite components. Examples of discrete components include transistors, resistors, capacitors, inductors, diodes, etc., and examples of composite components include memory, processors, analog circuits, digital circuits, etc., including field programmable gate arrays (“FPGAs”) and application specific integrated circuits (“ASICs”). Thus, a circuit can include a system of electronic and logical components (e.g., logic configured to execute instructions, such that a group of executable instructions of an algorithm, for example, is thus a component of a circuit). According to some embodiments, the term “module” can refer, for example, to an algorithm or a portion thereof, and / or logic implemented in either hardware circuitry or software, or a combination thereof (i.e., a module can be implemented as a circuit). In some embodiments, an algorithm and / or a memory in which an algorithm is stored is a “component” of a circuit. Thus, the term “circuit” can also refer, for example, to a system of components including an algorithm. These can vary and are not limited to the examples or descriptions provided.

[0110] Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the inventive techniques described above are not limited to the details provided. There are many alternative ways of implementing the inventive techniques described above. The disclosed examples are illustrative rather than limiting.

[0111] The foregoing description of embodiments of the invention has been presented for purposes of illustration and is not intended to be exhaustive or to limit the invention to the precise form disclosed. Those skilled in the art will recognize that many modifications and variations are possible in light of the above disclosure.

[0112] Some portions of this description describe embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, will be understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Further, it has proven convenient at times to refer to arrangements of these operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combination thereof.

[0113] Any of the steps, operations, or processes described herein may be performed or embodied in one or more hardware or software modules, alone or in combination with other devices. In one embodiment, the software modules are implemented in a computer program product that includes a computer-readable medium containing computer program code that can be executed by a computer processor to perform any or all of the described steps, operations, or processes.

[0114] Embodiments of the present invention may also refer to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes and / or may include a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored on a non-transitory, tangible, computer-readable storage medium or any type of medium suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing system referred to herein may include a single processor or may be an architecture employing a multiple processor design for increased computing power.

[0115] Embodiments of the present invention may also refer to products produced by the computing processes described herein. Such products may include information resulting from the computing processes, where the information is stored on a non-transitory, tangible computer-readable storage medium and may include any embodiment of a computer program product or combination of other data described herein.

[0116] Finally, the language used herein has been chosen primarily for ease of reading and educational purposes, and may not be chosen to delineate or limit the subject matter of the present invention. Accordingly, it is intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based thereon. Accordingly, the disclosure of embodiments of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

[0117] While the present subject matter has been described in detail with reference to various specific exemplary embodiments thereof, each example is provided by way of explanation, not limitation, of the disclosure. Those skilled in the art, once they achieve the above understanding, will be able to readily produce modifications, variations, and equivalents of such embodiments. Accordingly, the present disclosure does not exclude the inclusion of such modifications, variations, and / or additions to the present subject matter as would be readily apparent to one skilled in the art. For example, features illustrated or described as part of one embodiment can be used with another embodiment to yield yet a further embodiment. Accordingly, the present disclosure is intended to cover such modifications, variations, and equivalents. [Explanation of symbols]

[0118] 100 Media Content Management System 102 User Devices 102a User Device 102b User Device 104 Media Content Items 105 destination database 106 Media Content Store 108 Content Associator Module 110 Browser 112 web pages 114 Content Items 116 Application Extensions 118 Content Association Store 120 Search Interface Module 122 Dynamic Keyboard Interface 124 media content sources 130 Dynamic Keyboard Applications 132 Dynamic Keyboard User Interface 140 messaging applications 142 Messaging User Interface 144 selected media content items 145 first user computing device 146 Second User Computing Device 148 Messaging Application Interface 149 Recipient Input Box 150 Personalization Stores 151 Dynamic Keyboard Interface 152 media content items 153 Media Content Items 154 Media Content Items 156 Media Content Items 158 Application Interface 160 media content items 161 Dynamic Keyboard Interface 162 Media Content Items 164 media content items 166 Media Content Items 202 Third-Party Applications 204 Network 206 Search Router Rules Engine 208 Dynamic Keyboard Interface Module 210 Web Server 212 Dynamic Keyboard Presentation Module 214 Content Association Management Module 216 Heuristic Engine 218 Natural Language Processing (NLP) Parser 220 Sentiment Analysis Module 222 Image Analyzer Module 224 Movement Analyzer 240 Metadata Analyzer Module 242 User Interface Module 244 Content Association Selection Module 246 Association Related Modules 250 Association-Attribute Relationships 252 Preprocessing 254 Item-Association Relationships 260 Composite Item Module 262 Composer Interface Module 264 Composer Interface 266 Complex Content Items 402 Content Association 404 "#sad" Collection 406 Content Association Algorithm 408 Content Association Selector 601 Destination Analyzer 602 Query Analyzer 604 Intent Extractor 606 Intent Matcher 608 Machine Learning Module 801 Icon for switching keyboards 802 Collection Interface Elements 803 Icon for deleting content 804 Tabbed Interface 806 search query fields 808 Emoji Search Interface 810 Icon to navigate to user-created collections 812 Icons to navigate to our emotionally curated collection 814 Icons to navigate to expressive curated collections 816 Icon to navigate to trending media content item 818 Icon to navigate to audio / visual curated content items 1000 Computing Platform 1002 Input / Output Devices 1004 Bus 1006 processor 1008 Storage Devices 1010 system memory 1012 Communication Interface 1014 Communication Links 1030 Operating System ("O / S") 1032 Applications 1040 Content Association ("CA") Algorithm Module 1050 Logic Module 1090a Computing Device 1090b Mobile Computing Devices

Claims

1. receiving, by a computing system, data describing a destination for a media content item; selecting, by the computing system, one or more attributes based on the data describing a destination of the media content item; determining, by the computing system, one or more candidate content items based on the one or more attributes of the data describing the destination of the media content item and one or more attributes of one or more candidate content items; providing, by the computing system, the one or more candidate content items in a dynamic keyboard interface for display by a user computing device; 10. A computer-implemented method comprising:

2. The computer-implemented method of claim 1 , wherein the one or more candidate content items are associated with one or more product producers.

3. The computer-implemented method of claim 1 , wherein the one or more attributes include one or more content branding attributes.

4. The computer-implemented method of claim 1 , wherein the one or more candidate content items include a licensed media content item.

5. The computer-implemented method of claim 1 , wherein determining the one or more candidate content items comprises determining a ranking of the one or more candidate content items using a heuristic engine.

6. The computer-implemented method of claim 5, wherein the heuristic engine utilizes one or more heuristic rules to generate one or more content associations between the one or more candidate content items and destinations of the media content item.

7. The computer-implemented method of claim 6, wherein the one or more content associations are generated based on the one or more attributes.

8. The computer-implemented method of claim 6, wherein the one or more heuristic rules use parameter ranges for the one or more attributes.

9. The computer-implemented method of claim 1 , wherein the data describing the destination of the media content item describes a computer application into which the media content item is to be inserted.

10. The computer-implemented method of claim 1 , wherein the data describing the destination of the media content item describes a social networking platform to which the media content item is to be communicated.

11. The computer-implemented method of claim 1 , wherein the data describing the destination of the media content item describes an intended recipient of a message in which the media content item is to be inserted.

12. The computer-implemented method of claim 11 , wherein the data describing the destination of the media content item describes a geographic location of the intended recipient of the message.

13. at least one processor; and at least one tangible, non-transitory computer-readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, the operations comprising: receiving data describing a destination for a media content item; selecting one or more attributes based on the data describing a destination of the media content item; determining one or more candidate content items based on the one or more attributes of the data describing the destination of the media content item and one or more attributes of one or more candidate content items; providing the one or more candidate content items for display in a dynamic keyboard interface by a user computing device; a computing system including:

14. The computing system of claim 13 , wherein the one or more candidate content items are associated with one or more product producers.

15. The computing system of claim 13 , wherein the one or more attributes include one or more content branding attributes.

16. The computing system of claim 13 , wherein the one or more candidate content items include a licensed media content item.

17. The computing system of claim 13, wherein determining the one or more candidate content items includes determining a ranking of the one or more candidate content items using a heuristic engine.

18. The computing system of claim 17, wherein the heuristic engine utilizes one or more heuristic rules to generate one or more content associations between the one or more candidate content items and destinations of the media content items.

19. The computing system of claim 18, wherein the one or more content associations are generated based on the one or more attributes.

20. The computing system of claim 18, wherein the one or more heuristic rules use parameter ranges for the one or more attributes.

Citation Information

Patent Citations

  • People as an Application

    JP2016508245A

  • Communication user interface systems and methods

    JP2018166012A