IP Library › Granted Patent US 11,163,777
Granted Patent B2
US 11,163,777 · App. 16/581,138 · Granted Nov 2, 2021

Smart content recommendations for content authors

Inventors: Sandip Ghoshal (Hyderabad, IN); Nalini Kanta Pattanayak (Hyderabad, IN); Vivek Peter (Hyderabad, IN); Hareesh Kadlabalu (Plainview, NY)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/24573G06F3/0482G06F3/0484G06F16/248G06F40/247G06F40/279G06F40/30G06K9/46G06K9/6267
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,163,777
App. No.
16/581,138
Filed
Sep 24, 2019
Granted
Nov 2, 2021
Kind
B2
Art Unit
2175
USPC
715/700
Abstract

Techniques describes herein include using software tools and feature vector comparisons to analyze and recommend images, text content, and other relevant media content from a content repository. A digital content recommendation tool may communicate with a number of back-end services and content repositories to analyze text and/or visual input, extract keywords or topics from the input, classify and tag the input content, and store the classified/tagged content in one or more content repositories. Input text and/or input images may be converted into vectors within a multi-dimensional vector space, and compared to a plurality of feature vectors within a vector space to identify relevant content items within a content repository. Such comparisons may include exhaustive deep searches and/or efficient tag-based filtered searches. Relevant content items (e.g., images, audio and/or video clips, links to related articles, etc.), may be retrieved and presented to a content author and embedded within original authored content.

Claims (65)

1. A method of selecting content based on vector comparisons within a vector space, comprising:

receiving, by a computing device, and via a user interface, text input data and an indication of a type of media content to be embedded with the text input data;

determining, by the computing device, at least one of a keyword, a topic, or a feature of the text input data, based on an analysis of the text input data;

executing, by the computing device, a transformation algorithm, wherein the at least one determined keyword, topic, or feature are provided as input to the transformation algorithm, and wherein the transformation algorithm outputs a feature vector corresponding to the text input data;

comparing, by the computing device, the feature vector corresponding to the text input data, to each of a plurality of additional feature vectors stored within a vector space data structure comprising a plurality of vector spaces, wherein each different vector space stores vectors corresponding to a different type of media content, including:

retrieving one or more tags associated with the feature vector,

accessing a particular vector space from the plurality of vector spaces, corresponding to the indicated type of media content,

determining a subset of the plurality of additional feature vectors having one or more tags matching the one or more tags associated with the feature vector, and

comparing the feature vector corresponding to the text input data, to the subset of the plurality of additional feature vectors stored within the vector space data structure;

selecting, by the computing device, one or more of the additional feature vectors, based on the comparisons of the feature vector to the plurality of additional feature vectors;

retrieving, by the computing device, and from a content repository, one or more media content files corresponding to the one or more selected additional feature vectors;

rendering, by the computing device, selectable representations of the one or more media content files via the user interface; and

upon selection of a media content file, retrieving the media content file from the content repository, for embedding a representation thereof with the text input data.

2. The method of claim 1 , wherein comparing the feature vector corresponding to the text input data to the plurality of additional feature vectors stored within the vector space data structure comprises:

for each particular feature vector of the plurality of additional feature vectors stored within the vector space data structure, calculating a Euclidean distance between the particular feature vector and the feature vector corresponding to the text input data.

3. The method of claim 1 , wherein the retrieved media content files comprise a plurality of image files, and wherein the method further comprises, prior to receiving the text input data via the user interface:

receiving and storing each of the plurality of image files in the content repository;

using an image classification software tool to identify one or more image features within each of the plurality of image files;

generating one or more image tags for each of the plurality of image files, based on the image features identified within the image files; and

generating the plurality of additional feature vectors stored within the vector space data structure, corresponding to the plurality of image files in the content repository, based on the image features identified within the image files.

4. The method of claim 1 , wherein the plurality of different vector spaces includes at least:

a first vector space storing a plurality of feature vectors corresponding to image files; and

a second vector space storing a plurality of feature vectors corresponding to web pages.

5. The method of claim 1 , wherein the analysis of the text input data comprises (1) a keyword extraction process, (2) a stemming process, and (3) a synonym retrieval process.

6. A computer system, comprising:

a processing unit comprising one or more processors; and

a non-transitory computer-readable medium containing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:

receiving text input data and an indication of a type of media content to be embedded with the text input data, at the computer system via a user interface;

determining at least one of a keyword, a topic, or a feature of the text input data, based on an analysis of the text input data;

