IP Library Granted Patent US 10,552,462
Granted Patent B1
US 10,552,462 · App. 14/525,864 · Granted Feb 4, 2020

Systems and methods for tokenizing user-annotated names

Inventor: Michael Hart (Brooklyn, NY)
Assignee: Veritas Technologies LLC
G06F16/313G06F16/35
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 10,552,462
App. No.
14/525,864
Filed
Oct 28, 2014
Granted
Feb 4, 2020
Kind
B1
Art Unit
2162
USPC
707/750
Abstract

A disclosed computer-implemented method for tokenizing user-annotated names may include (1) identifying an example set of user-annotated names, (2) creating a custom dictionary that includes known keywords by (a) extracting a set of known keywords from the example set of user-annotated names and (b) assigning a frequency score to each known keyword in the set of known keywords based on the respective frequency of each known keyword within the example set, and (3) enabling the computing device to tokenize an additional user-annotated name of arbitrary structure by performing a semantic analysis including (a) assigning, using the custom dictionary, a frequency score to a substring of the additional user-annotated name based on the substring matching the known keyword and (b) splitting the additional user-annotated name into tokens according to a permutation of substrings that received a top combined frequency score. Various other methods, systems, and computer-readable media are also disclosed.

Claims (70)

1. A computer-implemented method for tokenizing user-annotated names, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying an example set of user-annotated names that represent strings of text used to identify digital entities within a particular organization;

creating, based on the example set of user-annotated names, a custom dictionary that comprises known keywords by:

extracting a set of known keywords from the example set of user-annotated names;

assigning, based on the respective frequency of each of the known keywords within the example set of user-annotated names, a frequency score to each known keyword in the set of known keywords that represents a frequency at which the known keyword appears within the example set of user-annotated names;

enabling the computing device to tokenize an additional user-annotated name of arbitrary structure by performing a semantic analysis comprising:

applying a tokenization algorithm that, at each iterative step of the tokenization algorithm:

accepts a text string as a string input;

generates each possible single split of the string input, generating a total number of permutations equal to the length of the string input;

uses, as an input to a current iterative step in the tokenization algorithm, a previous output of the tokenization algorithm that used one side of the single split as a previous string input to the tokenization algorithm; and

assigns, using the custom dictionary, a frequency score to the other side of the single split based on whether the substring matches a known keyword stored in the custom dictionary; and

splitting the additional user-annotated name into tokens according to an output of the tokenization algorithm that used the additional user-annotated name as an initial input and received a top combined frequency score, thereby enabling a computing system to process the additional user-annotated name according to the tokens produced as the output of the tokenization algorithm.

2. The method of claim 1 , wherein creating the custom dictionary that comprises known keywords further comprises splitting each entry in the example set of user-annotated names stored in metadata along hard delimiters into preliminary keywords.

3. The method of claim 2 , wherein creating the custom dictionary that comprises known keywords further comprises adding preliminary keywords that match a regular expression to the custom dictionary that comprises known keywords.

4. The method of claim 3 , wherein the regular expression defines at least one of the following sequences:

all alphanumeric capital letters;

all alphanumeric lowercase letters;

a single alphanumeric capital letter followed by a series of alphanumeric lowercase letters.

5. The method of claim 2 , wherein the hard delimiters consist of non-alphanumeric characters.

6. The method of claim 1 , wherein creating the custom dictionary that comprises known keywords further comprises identifying an additional dictionary that comprises known keywords.

7. The method of claim 6 , wherein assigning, using the custom dictionary, a frequency score for a known keyword to a substring of the additional user-annotated name further comprises applying a weighted interpolation function, wherein the weighted interpolation function:

assigns a dictionary weight value to the custom dictionary and an additional dictionary weight value to the additional dictionary;

merges, based on the weight value and the additional weight value, the frequency scores for the known keyword from the custom dictionary and the additional dictionary into a merged frequency score.

8. The method of claim 6 , wherein the additional dictionary that comprises known keywords comprises one of:

a natural language dictionary;

a dictionary of user-defined known keywords;

a previously generated custom dictionary of known keywords.

9. The method of claim 1 , wherein splitting the additional user-annotated name into tokens comprises applying a function to a substring that uses a previous output of the function as an input to the function.

10. The method of claim 1 , wherein the semantic analysis further comprises assigning a penalty score as the frequency score of a substring that is not found in the custom dictionary that comprises known keywords.

11. A system for tokenizing user-annotated names, the system comprising:

an identification module, stored in memory, that identifies an example set of user-annotated names that represent strings of text used to identify digital entities within a particular organization;

a dictionary creation module, stored in memory, that creates, based on the example set of user-annotated names, a custom dictionary of known keywords by:

