IP Library Granted Patent US 9,176,949
Granted Patent B2
US 9,176,949 · App. 13/543,626 · Granted Nov 3, 2015

Systems and methods for sentence comparison and sentence-based search

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 9,176,949
App. No.
13/543,626
Granted
Nov 3, 2015
Kind
B2
Abstract

Systems and methods for performing logical semantic sentence comparisons and sentence-based searches. Training is performed by running an NLP pipeline on unstructured text comprising sentences and creating sentence matrix representations on the unstructured text; storing the matrix representations in an indexed database; combining the stored matrix representations; running an SVD on the combined matrix; storing the SVD components in the indexed database; reiterating through the output of the NLP pipeline the sentences of the unstructured training text to form a low-dimensional matrix conversion for each sentence for storage in the database based on the calculated SVD components. Subsequent query statements are run through the same process based and converted into low-dimensional matrix representations using the SVD components from training; the low-dimensionality query matrix is compared to the stored low-dimensional matrices to determine the closest relevant documents, that are returned to the user.

Claims (122)

1. A computing device for creating a searchable database using logical semantic structure of sentences, comprising:

a memory;

a datastore; and

a processor coupled to the memory, wherein the processor is configured with processor-executable instructions to perform operations comprising:

receiving unstructured training text;

running a natural language processor (NLP) pipeline on the unstructured training text, the unstructured training text comprising sentences;

creating sentence matrix representations of the unstructured training text based on output of running the NLP pipeline on the unstructured training text, each of the sentence matrix representations corresponding to a semantic structure of an individual sentence;

storing the sentence matrix representations in an indexed datastore;

combining the stored sentence matrix representations in a sum to form a training matrix;

performing a Singular Value Decomposition (SVD) computation on the training matrix to calculate SVD components;

storing the calculated SVD components in the indexed datastore;

applying the calculated SVD components to each of the sentence matrix representations to form a low-dimensional matrix representation for each of the sentences of the unstructured training text; and

storing the low-dimensional matrix representations in the indexed datastore.

2. The computing device of claim 1 , wherein the sentence matrix representations are cooccurrence sentence matrix representations.

3. The computing device of claim 1 , wherein the sentence matrix representations are taken from the group consisting of an adjacency sentence matrix representation, a weighted Laplacian matrix, and an unweighted Laplacian matrix.

4. The computing device of claim 1 , wherein the SVD computation performed on the training matrix is calculated utilizing processor-executable instructions selected from the group consisting of clustering instructions, classification instruction, and an Apache Mahout library.

5. The computing device of claim 1 , wherein the processor is configured with processor-executable instructions to perform operations further comprising:

performing a low-dimensional projection computation of each stored sentence matrix representation (C i ) as P i , wherein P i =S z −0.5 U z ′ V Z S z −0.5 ; and

storing the low-dimensional projection matrix P i in a second indexed datastore.

6. The computing device of claim 1 , wherein the processor is configured with processor-executable instructions to perform operations further comprising:

receiving unstructured query text from a user device;

performing the NPL pipeline on the unstructured query text, the unstructured query text comprising a sentence;

creating a sentence matrix representation based on output of performing the NLP pipeline on the unstructured query text;

converting the sentence matrix representation of the unstructured query text into a low-dimensional matrix representation using the SVD components;

identifying sentences in the unstructured training text having semantic structures similar to a semantic structure of the sentence in the unstructured query text by comparing the low-dimensional matrix representation of the unstructured query text to the low-dimensional matrix representations of the unstructured training text;

calculating a distance between the low-dimensional matrix representation of the unstructured query text and the low-dimensional matrix representations of the unstructured training text stored in the indexed database; and

sending to the user device a document associated with a low-dimensional matrix representation of the unstructured training text having a closest distance to the low-dimensional matrix representation of the unstructured query text.

7. The computing device of claim 6 , wherein creating the sentence matrix representation of the unstructured query text comprises creating a cooccurrence matrix.

8. The computing device of claim 6 , wherein creating the sentence matrix representation of the unstructured query text comprises creating an adjacency matrix.

9. The computing device of claim 6 , wherein the processor is configured with processor-executable instructions to perform operations further comprising:

performing a low-dimensional projection computation on the sentence matrix representation of the unstructured query text;

storing the low-dimensional projection data in a second indexed datastore.

10. The computing device of claim 6 , wherein the indexed datastore is stored in an indexed database taken from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

