New word classification technique

By extracting word triples using a neural network model and combining them with a convolutional neural network, the accuracy problem of identifying the characteristics of unknown words is solved, thereby improving the utilization efficiency and value of the dataset.

CN114175018BActive Publication Date: 2026-01-13ORACLE INT CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080046031.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-08-04
Filing Date
2020-08-07
Publication Date
2026-01-13
Estimated Expiration
2040-08-07

AI Technical Summary

Technical Problem

Existing technologies struggle to accurately identify and analyze the characteristics of unknown words, resulting in low efficiency in the utilization of datasets.

Method used

Neural network models (such as Word2Vec) are used to extract word triples, and supervised learning is used to predict the attributes and characteristics of unknown words. Convolutional neural networks are then used for sentiment analysis to improve recognition accuracy.

Benefits of technology

It achieves high accuracy in identifying unknown words and information, enriches the dataset, makes it more valuable, and is suitable for applications such as market segmentation analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114175018B_ABST
    Figure CN114175018B_ABST
Patent Text Reader

Abstract

Techniques are provided for identifying attributes associated with a new word or unknown word or name. Real-world characteristics can be predicted for a new word. Triples are identified for an input word and word embedding model vector values are computed for the identified triples and entered into a matrix. Triples are identified for a recent name. Classification values are computed based on the triples for the input word and the triples from the recent name and entered into a matrix. A convolutional neural network can process the matrix to identify one or more characteristics associated with the new word.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims priority to U.S. Provisional Patent Application 62 / 888,998, filed August 19, 2019, entitled “NEOLOGISM CLASSIFICATION TECHNIQUES”, the entire contents of which are incorporated herein by reference for all purposes. Technical Field

[0003] This disclosure generally relates to data analysis and processing. More specifically, it discloses techniques for analyzing and processing new words. Background Technology

[0004] Big data users can have large amounts of data (e.g., datasets) about their customers. Users can include individuals associated with the dataset, such as companies. Datasets can be in spreadsheet and table format and can include information about customers, such as customer ID, first name, last name, address, etc. Users can have datasets from different sources. Datasets can include names, demographics, and geographic information, etc.

[0005] If additional information can be determined from the dataset, then the dataset can be more useful to the user. For example, if such information is not readily available, knowing additional information about the customer (such as gender, generation, and other demographic information) can be beneficial.

[0006] Data sets can include words that have never been seen before (e.g., neologism). For example, a customer's name could be a unique name or a unique spelling of a name. Additionally, the name of the company a customer works for could be an unknown name or a made-up word. Determining additional information about previously unseen words is difficult because there is no existing information about these words from which information can be derived (e.g., attributes, characteristics, etc.).

[0007] Techniques exist for determining the similarity between words. For example, given an unknown word, one can find the most similar word contained within a corpus of that word. However, such techniques do not provide accurate results. For instance, using the most similar words contained in the training corpus of the word does not provide accurate results, and the inferred attributes for unknown words are inaccurate. Specifically, using the entire word does not provide highly accurate results.

[0008] Therefore, more accurate methods are needed to identify the characteristics of unknown words. The example implementation addresses these and other issues.

[0009] Other embodiments relate to systems, devices, and computer-readable media associated with the methods described herein. A better understanding of the nature and advantages of the exemplary embodiments can be obtained by referring to the following detailed description and accompanying drawings. Summary of the Invention

[0010] The example implementation is configured to predict real-world characteristics of words or names that have never been seen before (e.g., new words).

[0011] Given the body of text (e.g., a dataset, a spreadsheet, etc.), there may be words that have never been seen before. For example, a dataset may include new names or names with different spellings. As another example, new words may be created or new variations of words may be created. Unseen words or names are those whose meaning and / or characteristics associated with them are currently unknown. Unseen words or names may be referred to as new words. Unknown words or names will be referred to as unknown words in the description.

[0012] The example implementation enriches the dataset, making the dataset information more useful. For example, a user might have a large dataset (e.g., big data). If additional information and characteristics can be determined based on the dataset, it can be made more useful. The example implementation can make the meaning of unknown words more useful. The dataset can be in spreadsheet form, including columns and rows of data. The dataset can include columns of data that contain one or more new words. For example, a column in a dataset pointing to names could include some names that have never been seen before.

[0013] The example implementation can decrypt additional information based on unknown words. For example, the example implementation can determine characteristics such as industry, language, gender, generation, etc., based on unknown names. Industry, language, gender, and generation are described as examples, but other characteristics and attributes can be determined for the dataset based on the type of data in the dataset (e.g., names, company names, etc.).

[0014] Furthermore, the example implementation can determine the characteristics and additional information associated with unknown words with high accuracy. Therefore, users do not need to guess the classification.

[0015] Specific names or words can have known characteristics. For example, a name like "Alice" can be associated with a female name. Specifically, based on historical information and previous word analysis, names like "Alice" are already associated with women. However, a person might spell their name as "Allys." This could be the first instance of such a name, or it could have no association with that name at all. Therefore, the name "Allys" might not be associated with any specific characteristic. Besides names, there may also be words that have never been seen before. New words or new spellings of words can be created, and therefore have no historical context or association.

[0016] Example implementations can predict the language of words or names, predict industries based on names (e.g., company names), and predict gender based on personal names. Predicting gender can be useful for aggregation in market segmentation analysis.

[0017] Example implementations can infer meaning based on the spelling of unknown words. Triples can be used to infer meaning, and triples can be used to provide information about unknown words. Specifically, the meaning of an unknown word can be determined by treating the three-letter triples themselves as language. That is, meaning can be inferred based on the order of triples within a word, similar to how the order of words within a sentence conveys meaning. For example, based on triples and historical data, it can be determined that names ending in vowels are often associated with women.

[0018] Example implementations run triples extracted from words in the training set using a neural network (e.g., Word2Vec). Alternatively, supervised learning can be performed to predict the attributes and characteristics of unknown words. As indicated above, the attributes and characteristics of unknown words (i.e., labels used for supervised learning) can include the language, industry, gender, generation, etc., from which the words originate. The attributes and characteristics of unknown words include additional information that can be determined for the unknown words. Therefore, users not only have a dataset with names, but also additional information (e.g., labels for these data items), such as the gender of their clients, the industry their clients work in, etc. This makes the dataset more useful to the user. Attached Figure Description

[0019] This disclosure will be readily understood through the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals denote like elements, and wherein:

[0020] Figure 1 The diagram illustrates a block diagram of an analysis environment according to some example embodiments.

[0021] Figure 2 The diagram illustrates a block diagram of a new word classification server in a data enrichment system according to some example embodiments.

[0022] Figure 3 The illustration shows a flowchart of a method for classifying new words according to some example embodiments.

[0023] Figure 4 This is an overview of the variables used to classify new words, based on some example embodiments.

[0024] Figure 5 The illustration shows how to determine the triplet of an input word based on some example implementations.

[0025] Figure 6 The diagram illustrates a matrix with a triplet word embedding model vector according to some example embodiments.

[0026] Figure 7 The illustration shows a process for calculating vectors for words according to some example embodiments.

[0027] Figure 8 The illustration shows how to determine the nearest name of an input word based on some example implementations.

[0028] Figure 9 A table representing a list of queues is illustrated according to some example embodiments.

[0029] Figure 10 The illustration shows a flowchart of a method for calculating classification values ​​according to some example embodiments.

[0030] Figure 11 The diagram illustrates a detailed flowchart of a method for calculating classification values ​​according to some example embodiments.

[0031] Figure 12 The diagram illustrates a matrix including classification values ​​according to some example embodiments.

[0032] Figure 13 The diagram illustrates a convolutional neural network according to some example embodiments.

[0033] Figure 14 The illustration shows a user interface for performing new word classification according to some example embodiments.

[0034] Figure 15 A simplified diagram of a distributed system according to some example embodiments is depicted.

[0035] Figure 16 The diagram illustrates a simplified block diagram of one or more components of a system environment according to some example embodiments, wherein the service can be provided as a cloud service.

[0036] Figure 17 The illustration shows an exemplary computer system that can be used to implement some example embodiments. Detailed Implementation

[0037] In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding of various embodiments of the invention. However, it will be apparent to those skilled in the art that embodiments of the invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form.

[0038] New words can be new words or phrases. They can be newly created words or uncommon words. New words can be driven by cultural and technological changes. Additionally, new words can be driven by social media and popular culture. New words and names, as well as spellings of words and names, are constantly being created. Example implementations can identify attributes or characteristics that can be associated with new words.

[0039] In the description, "user" refers to the user of the data, such as a company. However, "user" can include any person or entity that is beneficial to the new category. The data can become more meaningful to the user if it includes additional information. By enriching the data, it becomes more useful to the user. For example, data can include customer data (e.g., first name, last name, ID, Social Security number, etc.) and purchase data (e.g., store name, purchased items, etc.).

[0040] The example implementations can be used in a variety of situations. For example, there may be a given word where it is unclear which language it belongs to. As another example, given a word such as a company name, the industry associated with that company can be identified. As yet another example, given a name, the example implementations can be used to predict gender. The example implementations can be used to predict a customer's age or generation based on their name. These are merely examples of situations where additional characteristics can be identified and thus make the data more beneficial to the user.

[0041] The example implementation can be useful, for instance, in market segmentation. Market segmentation can include dividing a broad consumer or business market (such as customers) into subgroups of consumers based on some type of shared characteristic.

[0042] The example implementation provides a solution for classifying words. For example, the reference list could have a name and a list of genders typically indicated by the name. For instance, the name "David" could be associated with the gender "male". The associated genders could be based on the frequency of associations based on historical data.

[0043] However, new names and new spellings of names can be created. The example embodiment can provide gender for names that have not been seen before. That is, for names that are not yet recognized in a dictionary of names or words. For example, the name "Chauna" may not be in a dictionary of names. Therefore, it is unclear whether the name is associated with male or female. To determine the gender of the name "Chauna," a binary classification can be performed. That is, two classification groups can be identified. This technique can be useful in use cases where populations are aggregated (such as for market segmentation identification), where making predictions about individuals may raise ethical issues. However, this is an example embodiment and additional changes can be made based on the desired classification. The example embodiment is not limited to two classifications. Additional classifications can be made based on the user's needs.

[0044] I. Analyzing the Environment

[0045] Figure 1 A block diagram of an analysis environment 100 according to some example embodiments is shown.

[0046] The data analysis environment 100 may include an analysis system 110, a data enrichment system 120, a data source 130, a client 140, a client data repository 141, a distributed storage system 150, a data target 160, and a knowledge source 170. The data enrichment system 120 may include a user interface 121, an ingestion server 122, a preparation server 123, a transformation server 124, a recommendation server 125, a sentiment analysis server 126, a publishing server 127, a knowledge server 128, an enrichment server 129, and a new word classification server 200. (About...) Figure 2 A more detailed explanation of the new word classification server 200.

