Phonetic syllable-centric search
By using phonological indexing and approximate matching analysis, the problem of search inaccuracy caused by differences in transliteration and orthography in cross-language search was solved, achieving efficient and accurate cross-language search and reducing resource waste.
Patent Information
- Application Number
- CN202480027899.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-05-25
- Filing Date
- 2024-04-30
- Publication Date
- 2026-03-03
AI Technical Summary
Existing technologies suffer from inaccurate search results and wasted resources due to differences in transliteration and orthography in cross-language searches, especially when querying entity names, making it difficult to achieve efficient and accurate cross-language searches.
A phonology-centered approach is adopted to generate a phoneme index and perform approximate matching analysis. By utilizing the phoneme index and the inverted index database corresponding to orthography, cross-language search is achieved through fuzzy string comparison, reducing resource utilization.
It improves the accuracy and efficiency of cross-language search, reduces resource consumption, expands the search scope, and supports efficient searching in multilingual environments.
Smart Images

Figure CN121605397A_ABST
Abstract
Description
Background Technology
[0001] The ability to perform searches for proper nouns and locations using any language in a query brings many benefits, but also many challenges. For example, a user submits a query for proper nouns in Mandarin (e.g., Standard Mandarin) to a database containing documents in any language. The user would greatly benefit if the search tool could interpret the proper noun query in an orthographically agnostic way and perform fuzzy string comparisons to generate accurate search results that match the original query in an orthographically agnostic way (e.g., not limited to searching within the same orthography as the search query). However, the accuracy of transliteration between different languages and orthographic-based comparisons can introduce errors. Therefore, without additional processing, a user's search of a multilingual document database using a Mandarin query is likely to yield insufficient results.
[0002] Phonology is the branch of linguistics that studies how languages or dialects systematically organize their sounds. The term can also specifically refer to the phonological systems of a particular language or orthography, whether at the level below the word (including syllables, initials, finals, articulation postures, articulation features, prosody, etc.) or at all levels of language that construct sounds to convey linguistic meaning. Generally, "phonetic" refers to the study of overall speech, while "phonemic" refers to the study of specific sounds in certain languages. Accordingly, "phonetic" involves the physiological study of speech sounds across all languages, while "phonemic" involves the study of the distribution of specific sounds and how they are used within a particular language. A phoneme is a sound or a group of allophones perceived by the speaker of the language or dialect in question as having the same function. Summary of the Invention
[0003] In some respects, the technique described herein relates to a method for searching input lexical units of a search query in an inverted index database, the method comprising: generating a phoneme index for the input lexical units; performing approximate matching analysis on the content lexical units of the inverted index database based on the phoneme index of the input lexical units, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content lexical units and a first orthography, and a second inverted index corresponding to the phoneme variants of the content lexical units and a second orthography; and returning one or more search results based on the approximate matching analysis.
[0004] In some aspects, the technology described herein relates to a computational system for searching input lexical units of a search query in an inverted index database, the computational system comprising: one or more hardware processors; a phoneme indexer, executable by the one or more hardware processors and configured to generate phoneme indexes of the input lexical units; an approximate matching analyzer, executable by the one or more hardware processors and configured to perform approximate matching analysis on content lexical units of the inverted index database based on the phoneme indexes of the input lexical units, wherein the inverted index database includes a first inverted index corresponding to the phoneme indexes of the content lexical units and a first orthography, and a second inverted index corresponding to phoneme variants of the content lexical units and a second orthography; and a score modifier, executable by the one or more hardware processors and configured to return one or more search results based on the approximate matching analysis.
[0005] In some aspects, the techniques described herein relate to one or more tangible processor-readable storage media embodying instructions for executing a process on one or more processors and circuits of a computing device, the process of searching input lexical units for a search query in an inverted index database, the process including: generating a phoneme index of the input lexical units; performing approximate matching analysis on content lexical units of the inverted index database based on the phoneme index of the input lexical units, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content lexical units and a first orthography, and a second inverted index corresponding to phoneme variants of the content lexical units and a second orthography; and returning one or more search results based on the approximate matching analysis.
[0006] The present invention is provided to introduce a set of concepts in a simplified form. These concepts are further described in the detailed description below. The present invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.
[0007] This article also describes and documents other implementations. Attached Figure Description
[0008] Figure 1 An example search engine is shown for performing searches using phonology-centric indexing.
[0009] Figure 2 The components of a sample search engine using phonology-centric indexing are shown.
[0010] Figure 3 Example operations for generating phonology-centric indexes are shown.
[0011] Figure 4 An example operation for training a machine learning model for neurophone translation is shown.
[0012] Figure 5 Shows an example operation for performing a search using phonology - centered indexing.
[0013] Figure 6 Shows an example computing device for implementing the described technology. Detailed Description
[0014] The described technology provides a solution for indexing entity names using techniques well - suited for cross - language operation and storage, and for searching a database based on a search query, without being limited to the orthography of the search query or the content of the database. The associated problems have various characteristics. First, entity names (generally, e.g., personal names, countries, companies, products, or proper nouns) are a special type of token. These tokens are different from common nouns because they have few lexical relationships. For example, "Joe" has neither synonyms nor antonyms. Second, entity names in one language (especially personal names) are often transliterated (not translated) when borrowed across languages and are often referred to as "loanwords". For example, "Bill" is the Chinese "比尔" (pinyin: bi2er3), and its English and Chinese are phonetically similar. It can be seen that pronunciation tends to transfer from one language to another. Third, entity names are prone to spelling mistakes and variants. For example, the member "Rosé" from Blackpink (a K - pop group) may be spelled as "Rose" in a search query without the accent mark. Although these characteristics are related to entity names, the described technology is not strictly limited to entity names and can be applied to other types of words. Accordingly, there are various technical benefits (e.g., higher search accuracy, wider search scope, cross - orthography search) in a search engine that performs phonology - centered fuzzy search, where, referring to the search query and the database being searched, the search for entity names can be performed in a language - agnostic manner. Supporting such phonology - centered search also reduces resource utilization compared to performing translation and separate searches in different orthographies because multiple searches can be combined into a single search.
[0015] Most methods of fuzzy string comparison logic are orthographic-centric. They often involve the addition / deletion of morphemes or character-level arrangements, which can handle spelling errors, typos, and name variations to some extent. However, this technique is not designed for fuzzy string comparisons across different writing systems (such as in the context of cross-language search). Fuzzy matching, or approximate (string) matching, refers to a method that provides the ability to identify two elements of text, strings, or entries that are approximately similar (but not necessarily identical) and to determine how close the two distinct strings are, a measure of which can be represented by a score generated from approximate matching analysis (e.g., maximum speech sequence score or MPS score).
[0016] Therefore, the described technique provides a phonology-centric approach that leverages a deep understanding of language phonology and generalizes phoneme encoding by using phonetic lexical transcoding for each lexical unit (including, but not limited to, lexical units representing entity names, such as proper nouns). Furthermore, the described technique employs general phonological constraints to normalize the search index using a small number of phoneme simplifications, thereby producing multiple phoneme index representations that can be used in various languages.
[0017] Figure 1 An example search engine 100 is shown for performing searches using phonology-centric indexing. For example... Figure 1 As shown, search query 102 (containing the input word "bill" in the form of a Mandarin text string) is input to search engine 100 for searching a multilingual database (e.g., a multi-orthography database), represented as an inverted index database 104, which stores inverted indexes referencing identified content in different orthographic formats. In one implementation, the inverted index data structure can be in the form of a record-level inverted index, containing a list of references to content elements (e.g., documents) (including each word). In another implementation, the inverted index data structure can be in the form of a word-level inverted index, which also includes the position of each word within each content element (e.g., document). In one example, to create the inverted index, the text of each content element is first preprocessed by removing stop words, applying stemming, and normalizing the text using other techniques. The word is then added to the inverted index, where each word points to the content element in which it appears. The content itself can be stored in the same data store as the inverted index, or it can be stored in one or more separate data stores.
[0018] The inverted index database 104 includes an inverted fuzzy phoneme index (FPI) of lemmas in one or more languages, including inverted FPIs of the generated lemma variants corresponding to the source language and / or other languages of the lemmas. For example, the inverted index database 104 may include an inverted FPI of the term "Bill" generated from English as the source language, as well as other inverted FPIs of variants of "Bill" generated from English and / or variants of "Bill" generated from other languages such as Mandarin. One reason for recording the inverted FPIs of these variants is that the phoneme representations of "Bill" may vary slightly across different languages and even within the same language. For example, when generated from English, the FPI of Bill may be "p_l", while when generated from Mandarin, the presumably matching FPI of Bill may be " ". Note that there is a one-character difference between these variants, even though they represent the same entity name or concept. Thus, by supplementing the inverted FPI in the inverted index database 104 with the FPIs of the variants, a richer set of phoneme representations can be searched for the same entity name or concept.
[0019] Such searches may involve cross-orthography searches using phonology-centered indexing and fuzzy string comparison, which is a challenging operation, yet may also be useful for other applications, including but not limited to semantic processing, spam filtering, intrusion detection, and text and speech translation between different languages. In the case of a search engine, phonology-centered indexing and fuzzy string comparison can be used to efficiently classify and organize data during a search. This classification is at least partially done based on approximate string matching of the search query entity name with relevant keywords in the data being searched.
[0020] In the search engine 100, the phoneme indexer 106 generates a fuzzy phoneme index (FPI) corresponding to the input lemma. The FPI acts as a lookup key passed to the approximate match analyzer 108, which performs a fuzzy phoneme search (using the FPI) for the input lemma in the inverted index database 104. The inverted index database 104 includes an inverted index containing different fuzzy phoneme variants across multiple languages. In one implementation, for example, a user may submit a search query including the Mandarin lemma "乔", which is converted into the corresponding form of FPI " ". Then, the search engine 100 performs approximate string matching against the inverted index of different orthographic lemmas from the inverted index database 104 to score approximate matches of the search query.
[0021] Approximate matching analyzer 108 generates the maximum speech sequence (MPS) score between the FPI of the input word and the inverted index of the searched data referenced in inverted index database 104. The MPS score provides a measure of the similarity between the input word and the word referenced in inverted index database 104 on a per-phoneme basis. The approximately matched document can then be adjusted (e.g., filtered and / or ranked) based on the MPS score and fuzzy matching conditions (e.g., whether the MPS score of the search result exceeds a defined threshold). The adjusted search result can then be provided as orthographically independent search result 110.
[0022] In some implementations, MPS scores use speech representation and fuzzy matching to provide similarity metrics about lexical units. MPS scores can also be used for sorting, ranking, and / or filtering after approximate string matching is performed in post-processing operations before being presented as search results.
[0023] MPS scores can also be used to separate differences between two phoneme indices used in training a neural phoneme translation machine learning model. In this sense, the similarity between phoneme indices is masked, thus highlighting the differences between them. For example, when comparing “_m_n_j_l_” (the phoneme index corresponding to the English word Emmanuel) with “ When compared with the phoneme index corresponding to Emmanuel in Mandarin, the three training segments are obvious: [Where < indicates the beginning of a segment] > [where > indicates the end of the segment]
[0024] Figure 2 The components of a sample search engine 200, which uses phonology-centric indexing, are shown. For example... Figure 2 As shown, search query 202 (containing the input word "Bill" in the form of a Mandarin text string) is input into search engine 200 for searching a multilingual database represented by inverted index database 204.
[0025] Search query 202 is input to the speech converter 206 of search engine 200, which transcribes the input words into a speech representation 208, such as using the International Phonetic Alphabet (IPA), the Extended SAM Phonetic Alphabet (X-SAMPA), or some other universal symbol system that classifies sounds present in different languages around the world. Each non-diacritic character in the speech representation (e.g., IPA representation) can be considered a phoneme. In some such systems, each symbol corresponds to a phoneme (e.g., one phonetic symbol per sound). Speech conversion (e.g., speech transcription) is the process of transcribing words into phonetic symbols representing spoken sounds, thereby efficiently producing a textual representation of spoken language.
[0026] From the phonological representation 208 of the input lexical units, the phoneme indexer 210 generates a fuzzy phoneme index 212 of the input lexical units, such as by transcribing the phonological representation 208 into a fuzzy phoneme index (FPI)—a per-phoneme representation of the input lexical units. For example, the table below presents an example of converting the original text of the input lexical units into an FPI: Table 1 – English names for Bill, Joe, and Emmanuel
[0027] The corresponding fuzzy phoneme indices for other variants (e.g., within the same orthography or in different orthography) are generally expected to be very similar to these FPIs for the same entity name or word, thus enabling efficient fuzzy comparisons between FPIs of lexical units corresponding to different orthography. For example, the FPIs of the lexical units listed in Table 1 above are approximately mapped (if not completely mapped) to the FPIs of the same entity names in Table 2 (each row in Table 1 corresponds to the same entity name as the same row in Table 2): Table 2 – Bill, Joe, Emmanuel in Mandarin
[0028] By converting each lexical unit into a fuzzy phoneme index, the similarity of phonemic features within the same entity name and the phonemic differences between different entity names are highlighted. Accordingly, although most obvious in the first row of data in each table, the FPI of each entity name is considered more similar between English and Mandarin than the FPI of different entity names, thus allowing fuzzy similarity / difference analysis to separate the FPI of the same entity name from the FPI of different entity names in a way that is independent of orthography.
[0029] In one implementation, the phoneme indexer 210 may perform one or more of the following operations when generating the index, some of which bias the resulting phoneme index toward the pronunciation in the corresponding orthography, although alternative operations may also be performed sequentially: Preserve the spaces / pauses between name morphemes (otherwise, fold the spaces / pauses in the pronunciation). Remove accent marks and tone marks Bilabial and labiodental nasal consonants (e.g., [m] and [ɱ]) are transcribed as / m / , and other nasal consonants are transcribed as / n / . Folding repetitive clusters of the same phoneme (e.g., for indexing purposes, [mmii] becomes / mi / ). Replace vowels and vowel clusters with a single underscore (_). Elimination of consonant clusters A double consonant cluster, in which the two consonants are distinct—an underscore is added between the two consonants (for example, the [lp] in the word "help" becomes / l_p / ). A double consonant cluster, in which two consonants are the same, such as in the phrase "big-game"—combining two adjacent [gg] consonants (e.g., [gg] becomes / g / ). N-consonant clusters—remove the middle consonant and add an underscore (_) between the first and last consonants of the cluster (e.g., [lvz] in "yourselves" becomes / l_z / ). Replace voiced consonants with voiceless consonants (for example, in "days", [d] becomes / t / , [z] becomes / s / ; apply the rule: "days" [daiz] → / t_s / ).
[0030] Approximate matching analyzer 214 (also known as a fuzzy string searcher) accesses inverted index database 204 to find approximate matches of the fuzzy phoneme index 212 (FPI) by comparing it with inverted indexes within inverted index database 204 and scores them. This effectively provides a random access lookup of the fuzzy phoneme index of the input word 212 through inverted index database 204, thus producing candidates for approximate matching analyzer 214. Approximate matching analyzer 214 generates an MPS score 216 to characterize the degree of match between the FPI of the input word and the individual inverted FPIs stored in inverted index database 204. In at least one implementation, approximate matching analyzer 214 removes diacritics before calculating the score.
[0031] The score regulator 218 categorizes, ranks, and / or filters matches based on the MPS score 216 and fuzzy matching conditions (e.g., whether the MPS score of the search result exceeds a defined threshold). Subsequently, the score regulator 218 outputs some or all of the matching search results as orthographically agnostic search results 220, which can be returned in response to the search query 202, such as for presentation to the user or for supplementary processing.
[0032] The MPS score and the operation of the approximate matching analyzer 214 provide additional details. The concept of Maximum Speech Sequence (MPS) is related to similarity and difference metrics that may serve the same problem domain. However, such metrics are geared towards orthographic string similarity. MPS extends these concepts by considering character similarity through per-phoneme approximate matching.
[0033] The following content represents example MPS scores and phoneme alignments for two lexical units: Lexical A IPA: Lexical element B IPA:
[0034] Furthermore, when MPS is fed with speech representation, phoneme similarity is controlled by the sound of each pair of phonemes, rather than by orthographic similarity, which solves the following problems: Fuzzy indexing generates a large number of false negatives By utilizing MPS scores, false positives and low-scoring matches are filtered out and / or ranked to the bottom. MPS provides a more accurate similarity metric than other similarity / difference methods.
[0035] In at least one implementation, the approximate matching analyzer 214 implements fuzzy comparison functions, such as: Compare(ipa1, ipa2, comparator) Where ipa1 represents the FPI of the first term (such as the input term in a search query), ipa2 represents the FPI of the second term (such as the term in a document in a multilingual database), and comparator represents the executable program code used to perform approximate matching analysis and produce MPS scores for the two terms.
[0036] Accordingly, after vectorizing each speech representation of each word into a phoneme embedding, the `Compare()` function uses the `comparator()` function passed as an argument to perform per-phoneme similarity calculations. The phoneme embeddings of each phoneme in each word are compared for similarity using their relative positions within the other string. However, phonemes are not simply compared for equality via Boolean logic. Instead, the embeddings of two phonemes in the phoneme strings are compared via a comparator function. In short, a similarity function for each speech representation of a phoneme and its corresponding phoneme embedding in another comparison string results in an MPS score that measures this similarity between each pair of phonemes. These per-phoneme scores are summed, and the resulting MPS scores are averaged using the `Compare()` function, which then divides the sum by the number of candidate phonemes in the word. The phoneme comparator itself is the argument to the comparison function. Phoneme embeddings are considered similar when the comparator function deems them similar.
[0037] A standard comparator function is defined by cosine similarity as follows:
[0038] By using a single bitwise integer to represent the vector, processing overhead is simplified, eliminating the need for actual arrays and thus reducing or minimizing object instantiation. This compact representation is designed to tune the performance of the approximate matching analyzer 214.
[0039] Each Compare() call returns two scores: 1. Speech fidelity score (0 to 10000), with no relaxation in phonological and orthographic constraints. 2. Score for relaxed constraints (0 to 10000)
[0040] In some implementations, two scores can be compared at two levels: 1. character_granularity: cosine similarity (-1.0 <= similarity <= 1.0) / / Jaccard, cosine, or other: normalized to 0-10000 2. string_granularity: The score is the sum of the character similarities for each segment / / the average score of all characters.
[0041] A comparator is a function that provides a score indicating the similarity between two phonemes. For example, phonemes were initially represented as IPA (International Phonetic Alphabet), and later as phoneme embeddings represented as bit arrays. For compactness and performance, each phoneme embedding is represented as an unsigned integer (here, the number of bits that make up the unsigned integer determines the dimension of the phoneme embedding. Since modern computing systems support 128-bit integers, the dimension supported in unsigned integers is sufficient to represent as many features as would be needed to represent individual phonemes).
[0042] Cosine similarity, Jaccard similarity, or a custom comparator are passed as function arguments to the Compare() function using dependency injection. In some implementations, any similarity method can be utilized.
[0043] Below is a pseudocode example of the comparator() function, although other implementations are also possible: functionCosineSimilarity(featureVector1, featureVector2): uint16: if featureVector1 = 0: return 0 if featureVector2 = 0: return 0 if featureVector1 = featureVector2: return 10000 var c = cosine(featureVector1, featureVector2) # Values between -1.0 and 1.0 if c <= 0.0: return 0 return c 10000 # Normalizes the value to an integer between 0 and 10000 #Where 10000 represents 1.0 [or 100% match] functionJaccard(featureVector1, featureVector2): uint16: if featureVector1 = 0 return 0 if featureVector2 = 0 return 0 if featureVector1 = featureVector2 return 10000 var size1 = sizeof(featureVector1) var size2 = sizeof(featureVector2) var size = Max(size1, size2) bit = 1 both = 0 either = 0 for position = 1 to size: found = false if (position<= size1) and (bit&featureVector1 = bit): found = true if (position<= size2) and (bit&featureVector2 = bit): if found = true: both = both + 1 found = true if found = true: either = either + 1 bit = bit<<1 # left-shift the bit return (10000 `both` / `either`; # Normalizes the value to an integer between 0 and 10000.
[0044] A description of an example approximate matching analysis (e.g., using a fuzzy comparison algorithm) is provided. In this example: if English words are... e With Chinese word elements c To make a comparison, the following steps can be performed: Transliterated as IPA: e = "Bill" c = Bill e _ipa = TextToIPA(e, “en”)# e _ipa = # English language code = "en" c _ipa = TextToIPA(c, “zh”) # c _ipa = # Chinese language code = "zh" Remove diacritics and all spaces outside word boundaries: e x_ipa = NormalizeAndSimplify(e_ipa) # e x_ipa = c x_ipa = NormalizeAndSimplify (c_ipa) # c x_ipa = score = Compare(ex_ipa, cx_ipa, Jaccard) # Dependency injection (e.g., controlling the inverted index) to pass in a per-character comparison
[0045] Figure 3 Example operation 300 for generating a phonology-centric index is shown. Operation 300 presents a pipeline for generating an inverted index corresponding to lexical units of a searched database using multiple orthographic methods, and operations 304 and 306 can also be used to generate phoneme indexes for input lexical units of a search query. The pipeline generates a phoneme index for each input lexical unit using its orthographic method, and can further generate phoneme indexes for one or more phoneme variants of the input lexical units using other orthographic methods. These phoneme indexes are used as keys in the inverted indexes of the searched database corresponding to different orthographic methods.
[0046] Input lexicon 302, language ID, and record ID are input to conversion operation 304, which converts input lexicon 302 into a phonetic representation, such as an IPA. The language ID identifies the orthography of the input lexicon record, while the record ID uniquely identifies the record itself. Transcription operation 306 transcribes the phonetic representation of input lexicon 302 into a phoneme index. The phoneme index of input lexicon 302 is used as the key for the inverted index of the corresponding orthography.
[0047] The variant generation operation 310 uses a neural phoneme translation machine learning model 312 to generate phoneme variants for each supported language. The neural phoneme translation machine learning model 312 is trained using known phoneme index pairs corresponding to different orthographies. The phoneme index pairs train the neural phoneme translation machine learning model 312 to generate phoneme variants of the same token, such as those shown in Tables 1 and 2. The indexing operation 316 generates phoneme indexes for the input token and the phoneme variants of the input token.
[0048] The input token index, or the input token index and the index for any phoneme variant, is input to the association operation 318, which associates one or more indexes with the record ID of the input token. The update operation 320 updates the inverted index database 322 using the information contained in the phoneme indexes generated by operations 306 and 316.
[0049] The index of the search query token is input into an approximate match analyzer (e.g., a fuzzy searcher), which then finds an approximate match for the index of the search query token against the inverted index in the database being searched and scores it.
[0050] Figure 4 An example operation 400 for training a neural phoneme translation machine learning model is shown. The training process uses known language pairs to train a neural phoneme translation machine learning model configured to generate phoneme variants of an input token in inference mode. Thus, a source token 402 (along with an associated language identifier and record identifier) and a target token 404 (along with an associated language identifier and record identifier). The source token 402 and the target token 404 are phoneme variants of each other. For example, the source token 402 may correspond to English language text ("Bill"), while the target token 404 may correspond to Mandarin language text ("比尔"). The language of each token is identified by a language identifier, and each token is associated with a unique record identifier to help manage the various token records.
[0051] The conversion operation 406 converts the source token 402 and the target token 404 into corresponding speech representations, such as IPA. In some implementations, these representations may be aligned at syllable, word, and / or pause boundaries. The transcription operation 408 transcribes the source token 402 and the target token 404 into corresponding phoneme inverted indexes, such as those described in reference Figure 3 The representations output from the transcription operation 408 are input to the training operation 412, which trains the neural phoneme translation machine learning model 414 to generate variants of the input token, such as those described in reference Figure 3 所描述的。
[0052] Figure 5Example operation 500 is shown for performing a search using phonology-centric indexing. Operation 500 presents an example implementation for searching input lexical units of a search query in an inverted index database. Generation operation 502 generates a phoneme index for the input lexical units. In some implementations, generation operation 502 may include converting the input lexical units into a phonetic representation and / or transcribing the phonetic representation of the input lexical units into a phoneme index of the input lexical units. For example, as part of a query, the input lexical unit “bill” in the form of a Mandarin text string is converted into a phonetic representation (e.g., in IPA format) and then transcribed into the corresponding phoneme index “bill” corresponding to Mandarin. In another example, the input word “Bill” in the form of an English text string is converted into a phonetic representation (e.g., in IPA format) and then transcribed into the corresponding phoneme index “p_l” in English. Note that the two phoneme indices are similar, but they do not need to be exactly the same, because approximate matching analysis (e.g., “fuzzy search”) can detect similarity and score it.
[0053] Approximate matching operation 504 performs approximate matching analysis on content words in an inverted index database based on the phoneme index of the input word. The inverted index database includes a first inverted index corresponding to the phoneme index of the content word and a first orthography, and a second inverted index corresponding to the phoneme variants of the content word and a second orthography. In some implementations, approximate matching operation 504 also performs: aligning the positions of phonemes in the input word with the positions of corresponding phonemes in each content word; comparing the phoneme embeddings corresponding to each phoneme of the input word with the phoneme embeddings of the corresponding phonemes of each content word; and / or generating a score for each content word based on per-phoneme similarity analysis with the input word, where the score represents a combination of similarity measurements between the phoneme embeddings corresponding to each phoneme of the input word and the phoneme embeddings of each corresponding phoneme of the compared content word.
[0054] Return operation 506 returns the search results from approximate matching operation 504. Return operation 506 can also sort, rank, and / or filter the search results based on the score obtained from approximate matching operation 504.
[0055] Figure 6An example computing device 600 for implementing the described technology is shown. The computing device 600 can be a client computing device (such as a laptop, desktop, or tablet computer), a server / cloud computing device, an Internet-of-Things (IoT) device, any other type of computing device, or a combination of these options. The computing device 600 includes one or more processors 602 and memory 604. Memory 604 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., flash memory), although one or more types of memory may be omitted. An operating system 610 resides in memory 604 and is executed by processor(s) 602. In some implementations, the computing device 600 includes and / or is communicatively coupled to a storage device 620.
[0056] In example computing device 600, such as Figure 6 As shown, one or more modules or segments (such as application 650, search engine, phoneme indexer, approximation matching analyzer, speech converter, score modulator, neurophoneme translation machine learning model, and other program code and modules) are loaded into operating system 610 on memory 604 and / or storage device 620 and executed by processor(s) 602. Storage device 620 may store search queries, input lexical units, speech representations, phoneme indexes, inverted index databases, approximation matching scores (e.g., maximum speech sequence score or MPS score), orthographically agnostic search results, phoneme variants, language IDs, record IDs, and other data, and may be local to computing device 600 or may be remote and communicatively connected to computing device 600. Specifically, in one implementation, the components of the system for searching the input lexical units of the search query in the inverted index database may be implemented entirely in hardware or in a combination of hardware circuitry and software.
[0057] The computing device 600 includes a power supply 616, which may include or be connected to one or more batteries or other power sources and provides power to other components of the computing device 600. The power supply 616 may also be connected to an external power source that overlays or charges a built-in battery or other power source.
[0058] Computing device 600 may include one or more communication transceivers 630, which may be connected to one or more antennas 632 to provide network connectivity (e.g., mobile phone networks, Wi-Fi®, Bluetooth®) to one or more other servers, client devices, IoT devices, and other computing and communication devices. Computing device 600 may also include a communication interface 636 (such as a network adapter or I / O port of a communication device type). Computing device 600 may use adapters and any other type of communication device to establish connections over a wide area network (WAN) or local area network (LAN). It should be understood that the network connections shown are exemplary, and other communication devices and components used to establish communication links between computing device 600 and other devices may be used.
[0059] The computing device 600 may include one or more input devices 634, allowing users to input commands and information (e.g., a keyboard, trackpad, or mouse). These and other input devices may be coupled to a server via one or more interfaces 638, such as a serial port interface, a parallel port, or a universal serial bus (USB). The computing device 600 may also include a display 622, such as a touchscreen display.
[0060] Computing device 600 may include various tangible processor-readable storage media and intangible processor-readable communication signals. Tangible processor-readable storage can be embodied by any available medium that can be accessed by computing device 600 and can include both volatile and non-volatile storage media as well as removable and non-removable storage media. Tangible processor-readable storage media do not include intangible communication signals (such as signals themselves) and include volatile and non-volatile storage media, removable and non-removable storage media implemented in any method or technology for storing information (such as processor-readable instructions, data structures, program modules, or other data). Tangible processor-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage devices, magnetic tape, magnetic tape, disk storage devices or other magnetic storage devices, or any other tangible medium that can be used to store desired information and can be accessed by computing device 600. In contrast to tangible processor-readable storage media, intangible processor-readable communication signals can embody processor-readable instructions, data structures, program modules, or other data residing in modulated data signals (such as carrier waves or other signal transmission mechanisms). The term "modulated data signal" means a signal that has one or more characteristics set or altered in a way that encodes information in the signal. As an example and not a limitation, intangible communication signals include signals that propagate through wired media (such as wired networks or direct wired connections) and wireless media (such as acoustic media, RF media, infrared media, and other wireless media).
[0061] Clause 1: A method for searching input words of a search query in an inverted index database, the method comprising: generating a phoneme index for the input words; performing an approximate matching analysis of content words in the inverted index database based on the phoneme index of the input words, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content words and a first orthography, and a second inverted index corresponding to the phoneme variants of the content words and a second orthography; and returning one or more search results based on the approximate matching analysis.
[0062] Clause 2: The method according to Clause 1, wherein performing approximate matching analysis comprises: comparing the phoneme embedding of each phoneme corresponding to an input word with the phoneme embedding of each phoneme of each content word; and generating a score for each content word based on per-phoneme similarity analysis with the input word, wherein the score represents a combination of similarity measurements between the phoneme embedding corresponding to each phoneme of the input word and the phoneme embeddings of each corresponding phoneme of each content word being compared.
[0063] Clause 3: The method described in Clause 1 further includes: generating a phoneme index for a first content lexicon corresponding to the first orthography; and adding the phoneme index of the first content lexicon under the first orthography to the inverted index corresponding to the first orthography in the inverted index database.
[0064] Clause 4: The method described in Clause 1 further includes: using a neurophoneme translation machine learning model to generate phoneme variants of a first content lexical corresponding to a second orthography, the neurophoneme translation machine learning model being trained using phoneme index pairs corresponding to different orthography.
[0065] Clause 5: The method described in Clause 4, wherein the generation further includes: biasing the phoneme variant of the first content lexicon toward the pronunciation of the second orthography.
[0066] Clause 6: The method described in Clause 1 further includes: generating a phoneme index for phoneme variants of the first content lexicon corresponding to the second orthography; and adding the phoneme index of the first content lexicon corresponding to the second orthography to the inverted index database corresponding to the second orthography.
[0067] Clause 7: The method according to Clause 1, wherein generating a phoneme index for an input lexicon comprises: converting the input lexicon into a speech representation; and transcribing the speech representation of the input lexicon into a phoneme index of the input lexicon.
[0068] Clause 8: A computational system for searching input lexical units of a search query in an inverted index database, the computational system comprising: one or more hardware processors; a phoneme indexer, executable by the one or more hardware processors and configured to generate a phoneme index from the input lexical units; an approximate matching analyzer, executable by the one or more hardware processors and configured to perform approximate matching analysis on content lexical units of the inverted index database based on the phoneme index of the input lexical units, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content lexical units and a first orthography, and a second inverted index corresponding to phoneme variants of the content lexical units and a second orthography; and a score modifier, executable by the one or more hardware processors and configured to return one or more search results based on the approximate matching analysis.
[0069] Clause 9: The computational system according to Clause 8, wherein the approximate matching analyzer is further configured to: compare the phoneme embedding of each phoneme corresponding to the input word with the phoneme embedding of each phoneme of each content word; and generate a score for each content word based on per-phoneme similarity analysis with the input word, wherein the score represents a combination of similarity measurements between the phoneme embeddings corresponding to each phoneme of the input word and the phoneme embeddings of each corresponding phoneme of each content word compared to the phoneme embedding of each content word.
[0070] Clause 10: The computing system according to Clause 8, wherein the phoneme indexer is further configured to generate a phoneme index of a first content word corresponding to the first orthography, and to add the phoneme index of the first content word under the first orthography to the inverted index corresponding to the first orthography in the inverted index database.
[0071] Clause 11: The computing system pursuant to Clause 8 further includes: a neurophoneme translation machine learning model, executable by one or more hardware processors and configured to generate phoneme variants of a first content lexical corresponding to a second orthography, wherein the neurophoneme translation machine learning model is trained using phoneme index pairs corresponding to different orthography.
[0072] Clause 12: The computing system according to Clause 11, wherein the phoneme indexer is further configured to bias the phoneme variant of the first content lexicon toward the pronunciation of the second orthography.
[0073] Clause 13: The computing system according to Clause 8, wherein the phoneme indexer is further configured to generate a phoneme index for a phoneme variant of a first content lexicon corresponding to the second orthography, and to add the phoneme index of the first content lexicon corresponding to the second orthography to the inverted index database corresponding to the second orthography.
[0074] Clause 14: The computing system according to Clause 8 further includes: a speech converter, which may be executed by one or more hardware processors and is configured to convert input lexical units into speech representations, wherein the phoneme indexer is further configured to transcribe the speech representations of the input lexical units into phoneme indexes of the input lexical units.
[0075] Clause 15: One or more tangible processor-readable storage media containing instructions for performing a process on one or more processors and circuits of a computing device, the process comprising: searching an input lexicon of a search query in an inverted index database; generating a phoneme index for the input lexicon; performing an approximate matching analysis of the content lexicon of the inverted index database based on the phoneme index of the input lexicon, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content lexicon and a first orthography, and a second inverted index corresponding to the phoneme variant of the content lexicon and a second orthography; and returning one or more search results based on the approximate matching analysis.
[0076] Clause 16: One or more tangible processor-readable storage media as described in Clause 15, wherein performing approximate matching analysis comprises: comparing the phoneme embedding corresponding to each phoneme of an input word with the phoneme embedding of each phoneme of each content word; and generating a score for each content word based on per-phoneme similarity analysis with the input word, wherein the score represents a combination of similarity measurements between the phoneme embedding corresponding to each phoneme of the input word and the phoneme embeddings compared for each corresponding phoneme of each content word.
[0077] Clause 17: One or more tangible processor-readable storage media as described in Clause 15, wherein the process further comprises: generating a phoneme index for a first content lexicon corresponding to a first orthography; and adding the phoneme index of the first content lexicon under the first orthography to an inverted index corresponding to the first orthography in an inverted index database.
[0078] Clause 18: One or more tangible processor-readable storage media as described in Clause 15, wherein the process further comprises: using a neurophoneme translation machine learning model to generate phoneme variants of a first content lexical corresponding to a second orthography, the neurophoneme translation machine learning model being trained using phoneme index pairs corresponding to different orthography.
[0079] Clause 19: One or more tangible processor-readable storage media as described in Clause 18, wherein generation includes: biasing a phoneme variant of a first content lexicon toward the pronunciation of a second orthography.
[0080] Clause 20: One or more tangible processor-readable storage media as described in Clause 15, wherein the process further comprises: generating a phoneme index for a phoneme variant of a first content lexicon corresponding to the second orthography; and adding the phoneme index of the first content lexicon corresponding to the second orthography to an inverted index corresponding to the second orthography in an inverted index database.
[0081] Clause 21: A system for searching input lexical units of a search query in an inverted index database, the system comprising: components for generating a phoneme index for the input lexical units; components for performing approximate matching analysis of content lexical units in the inverted index database based on the phoneme index of the input lexical units, wherein the inverted index database includes a first inverted index corresponding to the phoneme index of the content lexical units and a first orthography, and a second inverted index corresponding to phoneme variants of the content lexical units and a second orthography; and components for returning one or more search results based on the approximate matching analysis.
[0082] Clause 22: The system according to Clause 21, wherein the components for performing approximate matching analysis include: components for comparing the phoneme embeddings corresponding to each phoneme of the input word with the phoneme embeddings of each phoneme of each content word; and components for generating a score for each content word based on per-phoneme similarity analysis with the input word, wherein the score represents a combination of similarity measurements between the phoneme embeddings corresponding to each phoneme of the input word and the phoneme embeddings of each corresponding phoneme of each content word being compared.
[0083] Clause 23: The system according to Clause 21 further includes: a component for generating a phoneme index for a first content lexicon corresponding to the first orthography; and a component for adding the phoneme index of the first content lexicon under the first orthography to an inverted index corresponding to the first orthography in an inverted index database.
[0084] Clause 24: The system according to Clause 21 further includes: a component for generating phoneme variants of a first content lexical unit corresponding to a second orthography using a neurophoneme translation machine learning model, the neurophoneme translation machine learning model being trained using phoneme index pairs corresponding to different orthography.
[0085] Clause 25: The system according to Clause 24, wherein the component for generating further includes: a component for biasing the phoneme variant of the first content word toward the pronunciation of the second orthography.
[0086] Clause 26: The system according to Clause 21 further includes: a component for generating a phoneme index for a phoneme variant of a first content word corresponding to the second orthography; and a component for adding the phoneme index of the first content word corresponding to the second orthography to an inverted index corresponding to the second orthography in an inverted index database.
[0087] Clause 27: The system according to Clause 21, wherein the components for generating a phoneme index for an input lexical include: components for converting the input lexical into a speech representation; and components for transcribing the speech representation of the input lexical into a phoneme index of the input lexical.
[0088] Some implementations may include articles of manufacture that do not include the software itself. Articles of manufacture may include tangible storage media for storing logic and / or data. Examples of storage media may include one or more types of computer-readable storage media capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. Examples of logic may include various software elements such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, operation fragments, methods, procedures, software interfaces, application programming interfaces (APIs), instruction sets, computational code, computer code, code fragments, computer code fragments, words, values, symbols, or any combination thereof. For example, in one implementation, the article of manufacture may store executable computer program instructions that, when executed by a computer, cause the computer to perform methods and / or operations according to the described embodiments. Executable computer program instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, etc. Executable computer program instructions can be implemented using a predefined computer language, method, or syntax that instructs the computer to perform a segment of operations. These instructions can be implemented using any suitable high-level, low-level, object-oriented, visual, compiled, and / or interpreted programming language.
[0089] The implementation described herein is implemented as logical steps in one or more computer systems. Logical operations can be implemented as: (1) a series of processor-implemented steps executed in one or more computer systems; and (2) machine or circuit modules interconnected within one or more computer systems. Implementation is a matter of choice, depending on the performance requirements of the computer system utilized. Accordingly, the logical operations constituting the implementation described herein are referred to differently as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations can be performed in any order unless otherwise expressly stated or the language of the claims itself requires a specific order.
Claims
1. A method (500) for searching input terms (402) (302) of a search query (202) (102) in an inverted index database (204) (104), the method comprising: Generate (502) a phoneme index for the input lexicon (402) (302); Based on the phoneme index for the input word (402) (302), an approximate matching analysis (504) is performed on the content word of the inverted index database (204) (104), wherein the inverted index database (204) (104) includes a first inverted index corresponding to the phoneme index of the content word and the first orthography, and a second inverted index corresponding to the phoneme variant of the content word and the second orthography; as well as Based on the approximate matching analysis, one or more search results (506) are returned.
2. The method of claim 1, wherein performing the approximate matching analysis comprises: The phoneme embedding corresponding to each phoneme for the input word unit is compared with the phoneme embedding for each phoneme for each content word unit; as well as Based on per-phoneme similarity analysis with the input word, a score is generated for each content word, wherein the score represents a combination of similarity measurements between the phoneme embedding corresponding to each phoneme of the input word and the phoneme embedding of each corresponding phoneme of the compared content word.
3. The method according to claim 1, further comprising: Generate a phoneme index for the first content word unit corresponding to the first orthography; as well as The phoneme index for the first content word under the first orthography is added to the inverted index database corresponding to the first orthography.
4. The method according to claim 1, further comprising: A neurophone translation machine learning model is used to generate phoneme variants of the first content lexicon corresponding to the second orthography. The neurophone translation machine learning model is trained using phoneme index pairs corresponding to different orthography.
5. The method of claim 4, wherein the generation further comprises: The phoneme variant of the first content word is biased toward the pronunciation of the second orthography.
6. The method according to claim 1, further comprising: Generate the phoneme index for the phoneme variant of the first content word corresponding to the second orthography; as well as The phoneme index for the first content word corresponding to the second orthography is added to the inverted index database corresponding to the second orthography.
7. The method of claim 1, wherein generating the phoneme index for the input lexical comprises: Convert the input words into speech representations; as well as The phonetic representation of the input word is transcribed into a phoneme index for the input word.
8. A computing system (600) for searching input terms (402) (302) of a search query (202) (102) in an inverted index database (204) (104), the computing system (600) comprising: One or more hardware processors (602); A phoneme indexer (210) (106), executed by the one or more hardware processors (602), is configured to: generate (502) a phoneme index for the input lexicon (402) (302); An approximate matching analyzer (214) (108), executed by the one or more hardware processors (602), is configured to perform (504) approximate matching analysis on the content words of the inverted index database (204) (104) based on the phoneme index for the input word (402) (302), wherein the inverted index database (204) (104) includes a first inverted index corresponding to the phoneme index of the content word and a first orthography, and a second inverted index corresponding to the phoneme variant of the content word and a second orthography; as well as The score regulator (218), executed by the one or more hardware processors (602), is configured to return (506) one or more search results based on the approximate matching analysis.
9. The computing system of claim 8, wherein the approximate matching analyzer is further configured to: The phoneme embedding corresponding to each phoneme for the input word unit is compared with the phoneme embedding for each phoneme for each content word unit; and Based on per-phoneme similarity analysis with the input word, a score is generated for each content word, wherein the score represents a combination of similarity measurements between the phoneme embedding corresponding to each phoneme of the input word and the phoneme embedding of each corresponding phoneme of the compared content word.
10. The computing system of claim 8, wherein the phoneme indexer is further configured to: generate a phoneme index of a first content word corresponding to the first orthography, and add the phoneme index of the first content word under the first orthography to the inverted index database corresponding to the first orthography.
11. The computing system according to claim 8, further comprising: A neurophone translation machine learning model, executed by the one or more hardware processors, is configured to generate phoneme variants of a first content lexical unit corresponding to the second orthography, wherein the neurophone translation machine learning model is trained using phoneme index pairs corresponding to different orthography.
12. The computing system of claim 11, wherein the phoneme indexer is further configured to: bias the phoneme variant of the first content lexicon toward the pronunciation of the second orthography.
13. The computing system of claim 8, wherein the phoneme indexer is further configured to: generate the phoneme index for a phoneme variant of a first content word corresponding to the second orthography, and add the phoneme index for the first content word corresponding to the second orthography to the inverted index database corresponding to the second orthography.
14. The computing system according to claim 8, further comprising: A speech converter, executed by the one or more hardware processors, is configured to convert the input lexical into a speech representation, wherein the phoneme indexer is further configured to transcribe the speech representation of the input lexical into a phoneme index for the input lexical.
15. One or more tangible processor-readable storage (620) media containing instructions for executing a process (500) on one or more processors (602) and circuitry of a computing device (600), the process (500) searching for input terms (402) (302) of a search query (202) (102) in an inverted index database (204) (104), the process (500) comprising: Generate (502) as a phoneme index for the input lexical (402) (302); Based on the phoneme index for the input word (402) (302), an approximate matching analysis (504) is performed on the content word of the inverted index database (204) (104), wherein the inverted index database (204) (104) includes a first inverted index corresponding to the phoneme index of the content word and the first orthography, and a second inverted index corresponding to the phoneme variant of the content word and the second orthography; as well as Based on the approximate matching analysis, one or more search results (506) are returned.
16. One or more tangible processor-readable storage media according to claim 15, wherein performing the approximate matching analysis comprises: The phoneme embedding corresponding to each phoneme for the input word unit is compared with the phoneme embedding for each phoneme for each content word unit; as well as Based on per-phoneme similarity analysis with the input word, a score is generated for each content word, wherein the score represents a combination of similarity measurements between the phoneme embedding corresponding to each phoneme of the input word and the phoneme embedding of each corresponding phoneme of the compared content word.
17. One or more tangible processor-readable storage media according to claim 15, wherein the process further comprises: Generate a phoneme index for the first content word unit corresponding to the first orthography; as well as The phoneme index for the first content word under the first orthography is added to the inverted index database corresponding to the first orthography.
18. One or more tangible processor-readable storage media according to claim 15, wherein the process further comprises: A neurophone translation machine learning model is used to generate phoneme variants of the first content lexicon corresponding to the second orthography. The neurophone translation machine learning model is trained using phoneme index pairs corresponding to different orthography.
19. One or more tangible processor-readable storage media according to claim 18, wherein the generation comprises: The phoneme variant of the first content word is biased toward the pronunciation of the second orthography.
20. One or more tangible processor-readable storage media according to claim 15, wherein the process further comprises: Generate the phoneme index for the phoneme variant of the first content word corresponding to the second orthography; as well as The phoneme index for the first content word corresponding to the second orthography is added to the inverted index database corresponding to the second orthography.