11. The computing device of claim 1 , wherein the indexed datastore comprises an indexed datastore taken from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

12. The computing device of claim 1 , wherein the processor is configured with processor-executable instructions to perform operations such that performing a Singular Value Decomposition (SVD) computation on the training matrix further comprises:

creating z most important calculated SVD components U Z , V z , and S z , where z indicates the z singular values with the largest absolute value, and their corresponding singular vectors in U z and V z .

13. The computing device of claim 1 , wherein the processor is configured with processor-executable instructions to perform operations such that applying the calculated SVD components comprises reiterating through the sentence matrix representations (C i ) from the NLP Pipeline to form a low-dimensional matrix conversion P i =S z −0.5 U z ′ C i V z S z −0.5 for each sentence in the unstructured training text based on the calculated SVD components.

14. A non-transitory processor-readable storage medium having stored thereon processor-executable software instructions configured to cause a processor to perform operations for creating a searchable database using matrix-theoretic functions of graph-theoretic representations of sentences, the operations comprising:

receiving unstructured training text;

performing a natural language processor (NLP) pipeline on the unstructured training text, the unstructured training text comprising sentences;

creating sentence matrix representations of the unstructured training text based on output of performing the NLP pipeline on the unstructured training text, each of the sentence matrix representations corresponding to a semantic structure of an individual sentence;

storing the sentence matrix representations in an indexed datastore;

combining the sentence matrix representations as a sum to form a training matrix;

performing a Singular Value Decomposition (SVD) computation on the training matrix to calculate SVD components;

storing the calculated SVD components in the indexed datastore;

applying the calculated SVD components to each of the sentence matrix representations to form a low-dimensional matrix representation for each of the sentences of the unstructured training text; and

storing the low-dimensional matrix representations in the indexed datastore.

15. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that a sentence matrix representation is a cooccurrence sentence matrix representation.

16. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that a sentence matrix representation is an adjacency sentence matrix representation, a weighted Laplacian matrix, or an unweighted Laplacian matrix.

17. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that the SVD computation is performed utilizing clustering instructions, classification instruction, or an Apache Mahout library on the stored indexed data.

18. The non-transitory processor-readable storage medium of claim 14 wherein the stored processor-executable software instructions are configured to cause a processor to perform operations further comprising:

performing a low-dimensional projection computation of each of the sentence matrix representations (C i ) as P i , wherein P i =S z −0.5 U z ′ C i V z S z −0.5 ; and

storing the low-dimensional projection computation data in a second indexed datastore.

19. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations further comprising:

receiving unstructured query text from a user device;

performing the NLP pipeline on the unstructured query text, the unstructured query text comprising a sentence;

creating a sentence matrix representation on the unstructured query text;

storing the sentence matrix representation of the unstructured query text in the indexed datastore;

converting the sentence matrix of the unstructured query text into a lower-dimensional matrix representation using the calculated SVD components;

identifying sentences in the unstructured training text having semantic structures similar to a semantic structure of the sentence in the unstructured query text by comparing the low-dimensional matrix representation of the unstructured query text to the low-dimensional matrix representations of the unstructured training text;

calculating a distance between the low-dimensional matrix representation of the unstructured query text and the low-dimensional matrix representations of the unstructured training text in the indexed datastore; and

sending to the user device a document associated with a low-dimensional matrix representation of the unstructured training text having a closest distance to the low-dimensional matrix representation of the unstructured query text.

20. The non-transitory processor-readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that the sentence matrix representation for the unstructured query text is a cooccurrence sentence matrix representation.

21. The non-transitory processor-readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that the sentence matrix representation for the unstructured query text is an adjacency sentence matrix representation.

22. The non-transitory processor-readable storage medium of claim 19 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations further comprising:

performing a low-dimensional projection computation of the sentence matrix representation of the unstructured query text, and

storing the low-dimensional projection data in a second indexed datastore.

23. The non-transitory processor-readable storage medium of claim 19 , wherein the processor-executable software instructions are configured to cause a processor to perform operations further comprising storing data from the indexed datastore in an indexed database taken from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

24. The non-transitory processor-readable storage medium of claim 14 , wherein the processor-executable software instructions are configured to cause a processor to perform operations such that the indexed datastore comprises a database selected from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

25. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that performing a Singular Value Decomposition (SVD) computation on the training matrix comprises creating z most important calculated SVD components U z , V z , and S z , where z indicates z singular values with the largest absolute value, and their corresponding singular vectors in U z and V z .