[0047] The analytics environment 100 can be a cloud-based environment. The analytics system 110 provides a single, unified platform, including self-service visualization, robust inline data preparation, enterprise reporting, advanced analytics, and self-learning analytics that delivers proactive insights. The analytics system 110 may include, for example, Oracle Analytics Cloud.

[0048] A client or user 140 may submit a data enrichment request to the data enrichment system 120 of the analytics system 110. The client may include a client data repository 141 to store data associated with the client. The data enrichment system 120 may identify one or more (or portions thereof, such as specific tables, datasets, etc.) of the data sources 130. The data enrichment system 120 may then request data to be processed from the identified data sources 130.

[0049] In some embodiments, the data source may be sampled, and the sampled data may be analyzed to enrich it, thereby making large datasets easier to manage. Identified data may be received and added to a distributed storage system (such as a Hadoop Distributed Storage (HDFS) system) accessible by the data enrichment service. Data may be semantically processed by multiple processing stages (described herein as pipelines or semantic pipelines). These processing stages may include a preparation stage via preparation server 123, a publishing stage via publishing server 127, and an enrichment stage via enrichment server 129.

[0050] In some embodiments, the preparation phase may include various processing sub-phases. This may include automatically detecting the data source format and performing content extraction and / or repair. Once the data source format is identified, the data source can be automatically normalized to a format that the data enrichment service can process. In some embodiments, once the data source is prepared, it can be processed by the enrichment server 129. In some embodiments, the inbound data source may be loaded into a distributed storage system 150 (such as an HDFS system communicatively coupled to the data enrichment service) accessible to the data enrichment system 120.

[0051] Distributed storage system 150 provides temporary storage for ingested data files and may also provide storage for intermediate processing files, as well as temporary storage for results before publication. In some embodiments, enhanced or enriched results may also be stored in the distributed storage system. In some embodiments, metadata captured during enrichment associated with the ingested data source may be stored in distributed storage system 150. System-level metadata (e.g., indicating the location of the data source, results, processing history, user sessions, execution history, and configuration, etc.) may be stored in the distributed storage system or in a separate repository accessible to the data enrichment service.

[0052] In some embodiments, the data enrichment system 120 may provide sentiment analysis via a sentiment analysis server 126. The sentiment analysis server 126 includes functionality for analyzing the sentiment of data from different data sources using techniques disclosed herein. These techniques include applying convolutional neural networks (CNNs), lexical co-occurrence networks, and tuple word vectors to perform sentiment analysis to improve the accuracy of the analysis.

[0053] In some embodiments, the publishing phase of the publishing server 127 can provide one or more visualization systems with data source metadata captured during enrichment and any data source enrichment or repair for analysis (e.g., displaying recommended data transformations, enrichments, and / or other modifications to users). The publishing subsystem can deliver the processed data to one or more data targets. Data targets can correspond to locations where the processed data can be sent. These locations can be, for example, storage, computing systems, databases, or locations within systems providing services. For example, data targets can include Oracle Storage Cloud Service (OSCS), URLs, third-party storage services, web services, and other cloud services (such as Oracle Business Intelligence (BI), Database as a Service, and Database Schema as a Service). In some embodiments, the federated engine provides clients with a set of APIs to browse, select, and subscribe to results. Once subscribed and when new results are generated, the result data can be provided either as a direct feed to an external web service endpoint or as a batch file download.

[0054] As further described below, the data can be enriched to include additional relevant information about unknown words or new words. The new word classification server 200 can analyze new words and determine their attributes or characteristics. Data can be obtained from data source 130, and the new word classification server 200 can determine the attributes and / or characteristics of new words. Attributes may include qualities or characteristics unique to or inherent to people or things with a particular word or name.

[0055] The example implementation provides a data enrichment system that uses machine learning, eliminating the need for users to analyze all the data themselves. Furthermore, the data enrichment system can perform determinations without user intervention. Therefore, the data enrichment system can perform analysis for the user.

[0056] This disclosure presents various flowcharts and techniques illustrating processes according to some embodiments. The various embodiments can be described as processes, depicted as flowcharts, flow diagrams, data flow diagrams, structural diagrams, or block diagrams. While flowcharts may describe operations as sequential processes, many operations can be executed in parallel or concurrently. Furthermore, the order of operations can be rearranged. A process terminates upon completion of its operations, but may have additional steps not included in the diagrams. Processes may correspond to methods, functions, procedures, subroutines, subroutines, etc. When a process corresponds to a function, its termination may correspond to the function returning to the calling function or the main function.

[0057] The processes depicted in the figures can be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processor cores), hardware, or a combination thereof. For example, the data enrichment system 120 can be implemented by a computer system for the processes described with reference to any of the figures. Any process can be implemented as a service. In some embodiments, any element in the figures can be implemented with more or fewer subsystems and / or modules than shown in the figures, two or more subsystems and / or modules can be combined, or different configurations or arrangements of subsystems and / or modules can be present. Subsystems and modules can be implemented in software (e.g., processor-executable instructions, program code), firmware, hardware, or a combination thereof. In some embodiments, the software can be stored in memory (e.g., a non-transitory computer-readable medium), a memory device, or some other physical memory and can be executed by one or more processing units (e.g., one or more processors, one or more processor cores, one or more GPUs, etc.).

[0058] The specific series of processing steps shown in the figures are not intended to be limiting. Other sequences of steps may also be performed according to alternative embodiments. For example, the steps outlined above may be performed in a different order in alternative embodiments. Furthermore, each step shown in the figures may include multiple sub-steps, which may be performed in various appropriate orders. Additionally, additional steps may be added or removed depending on the specific application. Many variations, modifications, and substitutions will be recognized by those skilled in the art.

[0059] In some embodiments, one or more data structures may be used to store data. Data structures can be organized in various ways depending on how the data is stored, its content, and / or its location. While each data structure is shown as including specific data, more or fewer data structures can be implemented to store data. Data structures may include references to other data structures. Data structures can be implemented using one or more types of data structures (including, but not limited to, linked lists, arrays, hash tables, maps, records, graphs, or other types of data structures). Data structures can be implemented in a hierarchical manner. Each data structure can be defined declaratively based on user input. Data structures can be defined based on templates (e.g., templates defined using a markup language such as Extensible Markup Language (XML)). Data structures can have one or more formats, also known as document formats.

[0060] II. New Word Classification Server

[0061] Figure 2 The diagram illustrates a block diagram of a new word classification server 200 of a data enrichment system 120 according to some example embodiments.

[0062] The new word classification server 200 may include a new word classification system 210, a triplet analysis system 211, a convolutional neural network (CNN) 212, a word embedding model 213, a data repository 214, and a dictionary 215.

[0063] The new word classification system 210 can perform enrichment on unknown words or new words. The new word classification system 210 can provide classification of new words based on information received from the triple analysis system 211, the convolutional neural network (CNN) 212, the word embedding model 213, the data repository 214, and the dictionary 215.

[0064] The triplet analysis system 211 can analyze new words using triplets. A triplet is a group of three consecutive written units (such as letters, syllables, or words). In an example embodiment, a triplet is three consecutive letters. The triplet analysis system generates triplets for a given word. The generated triplets include overlapping letters. For example, the two letters in each triplet can overlap. Each triplet generated for a given word begins with the letter to the right of the previous triplet. For example, for the name "BOB", the triplets would include "^BO", "BOB", and "OB$". (About...) Figure 5 A more detailed explanation of triplet analysis.

[0065] Convolutional Neural Networks (CNNs) are a type of deep neural network. CNNs add weights to values. For example, a CNN can be trained to analyze a set of names in a few minutes. About Figure 13 A more detailed explanation of convolutional neural networks.

[0066] Word embedding model 213 is a model that can be used to generate word embedding vectors. Word embedding can include natural language processing (NLP), where words or phrases in a vocabulary are mapped to vectors of real numbers. An example word embedding model that can be used in the example embodiments is Word2Vec. Word2Vec can be implemented using the techniques disclosed by Mikolov et al. in “Exploiting Similarities between Languages ​​for Machine Translation” (2013) at http: / / arxiv.org / pdf / 1309.4168.pdf, which is incorporated herein by reference for all purposes.

[0067] Word embedding models can include algorithms that collect corpora of words being fed into them (e.g., from articles or newspapers). These algorithms obtain large amounts of text and feed them into the word embedding model. The word embedding model vectors include weight variables (e.g., 300 aspects of a triple). These weight variables add dimension to the triples being analyzed.

[0068] In the case of names, the corpus words can include names from the Census Bureau. Triples of names from the Census Bureau can be used to train a word embedding model. About Figure 7 A more detailed explanation of the word embedding model.

[0069] Data repository 214 can be used to store data from a dataset on which new word classification is to be performed. For example, a client can provide a spreadsheet containing columns and rows of data. Data to be analyzed by the new word classification server 200 can be stored in data repository 214. Data repository 214 can also store counter values ​​and matrices including word embedding model vector values ​​and classification values.

[0070] Dictionary 215 may include deep learning libraries (e.g., deep learning for the JVM, Tiny Neural Networks (TINN), etc.). Deep learning libraries can provide modules and functions that can be used to generate code for the new word classification server 200. Deep learning libraries can help facilitate machine learning in the new word classification server 200.

[0071] III. Overview of methods for performing neologism classification

[0072] The example implementation focuses on new word classification. Logistic regression can be used to perform the classification. Logistic regression may include using a statistical model that models variables using a logistic function. In the described example, binary classification (e.g., two categories) is used, but the example implementation is not limited to binary classification. For example, generational identification may include more than two categories (e.g., Silent, Boomer, X, Millennial, Z, etc.). Classification may be based on multiple possible attributes or characteristics. Multiple classifications may be based on parameters input by the user.

[0073] Figure 3 The illustration shows a flowchart of a method 300 for classifying new words according to some example embodiments. Figure 3 It is about Figure 4 The variables shown are used for description.

[0074] Figure 4 This is an overview of variables 400 used for classifying new words, based on some example embodiments. Figure 4The variables shown can be input variables or input values. Variable "w" represents the input word, which can be a new word, an unknown word, or a name. Variable "M" represents the matrix to be filled with word embedding model vectors and classification values. Variable "k" represents the input value of the number of known nearest neighbors. Variable "S" represents the set of known nearest names, and the number of names in set S corresponds to the number in input value k. Variable "wq" represents the triples identified for the input word "w," and variable "Q" represents a list of N queues, where each queue is initialized based on the longest common subsequence (LCS) between the input word w and the set of known nearest neighbors S. N in the list of N queues represents the number of queues. Each queue can be initialized according to the equation LCS(w, S[i]). Figure 4 The value of N in the equation is 3 because there are three nearest neighbors. The variables and their values ​​are explained in more detail below.

