# US 11,030,231 B2 · Angular k-means for text mining

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

- Number: US 11,030,231 B2
- Document ID: US11030231B2
- Status: Granted
- Kind: B2
- Application number: 15/699,236
- Filed: 2017-09-08
- Published: 2019-03-14
- Granted: 2021-06-08
- Earliest claimed: 2017-09-08
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Piotr Tylenda
- Web page: https://patentgrep.com/patent/US11030231B2

## CPC

- G06F 16/353: into predefined classes
- G06F 16/355: Creation or modification of classes or clusters
- G06F 16/93: Document management systems
- G06F 2216/03: Data mining
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An embodiment of a semiconductor package apparatus may include a substrate, and logic coupled to the substrate, wherein the logic is at least partly implemented in one or more of configurable logic and fixed-functionality hardware logic, the logic coupled to the substrate to determine an angular distance between a data object and a group of data objects, and assign the data object to the group of data objects based on the determined angular distance. In some embodiments, the logic may also be to determine one or more of an upper bound and a lower bound for the group of data objects based on triangle inequality. Other embodiments are disclosed and claimed.

## Claims

### Claim 1

An electronic processing system, comprising:
a processor;
memory communicatively coupled to the processor; and
logic communicatively coupled to the processor to:
identify a dataset of N data objects,
identify K centroids,
determine an angular distance between a first data object of the data objects and a first centroid of the centroids,
assign the first data object to the first centroid based on the determined angular distance,
generate a N by K matrix of respective lower bounds, for each data object of the data objects and each centroid of the centroids, based on a triangle inequality, and
generate an array of size N of respective upper bounds for each data object of the data objects based on the triangle inequality.

### Claim 2 (depends on 1)

The system of claim 1, wherein the logic is further to:
determine if a second data object is within an upper bound and a lower bound of the lower bounds associated with the first centroid; and
determine the angular distance between the second data object and the first centroid responsive to the second data object being determined to be within the upper and lower bounds associated with the first centroid.

### Claim 3 (depends on 1)

The system of claim 1, wherein the logic is further to:
maintain a K by K matrix of distances between the centroids.

### Claim 4 (depends on 1)

The system of claim 1, wherein the dataset comprises a set of text documents.

### Claim 5

A semiconductor package apparatus, comprising:
a substrate; and
logic coupled to the substrate, wherein the logic is at least partly implemented in one or more of configurable logic or fixed-functionality logic hardware, the logic coupled to the substrate to:
identify a dataset of N data objects,
identify K centroids,
determine an angular distance between a first data object of the data objects and a first centroid of the centroids,
assign the first data object to the first centroid based on the determined angular distance,
generate a N by K matrix of respective lower bounds, for each data object of the data objects and each centroid of the centroids, based on a triangle inequality, and
generate an array of size N of respective upper bounds for each data object of the data objects based on the triangle inequality.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the logic is further to:
determine if a second data object is within an upper bound and a lower bound of the lower bounds associated with the first centroid; and
determine the angular distance between the second data object and the first centroid responsive to the second data object being determined to be within the upper and lower bounds associated with the first centroid.

### Claim 7 (depends on 5)

The apparatus of claim 5, wherein the logic is further to:
maintain a K by K matrix of distances between the centroids.

### Claim 8 (depends on 5)

The apparatus of claim 5, wherein the dataset comprises a set of text documents.

### Claim 9

A method of grouping data objects, comprising:
identifying a dataset of N data objects;
identifying K centroids;
determining an angular distance between a first data object of the data objects and a first centroid of the centroids;
assigning the first data object to the first centroid based on the determined angular distance;
generating a N by K matrix of respective lower bounds, for each data object of the data objects and each centroid of the centroids, based on a triangle inequality; and
generating an array of size N of respective upper bounds for each data object of the data objects based on the triangle inequality.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
determining if a second data object is within an upper bound and a lower bound of the lower bounds associated with the first centroid; and
determining the angular distance between the second data object and the first centroid responsive to the second data object being determined to be within the upper and lower bounds associated with the first centroid.

### Claim 11 (depends on 9)

The method of claim 9, further comprising:
maintaining a K by K matrix of distances between the centroids.

### Claim 12 (depends on 9)

The method of claim 9, wherein the dataset comprises a set of text documents.

### Claim 13

At least one non-transitory computer readable medium, comprising a set of instructions, which when executed by a computing device, cause the computing device to:
identify a dataset of N data objects;
identify K centroids;
determine an angular distance between a first data object of the data objects and first centroid of the centroids;
assign the first data object to the first centroid based on the determined angular distance;
generate a N by K matrix of respective lower bounds, for each data object of the data objects and each centroid of the centroids, based on a triangle inequality; and
generate an array of size N of respective upper bounds for each data object of the data objects based on the triangle inequality.

### Claim 14 (depends on 13)

The at least one non-transitory computer readable medium of claim 13, comprising a further set of instructions, which when executed by the computing device, cause the computing device to:
determine if a second data object is within an upper bounds and a lower bound of the lower bounds associated with the first centroid; and
determine the angular distance between the second data object and the first centroid responsive to the second data object being determined to be within the upper and lower bounds associated with the first centroid.

### Claim 15 (depends on 13)

The at least one non-transitory computer readable medium of claim 13, comprising a further set of instructions, which when executed by the computing device, cause the computing device to:
maintain a K by K matrix of distances between the centroids.

### Claim 16 (depends on 13)

The at least one non-transitory computer readable medium of claim 13, wherein the dataset comprises a set of text documents.