26. The non-transitory processor-readable storage medium of claim 14 , wherein the stored processor-executable software instructions are configured to cause a processor to perform operations such that applying the calculated SVD components comprises reiterating through the sentence matrix representations (C i ) from the NLP Pipeline to form a low-dimensional matrix conversion P i =S z −0.5 U z ′ C i V z −0.5 for each sentence in the unstructured training text based on the calculated SVD components.

27. A computing device for creating a searchable database using semantic dependencies, comprising:

means for receiving unstructured training text;

means for performing a natural language processor (NLP) pipeline on the unstructured training text, the unstructured training text comprising sentences;

means for creating sentence matrix representations of the unstructured training text based on output of performing the NLP pipeline on the unstructured training text, each of the sentence matrix representations corresponding to a semantic structure of an individual sentence;

means for storing the sentence matrix representations in an indexed datastore;

means for combining the sentence matrix representations as a sum to form a training matrix;

means for performing a Singular Value Decomposition (SVD) computation on the training matrix to calculate SVD components;

means for storing the calculated SVD components in the indexed datastore;

means for applying the calculated SVD components to each of the sentence matrix representations to form a low-dimensional matrix representation for each of the sentences of the unstructured training text; and

storing the low-dimensional matrix representations in the indexed datastore.

28. The computing device of claim 27 , wherein the means for creating sentence matrix representations comprises means for creating cooccurrence matrices.

29. The computing device of claim 27 , wherein the means for creating sentence matrix representations comprises a means for creating adjacency matrices.

30. The computing device of claim 27 , wherein the means for performing an SVD computation on the training matrix comprises means for utilizing an Apache Mahout library on the training matrix.

31. The computing device of claim 27 , further comprising:

means for performing a low-dimensional projection computation of the stored sentence matrix representations, and

means for storing the low-dimensional projection data in a second indexed datastore.

32. The computing device of claim 27 , wherein the indexed datastore is stored in an indexed database taken from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

33. The computing device of claim 27 , wherein the means for performing a Singular Value Decomposition (SVD) computation on the training matrix comprises means for performing an SVD computation on the training matrix to create z most important calculated SVD components U z , V z , and S z , where z indicates z singular values with the largest absolute value, and their corresponding singular vectors in U z and V z .

34. A method for creating a searchable database using semantic dependencies comprising:

receiving unstructured training text;

performing a natural language processor (NLP) pipeline on the unstructured training text, the unstructured training text comprising sentences;

creating sentence matrix representations of the unstructured training text based on output of performing the NLP pipeline on the unstructured training text, each of the sentence matrix representations corresponding to a semantic structure of an individual sentence;

storing the sentence matrix representations in an indexed datastore;

combining the stored sentence matrix representations as a sum to form a training matrix;

performing a Singular Value Decomposition (SVD) computation on the training matrix to calculate SVD components;

storing the calculated SVD components in the indexed datastore;

applying the calculated SVD components to each of the sentence matrix representations to form a low-dimensional matrix representation for each of the sentences of the unstructured training text; and

storing the low-dimensional matrix representations in the indexed datastore.

35. The method of claim 34 , wherein creating the sentence matrix representations comprises creating cooccurrence matrices.

36. The method of claim 34 , wherein creating the sentence matrix representations comprises creating adjacency matrices, weighted Laplacian matrices, or unweighted Laplacian matrices.

37. The method of claim 34 , wherein performing a SVD computation comprises utilizing clustering instructions, classification instruction, or an Apache Mahout library on the stored indexed data.

38. The method of claim 34 further comprising:

performing a low-dimensional projection computation on each of the stored sentence matrix representations (C i ) as P i , wherein P i =S z −0.5 U z ′ C i V z S z −0.5 ; and

storing the low-dimensional projection computation data in a second indexed datastore.

39. The method of claim 34 , the method further comprising:

receiving unstructured query text from a user device;

performing the NLP pipeline on the unstructured query text, the unstructured query text comprising a sentence;

creating a sentence matrix representation based on output of performing the NLP pipeline on the unstructured query text;

storing the sentence matrix representation of the unstructured query text in the indexed datastore;

converting the sentence matrix representation of the unstructured query text into a low-dimensional matrix representation using the calculated SVD components;

identifying sentences in the unstructured training text having semantic structures similar to a semantic structure of the sentence in the unstructured query text by comparing the low-dimensional matrix representation of the unstructured query text to the low-dimensional matrix representations of the unstructured training text;