[0075] At step 310, initial input is received. The initial input may be referred to as a new word or an unknown word or name. The new word is represented by the variable "w". The initial input may be selected by the user to train the new word classification server to classify the attributes of the new word. For illustrative purposes, one input word is received. However, in the example embodiment, multiple inputs may be received, such as multiple words from a data column (e.g., a data column in a spreadsheet).

[0076] Initial input can be received through the user interface of the data enrichment system. Unknown words can be manually entered by the user. For example, new words can be entered via the user interface of the data enrichment system. Alternatively, unknown words can be automatically entered by a new word classification server. The new word classification server can obtain one or more unknown words generated by the data enrichment system or can obtain one or more unknown words from a data source.

[0077] exist Figure 4 In the example shown, the input word w is "JOANNA". However, this is only for illustrative purposes and any name or word can be used for analysis. For the sake of example and ease of explanation, a known name is used to demonstrate how to perform classification. The example embodiment may also not be used to identify attributes of a known name.

[0078] The example implementation can provide highly accurate classification results for new or unknown words or names. The benefit of the example implementation is that it helps users determine the attributes of names that have never been seen before or do not exist in the name database. The database of names and words can be stored in the data repository 214. Although names are described, the example implementation applies to any word and is not limited to names. Furthermore, while a single word is described, the example implementation can be applied to a group of words, expressions, or phrases.

[0079] At step 320, the triples of the input word are determined. The identified triples can be represented by the variable “wq”. Since the order of letters has meaning, triples are identified by the order of letters; and the order of triples has additional meaning. Therefore, a triple is a sequence of three (3) letters based on the input word. Triples can be determined by the triple analysis system 211.

[0080] Figure 5 The illustration shows a triple 500 of an input word according to some example embodiments. For example... Figure 5 As shown, six triples are identified for the word input in step 310. A triple is a set of three consecutive written units, such as letters, syllables, symbols, or words. Figure 4 In the example shown, triples are groups of letters and symbols. The six triples identified for the input word "JOANNA" include "^JO, JOA, OAN, ANN, NNA, NA$". Triples are found in the word "JOANNA" in consecutive order. The symbol "^" indicates the beginning of the string and the character "$" indicates the end of the string. That is, ghost characters (e.g., ^ and $) participate in breaking the word down into triples at both the "beginning of the string" and the "end of the string". When generating triples, two letters overlap with the previous triple.

[0081] At step 330, word embedding vector values ​​are computed for the triples. For each triple wq, the word embedding vector value is trained. The word embedding vector values ​​can be computed using a word embedding model (such as Word2Vec). Word embedding models are trained specifically for the type of word being analyzed. Therefore, in the described example, the word embedding model is trained specifically for nouns (more specifically, for triples of nouns).

[0082] The word embedding model is trained to analyze triples of words rather than the entire word. Therefore, the word embedding model is trained on triples according to the example embodiment. Since triples form language, training is performed on triples. Triples in words form language in a manner similar to how words in sentences form language. The position and order of letters and triples in a string can influence the classification of input words. For example, based on triple analysis, it can be determined that female names more often end in vowels than male names.

[0083] In the described example, the word type is a name. Other types or categories of words could include surnames or company names, etc. However, these are just examples and different types of names or words can be used. The word embedding model is trained specifically for the word type being analyzed and does not use a general word embedding model trained for general words. Specifically, using a general word embedding model will not produce the same accuracy as using a word embedding model trained specifically for the word type being analyzed.

[0084] At step 340, the computed vector values ​​are input into matrix M. That is, matrix M is padded to include the vector values ​​associated with the triple wq. Although filling matrix M with vector values ​​is performed at step 340, the filling of vector values ​​in matrix M can be performed at a later time before the matrix is ​​run through the convolutional neural network.

[0085] Figure 6 The diagram illustrates a matrix M 600 with a triple word embedding model vector according to some example embodiments.

[0086] like Figure 6 As shown, matrix M 600 includes triples 610 generated in step 320. Therefore, matrix M 600 comprises six rows of six triples identified for the input word "JOANNA". The number of rows in matrix M 600 will vary based on the number of triples determined for the new word. Matrix M 600 includes word embedding model vector columns 620. In the example shown, 300 columns of word embedding model vectors are used. Matrix M is filled with triple word embedding model vectors 620. Therefore, the dimension of the word embedding model is 300. 300 is the number of word embedding models without underfitting or overfitting. 300 is used in the example, but more or fewer vectors can be used based on the user's needs.

[0087] Matrix M 600 also includes 630 category columns. In this example, two categories are to be identified (e.g., male and female). The number of category columns will depend on the number of possible categories or the number of categories the user expects. For example, for generational identification, there could be five category columns corresponding to five different possible generational categories (e.g., Silent, Boomer, X, Millennial, Z, etc.). The type of category can vary based on the data being analyzed or on the category information expected by the user. Categories can also be referred to as labels.

[0088] like Figure 6 As shown, there is a first column 631 for a first category column (e.g., male) and a second column 632 for a second category (e.g., female). Figure 6Two categories are shown, but the example embodiment is not limited to two categories. Therefore, the number of category columns can vary based on the categories the user wants to determine. The example embodiment provides a technique for filling the category columns of matrix M.

[0089] Create a matrix M, where the rows are word embedding model vectors, arranged one after another in the order of their appearance, so that the vertical axis of the matrix is ​​in the form of a time dimension. The "words" modeled in the word embedding model are (three-letter) triples rather than words, as is done in sentiment analysis techniques. Sentiment analysis techniques may include training a CNN using a convolutional layer on top of word vectors obtained from an unsupervised neural language model. Convolutional neural networks can be built on top of word embedding models (e.g., Word2Vec). The word embedding model is trained using input training data (e.g., a dictionary of names). Sentiment analysis can be implemented using the techniques disclosed by Kim in "Convolutional Neural Networks for Sentence Classification" (2014) at https: / / arxiv.org / pdf / 1408.5882.pdf, which is incorporated herein by reference for all purposes.

[0090] The following is about Figure 7 A more detailed explanation of the processing used to compute the word embedding model vector 620.

[0091] At step 350, k nearest names or k nearest neighbors are determined for the input word. A similarity measure can be used to identify the k nearest neighbors or nearest names. Similarity measures can include semantic similarity measures such as Jaccard or Dice. The k nearest names are names that have triples similar to the input word. That is, the k nearest names are names that have triples similar to the input name "JOANNA".

[0092] To identify the k nearest neighbors, fuzzy string matching can be performed. Given a string that has never been seen before, a similarity metric finds the closest match from a dictionary. Then, based on the classification of the k nearest neighbors, a prediction is made about the classification of the previously unseen string. The words whose classification is being predicted (e.g., previously unseen names) are run through; for example, the k nearest neighbors and the top K (e.g., 3) matches in StatSim are used. The top K matches are in a set S.

[0093] It can identify k recent names. The input parameter k represents the number of recent names. The k identified recent names are identified from the set S. For simplicity, 3 recent names are identified. Therefore, the value of k is 3. However, the value of k can be changed based on the user's desired result. For example, in an alternative embodiment, the value of k could be 10.

[0094] Figure 6 Element 640 indicates that the number of the k nearest names identified by variable k is 3. Therefore, 3 nearest names have been identified for the input word.

[0095] Figure 8 The diagram illustrates a set S800 of the nearest names of an input word according to some example embodiments. The set S of the nearest neighbors of the input word “JOANNA” includes three nearest names: “JOANNE”, “JOHN”, and “ANNA”.

[0096] At step 360, the longest common subsequence is determined. Specifically, the longest common subsequence is identified between the triples from the input word and the triples from the k nearest neighbors (“JOANNE”, “JOHN”, and “ANNA”).

[0097] Figure 9 Table Q 900, representing a list of N queues according to some example embodiments, is illustrated. Each queue is initialized based on the longest common subsequence (LCS) between the input word w and the set of its k nearest neighbors. Each queue can be initialized according to the equation LCS(w, S[i]). The longest common subsequence is identified based on the k nearest names identified in step 350.

[0098] Table Q 900 includes columns 940 representing the triples wq that share the k nearest neighbors, column 950 containing the k nearest neighbors, and column 960 identifying the category (e.g., gender) of the corresponding k nearest neighbors in column 950. In the example shown, each of the k nearest neighbors has three rows because there are three nearest neighbors (k=3). However, this is only for illustrative purposes, and the number of k nearest neighbors is not limited to three. For example, ten nearest neighbors could be used. Depending on the number of k nearest neighbors, table Q 900 would be larger.

[0099] Line 910 corresponds to the name "JOANNE" in the k nearest neighbors, line 920 corresponds to the name "JOHN" in the k nearest neighbors, and line 930 corresponds to the name "ANNA" in the k nearest neighbors. Line 910 corresponds to the input word "JOANNE". Line 910 corresponding to "JOANNE" includes triplet 911 (e.g., ^JO, JOA, OAN, ANN). Line 920 corresponding to the name "JOHN" includes triplet 912 (e.g., ^JO). Line 930 corresponding to the name "ANNA" includes triplet 913 (e.g., ANN, NNA, NA$).

[0100] Triples 911, 912, and 913 match triples in triple wq of the input word w "JOANNA". Table Q 900 does not include triples of the k nearest neighbors (JOANNE, ANNA, JOHN) that do not match triple wq of the input word w "JOANNA". For example, the name "JOHN" includes the triple "OHN". Since the triple "OHN" does not match triples in triple wq of the input word w "JOANNA", the triple "OHN" is not included in triple 912 of one of the k nearest neighbors "JOHN". Therefore, triples shared by the k nearest neighbors with the input name are placed in table Q 900.

[0101] The Longest Common Subsequence (LCS) algorithm is used to determine the k nearest neighbors that share a name with the input. Given two input strings (e.g., the input name and one of the nearest neighbors), the LCS algorithm can be used to find the longest common subsequence between two lists of triples. The LCS algorithm can be implemented using the technique disclosed by Wagner in "The String-to-String Correction Problem" (1974) at http: / / citeseerx.ist.psu.edu / viewdoc / download?doi=10.1.1.367.5281&rep=rep1&type=pdf, which is incorporated herein by reference for all purposes.

[0102] At step 370, the classification value is calculated. The calculation of the classification value is related to... Figure 10 and 11 To explain in more detail.

[0103] Figure 12 The diagram illustrates a matrix M 1200 comprising classification values ​​for a first category 1231 and a second category 1232, according to some example embodiments. Figure 12 The diagram illustrates matrix M after the classification values ​​have been determined and filled into matrix M.

[0104] like Figure 12 As shown, matrix M comprises 6 rows 1210 for each of the triples wq identified for the input word w. Each row in the matrix represents a triple, and each triple matches a corresponding triple from one or more of the N StatSim matching words from the dictionary. Matrix M also includes word embedding vector values ​​1220 for a 300-column vector.

