IP Library › Granted Patent US 11,853,705
Granted Patent B2
US 11,853,705 · App. 17/463,287 · Granted Dec 26, 2023

Smart content recommendations for content authors

Inventors: Sandip Ghoshal (Hyderabad, IN); Nalini Pattanayak (Hyderabad, IN); Vivek Peter (Hyderabad, IN); Hareesh Kadlabalu (Plainview, NY)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F40/30G06F3/0482G06F3/0484G06F16/248G06F16/24573G06F18/24G06F40/247G06F40/279G06V10/40
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,853,705
App. No.
17/463,287
Granted
Dec 26, 2023
Kind
B2
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 (85)

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;

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;

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; and

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

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.

2. The method of claim 1 , further comprising:

receiving, via the user interface, a selection of a first user input component corresponding to a first media content file;

retrieving the first media content file from the content repository; and

embedding a representation of first media content file within a user interface region including the text input data.

3. 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:

retrieving one or more tags associated with the feature vector;

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.

4. 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.

5. The method of claim 1 , wherein the vector space data structure comprises a plurality of different vector spaces, each different vector space storing vectors corresponding to a different type of media content, and wherein the method further comprises:

receiving a selection via the user interface identifying a type of media content to be embedded with the text input data; and

accessing a particular vector space from the plurality of different vector spaces, corresponding to the identified type of media content, wherein the one or more additional feature vectors are selected from the particular vector space.

6. The method of claim 5 , 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.

7. 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.

8. 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 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;

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; and

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

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 8 , wherein the instructions cause the one or more processors to perform further operations including:

receiving, via the user interface, a selection of a first user input component corresponding to a first media content file;

retrieving the first media content file from the content repository; and

embedding a representation of first media content file within a user interface region including the text input data.

10. The computer system of claim 8 , 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:

retrieving one or more tags associated with the feature vector;

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.

11. The computer system of claim 8 , 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.

12. The computer system of claim 8 , wherein the vector space data structure comprises a plurality of different vector spaces, each different vector space storing vectors corresponding to a different type of media content, and wherein the instructions cause the one or more processors to perform further operations including:

receiving a selection via the user interface identifying a type of media content to be embedded with the text input data; and

accessing a particular vector space from the plurality of different vector spaces, corresponding to the identified type of media content, wherein the one or more additional feature vectors are selected from the particular vector space.

13. The computer system of claim 12 , 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.

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

15. 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 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;

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; and

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

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.

16. The computer-readable storage medium of claim 15 , wherein the instructions further cause the one or more processors to:

receive, via the user interface, a selection of a first user input component corresponding to a first media content file;

retrieve the first media content file from the content repository; and

embed a representation of first media content file within a user interface region including the text input data.

17. The computer-readable storage medium of claim 15 , 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:

retrieving one or more tags associated with the feature vector;

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.

18. The computer-readable storage medium of claim 15 , 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 2, 2021
From: GHOSHAL, SANDIP; PATTANAYAK, NALINI; PETER, VIVEK; KADLABALU, HAREESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 057376/0882 →
Priority Claims (1)
IN 201841039495 · Oct 18, 2018 · national
Continuity (2)
Continuation 16581138 · Sep 24, 2019
Related Publication 20210390108A1 · Dec 16, 2021