extracting a set of known keywords from the example set of user-annotated names;

assigning, based on the respective frequency of each of the known keywords within the example set of user-annotated names, a frequency score to each known keyword in the set of known keywords that represents a frequency at which the known keyword appears within the example set of user-annotated names;

a tokenizing module, stored in memory, that enables a computing device to tokenize an additional user-annotated name of arbitrary structure by performing a semantic analysis comprising:

applying a tokenization algorithm that, at each iterative step of the tokenization algorithm:

accepts a text string as a string input;

generates each possible single split of the string input, generating a total number of permutations equal to the length of the string input;

uses, as an input to a current iterative step in the tokenization algorithm, a previous output of the tokenization algorithm that used one side of the single split as a previous string input to the tokenization algorithm; and

assigns a frequency score to the other side of the single split based on whether the substring matches a known keyword stored in the custom dictionary;

splitting the additional user-annotated name into tokens according to an output of the tokenization algorithm that used the additional user-annotated name as an initial input and received a top combined frequency score, thereby enabling a computing system to process the additional user-annotated name according to the tokens produced as the output of the tokenization algorithm;

at least one physical processor configured to execute the identification module, the dictionary creation module, and the tokenizing module.

12. The system of claim 11 , wherein the dictionary creation module further creates the custom dictionary of known keywords by splitting each entry in the example set of user-annotated names stored in metadata along hard delimiters into preliminary keywords.

13. The system of claim 12 , wherein the dictionary creation module further creates the custom dictionary of known keywords by adding preliminary keywords that match a regular expression to the custom dictionary of known keywords.

14. The system of claim 13 , wherein the regular expression defines at least one of the following sequences:

all alphanumeric capital letters;

all alphanumeric lowercase letters;

a single alphanumeric capital letter followed by a series of alphanumeric lowercase letters.

15. The system of claim 12 , wherein the hard delimiters consist of non-alphanumeric characters.

16. The system of claim 11 , wherein the dictionary creation module further creates the custom dictionary of known keywords by identifying an additional dictionary that comprises known keywords.

17. The system of claim 16 , wherein the dictionary creation module further assigns, using the custom dictionary, a frequency score for a known keyword to a substring of the additional user-annotated name by applying a weighted interpolation function, wherein the weighted interpolation function:

assigns a dictionary weight value to the custom dictionary and an additional dictionary weight value to the additional dictionary;

merges, based on the weight value and the additional weight value, the frequency scores for the known keyword from the custom dictionary and the additional dictionary into a merged frequency score.

18. The system of claim 16 , wherein the additional dictionary that comprises known keywords comprises one of:

a natural language dictionary;

a dictionary of user-defined known keywords;

a previously generated custom dictionary of known keywords.

19. The system of claim 11 , wherein the tokenizing module further splits the additional user-annotated name into tokens by applying a function to a substring that uses a previous output of the function as an input to the function.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify an example set of user-annotated names that represent strings of text used to identify digital entities within a particular organization;

create, based on the example set of user-annotated names, a custom dictionary that comprises known keywords by:

extracting a set of known keywords from the example set of user-annotated names;

assigning, based on the respective frequency of each of the known keywords within the example set of user-annotated names, a frequency score to each known keyword in the set of known keywords that represents a frequency at which the known keyword appears within the example set of user-annotated names;

enable tokenization of an additional user-annotated name of arbitrary structure by performing a semantic analysis comprising:

applying a tokenization algorithm that, at each iterative step of the tokenization algorithm:

accepts a text string as a string input;

generates each possible single split of the string input, generating a total number of permutations equal to the length of the string input;

uses, as an input to a current iterative step in the tokenization algorithm, a previous output of the tokenization algorithm that used one side of the single split as a previous string input to the tokenization algorithm; and

assigns, using the custom dictionary, a frequency score to the other side of the single split based on whether the substring matches a known keyword stored in the custom dictionary; and

splitting the additional user-annotated name into tokens according to an output of the tokenization algorithm that used the additional user-annotated name as an initial input and received a top combined frequency score, thereby enabling a computing system to process the additional user-annotated name according to the tokens produced as the output of the tokenization algorithm.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2014
From: HART, MICHAEL
To: SYMANTEC CORPORATION
Reel/Frame 034052/0537 →
Cited By (19)
US 12,190,330 US 12,204,564 US 12,216,794 US 12,259,882 US 12,265,896 US 12,277,232 US 12,282,512 US 12,288,233 US 12,299,065 US 12,353,405 US 12,381,915 US 12,412,140 US 12,536,329 US 12,591,828 US 12,609,938 US 12,641,108 US 12,688,324 US 12,694,044 US 12,718,167