# US 10,372,739 B2 · Corpus search systems and methods

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,739 B2
- Document ID: US10372739B2
- Status: Granted
- Kind: B2
- Application number: 16/125,613
- Filed: 2018-09-07
- Published: 2019-01-03
- Granted: 2019-08-06
- Earliest claimed: 2014-03-17
- Assignees: NLPCore LLC
- Applicants: Nlpcore LLC
- Inventors: Varun Mittal
- Web page: https://patentgrep.com/patent/US10372739B2

## CPC

- G06F 16/3344: {using natural language analysis}
- G06F 16/316: {Indexing structures}
- G06F 16/334: Query execution (filtering based on additional data G06F16/335)
- G06F 16/3347: {using vector based model}
- G06F 16/338: Presentation of query results
- G06F 40/205: Parsing
- G06F 16/313: {Selection or weighting of terms for indexing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A corpus of texts relating to a domain of knowledge may be searched by determining word-pair proximity scores measuring associations between pairs of words that appear in the corpus and that are semantically related to the domain of knowledge. When a search term is received, the word-pair proximity scores may be used (at least in part) with dictionary overlays, user feedback, and other feature vectors as weighting mechanisms to identify one or more related words that are strongly associated with the search term within the corpus. One or more texts may be selected from the corpus, texts in which the search term and the related words appear near each other in one or more places. The selected texts may be categorized and/or clustered based on the related words before being returned for presentation as Search Results.

## Claims

### Claim 1

A computing apparatus for searching a corpus of texts relating to a domain of knowledge, the apparatus comprising a processor and a memory storing instructions that, when executed by the processor, configure the apparatus to:
populate a word-pair feature data structure with word-pair proximity scores, wherein the populating comprises:
determining a multiplicity of word-pair proximity scores measuring associations between pairs of words that appear in the corpus of texts, wherein the determining comprises, for each given text of the corpus of texts:
parsing the given text to identify a text vector;
selecting, within the text vector, a word pair including a first word and a second word;
determining a measure of intra-clause proximity based at least in part on the first word's relationship to the second word within the text vector; and
updating a word-pair-score data structure corresponding to the first word and the second word with the determined measure of intra-clause proximity; and
for each word pair:
populating an entry in the word-pair feature data structure with the corresponding word-pair-score data structure;
obtain, for at least one word pair in the word-pair feature data structure, attribute data related to the word pair; and
update the entry for the word pair in the word-pair feature data structure with the attribute data related to the word pair.

### Claim 2 (depends on 1)

The computing apparatus of claim 1, further comprising instructions to:
obtain a query including at least one search term related to the domain of knowledge;
identify, by the computer, one or more related words in the word-pair feature data structure that are associated with the search term within the corpus of texts,
wherein the identifying one or more related words is based at least in part on each of the word-pair-score data structure and the attribute data related to the word pair;
select, by the computer, for a related word, a section of text from one of the plurality of texts from the corpus of texts, wherein, in each selected section of text, the search term and the related word appear within the same text vector; and
provide, by the computer, the one or more related words and data associated with the plurality of texts for presentation as search results.

### Claim 3 (depends on 2)

The computing apparatus of claim 2, wherein obtaining the attribute data related to the word pair comprises obtaining user feedback rating relevance of a related word presented as a search result.

### Claim 4 (depends on 2)

The computing apparatus of claim 2, wherein obtaining the attribute data related to the word pair comprises obtaining user feedback setting a type of a related word presented as a search result.

### Claim 5 (depends on 2)

The computing apparatus of claim 2, wherein obtaining the attribute data related to the word pair comprises obtaining user feedback identifying an additional word and a link or relation to the search term or to a related word.

### Claim 6 (depends on 2)

The computing apparatus of claim 2, wherein obtaining the attribute data related to the word pair comprises weighting user feedback data based at least in part on the identity of a user.

### Claim 7 (depends on 2)

The computing apparatus of claim 2, wherein obtaining the attribute data related to the word pair comprises obtaining implicit user feedback data based at least in part on the user having selected a related word presented as a search result to focus the search.

### Claim 8 (depends on 7)

The computing apparatus of claim 7, further comprising instructions to determine a value adjustment to apply to the search result based at least in part on the implicit user feedback data.

### Claim 9 (depends on 1)

The computing apparatus of claim 1, wherein the text vector comprises an independent clause in the text.

### Claim 10 (depends on 1)

The computing apparatus of claim 1, wherein the word-pair feature data structure comprises a matrix of word-pair entries implemented as a hash table, a multidimensional array, a multidimensional list, or a key-value map data structure indexed by at least one word of each word pair, and wherein each entry comprises a container for or reference to a word-pair-score data structure and at least one attribute data record.

### Claim 11 (depends on 1)

The computing apparatus of claim 1, wherein each entry in the word-pair feature data structure comprises a feature vector having a length, wherein the length of the vector corresponds to a number of attributes relating to the word-pair entry, such that populating or updating an entry for a word pair in the word-pair feature data structure comprises adding or updating vector data.

### Claim 12 (depends on 1)

The computing apparatus of claim 1, wherein updating the entry for the word pair in the word-pair feature data structure comprises associating a plurality of attributes with the word pair.

### Claim 13 (depends on 1)

The computing apparatus of claim 1, wherein obtaining the attribute data associated with the word pair includes obtaining at least one of: (a) weighted or unweighted implicit user feedback data based on user interaction with search results; or (b) explicit user-defined link data.

### Claim 14 (depends on 1)

The computing apparatus of claim 1, wherein obtaining the attribute data associated with the word pair includes obtaining at least one of: (c) dictionary match data; (d) taxonomy data; or (e) classifier data.

### Claim 15 (depends on 1)

The computing apparatus of claim 1, wherein obtaining the attribute data associated with the word pair includes obtaining at least one of: (f) text-to-vector word embedding data; or (g) skip-gram word relation data.

### Claim 16 (depends on 1)

The computing apparatus of claim 1, wherein obtaining the attribute data associated with the word pair includes obtaining at least one of: (h) source document section heading metadata; (i) source document author metadata; or (j) source document publication date metadata.

### Claim 17 (depends on 1)

The computing apparatus of claim 1, wherein a word-pair proximity score measuring associations between a first word and a second word of a word pair further measures cumulative associations between a third word and the word pair.

### Claim 18 (depends on 1)

The computing apparatus of claim 1, further comprising instructions to:
presenting, by the computer, a visual representation of the search term and the one or more related words as search results; and
providing an interface means for a user to provide feedback on a related word or on a link to a related word, to edit a relation to a related word, or to add an additional word to the visual representation.

### Claim 19 (depends on 18)

The computing apparatus of claim 18, wherein the visual representation comprises a tag-cloud interface.

### Claim 20 (depends on 18)

The computing apparatus of claim 18, wherein the visual representation comprises a visual graph of the search term and the one or more related words as search results, such that:
the related words are presented as nodes, and at least one node is presented with a graph link to the search term or to another related word node; and
the interface means allows a user to provide feedback on a related word or on a link to a related word node in the visual graph, to edit a relation to a node in the visual graph, or to add a node to the visual graph.

### Claim 21 (depends on 1)

The computing apparatus of claim 1, further comprising instructions to identify similar text patterns across the corpus based in part on the attribute data associated with the word pair.

### Claim 22 (depends on 21)

The computing apparatus of claim 21, further comprising instructions to annotate the similar text patterns across the corpus, based in part on the search term and the related words, for automatic highlighting and labeling.

### Claim 23 (depends on 21)

The computing apparatus of claim 21, further comprising instructions to replicate any labels applied in each of the selected plurality of texts to the similar text patterns across the corpus.

### Claim 24 (depends on 1)

The computing apparatus of claim 1, wherein the corpus of texts includes web pages within a domain and the computing apparatus further comprises instructions to assign labels to similar text patterns across the corpus based in part on domain specific dictionaries extracted from one or more specialized websites associated with the domain.

### Claim 25 (depends on 24)

The computing apparatus of claim 24, wherein the assigning labels to similar text patterns across the corpus includes assigning a topic type to an entity and adding words from a dictionary that are strongly associated with the search term.

### Claim 26 (depends on 1)

The computing apparatus of claim 1, further comprising instructions to automatically deduce important keywords and entity-types for a domain based in part on identified statistical patterns identified within the selected plurality of texts.

### Claim 27

A method, performed by a computing system, of searching a corpus of texts relating to a domain of knowledge, the method comprising:
populating a word-pair feature data structure with word-pair proximity scores, wherein the populating comprises, by the computer:
determining a multiplicity of word-pair proximity scores measuring associations between pairs of words that appear in the corpus of texts, wherein the determining comprises, for each given text of the corpus of texts:
parsing the given text to identify a text vector;
selecting, within the text vector, a word pair including a first word and a second word;
determining a measure of intra-clause proximity based at least in part on the first word's relationship to the second word within the text vector; and
updating a word-pair-score data structure corresponding to the first word and the second word with the determined measure of intra-clause proximity; and
for each word pair:
populating an entry in the word-pair feature data structure with the corresponding word-pair-score data structure;
obtaining, for at least one word pair in the word-pair feature data structure, attribute data related to the word pair; and
updating the entry for the word pair in the word-pair feature data structure with the attribute data related to the word pair.

### Claim 28

A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by a processor, configure the processor to:
populate a word-pair feature data structure with word-pair proximity scores, wherein the populating comprises:
determining a multiplicity of word-pair proximity scores measuring associations between pairs of words that appear in the corpus of texts, wherein the determining comprises, for each given text of the corpus of texts:
parsing the given text to identify a text vector;
selecting, within the text vector, a word pair including a first word and a second word;
determining a measure of intra-clause proximity based at least in part on the first word's relationship to the second word within the text vector; and
updating a word-pair-score data structure corresponding to the first word and the second word with the determined measure of intra-clause proximity; and
for each word pair:
populating an entry in the word-pair feature data structure with the corresponding word-pair-score data structure;
obtain, for at least one word pair in the word-pair feature data structure, attribute data related to the word pair; and
update the entry for the word pair in the word-pair feature data structure with the attribute data related to the word pair.