[0105] Matrix M includes category columns 1230. The category columns include a first category column 1231 and a second category column 1232. Two category columns are described; however, the number of categories or tags can vary based on the type of category identified by the user. The number of categories can vary depending on, for example, the type of marketing the user wants to perform, the audience the user wants to target, or the user's business strategy.

[0106] The categorical value indicates how many other similar names contain that particular triple. These other similar names are obtained from a dictionary of known names. In the example described, since names are being analyzed, the dictionary is a dictionary of known names. However, if different types of input words (e.g., company names) are being analyzed, then a dictionary of such names will be used for triple comparisons.

[0107] like Figure 12 As shown, the first category column 1131 includes the values ​​"0.3, 0.1, 0.0, 0.0, 0.0, 0.0" for the triplet "^JO, JOA, OAN, ANN, NNA, NA$". The second category column 1232 includes the values ​​"0.1, 0.4, 0.3, 0.5, 0.3, 0.3" for the triplet "^JO, JOA, OAN, ANN, NNA, NA$".

[0108] Based on the classification results, the second category column 132 produces a higher value than the first category column 1131. Therefore, the input word "JOANNA" is more likely to fall into the second category (e.g., female). However, because the matrix is ​​traversed by a convolutional neural network (CNN), higher accuracy is achieved.

[0109] At step 380, matrix M is traversed by the convolutional neural network. After matrix M has been populated with word embedding model vector values ​​and classification values, it is traversed by the convolutional neural network. The convolutional neural network can identify whether the input word is more likely to belong to the first or second category.

[0110] The CNN analysis in the example embodiment includes vectors from the word embedding model and a matrix of classification values ​​obtained using triplet analysis. For CNNs, Rectified Linear Unit (ReLU) weights can be used for initialization because the activations between the Global Max-Pooling Layer and the Dense Layer in a CNN are ReLU. The following is about... Figure 13 A more detailed explanation of convolutional neural networks.

[0111] IV. Word Embedding Model

[0112] Figure 7 The illustration shows a general process 700 for calculating vectors of words according to some example embodiments. However, the example embodiments will calculate vectors of triples.

[0113] At step 710, enter the word. Figure 7 In the example shown, the set of input words may include “Bridgestone,” “Firestone,” and “Michelin.” However, in the example embodiment, the set of input words may include triples identified for new words.

[0114] At step 720, the input dataset is analyzed. The data can be analyzed using machine learning techniques such as Word2Vec. Word2Vec is incorporated herein by reference for all purposes. Word2Vec can be implemented using the techniques disclosed by Mikolov et al. in “Exploiting Similarities between Languages ​​for Machine Translation” (2013) at http: / / arxiv.org / pdf / 1309.4168.pdf, which is incorporated herein by reference for all purposes. Word2Vec can receive text input (e.g., a text corpus from a large data source) and generate a data structure (e.g., a vector representation) for each input word as a set of words. The data structure may be referred to herein as a “model” or “Word2Vec model”. While Word2Vec has been described, other word embedding models can be used to perform data analysis.

[0115] At step 730, each word in the set of words is associated with multiple attributes. These attributes may also be referred to as features, vectors, components, and feature vectors. For example, the data structure may include 300 features associated with each word in the set of words. Features may include, for example, descriptions of the word's gender, nationality, etc. Each feature may be determined based on techniques used for training based on associations with sentiment (e.g., supervised machine learning).

[0116] Using a Word2Vec model built with a large text corpus (e.g., a news aggregator, or other data sources such as the Google News corpus), a corresponding numerical vector value (e.g., a floating-point number) can be identified for each input word. When analyzing these vectors, it can be determined that the vectors are "close" in the vector space (in the Euclidean sense). As shown in step 740, the three input words are closely clustered together in the vector space.

[0117] In some embodiments, the Word2Vec model may be generated by a third-party provider. The Word2Vec model can be obtained via the provider's application programming interface (API). The API can provide functions for obtaining the Word2Vec model, including information about the word embedding model, such as the number of components for each word in the model.

[0118] Step 730 may include generating a data structure (e.g., a vector data structure) as a two-dimensional matrix based on the training data. Each axis (x-axis and y-axis) in the matrix has coordinates or dimensions. For the training data, the height of the vector can be calculated based on the length of the longest text string using one or more applications (e.g., a Lambda application). For example, a data structure is generated for each message, where the height is the maximum number of words in a single comment. When constructing the two-dimensional matrix, each row is defined as a word vector and each column can be defined as a feature vector. The data structure is created as input to an API for implementing a convolutional neural network (CNN). The two-dimensional matrix is ​​created such that the y-axis has entries for each word in a single message, and the x-axis is used for a baseline sentiment analysis method. Each entry or dimension on the x-axis corresponds to one of the features in the Word2Vec model. Multiple features can be listed for each word on the x-axis. Each feature for each word can be obtained from the Word2Vec model generated based on the training data.

[0119] Figure 6 The word embedding model vector column 620 illustrates the generated data structure (e.g., vector data structure).

[0120] V. Calculate classification values

[0121] A. Overview of methods for calculating classification values

[0122] Figure 10 The illustration shows a flowchart of a method 1000 for calculating a classification value according to some example embodiments. Figure 10 The steps performed in the process can be compared with Figure 3 Step 370 corresponds to this.

[0123] In step 1010, triples from the input word are identified. The identified triple wq can be in Figure 3 The triplet identified in step 320.

[0124] In step 1020, the k nearest neighbor triples shared by the triples of the input word are identified. For example... Figure 9 As shown in the figure, column 940 represents the k nearest neighbor triples that are shared with the input word triple wq.

[0125] At step 1030, the triples from the input word are compared with the triples of each of the k nearest neighbors. The matching frequency between the triples from the input word is compared with the triples of each of the k nearest neighbors. A counter can be used to determine the matching frequency.

[0126] At step 1040, a classification value is calculated based on the matching frequency between triples in the input word and triples from the k nearest neighbors.

[0127] At step 1050, the classification values ​​of the triples for the unknown words are filled with the calculated classification values. The classification values ​​can be filled into the matrix.

[0128] After the classification values ​​of the triples have been determined and filled into the matrix, the matrix can be traversed by the convolutional neural network.

[0129] B. Detailed method for calculating classification values

[0130] Figure 11 A detailed flowchart of a method 1100 for calculating classification values ​​according to some example embodiments is shown. Figure 11 The steps performed in the process can be compared with Figure 3 Step 370 corresponds to this. Figure 11 A more detailed description Figure 10 The steps to be performed in the process.

[0131] Figure 11 The method shown can be expressed by the following formula:

[0132] Iterating through matrix M row by row

[0133] Loop through Q

[0134] If wq[0] == Qi[i][0]

[0135] Pop up Q[i]

[0136] The incrementing C[j] associated with S[i]

[0137] Fill the additional columns of matrix M with λ·C[j] / k.

[0138] Variable C represents a counter. A counter C can be initiated for each possible category. The counter can be a temporary, temporarily stored counter. For example, the counter could be stored in data repository 214. In the described example, to determine two categories (e.g., male and female), two counters can be initiated. Variable λ is used to scale the additional feature columns. For illustrative purposes, variable λ is represented by the value .001. The value of variable λ is based on the values ​​of the data that need to be scaled or made easier to compare with the word embedding model vector values. Variable Q represents a list of N queues, such as... Figure 9 As shown in the image.

[0139] Variable Q[i] represents one of the k neighbors. The k nearest neighbors (KNN) algorithm can be used to obtain the k neighbors. Therefore, Q[i] represents the triplet that shares one of the k neighbors with triplet wq. Variable j in C[j] represents the classification. Therefore, variable C[j] represents the counter used for classification.

[0140] In the described example, the triple wq for the input word w is “^JO, JOA, OAN, ANN, NNA, NA$”. The triples in Q for the k neighbors are “^JO, JOA, OAN, ANN”, “^JO”, and “ANN, NNA, NA$”. The set S of the nearest names includes “JOANNE”, “JOHN”, and “ANNA”. Q in this example consists of a list of N=3 queues for the three nearest neighbors.

[0141] At step 1110, a counter C is initiated for each possible category. The counter can be represented by C[j]. j represents the category (e.g., first, second, third, etc.). In the described example, since there are two categories (e.g., male and female), two counters are initiated. The first counter C[0] can correspond to the first category (e.g., male), and the second counter C[1] can correspond to the second category (e.g., female). The counters can be stored in the data repository of the new word classification server. After the triples of wq have been analyzed, the counters can be removed after each iteration, and new counters can be initiated.

[0142] At step 1120, triples (e.g., ^JO) in the matrix M of the input word w are identified or selected for analysis. Figure 11The method will continue to repeat for each triple wq of the input word. The triples in the matrix M used for analysis are iterated one at a time. Since there are six triples "^JO, JOA, OAN, ANN, NNA, NA$" in wq, the first triple to be analyzed is "^JO" and the last triple to be analyzed is "NA$". Therefore, for the example containing six triples wq, steps 1120-1170 can be repeated six times for each triple.

[0143] At step 1130, the triples (e.g., ^JO) in the list Q of N queues for the k nearest neighbors (e.g., JOANNE, JOHN, ANNA) that match the triples identified in step 1120 are determined. In this example, the triple ^JO appears twice. The triples for the k nearest names that match the first triple of the input word are determined. Once for the k nearest neighbors "JOANNE", and once for the k nearest neighbors "JOHN".

[0144] At step 1140, the classification of the matching triples that match the triples from the input words is determined. The classification of the matching triples (e.g., ^JO) is identified from, for example, column 960, which indicates the classification of the corresponding nearest neighbor. Thus, since both JOANNE and JOHN include the triple "^JO", the classification of the name "JOANNE" (e.g., female) and the classification of the name "JOHN" (e.g., male) are identified.

[0145] At step 1150, the counters associated with the classification are incremented. The counters for each of the multiple classifications corresponding to the determined classifications of one or more triples of the k nearest names are incremented. Since the classification of the specific nearest neighbor “JOANNE” is “female”, the second counter C[2] for the second classification is incremented. Since the classification of the specific nearest neighbor “JOHN” is “male”, the first counter C[1] for the first classification is also incremented.

[0146] At step 1160, the list Q of N queues can be updated. Triplets that match the input word triplets (e.g., ^JO) can be removed from the list Q of N queues (e.g., for the names "JOANNE" and "JOHN").

[0147] At step 1170, the classification value can be filled into the matrix M of the identified triple wq. Therefore, Figure 12 The classification values ​​shown in row 1233 of classification column 1230 will be filled into the matrix after step 1170.

[0148] In the example embodiment, the classification values ​​are populated after each triple (e.g., ^JO, JOA, OAN, ANN, NNA, NA$) has been classified. However, the filling of classification values ​​in matrix M can be performed after all triples wq of the input word have been analyzed.