executing a transformation algorithm, wherein the at least one determined keyword, topic, or feature are provided as input to the transformation algorithm, and wherein the transformation algorithm outputs a feature vector corresponding to the text input data;

comparing the feature vector corresponding to the text input data, to each of a plurality of additional feature vectors stored within a vector space data structure comprising a plurality of vector spaces, wherein each different vector space stores vectors corresponding to a different type of media content, including:

retrieving one or more tags associated with the feature vector,

accessing a particular vector space from the plurality of vector spaces, corresponding to the indicated type of media content,

determining a subset of the plurality of additional feature vectors having one or more tags matching the one or more tags associated with the feature vector, and

comparing the feature vector corresponding to the text input data, to the subset of the plurality of additional feature vectors stored within the vector space data structure;

selecting one or more of the additional feature vectors, based on the comparisons of the feature vector to the plurality of additional feature vectors;

retrieving, from a content repository, one or more media content files corresponding to the one or more selected additional feature vectors;

rendering selectable representations of the one or more media content files via the user interface; and

upon selection of a media content file, retrieving the media content file from the content repository, for embedding a representation thereof with the text input data.

7. The computer system of claim 6 , wherein comparing the feature vector corresponding to the text input data to the plurality of additional feature vectors stored within the vector space data structure comprises:

for each particular feature vector of the plurality of additional feature vectors stored within the vector space data structure, calculating a Euclidean distance between the particular feature vector and the feature vector corresponding to the text input data.

8. The computer system of claim 6 , wherein the retrieved media content files comprise a plurality of image files, and wherein the instructions cause the one or more processors to perform further operations including, prior to receiving the text input data via the user interface:

receiving and storing each of the plurality of image files in the content repository;

using an image classification software tool to identify one or more image features within each of the plurality of image files;

generating one or more image tags for each of the plurality of image files, based on the image features identified within the image files; and

generating the plurality of additional feature vectors stored within the vector space data structure, corresponding to the plurality of image files in the content repository, based on the image features identified within the image files.

9. The computer system of claim 6 , wherein the plurality of different vector spaces includes at least:

a first vector space storing a plurality of feature vectors corresponding to image files; and

a second vector space storing a plurality of feature vectors corresponding to web pages.

10. The computer system of claim 6 , wherein the analysis of the text input data comprises (1) a keyword extraction process, (2) a stemming process, and (3) a synonym retrieval process.

11. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by one or more processors of a computing device, cause the one or more processors to:

receive text input data and an indication of a type of media content to be embedded with the text input data, at the computing device via a user interface;

determine at least one of a keyword, a topic, or a feature of the text input data, based on an analysis of the text input data;

execute a transformation algorithm, wherein the at least one determined keyword, topic, or feature are provided as input to the transformation algorithm, and wherein the transformation algorithm outputs a feature vector corresponding to the text input data;

compare the feature vector corresponding to the text input data, to each of a plurality of additional feature vectors stored within a vector space data structure comprising a plurality of vector spaces, wherein each different vector space stores vectors corresponding to a different type of media content, including:

retrieving one or more tags associated with the feature vector,

accessing a particular vector space from the plurality of vector spaces, corresponding to the indicated type of media content,

determining a subset of the plurality of additional feature vectors having one or more tags matching the one or more tags associated with the feature vector, and

comparing the feature vector corresponding to the text input data, to the subset of the plurality of additional feature vectors stored within the vector space data structure;

select one or more of the additional feature vectors, based on the comparisons of the feature vector to the plurality of additional feature vectors;

retrieve, from a content repository, one or more media content files corresponding to the one or more selected additional feature vectors;

render selectable representations of the one or more media content files via the user interface; and

upon selection of a media content file, retrieve the media content file from the content repository, for embedding a representation thereof with the text input data.

12. The computer-readable storage medium of claim 11 , wherein comparing the feature vector corresponding to the text input data to the plurality of additional feature vectors stored within the vector space data structure comprises:

for each particular feature vector of the plurality of additional feature vectors stored within the vector space data structure, calculating a Euclidean distance between the particular feature vector and the feature vector corresponding to the text input data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2019
From: GHOSHAL, SANDIP; PATTANAYAK, NALINI KANTA; PETER, VIVEK; KADLABALU, HAREESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 050478/0609 →
Priority Claims (1)
IN 201841039495 · Oct 18, 2018 · national
Continuity (1)
Related Publication 20200125574A1 · Apr 23, 2020
Cited By (3)
US 12,316,926 US 12,591,582 US 12,625,887