System and method for automatic theming of a plurality of thought objects
Abstract
A system and method for automated theming of thought objects is disclosed. In a preferred embodiment, an object theming computer creates aggregated text by aggregating text associated with a first thought object, the aggregated text comprising descriptive and important text associated with the first thought object. The object theming computer then tokenizes the aggregated text into tokens. Further, a theme is associated to thought objects using one or more previously themed thought objects. If one or more thought objects have no associated theme, then a theme is generated and associated to the un-themed thought objects using a current plurality of the one or more thought objects.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system for creating a themed plurality of thought objects, the system comprising:
an object theming computer comprising a processor, a memory and a plurality of programming instructions, the plurality of programming instructions when executed by the processor cause the processor to:
for each thought object of a plurality of thought objects:
create aggregated text by aggregating a plurality of text associated with a first thought object of a plurality of thought objects;
tokenize the aggregated text into a plurality of tokens;
for each token of the plurality of tokens:
responsive to a first token, of the plurality of tokens, is not a stop word, convert the first token to an associated stem, otherwise remove the first token; and
add the associated stem to a stem dictionary;
associate a theme to each thought object of at least a portion of the plurality of thought objects, wherein the associated theme is extracted from a previously themed plurality of thought objects or the associated theme is generated from a plurality of clustered un-themed thought objects with similar topics, or both; and
display the themed plurality of thought objects on a graphical user interface of a user device.
2 . The system of claim 1 , wherein to extract a theme from a previously themed plurality of thought objects, the plurality of programming instructions when further executed by the processor cause the processor to:
receive one or more previously themed thought objects, the one or more previously themed thought objects each having an associated theme, of a plurality of themes; create a first list of stems comprising a plurality of unique stems, the plurality of unique stems associated with the one or more previously themed thought objects; create a first matrix based on a quantity of the one or more previously themed thought objects, and a quantity of stems in the first list of stems, the first matrix comprising term frequency-inverse document frequency values for each thought object, of the plurality of thought objects, and each stem, of the first list of stems; sum the term frequency-inverse document frequency values per stem, of the first list of stems, across the thought objects associated to each theme of the plurality of themes; normalize the term frequency-inverse document frequency values by dividing each value by a maximum term frequency-inverse document frequency value within a first theme of the plurality of themes; select at least a portion of stems of the first list of stems, the at least portion of stems comprising stems associated with a highest term frequency-inverse document frequency value; receive a plurality of un-themed thought objects; create a second list of stems comprising one or more unique stems, the one or more unique stems associated with the plurality of un-themed thought objects; create a second matrix based on a quantity of the plurality of un-themed thought objects, and a quantity of stems in the second list of stems, the second matrix comprising term frequency values for each thought object, of the plurality of thought objects, and each stem, of the second list of stems; and for each un-themed thought object, of the plurality of un-themed thought objects:
if at least one stem of the second list of stems has a non-zero value, then:
identify a filtered plurality of stems from the first matrix found in the second list of stems;
sum the term frequency values associated with the filtered plurality of stems for each theme of the plurality of themes; and
identify a theme associated with a highest sum and assign the theme to at least a portion of the plurality of un-themed thought objects.
3 . The system of claim 1 , wherein to generate the plurality of clustered un-themed thought objects with similar topics, the programming instructions when further executed by the processor, cause the processor to:
receive a plurality of remaining un-themed thought objects; and for each remaining un-themed thought object, of the plurality of remaining un-themed thought objects, with at least one associated stem:
create a first list of stems, the first list of stems comprising unique stems across all remaining un-themed thought objects;
create a thought versus stem matrix based on a quantity of the plurality of remaining un-themed thought objects, and a quantity of stems in the list of stems, the matrix comprising a term frequency-inverse document frequency value for each remaining un-themed thought object and each stem, of the list of stems;
determine a preferred number of topics;
build a non-negative matrix factorization to create a set of topics based on the preferred number of topics such that each topic is a weighted combination of stems, and a weighted combination of the determined set of topics per un-themed thought object; and
for each remaining un-themed thought objects:
identify a first coefficient associated with a minimum topic coefficients;
identify a second coefficient associated with a maximum topic coefficient;
for each topic coefficient associated to a first thought object of the plurality of remaining un-themed thought objects:
subtract the topic coefficient by the first coefficient and divide by a difference of the second coefficient and the first coefficient;
determine a preferred number of themes;
apply K-means clustering on the matrix using the preferred number of themes;
create one or more thought tags;
calculate one or more themes; and
associate each thought object of the plurality of remaining un-themed thought objects with a theme of the one or more themes.
4 . The system of claim 3 , wherein to calculate the preferred number of themes, the plurality of programming instructions when further executed by the processor cause the processor to apply k-means clustering and an elbow plot, comprising an application of coefficients of each topic per thought object for a range of themes related to a number of un-themed thought objects.
5 . The system of claim 3 , wherein to calculate the one or more thought tags, the plurality of programming instructions when further executed by the processor cause the processor to:
define a first function for tags associated with an un-themed thought object and set the first function to an empty dictionary; retrieve topic coefficients for the un-themed thought object from a thought versus topic matrix, using non-negative matrix factorization (NMF); generate stem coefficients for the un-themed thought object by multiplying values of topic coefficients associated with the un-themed thought object, with values from the thought versus stem matrix; define a second function and set the second function to an empty list for the un-themed thought object; and responsive to a stem existing in a set of stems of tokens associated with the un-themed thought object, generate a most frequent token in the stem dictionary function and append the most frequent token with the associated coefficient to the second function.
6 . The system of claim 5 wherein to calculate the one or more themes, the plurality of programming instructions when further executed by the processor cause the processor to:
define a third function set to an empty dictionary;
select a thought object assigned to a selected theme;
for each tag coefficient in the second function, determine whether the tag coefficient exists in a list of theme tags;
if the tag coefficient exists in the list of theme tags, set the tag coefficient for the thought object to a first predefined value;
otherwise, set the tag coefficient to a second predefined value;
normalize each tag coefficient saved in the list of theme tags;
sort the list of theme tags by values of their respective tag coefficients;
generate a ranked list of theme tags based on the sorting;
responsive to at least one of the ranked list of theme tags occurring in the list of theme tags, capitalize each such theme tag; and
responsive to none of the theme tags from the ranked list of theme tags occurring in the list of theme tags, label the associated theme as un-themed.
7 . The system of claim 6 , wherein the plurality of programming instructions when further executed by the processor cause the processor to:
responsive to the ranked list of theme tags comprising more than one theme tag, define a fourth function set to an empty dictionary; and responsive to the ranked list of theme tags containing a single theme tag, label the associated theme using the single theme tag.
8 . A computer-implemented method for creating a themed plurality of thought objects, the method comprising:
for each thought object of a plurality of thought objects:
creating, by an object theming computer, aggregated text by aggregating a plurality of text associated with a first thought object of a plurality of thought objects;
tokenizing, by the object theming computer, the aggregated text into a plurality of tokens;
for each token of the plurality of tokens:
responsive to a first token of the plurality of tokens is not a stop word, converting, by the object theming computer, each token of the plurality of tokens to an associated stem, otherwise remove the first token; and
adding, by the object theming computer, the associated stem to a stem dictionary;
associating, by the object theming computer, a theme to each thought object of at least a portion of thought objects of the plurality of thought objects wherein the associated theme is extracted from a previously themed plurality of thought objects or the associated theme is generated from a plurality of clustered un-themed thought objects with similar topics, or both; and
display the themed plurality of thought objects on a graphical user interface of a user device.
9 . The method of claim 8 , wherein extracting a theme from a previously themed plurality of thought objects comprises the steps of:
receiving, by the object theming computer, one or more previously themed thought objects, the one or more previously themed thought objects each having an associated theme, of a plurality of themes; creating, by the object theming computer, a first list of stems comprising a plurality of unique stems, the plurality of unique stems associated with the one or more previously themed thought objects; creating, by the object theming computer, a first matrix based on a quantity of the one or more previously themed thought objects, and a quantity of stems in the first list of stems, the first matrix comprising term frequency-inverse document frequency values for each thought object, of the plurality of thought objects, and each stem, of the first list of stems; summing, by the object theming computer, the term frequency-inverse document frequency values per stem, in the first list of stems, across the thought objects associated to each theme of the plurality of themes; normalizing, by the object theming computer, the term frequency-inverse document frequency values by dividing each value by a maximum term frequency-inverse document frequency value within a first theme of the plurality of themes; selecting, by the object theming computer, at least a portion of stems of the first list of stems, the at least portion of stems comprising stems associated with a highest term frequency-inverse document frequency values; receiving, by the object theming computer, a plurality of un-themed thought objects; creating, by the object theming computer, a second list of stems comprising one or more unique stems, the one or more unique stems associated with the plurality of un-themed thought objects; creating, by the object theming computer, a second matrix based on a quantity of the plurality of un-themed thought objects, and a quantity of stems in the second list of stems, the second matrix comprising term frequency values for each thought object, of the plurality of thought objects, and each stem, of the second list of stems; and for each un-themed thought objects, of the plurality of un-themed thought objects:
if at least one stem of the second list of stems has a non-zero value, then:
identifying, by the object theming computer, a filtered plurality of stems from the first matrix found in the second list of stems;
summing, by the object theming computer, the term frequency values associated with the filtered plurality of stems for each theme of the plurality of themes; and
identifying, by the object theming computer, a theme associated with a highest sum and assigning the theme to at least a portion of the plurality of un-themed thought objects.
10 . The method of claim 8 , wherein generating the plurality of clustered un-themed thought objects with similar topics comprises the steps of:
receiving, by the object theming computer, a plurality of remaining un-themed thought objects; and for each remaining un-themed thought object, of the plurality of remaining un-themed thought objects, with at least one associated stem:
creating, by the object theming computer, a first list of stems, the first list of stems comprising unique stems across all remaining un-themed thought objects;
creating, by the object theming computer, a thought versus stem matrix based on a quantity of the plurality of remaining un-themed thought objects, and a quantity of stems in the list of stems, the matrix comprising a term frequency-inverse document frequency value for each remaining un-themed thought object and each stem, of the list of stems;
determining, by the object theming computer, a preferred number of topics;
building, by the object theming computer, a non-negative matrix factorization to create a set of topics based on the preferred number of topics such that each topic is a weighted combination of stems, and a weighted combination of the determined set of topics per un-themed thought object; and
for each remaining un-themed thought object:
identifying, by the object theming computer, a first coefficient associated with a minimum topic coefficients;
identifying, by the object theming computer, a second coefficient associated with a maximum topic coefficient;
for each topic coefficient associated to a first thought object of the plurality of remaining un-themed thought objects:
subtracting, by the object theming computer, the topic coefficient by the first coefficient and divide by a difference of the second coefficient and the first coefficient;
determining, by the object theming computer, a preferred number of themes;
applying, by the object theming computer, K-means clustering on the matrix using the preferred number of themes;
creating, by the object theming computer, one or more thought tags;
calculating, by the object theming computer, one or more themes; and
associating, by the object theming computer, each thought object of the plurality of remaining un-themed thought objects with a theme of the one or more themes.
11 . The method of claim 10 , wherein to calculate the preferred number of themes, the method further comprises the step of applying, by the object theming computer, k-means clustering and an elbow plot, comprising an application of coefficients of each topic per thought object for a range of themes related to a number of un-themed thought objects.
12 . The method of claim 10 , wherein to calculate the one or more thought tags, the method further comprises:
defining, by the object theming computer, a first function for tags associated with an un-themed thought object and set the first function to an empty dictionary; retrieving, by the object theming computer, topic coefficients for the un-themed thought object from a thought versus topic matrix, using non-negative matrix factorization (NMF); generating, by the object theming computer, stem coefficients for the un-themed thought object by multiplying values of topic coefficients associated with the un-themed thought object, with values from the thought versus stem matrix; defining, by the object theming computer, a second function and set the second function to an empty list for the un-themed thought object; calculate one or more tag coefficients associated with the second function; and responsive to the stem existing in a set of stems of tokens associated with the un-themed thought object, generating, by the object theming computer, a most frequent token in the stem dictionary function and appending the most frequent token with the associated coefficient to the second function.
13 . The method of claim 12 , wherein calculating the one or more themes comprises the steps of:
defining, by the object theming computer, a third function set to an empty dictionary; selecting, by the object theming computer, a thought object assigned to a selected theme; for each tag in the second function, determining, by the object theming computer, whether the tag exists in a list of theme tags; if the tag exists in the list of theme tags, setting, by the object theming computer, the tag for the thought object to a first predefined value; otherwise, setting, by the object theming computer, the tag coefficient to a second predefined value; normalizing, by the object theming computer, each tag coefficient saved in the list of theme tags; sorting, by the object theming computer, the list of theme tags by values of their respective tag coefficients; generating, by the object theming computer, a ranked list of theme tags based on the sorting; responsive to at least one of the ranked list of theme tags occurring in the list of theme tags, capitalizing, by the object theming computer, each such theme tag; and responsive to none of the theme tags from the ranked list of theme tags occurring in the list of theme tags, labelling, by the object theming computer, the associated theme as un-themed.
14 . The method of claim 13 , wherein the method further comprises:
responsive to the ranked list of theme tags comprising more than one theme tag, defining, by the object theming computer, a fourth function set to an empty dictionary; and responsive to the ranked list of theme tags comprising a single theme tag, labelling, by the object theming computer, the associated theme using the single theme tag.Join the waitlist — get patent alerts
Track US2024095450A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.