BACKGROUND

In conventional systems, the use of self-organizing maps is typically limited to clustering data documents by type and to either predicting where an unseen data document would be clustered to, or analyzing the cluster structure of the used data document collection. Such conventional systems do not typically provide functionality for using the resulting “clustering map” as a “distributed semantic projection map” for the explicit semantic definition of the data document's constituent data items. Furthermore, conventional systems typically use conventional processor-based computing to execute methods for using self-organizing maps.

BRIEF SUMMARY

In one aspect, a computer-implemented method for identifying a level of similarity between a first data item and a data item within a set of data documents includes clustering, by a reference map generator executing on a first computing device, in a two-dimensional metric space, a set of data documents selected according to at least one criterion, generating a semantic map. The method includes associating, by the semantic map, a coordinate pair with each of the set of data documents. The method includes generating, by a parser executing on the first computing device, an enumeration of data items occurring in the set of data documents. The method includes determining, by a representation generator executing on the first computing device, for each data item in the enumeration, occurrence information including: (i) a number of data documents in which the data item occurs, (ii) a number of occurrences of the data item in each data document, and (iii) the coordinate pair associated with each data document in which the data item occurs. The method includes generating, by the representation generator, for each data item in the enumeration, a sparse distributed representation (SDR) using the occurrence information, resulting in a plurality of generated SDRs. The method includes storing, by a processor on a second computing device, in each of a plurality of memory cells on the second computing device, one of the plurality of generated SDRs, each of the plurality of memory cells including a bitwise comparison circuit. The method includes receiving, by the second computing device, from a third computing device, a first data item. The method includes providing, by the processor, via a data bus, to each of the plurality of memory cells, an SDR of the first data item. The method includes determining, by each of the plurality of bitwise comparison circuits, a level of overlap between the SDR of the first data item and the generated SDR stored in the memory cell associated with the bitwise comparison circuit. The method includes determining, by each of the plurality of bitwise comparison circuits, whether the level of overlap satisfies a threshold provided by the processor. The method includes providing, to the processor, by each of the comparison circuits that determined the level of overlap did satisfy the threshold, a document reference number stored in the associated memory cell, the document reference number identifying a document including the data item from which the SDR stored in the memory cell was generated. The method includes providing, by the second computing device, to the third computing device, an identification of each data item from which the SDRs stored in the memory cells satisfying the threshold were generated and a level of similarity between the data item from which the stored SDR was generated and the received data item.

In another aspect, a computer-implemented method for identifying a level of similarity between binary vectors includes storing, by a processor on a computing device, in each of a plurality of memory cells on the computing device, one of a plurality of binary vectors, each of the plurality of memory cells including a bitwise comparison circuit. The method includes receiving, by the computing device, a binary vector for comparing to each of the stored plurality of binary vectors. The method includes providing, by a processor, via a data bus, to each of the plurality of memory cells, the received binary vector. The method includes determining, by each of the bitwise comparison circuits, a level of overlap between the received binary vector and the binary vector stored in the memory cell associated with the bitwise comparison circuit. The method includes determining, by each of the plurality of bitwise comparison circuits, whether the level of overlap satisfies a threshold provided by the processor. The method includes providing, to the processor, by each of the comparison circuits that determined the level of overlap did satisfy the threshold, an identification of the stored binary vector with the satisfactory level of overlap. The method includes providing, by the processor, an identification of each stored binary vector satisfying the threshold and a level of similarity between the stored binary vector and the received binary vector.