[0149] The classification columns can be populated based on the equation λ·C[j] / k. k is the number or magnitude of nearest neighbors. The variable λ is used for scaling. Scaling is performed so that the classification values ​​are on the same order of magnitude as the word embedding model values ​​in column 1220. The word embedding values ​​in the example above have three leading zeros before the decimal point. If the classification values ​​are not scaled, the extra columns in the classification values ​​may overwhelm the CNN.

[0150] At 1180, determine if there exists an additional triple wq for the input word to be analyzed. Repeat steps 1020, 1030, 1040, 1050, 1060, and 1070 until all triples wq for the input word have been compared with the triples of its k nearest neighbors. That is, repeat steps 1020, 1030, 1040, 1050, 1060, and 1070 until all triples wq for the input word w“JOANNA” have been compared with all triples in the list Q of N queues for the k nearest neighbors.

[0151] When the input word w to be analyzed has an additional triple wq, repeat step 1020 for the next triple in wq. For example, the next triple to be analyzed in wq is "JOA".

[0152] The process ends when it is determined in step 1180 that the input word w does not have an additional triple wq to be analyzed.

[0153] C. A matrix filled with categorical values

[0154] Figure 12 The diagram illustrates a matrix M, which is completed to include classification values ​​according to some example embodiments. Figure 12 The matrix M shown is the execution Figure 10 and Figure 11 The matrix is ​​then filled using the method shown.

[0155] like Figure 12 As shown, the first category column 1231 includes the values ​​of the triples "^JO, JOA, OAN, ANN, NNA, NA$" respectively: "0.3, 0.1, 0.0, 0.0, 0.0, 0.0". The second category column 1232 includes the values ​​of the triples "^JO, JOA, OAN, ANN, NNA, NA$" respectively: "0.1, 0.4, 0.3, 0.5, 0.3, 0.3".

[0156] Based on the classification results, the second category column 1232 produces a higher value than the first category column 1231. Therefore, the input word "JOANNA" is more likely to fall into the second category (e.g., female).

[0157] However, to ensure the accuracy of the classification results, matrix M will be traversed by the CNN. The output from the CNN is a softmax vector of length n, where n is the number of possible classes. The softmax function is a function that takes a vector z of K real numbers as input and normalizes the input to a probability distribution consisting of K probabilities that are exponentially proportional to the input numbers. In the softmax vector, each component represents the probability of the sample belonging to that class (between 0.0 and 1.0). Typically, the class with the highest probability is selected as the prediction, and other probabilities are ignored.

[0158] VI. Convolutional Neural Networks

[0159] Figure 13 The illustration shows a convolutional neural network 1300 according to some example embodiments.

[0160] Figure 13 An example of a standard convolutional neural network is illustrated. A convolutional neural network (CNN) for modeling sentences can use the techniques in Kalchbrenner's "A Convolutional Neural Network for Modeling Sentences" (2014) [http: / / www.aclweb.org / anthology / P14-1062], which is incorporated herein by reference for all purposes. A CNN can be implemented using one-dimensional convolutional layers. A CNN can be implemented using a package or library provided by a third party (e.g., GitHub). This package could be Keras, implemented using DeepLearning4J for Java and Scala and / or Python. Additionally, a CNN can be, for example, a three-layer or a seven-layer CNN. These are merely examples, and different CNNs can be used. Furthermore, a CNN can be created independently by the user.

[0161] In at least one embodiment, an array of vectors for each message can be used with CNN techniques to determine sentiment analysis. Examples of the techniques can be implemented based on content found at http: / / www.wildml.com / 2015 / 11 / understanding-convolutional-neural-networks-for-nlp / and https: / / github.com / fchollet / keras / blob / master / examples / imdb_cnn.py / , which are incorporated herein by reference for all purposes. CNN techniques can be implemented by setting the values ​​of variables such as filter length=3, CNNDenseDropout=0.2, dense_dims=20, batch_size=10, nb_epoch=5, and validation_split=0.1. A CNN can be implemented by executing the following function calls using the data structure generated above. CNNs can be implemented as a one-dimensional structure based on word-based data structures.

[0162] The CNN is executed based on function calls, and the training data is used to test the CNN to perform initial sentiment analysis.

[0163] VII. User Interface

[0164] Figure 14 The illustration shows a user interface 1400 for performing new word classification according to some example embodiments.

[0165] User interface 1400 can be displayed Figure 1 The data enrichment system 120 of the analysis system 110 shown is displayed on the screen. The user interface 1400 includes multiple columns of data 1420 from a dataset. The dataset may include, for example, customer information or other types of data available in spreadsheets. Figure 14 In the example shown, customer information includes city name, state, and zip code. However, this is just an example, and datasets can include various types of information.

[0166] Users can input the dataset to which they want to perform new word classification. For example, users can select a dataset on the interactive user interface of the data enrichment system. The user interface can display multiple data source options from which the dataset can be obtained. Users can upload datasets they want to enrich, analyze, or visualize. Datasets can be in column format, such as spreadsheets.

[0167] User interface 1400 includes a recommendation panel 1410. The recommendation panel provides the user with recommendations for one or more actions to apply to the dataset. For example, recommendations could include enriching the data by identifying new words for a column of data. Recommendations could also include enriching the data by performing new word classification on one or more columns of data in the dataset. For example, a user could select recommendation 1430 to enrich the city column of the dataset by performing new word classification.

[0168] A data enrichment system is configured to provide recommendations for performing processes on a dataset, such as enriching the data. In other words, a data enrichment system can analyze a dataset and provide users with recommended actions to enrich the data. The data enrichment system can automatically determine which enrichments will be beneficial to the data based on the provided dataset.

[0169] Given a dataset, a portion of which is shown in panel 1410, users can be provided with recommendations for a richer data column by selecting to perform new word classification (element 1430). Figure 14 The diagram illustrates a simplified view of the user interface, where users can select to perform new word categorization. Additional displays or prompts for additional information can be provided before performing the categorization.

[0170] Therefore, in the example embodiment, if the dataset includes data on which new word classification can be performed, the data enrichment system can suggest to the user that new word classification be performed. When the user selects to perform new word classification (e.g., selects element 1430), new word classification can be performed on the selected data column.

[0171] The example embodiments provide systems, methods, and computer-readable media with improved accuracy. Therefore, the example embodiments provide improvements in determining the classification of new words.

[0172] Because the example implementation provides highly accurate classifications, the data provided to users of the data-rich system can be more complete, making the data more useful to them.

[0173] Example implementations may include a combination of triples, a word embedding model for triples (e.g., Word2Vec), k most recent names (e.g., StatSim), additional classification with counters (e.g., male / female), and convolutional neural networks (CNN).

[0174] Trigrams offer improved results in accurately identifying features associated with new words. Meaning is inferred from the order of the triples, not just the values ​​of the triples themselves.

[0175] Additionally, the example implementation uses a combination of word embedding models (CNNs) for the triples. For additional features, additional columns are added to the right side of the matrix.

[0176] VIII. Hardware Overview

[0177] Figure 15 A simplified diagram of a distributed system 1500 for implementing embodiments is depicted. In the illustrated embodiment, the distributed system 1500 includes one or more client computing devices 1502, 1504, 1506, and 1508 coupled to a server 1512 via one or more communication networks 1510. The client computing devices 1502, 1504, 1506, and 1508 may be configured to execute one or more applications.

[0178] In various embodiments, server 1512 may be adapted to run one or more services or software applications that enable the automatic generation of regular expressions, as described in this disclosure. For example, in some embodiments, server 1512 may receive user input data transmitted from a client device, wherein the user input data is received by the client device through a user interface displayed at the client device. Server 1512 may then convert the user input data into a regular expression, which is transmitted to the client device for display through the user interface.

[0179] In some embodiments, server 1512 may also provide other services or software applications that may include non-virtual and virtual environments. In some embodiments, these services may be provided as web-based or cloud-based services (such as under a Software as a Service (SaaS) model) to users of client computing devices 1502, 1504, 1506, and / or 1508. Users operating client computing devices 1502, 1504, 1506, and / or 1508 may then interact with server 1512 using one or more client applications to utilize the services provided by these components.

[0180] exist Figure 15 In the depicted configuration, server 1512 may include one or more components 1518, 1520, and 1522 that implement the functions performed by server 1512. These components may include software components, hardware components, or combinations thereof that can be executed by one or more processors. It should be recognized that various different system configurations are possible and may differ from distributed system 1500. Therefore, Figure 15 The embodiments shown are an example of a distributed system for implementing the system of the embodiments, and are not intended to be limiting.

[0181] Users can use client computing devices 1502, 1504, 1506, and / or 1508 to execute one or more applications that can generate regular expressions according to the teachings of this disclosure. The client device can provide an interface that allows users of the client device to interact with it. The client device can also output information to the user via this interface. Although Figure 15 Only four client computing devices are depicted, but any number of client computing devices can be supported.

[0182] Client devices can include various types of computing systems, such as portable handheld devices, general-purpose computers such as personal computers and laptops, workstations, wearable devices, gaming systems, thin clients, various messaging devices, sensors, and other sensing devices. These computing devices can run various types and versions of software applications and operating systems (e.g., Microsoft). Apple Or a UNIX-like operating system, Linux, or a Linux-like operating system (such as Google Chrome) TM OS), including various mobile operating systems (e.g., Microsoft Windows). Windows Android TM , Palm Portable handheld devices can include cellular phones, smartphones (e.g., ), tablet computers (e.g.) Wearable devices include Google's personal digital assistants (PDAs), personal digital assistants (PDAs), and more. Head-mounted displays and other devices. Gaming systems can include various handheld gaming devices and internet-enabled gaming devices (e.g., with or without). Microsoft gesture input devices Game console, Sony System, by This includes various game systems and others. Client devices can run a variety of applications, such as various internet-related applications, communication applications (e.g., email applications, short message service (SMS) applications), and can use various communication protocols.

[0183] One or more networks 1510 can be any type of network familiar to those skilled in the art, and the network(s) can use any of the various available protocols to support data communication, including but not limited to TCP / IP (Transmission Control Protocol / Internet Protocol), SNA (System Network Architecture), IPX (Internet Packet Switching). etc. For example only, network(s)1510 can be a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., in the IEEE 1002.11 protocol suite), etc. (and / or any other wireless protocol under which a network operates) and / or any combination of these networks and / or other networks.

[0184] Server 1512 may include one or more general-purpose computers, special-purpose server computers (as an example, including PC (personal computer) servers, etc.). Server 1512 may include one or more virtual machines running a virtual operating system, or other computing architectures involving virtualization, such as one or more flexible pools of logical storage devices that can be virtualized to maintain virtual storage devices for servers. In various embodiments, server 1512 may be adapted to run one or more services or software applications that provide the functionality described in the foregoing disclosure.