calculating a distance between the low-dimensional matrix representation of the unstructured query text and the low-dimensional matrix representations of the unstructured training text stored in the indexed datastore; and

sending to the user device a document associated with a low-dimensional matrix representation of the unstructured training text having a closest distance to the low-dimensional matrix representation of the unstructured query text.

40. The method of claim 39 , wherein creating the sentence matrix representation of the unstructured query text comprises creating a cooccurrence matrix.

41. The method of claim 39 , wherein creating the sentence matrix representation of the unstructured query text comprises creating an adjacency matrix.

42. The method of claim 39 , further comprising:

performing a low-dimensional projection computation on the sentence matrix representation of the unstructured query text; and

storing the low-dimensional projection data in a second indexed datastore.

43. The method of claim 39 , wherein the indexed datastore is stored in an indexed database taken from the group consisting of an Accumulo database, an HBase database, a MySQL database, and a Cassandra database.

44. The method of claim 34 , wherein the indexed datastore is stored in an indexed database taken from the group consisting of an Accumulo database, and HBase, database, a MySQL database and a Cassandra database.

45. The method of claim 34 , wherein performing a Singular Value Decomposition (SVD) computation on the training matrix comprises creating z most important calculated SVD components U z , V z , and S z , where z indicates z singular values with the largest absolute value, and their corresponding singular vectors in U z and V z .

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Oct 2, 2023
From: PENNANTPARK LOAN AGENCY SERVICING, LLC
To: ALTAMIRA TECHNOLOGIES CORPORATION; ALTAMIRA INTERMEDIATE COMPANY II, INC.; APG TECHNOLOGIES, LLC; PRIME SOLUTIONS LLC
Reel/Frame 065085/0729 →
SECURITY INTEREST Recorded Sep 29, 2023
From: ALTAMIRA TECHNOLOGIES CORPORATION; VIRGINIA SYSTEMS AND TECHNOLOGY, INC.
To: CAPITAL ONE NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 065074/0075 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2019
From: WESTERN ALLIANCE BANK
To: ALTAMIRA TECHNOLOGIES CORPORATION
Reel/Frame 049867/0548 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2019
From: MULTIPLIER CAPITAL, LP
To: ALTAMIRA TECHNOLOGIES CORPORATION; NEAR INFINITY CORPORATION; NIC LABS LLC; INVERTIX CORPORATION; INVERTIX INTERNATIONAL, INC.
Reel/Frame 049868/0294 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2019
From: ALTAMIRA MERGER SUB, INC.; ALTAMIRA TECHNOLOGIES CORPORATION; ALTAMIRA INTERMEDIATE COMPANY II, INC.; APG TECHNOLOGIES, LLC; PRIME SOLUTIONS LLC
To: PENNANTPARK LOAN AGENCY SERVICING, LLC
Reel/Frame 049848/0085 →
SECURITY INTEREST Recorded Nov 8, 2016
From: ALTAMIRA TECHNOLOGIES CORPORATION; NEAR INFINITY CORPORATION; NIC LABS LLC; INVERTIX CORPORATION; INVERTIX INTERNATIONAL, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 040257/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2015
From: INVERTIX CORPORATION
To: ALTAMIRA TECHNOLOGIES CORPORATION
Reel/Frame 036609/0145 →
PATENT RELEASE Recorded Nov 21, 2014
From: PNC BANK, NATIONAL ASSOCIATION, AS ADMINISTRATION AGENT
To: INVERTIX CORPORATION
Reel/Frame 034476/0134 →
RELEASE OF SECURITY INTEREST Recorded Jul 15, 2014
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: INVERTIX CORPORATION
Reel/Frame 033321/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 033280 FRAME 0542. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME IS BRIDGE BANK, NATIONAL ASSOCIATION. Recorded Jul 11, 2014
From: INVERTIX CORPORATION
To: BRIDGE BANK, NATIONAL ASSOCIATION
Reel/Frame 033332/0721 →
SECURITY INTEREST Recorded Jul 7, 2014
From: INVERTIX CORPORATION
To: BRIDGE BANK, NATIONAL ASSOCIATINO
Reel/Frame 033280/0542 →
SECURITY AGREEMENT Recorded Jul 24, 2013
From: INVERTIX CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 030888/0398 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2013
From: BULLOCK, BENNETT CHARLES; LAW, DANIEL A.; HURTADO, ARTHUR D.
To: INVERTIX CORPORATION
Reel/Frame 030286/0621 →