[0185] The computing system in server 1512 can run one or more operating systems, including any of the operating systems discussed above and any commercially available server operating system. Server 1512 can also run any of a variety of additional server applications and / or middleware applications, including HTTP (Hypertext Transfer Protocol) servers, FTP (File Transfer Protocol) servers, CGI (Common Gateway Interface) servers, etc. Servers, database servers, etc. Exemplary database servers include, but are not limited to, those that can be accessed from... Database servers acquired through commercial purchases such as IBM.

[0186] In some implementations, server 1512 may include one or more applications to analyze and integrate data feeds and / or event updates received from users of client computing devices 1502, 1504, 1506, and 1508. As an example, data feeds and / or event updates may include, but are not limited to, real-time updates received from one or more third-party information sources and continuous data streams. Feed or Updates may include real-time events related to sensor data applications, financial quote machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, and the like. Server 1512 may also include one or more applications that display data feeds and / or real-time events via one or more display devices of client computing devices 1502, 1504, 1506, and 1508.

[0187] The distributed system 1500 may also include one or more data repositories 1514, 1516. In some embodiments, these data repositories may be used to store data and other information. For example, one or more of data repositories 1514, 1516 may be used to store information such as new data columns that match regular expressions generated by the system. Data repositories 1514, 1516 may reside in various locations. For example, a data repository used by server 1512 may be local to server 1512, or it may be located remotely to server 1512 and communicate with server 1512 via a network-based or dedicated connection. Data repositories 1514, 1516 may be of different types. In some embodiments, the data repository used by server 1512 may be a database, such as a relational database, such as one developed by Oracle Corporation. (and other databases provided by other vendors. One or more of these databases may be adapted to perform the storage, updating, and retrieval of data to and from the database in response to SQL-formatted commands.)

[0188] In some embodiments, the application may also use one or more of data stores 1514 and 1516 to store application data. The data stores used by the application may be of different types, such as, for example, key-value stores, object stores, or general-purpose stores supported by a file system.

[0189] In some embodiments, the functionality described in this disclosure may be provided as a service via a cloud environment. Figure 16 This is a simplified block diagram of a cloud-based system environment 1600 based on certain examples, where various services can be provided as cloud services. Figure 16In the example depicted, cloud infrastructure system 1602 can provide one or more cloud services that can be requested by users using one or more client computing devices 1604, 1606, and 1608. Cloud infrastructure system 1602 may include one or more computers and / or servers, which may include those computers and / or servers described above for server 2112. The computers in cloud infrastructure system 1602 may be organized as general-purpose computers, dedicated server computers, server groups, server clusters, or any other suitable arrangement and / or combination.

[0190] One or more networks 1610 can facilitate communication and data exchange between clients 1604, 1606, and 1608 and cloud infrastructure system 1602. One or more networks 1610 may include one or more networks. Networks may be of the same or different types. One or more networks 1610 may support one or more communication protocols, including wired and / or wireless protocols, for facilitating communication.

[0191] Figure 16 The example depicted is merely one example of a cloud infrastructure system and is not intended to be limiting. It should be recognized that in some other examples, cloud infrastructure system 1602 can have more than... Figure 16 The components shown may have more or fewer components, may combine two or more components, or may have different component configurations or arrangements. For example, although Figure 16 Three client computing devices are depicted, but any number of client computing devices can be supported in alternative examples.

[0192] The term "cloud service" is generally used to refer to services made available to users on demand by a service provider's systems (e.g., cloud infrastructure systems 1602) and via a communication network such as the Internet. Typically, in a public cloud environment, the servers and systems that make up the cloud service provider's systems differ from the customer's own on-premises servers and systems. The cloud service provider's systems are managed by the cloud service provider. Customers can therefore utilize cloud services provided by the cloud service provider without having to purchase separate licenses, support, or hardware and software resources for the services. For example, the cloud service provider's systems can host applications, and users can subscribe to and use applications on demand via the Internet without having to purchase the infrastructure resources needed to run the applications. Cloud services are designed to provide easy, scalable access to applications, resources, and services. Several providers offer cloud services. For example, Oracle Corporation of Redwood Shores, California (Oracle) is one such provider. It provides several cloud services, such as middleware services, database services, and Java cloud services.

[0193] In some embodiments, cloud infrastructure system 1602 may use different models, such as Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and other models including hybrid service models, to provide one or more cloud services. Cloud infrastructure system 1602 may include a set of applications, middleware, databases, and other resources that enable the provisioning of various cloud services.

[0194] The SaaS model enables applications or software to be delivered to customers as a service via communication networks (such as the internet), without requiring customers to purchase the underlying hardware or software. For example, the SaaS model can be used to provide customers with access to on-demand applications hosted by cloud infrastructure systems. (Oracle Corporation) Examples of SaaS services provided include, but are not limited to, those for human resources / capital management, customer relationship management (CRM), enterprise resource planning (ERP), supply chain management (SCM), enterprise performance management (EPM), analytics services, social applications, and a variety of other services.

[0195] The IaaS model is typically used to provide customers with infrastructure resources (such as servers, storage devices, hardware, and networking resources) as cloud services to provide elastic computing and storage capabilities. The company provides a variety of IaaS services.

[0196] The PaaS model is typically used to provide platform and environment resources as a service, enabling customers to develop, run, and manage applications and services without having to purchase, build, or maintain such resources. This is exemplified by Oracle Corporation. Examples of PaaS services provided include, but are not limited to, Oracle Java Cloud Service (JCS), Oracle Database Cloud Service (DBCS), Data Management Cloud Service, various application development solutions services, and other services.

[0197] Cloud services are typically delivered on an on-demand, self-service, subscription-based, elastically scalable, reliable, highly available, and secure basis. For example, a customer may subscribe to one or more services provided by cloud infrastructure system 1602 via a subscription order. Cloud infrastructure system 1602 then performs processing to deliver the services requested in the customer's subscription order. Cloud infrastructure system 1602 can be configured to provide one or more cloud services.

[0198] Cloud infrastructure system 1602 can provide cloud services through different deployment models. In a public cloud model, cloud infrastructure system 1602 can be owned by a third-party cloud service provider, and cloud services are provided to any general public customer, who can be an individual or a business. In a private cloud model, cloud infrastructure system 1602 can be operated within an organization (e.g., within a business organization) and services can be provided to customers within the organization. For example, customers can be various departments within the enterprise, such as human resources, payroll, or even individuals within the enterprise. In a community cloud model, cloud infrastructure system 1602 and the services it provides can be shared by several organizations in the relevant community. Various other models, such as a hybrid of the models mentioned above, can also be used.

[0199] Client devices 1604, 1606, and 1608 can be of different types (such as...) Figure 15 The client devices 1502, 1504, 1506, and 1508 depicted in the diagram are capable of operating one or more client applications. Users can use the client devices to interact with the cloud infrastructure system 1602 to, for example, request services provided by the cloud infrastructure system 1602.

[0200] In some embodiments, processing performed by the cloud infrastructure system 1602 for providing management-related services may involve big data analytics. This analytics may involve using, analyzing, and manipulating large datasets to detect and visualize various trends, behaviors, relationships, etc., within the data. This analytics may be performed by one or more processors, may process the data in parallel, and may use the data to perform simulations, etc. For example, big data analytics may be performed by the cloud infrastructure system 1602 to automatically determine regular expressions. The data used for this analytics may include structured data (e.g., data stored in a database or data structured according to a structured model) and / or unstructured data (e.g., data blobs (binary large objects)).

[0201] like Figure 16 As depicted in the example, cloud infrastructure system 1602 may include infrastructure resources 1630 for facilitating the provision of various cloud services offered by cloud infrastructure system 1602. Infrastructure resources 1630 may include, for example, processing resources, storage or memory resources, networking resources, etc.

[0202] In some embodiments, to facilitate the efficient provisioning of these resources to support various cloud services provided by the cloud infrastructure system 1602 to different customers, resources can be bundled into collections of resources or resource modules (also referred to as "pods"). Each resource module or pod may include a pre-integrated and optimized combination of one or more types of resources. In some embodiments, different pods may be pre-provisioned for different types of cloud services. For example, a first pod may be provisioned for a database service, and a second pod may be provisioned for a Java service, wherein the second pod may include a different combination of resources than the pods in the first pod. For some services, resources allocated for provisioning services may be shared between services.

[0203] The cloud infrastructure system 1602 can internally use service 1632, which is shared by different components of the cloud infrastructure system 1602 and facilitates the provisioning of services by the cloud infrastructure system 1602. These internally shared services may include, but are not limited to, security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and whitelisting services, high availability, backup and recovery services, services for enabling cloud support, email services, notification services, file transfer services, etc.

[0204] Cloud infrastructure system 1602 may include multiple subsystems. These subsystems may be implemented using software or hardware, or a combination thereof. Figure 16 As shown, the subsystem may include a user interface subsystem 1612 that enables users or customers of the cloud infrastructure system 1602 to interact with it. The user interface subsystem 1612 may include various interfaces, such as a web interface 1614, an online store interface 1616 (where cloud services provided by the cloud infrastructure system 1602 are advertised and available for purchase by consumers), and other interfaces 1618. For example, a customer may use a client device to use one or more of interfaces 1614, 1616, and 1618 to request (service request 1634) one or more services provided by the cloud infrastructure system 1602. For example, a customer may access an online store, browse cloud services provided by the cloud infrastructure system 1602, and place an order for one or more services provided by the cloud infrastructure system 1602 that the customer wishes to subscribe to. A service request may include information identifying the customer and the one or more services the customer wishes to subscribe to. For example, a customer may place an order for the automated generation of regular expression-related services provided by the cloud infrastructure system 1602.

[0205] In some embodiments (such as) Figure 16In the illustrated example, cloud infrastructure system 1602 may include an order management subsystem (OMS) 1620 configured to process new orders. As part of this process, OMS 1620 may be configured to: create accounts for customers (if not already created); receive invoices and / or accounting information from customers, which will be used to bill customers for the services requested; verify customer information; place orders for customers after verification; and orchestrate various workflows to prepare orders for supply.

[0206] Once correctly verified, the OMS 1620 can invoke the Order Provisioning Subsystem (OPS) 1624, which is configured to provision resources for orders, including processing resources, storage resources, and networking resources. Provisioning can include allocating resources for an order and configuring resources to facilitate the service requested by the customer's order. The method and type of resources provisioned for an order can depend on the type of cloud service the customer has subscribed to. For example, according to a workflow, OPS 1624 can be configured to determine the specific cloud service being requested and identify multiple clusters that may have been pre-configured for that specific cloud service. The number of clusters allocated to an order can depend on the size / quantity / level / scope of the requested service. For example, the number of clusters to be allocated can be determined based on the number of users supported by the service, the duration of the requested service, etc. The allocated clusters can then be customized for the specific requesting customer to provide the requested service.

[0207] Cloud infrastructure system 1602 can send a response or notification 1644 to the requesting client to indicate when the requested service is ready. In some cases, information (e.g., a link) may be sent to the client, enabling the client to begin using and taking advantage of the benefits of the requested service. In some embodiments, for clients requesting automatically generated regular expression-related services, the response may include instructions that, when executed, cause a user interface to be displayed.

[0208] Cloud infrastructure system 1602 can provide services to multiple customers. For each customer, cloud infrastructure system 1602 is responsible for managing information related to one or more subscription orders received from the customer, maintaining customer data related to the orders, and providing the requested services to the customer. Cloud infrastructure system 1602 can also collect usage statistics about customers' use of subscribed services. For example, statistics can be collected on storage usage, data transfer volume, number of users, system uptime, and system downtime. This usage information can be used for billing customers. Billing can be, for example, on a monthly basis.

[0209] Cloud infrastructure system 1602 can provide services to multiple customers in parallel. Cloud infrastructure system 1602 can store information about these customers, including potentially proprietary information. In some embodiments, cloud infrastructure system 1602 includes an Identity Management Subsystem (IMS) 1628, which is configured to manage customer information and provide separation of the managed information, such that information associated with one customer cannot be accessed by another customer. IMS 1628 can be configured to provide various security-related services, such as identity services; information access management, authentication and authorization services; and services for managing customer identities, roles, and related capabilities.

[0210] Figure 17 An example of a computer system 1700 according to some exemplary embodiments is illustrated. In some embodiments, the computer system 1700 can be used to implement any of the systems described above. Figure 17 As shown, computer system 1700 includes various subsystems, including a processing subsystem 1704 that communicates with multiple other subsystems via a bus subsystem 1702. These other subsystems may include a processing acceleration unit 1706, an I / O subsystem 1708, a storage subsystem 1718, and a communication subsystem 1724. Storage subsystem 1718 may include non-transitory computer-readable storage media, including storage medium 1722 and system memory 1710.

[0211] Bus subsystem 1702 provides a mechanism for enabling various components and subsystems of computer system 1700 to communicate with each other as desired. While bus subsystem 1702 is schematically shown as a single bus, alternative examples of the bus subsystem may utilize multiple buses. Bus subsystem 1702 can be any of several types of bus architectures, including memory buses or memory controllers, peripheral buses, local buses using any of the various bus architectures, etc. For example, such architectures may include Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Peripheral Component Interconnect (PCI) buses, which may be implemented as mezzanine buses manufactured according to the IEEE P1386.1 standard, etc.

[0212] Processing subsystem 1704 controls the operation of computer system 1700 and may include one or more processors, application-specific integrated circuits (ASICs), or field-programmable gate arrays (FPGAs). Processors may include single-core or multi-core processors. The processing resources of computer system 1700 may be organized into one or more processing units 1732, 1734, etc. A processing unit may include one or more processors, one or more cores from the same or different processors, a combination of cores and processors, or other combinations of cores and processors. In some embodiments, processing subsystem 1704 may include one or more dedicated coprocessors, such as graphics processors, digital signal processors (DSPs), etc. In some embodiments, some or all of the processing units of processing subsystem 1704 may be implemented using custom circuitry, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs).

[0213] In some embodiments, the processing units in processing subsystem 1704 can execute instructions stored in system memory 1710 or on computer-readable storage medium 1722. In various examples, the processing units can execute various program or code instructions and can maintain multiple concurrently executing programs or processes. At any given time, some or all of the program code to be executed can reside in system memory 1710 and / or on computer-readable storage medium 1722, including possibly on one or more storage devices. With appropriate programming, processing subsystem 1704 can provide the various functions described above. When computer system 1700 is executing one or more virtual machines, one or more processing units can be assigned to each virtual machine.

[0214] In some embodiments, a processing acceleration unit 1706 may optionally be provided for performing custom processing or for offloading some processing performed by the processing subsystem 1704, thereby accelerating the overall processing performed by the computer system 1700.

[0215] I / O subsystem 1708 may include devices and mechanisms for inputting information to and / or outputting information from or via computer system 1700. Generally, the term "input device" is used to include all possible types of devices and mechanisms for inputting information to computer system 1700. User interface input devices may include, for example, keyboards, pointing devices such as mice or trackballs, touchpads or touchscreens incorporated into a display, scroll wheels, click wheels, dials, buttons, switches, keypads, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include motion sensing and / or gesture recognition devices (such as Microsoft...) that enable users to control and interact with the input device. Motion sensor), Microsoft The 360 ​​game controller provides an interface for receiving input using gestures and spoken commands. The user interface input device may also include eye gesture recognition devices, such as detecting eye activity from the user (e.g., "blinking" when taking a picture and / or making menu selections) and translating the eye gesture into the input device (e.g., Google). Google input Blink detector. Additionally, user interface input devices may include those enabling users to interact with a voice recognition system (e.g., ...) via voice commands. A voice recognition sensing device that interacts with a navigator.

[0216] Other examples of user interface input devices include, but are not limited to: 3D mice, joysticks or pointing sticks, gamepads and graphics tablets, and audio / video devices such as speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices may include, for example, medical imaging input devices such as computed tomography, magnetic resonance imaging, positional emission computed tomography, and medical ultrasound examination equipment. User interface input devices may also include, for example, audio input devices such as MIDI keyboards, digital musical instruments, etc.

[0217] Generally, the term "output device" is used to encompass all possible types of devices and mechanisms for outputting information from computer system 1700 to a user or other computer. User interface output devices may include display subsystems, indicator lights, or non-visual displays such as audio output devices. Display subsystems may be cathode ray tubes (CRTs), flat panel devices (such as flat panel devices using liquid crystal displays (LCDs) or plasma displays), projection devices, touchscreens, etc. For example, user interface output devices may include, but are not limited to, various display devices that visually convey text, graphics, and audio / video information, such as monitors, printers, speakers, headphones, car navigation systems, plotters, voice output devices, and modems.

[0218] Storage subsystem 1718 provides a repository or data storage facility for storing information and data used by computer system 1700. Storage subsystem 1718 provides a tangible, non-transitory, computer-readable storage medium for storing basic programming and data constructs that provide certain example functions. Storage subsystem 1718 may store software (e.g., programs, code modules, instructions) that provides the aforementioned functions when executed by processing subsystem 1704. The software may be executed by one or more processing units of processing subsystem 1704. Storage subsystem 1718 may also provide a repository for storing data used in accordance with the teachings of this disclosure.

[0219] The storage subsystem 1718 may include one or more non-transitory memory devices, including volatile and non-volatile memory devices. For example... Figure 17 As shown, the storage subsystem 1718 includes system memory 1710 and computer-readable storage medium 1722. System memory 1710 may include multiple memories, including volatile main random access memory (RAM) for storing instructions and data during program execution, and non-volatile read-only memory (ROM) or flash memory where fixed instructions are stored. In some embodiments, the basic input / output system (BIOS) may typically be stored in ROM, containing basic routines that facilitate the transfer of information between elements within computer system 1700, for example, during startup. RAM typically contains data and / or program modules currently operated and executed by processing subsystem 1704. In some embodiments, system memory 1710 may include various different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), etc.

[0220] As an example, not a limitation, such as Figure 17 As shown, system memory 1710 can load an application 1712, program data 1714, and operating system 1716 that are being executed, which may include various applications such as web browsers, middleware applications, relational database management systems (RDBMS), etc. As an example, operating system 1716 may include various versions of Microsoft... Apple and / or Linux operating system, various commercially available Or a UNIX-like operating system (including but not limited to various GNU / Linux operating systems, Google...) OS, etc.) and / or mobile operating systems (such as iOS ... Phone OS OS OS (operating system, etc.)

[0221] Computer-readable storage medium 1722 can store programming and data structures that provide some example functionality. Computer-readable storage medium 1722 can provide storage for computer-readable instructions, data structures, program modules, and other data for computer system 1700. When executed by processing subsystem 1704, the software (programs, code modules, instructions) providing the above functionality can be stored in storage subsystem 1718. As an example, computer-readable storage medium 1722 may include non-volatile memory, such as hard disk drives, disk drives, optical disc drives (such as CD ROMs, DVDs, etc.). (Blu-ray discs or other optical media). Computer-readable storage medium 1722 may include, but is not limited to: Drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVDs, digital video tapes, etc. Computer-readable storage media 1722 may also include solid-state drives (SSDs) based on non-volatile memory (such as flash memory-based SSDs, enterprise flash drives, solid-state ROMs, etc.), volatile memory-based SSDs (such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs), and hybrid SSDs using a combination of DRAM-based and flash memory-based SSDs.

[0222] In some embodiments, the storage subsystem 1718 may further include a computer-readable storage medium reader 1720, which may also be connected to a computer-readable storage medium 1722. The reader 1720 may receive and be configured to read data from a storage device such as a disk or flash drive.

[0223] In some embodiments, computer system 1700 may support virtualization technologies, including but not limited to the virtualization of processing and memory resources. For example, computer system 1700 may provide support for executing one or more virtual machines. In some embodiments, computer system 1700 may execute programs such as hypervisors that facilitate the configuration and management of virtual machines. Memory, computing (e.g., processor, core), I / O, and networking resources may be allocated to each virtual machine. Each virtual machine typically runs independently of other virtual machines. Virtual machines typically run their own operating system, which may be the same as or different from the operating systems executed by other virtual machines executed by computer system 1700. Therefore, computer system 1700 may potentially run multiple operating systems simultaneously.

[0224] The communication subsystem 1724 provides an interface to other computer systems and networks. The communication subsystem 1724 serves as an interface for receiving data from the computer system 1700 and transmitting data to other systems. For example, the communication subsystem 1724 enables the computer system 1700 to establish a communication channel via the Internet to one or more client devices for receiving and sending information to the client devices.

[0225] The communication subsystem 1724 may support both wired and / or wireless communication protocols. In some embodiments, the communication subsystem 1724 may include radio frequency (RF) transceiver components, global positioning system (GPS) receiver components, and / or other components for accessing wireless voice and / or data networks, such as using cellular telephone technology, advanced data network technologies (such as 3G, 4G, or EDGE (Global Evolution Enhanced Data Rate), WiFi (IEEE 802.XX family of standards), or other mobile communication technologies, or any combination thereof). In some embodiments, as an addition to or alternative to the wireless interface, the communication subsystem 1724 may provide a wired network connection (e.g., Ethernet).

[0226] The communication subsystem 1724 can receive and transmit data in various forms. In some embodiments, among others, the communication subsystem 1724 can also receive input communications in the form of structured and / or unstructured data feeds 1726, event streams 1728, event updates 1730, etc. For example, the communication subsystem 1724 can be configured to receive (or send) data feeds 1726 in real time from users of social media networks and / or other communication services, such as real-time updates from one or more third-party information sources. feed, Updates, and / or web feeds such as rich site summary (RSS) feeds.

[0227] In some embodiments, the communication subsystem 1724 may be configured to receive data that may be inherently continuous or unbounded without a definite end, in the form of a continuous data stream, wherein the continuous data stream may include an event stream 1728 of real-time events and / or event updates 1730. Examples of applications that generate continuous data may include, for example, sensor data applications, financial quote machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, etc.

[0228] The communication subsystem 1724 can also be configured to transmit data from computer system 1700 to other computer systems or networks. Data can be transmitted in various forms (such as structured and / or unstructured data feeds 1726, event streams 1728, event updates 1730, etc.) to one or more databases, which can communicate with one or more streaming data source computers coupled to computer system 1700.

[0229] The computer system 1700 can be of a variety of types, including handheld portable devices (e.g., Cellular phone Computing tablets, PDAs), and wearable devices (e.g., Google). Head-mounted displays, personal computers, workstations, mainframes, information stations, server racks, or any other data processing systems. Due to the constantly evolving nature of computers and networks, [the following is relevant:] Figure 17 The description of the computer system 1700 depicted in the text is intended only as a concrete example. It has more than Figure 17 Many other configurations of the system with more or fewer components are possible. Based on the disclosure and teachings provided herein, those skilled in the art will understand other ways and / or methods to implement the various examples.

[0230] While specific examples have been described, various modifications, alterations, alternative constructions, and equivalents are possible. The examples are not limited to operations within certain specific data processing environments but can operate freely within multiple data processing environments. Furthermore, while some examples have been described using a specific series of transactions and steps, it will be apparent to those skilled in the art that this is not intended to be limiting. Although some flowcharts describe operations as sequential processes, many operations can be performed in parallel or simultaneously. Moreover, the order of operations can be rearranged. Processes may have additional steps not included in the diagrams. Various features and aspects of the above examples can be used individually or in combination.

[0231] Furthermore, while certain examples have been described using specific combinations of hardware and software, it should be recognized that other combinations of hardware and software are also possible. Some examples can be implemented using only hardware, only software, or a combination thereof. The various processes described herein can be implemented in any combination on the same or different processors.

[0232] When a device, system, component, or module is described as being configured to perform certain operations or functions, such configuration can be achieved, for example, by designing electronic circuits to perform the operations, by programming programmable electronic circuits (such as microprocessors), such as by executing computer instructions or code, or by programming a processor or core to execute code or instructions stored on a non-transitory storage medium, or any combination thereof. Processes can communicate using various technologies, including but not limited to conventional technologies for inter-process communication, and different pairs of processes can use different technologies, or the same pair of processes can use different technologies at different times.

[0233] Specific details are set forth in this disclosure to provide a thorough understanding of the examples. However, the examples can be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary details to avoid obscuring the examples. This description provides only illustrative examples and is not intended to limit the scope, applicability, or configuration of other examples. Rather, the prior description of the examples will provide those skilled in the art with enabling descriptions for implementing the various examples. Various changes can be made to the function and arrangement of the components.

[0234] Therefore, the specification and drawings should be considered illustrative rather than restrictive. However, it will be apparent that additions, omissions, deletions, and other modifications and alterations may be made therein without departing from the broader spirit and scope set forth in the claims. Thus, while specific examples have been described, they are not intended to be limiting. Various modifications and equivalents are within the scope of the appended claims.

[0235] In the foregoing description, aspects of this disclosure have been described with reference to specific examples therein; however, those skilled in the art will recognize that this disclosure is not limited thereto. The various features and aspects of the foregoing disclosure may be used alone or in combination. Furthermore, the examples may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Therefore, the specification and drawings are to be considered illustrative rather than restrictive.

[0236] In the foregoing description, the methods have been described in a specific order for illustrative purposes. It should be recognized that, in alternative examples, these methods may be performed in a different order than described. It should also be recognized that the methods described above can be executed by hardware components or implemented in a sequence of machine-executable instructions that can be used to cause a machine (such as a general-purpose or special-purpose processor or logic circuits programmed with instructions) to execute the methods. These machine-executable instructions may be stored on one or more machine-readable media, such as CD-ROMs or other types of optical discs, floppy disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable media suitable for storing electronic instructions. Alternatively, these methods may be executed by a combination of hardware and software.

[0237] When a component is described as being configured to perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., microprocessors or other suitable electronic circuits), or any combination thereof.

[0238] While illustrative examples of this application have been described in detail herein, it should be understood that the inventive concept may be implemented and adopted in other ways, and the appended claims are intended to be construed as including such variations, in addition to being limited by the prior art.

[0239] When a component is described as being “configured” to perform certain operations, such configuration can be accomplished, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., microprocessors, or other suitable electronic circuits), or any combination thereof.

Claims

1. A method comprising receiving, by a server computer comprising a processor and a memory, an input word comprising a first string of characters; determining, by the server computer, a first plurality of triplets of the input word; computing, by the server computer, a word embedding vector value for the determined first plurality of triplets; inputting, by the server computer, the word embedding vector value in a matrix; determining, by the server computer, a plurality of recent names, wherein the plurality of recent names are names having a second string of characters similar to the first string of characters of the input word; determining, by the server computer, a second plurality of triplets of the recent names; determining, by the server computer, a longest common subsequence between the first plurality of triplets of the input word and the second plurality of triplets of the recent names; computing, by the server computer, a classification value for the first plurality of triplets; updating, by the server computer, the matrix to include the computed classification value; and traversing, by the server computer, the updated matrix through a convolutional neural network to determine a classification of the input word, the updated matrix including the word embedding vector value and the classification value.

2. The method of claim 1, wherein the input word is a neologism.

3. The method of claim 1, wherein computing the classification value comprises: identifying the first plurality of triplets from the input word; identifying the second plurality of triplets from the recent names; comparing the first plurality of triplets from the input word to the second plurality of triplets from the recent names; and computing the classification value based on a number of matches between the first plurality of triplets in the input word and the second plurality of triplets from the recent names.

4. The method of claim 1, wherein computing the classification value comprises: initiating a counter for each of a plurality of classifications; selecting a first triplet from the first plurality of triplets of the input word; determining one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input word; determining a classification of the one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input word; incrementing the counter for each of the plurality of classifications corresponding to the determined classification of the one or more triplets from the second plurality of triplets of the recent names; and computing the classification value based on a value of the counter for a number of the determined recent names.

5. The method of claim 1, wherein the word embedding vector model is trained according to a type of the input word.

6. The method of claim 1, wherein the word embedding model is trained to compute a word embedding model vector value for a triplet.

7. The method of claim 1, wherein a triplet in the first plurality of triplets comprises three letters, characters, or symbols from the input word in a consecutive order.

8. The method of claim 1, wherein the server computer is a neologism classification server of a data enrichment system.

9. The method of claim 1, wherein after computing the vector value for the determined first plurality of triplets: initiating the matrix; and populating the matrix with the computed word embedding vector value. ​ ​ ​ 10. The method of claim 8, wherein the input term is received on an interactive user interface of a data enrichment system configured to enrich input terms.

11. The method of claim 10, wherein the interactive user interface is configured to display a recommendation to perform neologism classification for one or more input terms.

12. A server computer comprising: a processor; a memory; a computer-readable medium coupled to the processor, the computer-readable medium storing instructions capable of being executed by the processor for implementing a method comprising: receiving an input term comprising a first string; determining a first plurality of triplets of the input term; computing term embedding vector values for the determined first plurality of triplets; inputting the term embedding vector values in a matrix; determining a plurality of recent names, wherein the plurality of recent names are names having second strings similar to the first string of the input term; determining a second plurality of triplets of the recent names; determining a longest common subsequence between the first plurality of triplets of the input term and the second plurality of triplets of the recent names; computing a classification value for the first plurality of triplets; updating the matrix to include the computed classification value; and traversing the updated matrix comprising the term embedding vector values and the classification value through a convolutional neural network to determine a classification of the input term.

13. The server computer of claim 12, wherein the input term is a neologism.

14. The server computer of claim 12, wherein computing a classification value comprises: identifying the first plurality of triplets from the input term; identifying the second plurality of triplets from the recent names; comparing the first plurality of triplets from the input term to the second plurality of triplets from the recent names; and computing the classification value based on a number of matches between the first plurality of triplets in the input term and the second plurality of triplets from the recent names.

15. The server computer of claim 12, wherein computing a classification value comprises: initiating a counter for each of a plurality of classifications; selecting a first triplet from the first plurality of triplets of the input term; determining one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input term; determining a classification of the one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input term; incrementing the counter for each of the plurality of classifications corresponding to the determined classification of the one or more triplets from the second plurality of triplets of the recent names; and computing the classification value based on a value of the counter with respect to a number of the determined recent names.

16. The server computer of claim 12, wherein a term embedding model is trained to compute term embedding model vector values for triplets.

17. A non-transitory computer-readable medium comprising instructions configured to cause one or more processors of a server computer to perform operations comprising: receiving an input term comprising a first string; determining a first plurality of triplets of the input term; ​ ​ computing word embedding vector values for the determined first plurality of triplets; inputting the word embedding vector values in a matrix; determining a plurality of recent names, wherein the plurality of recent names are names having second strings similar to a first string of the input word; determining a second plurality of triplets of the recent names; determining a longest common subsequence between the first plurality of triplets of the input word and the second plurality of triplets of the recent names; computing a classification value for the first plurality of triplets; updating the matrix to include the computed classification value; and traversing the updated matrix through a convolutional neural network to determine a classification of the input word, the updated matrix including the word embedding vector values and the classification value.

18. The non-transitory computer-readable medium of claim 17, wherein the input word is a neologism.

19. The non-transitory computer-readable medium of claim 17, wherein computing a classification value comprises: identifying a first plurality of triplets from the input word; identifying a second plurality of triplets from the recent names; comparing the first plurality of triplets from the input word to the second plurality of triplets from the recent names; and computing the classification value based on a number of matches between the first plurality of triplets in the input word and the second plurality of triplets from the recent names.

20. The non-transitory computer-readable medium of claim 17, wherein computing a classification value comprises: initiating a counter for each of a plurality of classifications; selecting a first triplet from the first plurality of triplets of the input word; determining one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input word; determining a classification of the one or more triplets from the second plurality of triplets of the recent names that match the first triplet of the input word; incrementing the counter for each of the plurality of classifications corresponding to the determined classification of the one or more triplets from the second plurality of triplets of the recent names; and computing the classification value based on a value of the counter for a number of the determined recent names.

Citation Information

Patent Citations

  • Junk short message new word identification method and device and electronic equipment

    CN110909540A

  • Techniques for sentiment analysis of data using a convolutional neural network and a co-occurrence network

    US20180341839A1

  • Name matching engine boosted by machine learning

    US20210287069A1