Systems, methods, and computer program products for generating an enhanced n-gram model

By inserting placeholders into strings and using an n-ary distance scoring model and weighted probability scores, the problems of false negatives and false positives in string matching in existing technologies are solved, thereby improving the accuracy and efficiency of data processing systems.

CN113661486BActive Publication Date: 2025-12-16VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080016597.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-03
Filing Date
2020-05-04
Publication Date
2025-12-16
Estimated Expiration
2040-05-04

AI Technical Summary

Technical Problem

Existing string matching technologies suffer from false negatives and false positives when identifying similarity, leading to increased computation time and efficiency loss in data processing systems, and they cannot effectively assess the probability of string similarity.

Method used

By inserting placeholder characters into the string, a similarity score is generated using an n-gram distance scoring model and weighted probability scores, triggering a remedial process in the monitoring system to improve string matching.

Benefits of technology

It improves the accuracy of string matching, reduces false negatives and false negatives, and optimizes the computational efficiency and accuracy of the data processing system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113661486B_ABST
    Figure CN113661486B_ABST
Patent Text Reader

Abstract

A method, system, and computer program product for generating an enhanced n-gram model for use with a monitoring system is provided. The method includes determining that a leading character pair of a first data string does not match a leading character pair of a second data string and inserting a placeholder character at a first index location in each data string. The method also includes inserting a placeholder character between each character pair of the first data string where a first character matches a character in the second data string at a same index location and where a second character matches a character in the second data string at an index location immediately following the same index location, and generating a similarity score based on a length of the data strings, and triggering a remediation process in response to the similarity score exceeding a predetermined threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application is related to U.S. Provisional Patent Application No. 62 / 842,569, filed May 3, 2019, the disclosure of which is incorporated herein by reference in its entirety. TECHNICAL FIELD

[0003] The present disclosure relates generally to data comparison modeling, and in non-limiting embodiments, to systems, methods, and computer program products for generating enhanced n-gram models that are evaluated by monitoring systems and trigger remediation processes. BACKGROUND

[0004] Computerized string comparison is a core function of various data processing systems, such as monitoring systems like compliance and fraud detection systems. However, identifying two matching or related strings is more complex than bit-by-bit equivalence. Two strings that can represent the same object or entity can have subtle differences in the sequence or arrangement of data strings such that a strict equivalence comparison would reject the strings as not matching. For example, a string with the name “Sara Lynn Smith” can refer to the same entity as a string with the name “Sarah Lynn Smith,” but a strict equivalence comparison would indicate that the strings do not match. False negatives introduce technical complexities for data processing systems, such as increased computation time to analyze rejected matches, manual review, loss of communication efficiency due to delays in detected matches, and the like.

[0005] Moreover, while fuzzy matching techniques have been developed to correlate non-equivalent strings, it is critical to optimize the identification of related data strings. False positives similarly introduce technical complexities for data processing systems, such as increased computation time when acting on inappropriately matched strings, misdirected messages, false fraud detection, and computing outages, among others. Furthermore, previous methods can not properly interpret comparing two sets of strings. For example, one set of strings can include a first name and a last name, while a second set of strings can include a first name, a middle name, and a last name. Simply appending the strings to each set and comparing the strings directly would result in artificially low similarity scores.

[0006] There is a need in the art for improved systems and methods to measure the similarity of two strings in order to trigger actions by a monitoring system based on detected matching strings. Moreover, there is a need in the art for improved systems and methods to evaluate the probability that two strings containing sequences of characters or sets of strings are related. SUMMARY

[0007] According to non-limiting embodiments or aspects, a computer-implemented method is provided. The method includes receiving, using at least one processor, a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server. The method further includes determining, using at least one processor, that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string. The method further includes, in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, inserting, using at least one processor, a placeholder character at a first index position in the first data string and at a first index position in the second data string; no placeholder characters exist at other positions in the first data string or the second data string. The method further includes determining, using at least one processor, at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position immediately following the same index position as the second character. The method further includes inserting, using at least one processor, a placeholder character between each of the at least one pair of characters. The method further includes determining, using at least one processor, whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generating, using at least one processor, a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generating, using at least one processor, the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string. The method includes triggering, by a monitoring system in communication with the transaction processing server, a remediation process of the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold.

[0008] In further non-limiting embodiments or aspects, the monitoring system can be a compliance system. The remediation process performed by the compliance system can include modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are the same data string. The method can include updating, by the compliance system, a whitelist of users after performing the remediation process. The transaction processing server can be configured to authorize future transaction requests of users on the whitelist.

[0009] In further non-limiting embodiments or aspects, the monitoring system can be a fraud system. The remediation process performed by the fraud system can include identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request. The method can include updating, by the fraud system, a blacklist of users after performing the remediation process. The transaction processing server can be configured to deny authorization of future transaction requests of users on the blacklist.

[0010] In further non-limiting embodiments or aspects, the first data string can include a first set of character sequences and the second data string can include a second set of character sequences. The method can further include generating, using at least one processor, a combined similarity score comparing the first set of character sequences to the second set of character sequences. The combined similarity score can be based on a weighted probability score that includes a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences. Each of the plurality of probability scores can represent a probability that a character sequence in the first set of character sequences exists in the second set of character sequences. The combined similarity score can be further based on a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences. Each probability score of the plurality of probability scores can be based on an n-gram distance model. The method can include triggering, by the monitoring system, the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

[0011] According to non-limiting embodiments or aspects, a system is provided that includes a transaction processing server comprising at least one processor and a monitoring system in communication with the transaction processing server. The transaction processing server is programmed and / or configured to receive a first data string in a first transaction request processed by the transaction processing server and a second data string in a second transaction request. The transaction processing server is programmed and / or configured to determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string. The transaction processing server is programmed and / or configured to, in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, insert a placeholder character at a first index position in the first data string and at a first index position in the second data string. No placeholder characters exist at other positions in the first data string or the second data string. The transaction processing server is programmed and / or configured to determine at least one pair of characters of the first data string, where a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and where a second character of the at least one pair of characters matches a character in the second data string at an index position following the same index position as the second character. The transaction processing server is programmed and / or configured to insert a placeholder character between each of the at least one pair of characters. The transaction processing server is programmed and / or configured to determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generate a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generate the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string. The monitoring system is programmed and / or configured to trigger a remediation process of the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold.

[0012] In further non-limiting embodiments or aspects, the monitoring system can be a compliance system. The remediation process performed by the compliance system can include modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are the same data string. The compliance system can be programmed and / or configured to update a whitelist of users after performing the remediation process. The transaction processing server can also be programmed and / or configured to authorize future transaction requests of users on the whitelist.

[0013] In further non-limiting embodiments or aspects, the monitoring system can be a fraud system. The remediation process performed by the fraud system can include identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request. The fraud system can be programmed and / or configured to update a blacklist of users after performing the remediation process. The transaction processing server can also be programmed and / or configured to deny authorization of future transaction requests of users on the blacklist.

[0014] In further non-limiting embodiments or aspects, the first data string can include a first set of character sequences and the second data string can include a second set of character sequences. The transaction processing server can be programmed and / or configured to generate a combined similarity score comparing the first set of character sequences to the second set of character sequences. The combined similarity score can be based on a weighted probability score that includes a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences. Each of the plurality of probability scores can represent a probability that a character sequence in the first set of character sequences exists in the second set of character sequences. The combined similarity score can also be based on a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences. Each probability score in the plurality of probability scores can be based on an n-gram distance model. The monitoring system can also be programmed and / or configured to trigger the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

[0015] According to non-limiting embodiments or aspects, a computer program product is provided that includes at least one non-transitory computer-readable medium comprising program instructions. The program instructions, when executed by at least one processor, cause the at least one processor to receive a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server. The program instructions cause the at least one processor to determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string. The program instructions cause the at least one processor to insert a placeholder character at a first index position in the first data string and at a first index position in the second data string in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string. No placeholder characters exist at other positions in the first data string or the second data string. The program instructions cause the at least one processor to determine at least one pair of characters of the first data string, where a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and where a second character of the at least one pair of characters matches a character in the second data string at an index position that immediately follows the same index position as the second character. The program instructions cause the at least one processor to insert a placeholder character between each of the at least one pair of characters. The program instructions cause the at least one processor to determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generate a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generate the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string. The program instructions cause the at least one processor to trigger a remediation process of a monitoring system in communication with the transaction processing server for the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold.

[0016] In further non-limiting embodiments or aspects, the monitoring system can be a compliance system. The remediation process performed by the compliance system can include modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are the same data string. The program instructions can further cause the at least one processor to trigger the compliance system to update a whitelist of users after performing the remediation process. The transaction processing server can be configured to authorize future transaction requests of users on the whitelist.

[0017] In further non-limiting embodiments or aspects, the monitoring system can be a fraud system. The remediation process performed by the fraud system can include identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request. The program instructions can further cause the at least one processor to trigger the fraud system to update a blacklist of users after performing the remediation process. The transaction processing server can be configured to deny authorization of future transaction requests of users on the blacklist.

[0018] In further non-limiting embodiments or aspects, the first data string can include a first set of character sequences and the second data string can include a second set of character sequences. The program instructions can further cause the at least one processor to generate a combined similarity score comparing the first set of character sequences to the second set of character sequences. The combined similarity score can be based on a weighted probability score that includes a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, where each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences exists in the second set of character sequences. The combined similarity score can be further based on a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences. The program instructions can further cause the at least one processor to trigger, in response to the combined similarity score exceeding a predetermined threshold, the monitoring system for the first transaction request and / or the second transaction request to perform the remediation process. Each of the plurality of probability scores can be based on an n-gram distance model.

[0019] According to non-limiting embodiments or aspects, a computer-implemented method is provided. The method includes receiving, using at least one processor, a first set of strings and a second set of strings. The method also includes generating, using at least one processor, a similarity score comparing the first set of strings to the second set of strings. The similarity score is based on a weighted probability score comprising a sum of a plurality of probability scores divided by a number of strings in the first set of strings, wherein each of the plurality of probability scores represents a probability that a string in the first set of strings exists in the second set of strings. The similarity score is also based on a penalty value assessed for each string in the second set of strings that does not exist in the first set of strings. Each of the plurality of probability scores is based on an n-gram distance model.

[0020] Other non-limiting embodiments or aspects will be set forth in the following numbered clauses:

[0021] Clause 1 : A computer-implemented method comprising: receiving, using at least one processor, a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server; determining, using at least one processor, that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, inserting, using at least one processor, a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determining, using at least one processor, at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position that immediately follows the same index position as the second character; inserting, using at least one processor, a placeholder character between each of the at least one pair of characters; determining, using at least one processor, whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generating, using at least one processor, a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generating, using at least one processor, the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and in response to the similarity score exceeding a predetermined threshold, triggering, by a monitoring system in communication with the transaction processing server, a remediation process for the first transaction request and / or the second transaction request.

[0022] Clause 2: The computer-implemented method of clause 1, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system comprises modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are a same data string.

[0023] Clause 3: The computer-implemented method of clause 1 or 2, further comprising updating, by the compliance system, a whitelist of users after performing the remediation process, wherein the transaction processing server is configured to authorize future transaction requests of users on the whitelist.

[0024] Clause 4: The computer-implemented method of any of clauses 1-3, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system comprises identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

[0025] Clause 5: The computer-implemented method of any of clauses 1-4, further comprising updating, by the fraud system, a blacklist of users after performing the remediation process, wherein the transaction processing server is configured to deny authorization of future transaction requests of users on the blacklist.

[0026] Clause 6: The computer-implemented method of any of clauses 1-5, wherein the first data string comprises a first set of character sequences and the second data string comprises a second set of character sequences, the method further comprising: generating, using at least one processor, a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score comprising a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences exists in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences; wherein each of the plurality of probability scores is based on an n-gram distance model.

[0027] Clause 7: The computer-implemented method of any of clauses 1-6, further comprising triggering, by the monitoring system, the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

[0028] Clause 8: A system comprising: a transaction processing server comprising at least one processor and a monitoring system in communication with the transaction processing server, wherein the transaction processing server is programmed and / or configured to: receive a first data string in a first transaction request and a second data string in a second transaction request processed by the transaction processing server; determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, insert a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determine at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position following the same index position immediately after the second character; insert a placeholder character between each of the at least one pair of characters; determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generate a similarity score based on a number of matching pairs of characters at the same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generate the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and wherein the monitoring system is programmed and / or configured to trigger a remediation process of the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold.

[0029] Clause 9: The system of clause 8, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system comprises modifying the first transaction request and / or the second transaction request using a compliance system server such that the first data string and the second data string are the same data string.

[0030] Clause 10: The system of clause 8 or 9, wherein the compliance system is programmed and / or configured to update a white list of users after performing the remediation process, and wherein the transaction processing server is further programmed and / or configured to authorize future transaction requests of users on the white list.

[0031] Clause 11 : The system of any one of clauses 8-10, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system includes identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

[0032] Clause 12: The system of any one of clauses 8-11, wherein the fraud system is programmed and / or configured to update a blacklist of users after performing the remediation process, and wherein the transaction processing server is further programmed and / or configured to deny authorization of future transaction requests of users on the blacklist.

[0033] Clause 13: The computer-implemented method of any one of clauses 8-12, wherein the first data string includes a first set of character sequences and the second data string includes a second set of character sequences, and wherein the transaction processing server is further programmed and / or configured to: generate a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score including a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences exists in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences; wherein each of the plurality of probability scores is based on an n-gram distance model.

[0034] Clause 14: The system of any one of clauses 8-13, wherein the monitoring system is further programmed and / or configured to trigger the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

[0035] Clause 15: A computer program product comprising at least one non-transitory computer-readable medium comprising program instructions that, when executed by at least one processor, cause the at least one processor to: receive a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server; determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, insert a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determine at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position immediately following the same index position as the second character; insert a placeholder character between each of the at least one pair of characters; determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generate a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generate the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and in response to the similarity score exceeding a predetermined threshold, trigger a remediation process of a monitoring system in communication with the transaction processing server for the first transaction request and / or the second transaction request.

[0036] Clause 16: The computer program product of clause 15, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system comprises modifying the first transaction request and / or the second transaction request using a compliance system server such that the first data string and the second data string are a same data string.

[0037] Clause 17: The computer program product of clause 15 or 16, wherein the program instructions further cause the at least one processor to trigger the compliance system to update a whitelist of users after execution of the remediation process, wherein the transaction processing server is configured to authorize future transaction requests of users on the whitelist.

[0038] Clause 18: The computer program product of any one of clauses 15 to 17, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system includes identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

[0039] Clause 19: The computer program product of any one of clauses 15 to 18, wherein the program instructions further cause the at least one processor to trigger the fraud system to update a blacklist of users after execution of the remediation process, wherein the transaction processing server is configured to deny authorization of future transaction requests of users on the blacklist.

[0040] Clause 20: The computer program product of any one of clauses 15 to 19, wherein the first data string includes a first set of character sequences and the second data string includes a second set of character sequences, and wherein the program instructions further cause the at least one processor to: generate a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score including a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences exists in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences; and trigger the monitoring system to perform the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold, wherein each of the plurality of probability scores is based on an n-gram distance model.

[0041] Clause 21 : A computer-implemented method comprising: receiving, using at least one processor, a first set of strings and a second set of strings; generating, using at least one processor, a similarity score comparing the first set of strings to the second set of strings; wherein the similarity score is based on a weighted probability score comprising a sum of a plurality of probability scores divided by a number of strings in the first set of strings, wherein each of the plurality of probability scores represents a probability that a string in the first set of strings exists in the second set of strings, wherein the similarity score is based on a penalty value assessed for each string in the second set of strings that does not exist in the first set of strings; and wherein each of the plurality of probability scores is based on an n-gram distance model.

[0042] These and other features and characteristics of the present disclosure, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for purposes of illustration and description only and are not intended as a definition of the limits of the disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0043] Additional advantages and details of implementation will become apparent from the following descriptions of non-limiting exemplary embodiments, made with reference to the accompanying drawings wherein:

[0044] Figure 1 is a schematic diagram of a system for generating and using an enhanced n-gram model according to non-limiting embodiments;

[0045] Figure 2 is a schematic diagram of a system for generating and using an enhanced n-gram model according to non-limiting embodiments;

[0046] Figure 3 is a flowchart of a method for generating and using an enhanced n-gram model according to non-limiting embodiments;

[0047] Figure 4 is a flowchart of a method for generating and using an enhanced n-gram model according to non-limiting embodiments;

[0048] Figure 5 is a flowchart of a method for generating and using an enhanced n-gram model according to non-limiting embodiments; and

[0049] Figure 6 An example set of components of a device for use in connection with non-limiting embodiments is shown. DETAILED DESCRIPTION

[0050] For the purposes of the following description, the terms “end,” “upper,” “lower,” “right,” “left,” “vertical,” “horizontal,” “top,” “bottom,” “lateral,” “longitudinal,” and their derivatives should be associated with the orientation of the embodiments in the accompanying drawings. However, it should be understood that embodiments may employ various alternative variations and sequences of steps, except where explicitly specified as the opposite. It should also be understood that the specific apparatus and processes shown in the accompanying drawings and described in the following specification are merely exemplary embodiments or aspects of the invention. Therefore, specific dimensions and other physical characteristics relating to the embodiments or aspects disclosed herein should not be considered limiting.

[0051] The aspects, components, elements, structures, actions, steps, functions, instructions, etc., used herein should not be construed as critical or essential unless explicitly stated otherwise. Furthermore, as used herein, the article “a” is intended to include one or more items and is interchangeable with “one or more” and “at least one.” Additionally, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and is interchangeable with “one or more” or “at least one.” Where only one item is desired, the term “a” or similar language is used. Furthermore, as used herein, the terms “having” and similar expressions are intended to be open-ended terms. Additionally, unless explicitly stated otherwise, the phrase “based on” is intended to mean “at least partially based on.”

[0052] As used herein, the term "communication" can refer to the receipt, acceptance, transmission, delivery, provision, etc., of data (e.g., information, signals, messages, instructions, commands, etc.). For one unit (e.g., a device, system, component of a device or system, combination thereof, etc.) to communicate with another unit means that the first unit is able to receive information from and / or send information to the other unit, directly or indirectly. This can refer to a direct or indirect connection that is inherently wired and / or wireless (e.g., a direct communication connection, an indirect communication connection, etc.). Furthermore, although the transmitted information may be modified, processed, relayed, and / or routed between the first and second units, the two units can also communicate with each other. For example, the first unit can communicate with the second unit even if it passively receives information and does not actively send information to the second unit. As another example, the first unit can communicate with the second unit if at least one intermediate unit processes information received from the first unit and transmits the processed information to the second unit.

[0053] As used herein, the term“computing device” can refer to one or more electronic devices configured to process data. In some examples, a computing device can include the necessary components, such as a processor, display, memory, input device, network interface, etc., to receive, process, and output data. A computing device can be a mobile device. As an example, a mobile device can include a cellular phone (e.g., a smart phone or a standard cellular phone), a portable computer, a wearable device (e.g., a watch, glasses, lenses, clothing, etc.), a personal digital assistant (PDA), and / or other similar devices. A computing device can also be a desktop computer or other form of non-mobile computer.

[0054] As used herein, the term“server” can refer to or include one or more computing devices operated by or facilitating the communication and processing of a plurality of parties in a network environment, such as the Internet, although it will be appreciated that communication can be facilitated through one or more public or private network environments, and that various other arrangements are possible. Moreover, a plurality of computing devices (e.g., servers, point-of-sale (POS) devices, mobile devices, etc.) in direct or indirect communication in a network environment can constitute a“system.” As used herein, a reference to a“server” or a“processor” can refer to the previously described server and / or processor stated to perform a previous step or function, a different server and / or processor, and / or a combination of servers and / or processors. For example, as used in the specification and claims, a first server and / or a first processor stated to perform a first step or function can refer to the same or different server and / or processor stated to perform a second step or function.

[0055] As used herein, the term“transaction service provider” can refer to an entity that receives transaction authorization requests from merchants or other entities and, in some cases, provides payment guarantees through an agreement between the transaction service provider and an issuer institution. For example, a transaction service provider can include a payment network, such as Visa®, MasterCard®, American Express®, Discover®, JCB®, etc., or any other entity that processes transactions. The term“transaction processing system” can refer to one or more computing devices operated by or on behalf of a transaction service provider, such as a transaction processing server executing one or more software applications. A transaction processing system can include one or more processors and, in some non-limiting embodiments, can be operated by or on behalf of a transaction service provider.

[0056] As used herein, the term“string” can refer to any sequence or set of data that can include a set of characters, numbers, spaces, null values, etc. A string can be empty, and the items of a set within a string can be referenced by an index position (e.g., where“0” or“1” refers to the first item in a set, and subsequent items are countably higher).

[0057] Foundation of the embodiments ​

[0058] Unigram models and edit distance lack context-sensitivity and performance varies based on algorithmic changes. The concept of n-gram similarity and distance generalizes standard unigram string similarity and distance. The described systems and methods provide variations of n-gram similarity and distance that show that the length of the edit distance longest common subsequence ("LCS") are special cases of n-gram distance and similarity, respectively. Formal definitions of n-gram similarity and distance are described, along with efficient algorithms for computing them in context-sensitive datasets. The described systems and methods formulate a range of word similarity measures based on n-grams that outperform their unigram equivalents and pure n-gram equivalents. A new enhanced version of the n-gram measure for computing the distance of two context-sensitive strings is described, including a formula for computing a final distance score for phrases, sentences, names, and the like, where the phrases, sentences, and names are composed of one or more strings. The described final score captures the probability that each string in a shorter complete phrase, sentence, name, and the like exists in a longer phrase, sentence, name, and the like.

[0059] Unigram similarity

[0060] Unigram similarity describes the length of the LCS and can be used as a measure of string similarity. The standard formulation of the LCS problem is as follows. Given a sequence X = x1...xk and another sequence Z = z1...zm, Z is a subsequence of X if there exists a strictly increasing sequence of indices i1,...,ik of X such that for all j = 1,...,m, there exists an equivalence k m m

[0061] For example, "table" is a subsequence of "patentable." Given two sequences X and Y, a common subsequence Z can exist if Z exists as a subsequence of both X and Y. In the LCS problem, two sequences can act as input from which a maximum length common subsequence is identified. For example, the LCS of "content" and "patentable" is "tent." The LCS problem can be solved efficiently using dynamic programming. For the purposes of the following description, the focus is on the length of the LCS, rather than the data of the LCS itself. The length of the LCS can be described as a function of the two strings.

[0062] Consider the following formal recursive definition of the function s(X,Y) that represents the length of the LCS given input sequences X and Y. Let X = x1...xk and Y = y1...yl be strings of lengths k and l, respectively. For the purposes of the following description, consider that x and y are composed of symbols from a finite alphabet. The following notation shorthand can be used to represent a pair of prefixes of X and Y:

[0063] ​​​Formula 1:

[0064] Γi,j = (x1...x i ,y1...y j )

[0065] The following notation shorthand can be used to represent a postfix of X and Y:

[0066] Formula 2:

[0067] Γ* = (x i+1 ...x k ,y j+1 ...y l )

[0068] For strings of length one or less, the following direct definitions can be used:

[0069] Formula 3:

[0070] s(x,∈) = O, s(∈,y) = O,

[0071] where ε represents the empty string, and x and y represent a single symbol.

[0072] For longer strings, s can be defined recursively as:

[0073] Formula 4:

[0074]

[0075] The values of i and j in the above formulas are restricted by the requirement that Γi,j and Γ* are both non-empty. Specifically, the allowable values of i and j can be represented by the following set of pairs:

[0076] Formula 5:

[0077] D(k,l) = {0,...,k} x {0,...,l} - {(0,0),(k,l)}

[0078] For example, D(2,1) = {(0,1), (1,0), (1,1), (2,0)}. Thus, it can be inductively shown that s(X,Y) always equals the length of the LCS of the strings X and Y.

[0079] The recursive definition takes advantage of the semi-composability of LCS. It should be recognized that the LCS of concatenated strings is not necessarily equal to the sum of the corresponding LCSs. For example, ||LCS(ab,a)|| = 1 and ||LCS(c,bc)|| = 1, but ||LCS(abc,abc)|| = 3. However, the LCS of concatenated strings is always at least as long as the concatenation of its corresponding LCSs:

[0080] Formula 6:

[0081] s(X1,Y1)+s(X2,Y2)≤s(X1+X2,Y1+Y1+Y2)

[0082] In light of the foregoing, s(X,Y) can be viewed as superadditive, rather than additive. The LCS of two strings can be constructed by concatenating the LCS of their substrings, provided that breaking the strings into substrings preserves all of the identity matches in the original LCS.

[0083] N-gram similarity

[0084] The purpose of n-gram similarity is to generalize the concept of longest common subsequence to encompass n-grams, not just unigrams. N-gram similarity can be expressed as a function S n where n is a fixed parameter. S1can be viewed as equivalent to the unigram similarity function.

[0085] To provide a concise recursive definition of n-gram similarity, the convention regarding Γ can be modified. In evaluating n-grams for n > 1, it can be required that Γ i,j and Γ* i,j contain at least one complete n-gram, consistent with the previous convention for n = 1. If both strings are shorter than n, then s n is not defined.

[0086] In the simplest case, when there is only one complete n-gram in either string, n-gram similarity is defined as zero:

[0087] Equation 7:

[0088] s n (Γk,l) = 0 if (k = n Λ l < n) V (k < n Λ l = n)

[0089] Let Γ n = (x i+1 …x i+n , y j+1 …y j+n ) be a pair of n-grams from x and y. If both strings contain exactly one n-gram, the initial definition is strictly binary: 1 if the n-grams are identical, and 0 otherwise. For longer strings, n-gram similarity can be defined recursively as:

[0090] Equation 8:

[0091]

[0092] The values of i and j in the foregoing equations are restricted by the requirement that Γ i、jand Γ* contains at least one n-gram. In particular, the allowable values of i and j can be given by the expression D(k-n+1, l-n+1), where D is the set of pairs defined above.

[0093] As in the case of s, a set of three decompositions is sufficient to compute s n :

[0094] Equation 9:

[0095]

[0096] The binary n-gram similarity equations above can be refined to produce a generalized n-gram similarity equation (for computing standard unigram similarity between n-grams) and a positional n-gram similarity equation (for computing identical unigrams at corresponding positions within n-grams), respectively, as follows:

[0097] Equation 10:

[0098]

[0099] Equation 11:

[0100]

[0101] The advantage of positional n-gram similarity is that it can be computed more quickly than generalized n-gram similarity.

[0102] N-gram distance

[0103] Since the standard edit distance is almost a double concept of the LCS length, the definition of n-gram distance is only slightly different from the definition of n-gram similarity. The recursive definition of edit distance is as follows:

[0104] Equation 12:

[0105] d(x,∈) = 0, d(∈,y) = 0,

[0106] Equation 13:

[0107]

[0108] An alternative formula for edit distance with a simplified set of decompositions is as follows:

[0109] Equation 14:

[0110] d(X,Y) = d(Γ k,l )

[0111] = min(d(Γ k-1,l ) + 1, d(Γ k,l-1 ) + 1, d(Γ k-1,l-1 ) + d(xk ,yl))

[0112] The definition of n-gram edit distance is as follows:

[0113] Equation 15:

[0114] d n (Γ k,l )=1 if(k=n∧l<n)∨(k<n∧l=n)

[0115] Equation 16:

[0116]

[0117] Equation 17:

[0118]

[0119] An alternative formula for n-gram distance is as follows:

[0120] Equation 18:

[0121]

[0122] Variations of the algorithms that were evaluated and tested include:

[0123] i. Jaro--Winkler and variations of the Jaro and Winkler algorithms ii. Levenshtein distance and Damerau--Levenshtein distance algorithms iii. NYSISIS

[0124] iv. Soundex and refined Soundex

[0125] v. N-grams

[0126] vi. Longest common subsequence

[0127] vii. Hamming distance

[0128] An n-gram distance algorithm is provided for calculating the n-gram distance of strings X and Y:

[0129] N-gram distance (X, Y) / / input strings are X and Y. And N is the size of the grams / substrings

[0130] K <- length (X) / / K is the length of input #1 X

[0131] L <- length (Y) / / L is the length of input #2 Y

[0132] For u <- 1 to N-1 do

[0133] X <- x'1 + X / / augment X with prefix x'

[0134] Y <- y'1 + Y / / augment X with prefix y'

[0135] for i <- 0 to K / / K is length of input #1 X

[0136] D[i,0] <- i / / initialize two-dimensional double array [K,L] with position values

[0137] / * example: [0.0 0.0 0.0 0.0] [1.0 0.0 0.0 0.0] [2.0 0.0 0.0 0.0]

[0141] * /

[0142] for j <- 1 to L / / L is length of input #2 Y

[0143] D[0,j] <- j / / set double values [0.0, 1.0, 2.0, etc.]

[0144] / * example: [0.0 1.0 2.0 3.0] [1.0 0.0 0.0 0.0] [2.0 0.0 0.0 0.0]

[0148] * /

[0149] for i <- 1 to K / / K is length of input #1 X

[0150] for j <- 1 to L / / L is length of input #2 Y

[0151] D[i,j] <- min(D[i-1,j]+1,D[i,j-1]+1,D[i-1,j-1]+dN(ΓN i-1,j-1 ))

[0152] / / D[1,1] = min(2.0,2.0,0 + distance

[0153] return D[K,L] / max(K,L)

[0154] Enhanced N-gram distance

[0155] N-gram metrics were evaluated in different word comparison tasks with values of n = 2 and n = 3, which provided relative computational speed and higher overall accuracy. We analyzed n-gram distances for over 75k words, results from string matching of various online dictionaries, identified patterns, and enhanced the algorithm until adequate accuracy was achieved. In the process, key shortcomings of n-grams were identified. According to non-limiting embodiments, the n-gram algorithm was enhanced by position-based optimization and length normalization to reduce the impact of the shortcomings, thereby improving overall accuracy.

[0156] In non-limiting embodiments, the enhanced N-gram distance algorithm with position-based optimization and length normalization is as follows:

[0157] Enhanced N-gram distance (X, Y) / / input strings are X and Y. And N is the number of grams / substrings

[0158] Size

[0159] K <- Length (X) / / K is the length of input #1 X

[0160] L <- Length (Y) / / L is the length of input #2 Y

[0161] If K = 0 and L = 0, then

[0162] Return 1 / / return 1 / match when both strings are empty

[0163] If K = 0 or L = 0, then

[0164] Return 0 / / return 0 / mismatch when one side is empty

[0165] LD = ABS (K - L) / / LD is the absolute value of the length difference between length X and Y

[0166] J = 0

[0167] Edit = 0

[0168] Prefix = '*' / / which can be any character that is not present in X or Y

[0169] If K!= L and LD < N / / when length (X) - length (Y) < N, normalize the inputs

[0170] If K > L / / when length (X) is greater than length (Y), swap the inputs swap (X, Y)

[0171] For I <- 0 to K do

[0172] If I = 0 and X[I]!= Y[J] and X[I+1]!= Y[J+1]

[0173] / / Add prefix when first characters of input are different from each other

[0174] X = prefix + X

[0175] Y = prefix + Y

[0176] edit++

[0177] J++;

[0178] Else if I > 0 and X[I]!= Y[J] and X[I-1] == Y[J-1] and X[I] == Y[J+1] / / Replace / add prefix when one side is missing a letter between matching substrings

[0179] X = X[0-(J+edit-1)] + prefix + X[I+edit,K+edit]

[0180] J = J + 2

[0181] Else

[0182] J++

[0183] K <- length(_X)

[0184] L <- length(_Y)

[0185] If K < N or L < N / / Do not use N-gram scoring when either input is of length < N

[0186] Cost = 0

[0187] For I <- 0 to MIN(K,L) do

[0188] If X[I] = Y[I]

[0189] Cost++

[0190] Return cost / MAX((X,Y) / / Calculate distance

[0191] Else

[0192] Return N-gram distance(X,Y); / / Refer to N-gram distance algorithm

[0193] Inputs X and Y are subjected to various other normalizations. For example, inputs can be normalized by voice, gender, proximity, etc.

[0194] The enhanced n-gram algorithm described above was tested in a software application that compared the names of humans and business partners to widely recognized public datasets. Approximately 8 million ambiguous human names containing 2 or more sub-names (e.g., first, middle, and last names) were evaluated against 4 million publicly available datasets. The scores and results were more accurate compared to the unmodified n-gram distance algorithm. New metrics / models were provided for calculating distance scores for two full names containing one or more sub-names.

[0195] Enhanced N-gram distance scoring model for computing a final distance score for a sentence or name composed of one or more words / sub-names Other descriptions

[0196] A problem arises when matching two full names: Na, which is composed of n sub-names and name Nb, which is composed of m sub-names. Assume n <= m.

[0197] Given the assumption n <= m, the problem is to produce a score S that measures the probability that Na and Nb are the same. In other words, S indicates the probability that all of the sub-names in Na exist in Nb. This translates to:

[0198] Equation 19:

[0199]

[0200] In the above equation, S(i) is the probability score that the ith sub-name in Na exists in Nb, regardless of order. S(i) must be above an acceptance threshold T to be included. If S(i) for sub-name i is less than the threshold T, then S(i) is set to 0. K is a constant that represents a score penalty assessed for each name that exists in Nb but not in Na. The final score embodies the probability that each sub-name in the shorter full name exists in the longer full name.

[0201] Figure 1

[0202] Non-limiting embodiments of the present disclosure improve prior art systems by increasing the efficiency of string-based comparisons. False negatives are reduced, thereby reducing the subsequent processing time and memory required to initially correct the unmatched data strings. False positives are also reduced, thereby reducing processing activities that are blocked or canceled due to false identification of matches in the dependent data processing servers. The present disclosure also reduces the requirement to run multiple text comparison models by increasing the initial comparison accuracy, which reduces the overall computer processing demands on the system.

[0203] Reference Figure 2According to non-limiting embodiments or aspects, a system 100 is provided. The system 100 can include a dependent server 102, such as a transaction processing server or a server of a monitoring system, that needs to compare two or more data strings. The dependent server 102 can be a compliance system server, a fraud detection server, a transaction processing server, etc., that is configured to compare a list of input strings (e.g., names) to a reference list of strings (e.g., names) in order to determine matches that can constitute a whitelist or a blacklist of users, transactions, server activity, etc. The system 100 can include more than one dependent server 102. The dependent server 102 (e.g., a transaction processing server) can transmit a string pair 103 or a plurality of string sets 105 to a scoring server 106 via a communication interface 104 (e.g., an application programming interface, a message broker, etc.) for comparison of the string pair 103 or the plurality of string sets 105. The communication interface 104 can be integral to the dependent server 102 and / or the scoring server 106. The dependent server 102 can also be the same server (e.g., a transaction processing server) as the scoring server 106. The scoring server 106 can include a scoring engine 108 that is programmed and / or configured to compare two or more strings or two or more sets of strings and generate a similarity score. The similarity score can be numerical, categorical, ordinal, etc. The strings received by the scoring server 106 for comparison can be stored in a database 110 in communication with the scoring server 106. It should be appreciated that the dependent server 102 can transmit any two or more strings to the scoring server 106 for comparison in any of its comparison combinations, where each base comparison constitutes a comparison of a string pair 103. The scoring server 106 can perform one or more of the enhanced n-gram model comparisons described above to generate a similarity score for the string pair 103 or the plurality of string sets 105.

[0204] Reference Figure 3In accordance with non-limiting embodiments, a system 200 is provided. The system 200 can include a transaction processing server 202 that requires comparison of two or more data strings. The transaction processing server 202 can receive one or more data strings in one or more transaction requests for comparison, e.g., during processing of the transaction requests. The system 200 also includes a monitoring system 204 (e.g., a compliance system, a fraud system, etc.) that can be integral with the transaction processing server 202. The monitoring system 204 can include one or more servers programmed and / or configured to perform remediation processes, e.g., compliance or fraud processes on transaction requests. The system 200 can include a scoring server 106 that includes a scoring engine 108 programmed and / or configured to generate a similarity score for two or more strings, e.g., in accordance with the aforementioned enhanced n-gram model. The scoring server 106 can be integral with the transaction processing server 202. The transaction processing server 202, the monitoring system 204, and the scoring server 106 can communicate via a communication interface 104, e.g., an application programming interface, a message broker, etc. One or more servers, e.g., the scoring server 106, can communicate with a database 110 for storage of compared strings, similarity scores, etc.

[0205] Referring now to Figure 4 , a method of generating and using an enhanced n-gram model is shown in accordance with non-limiting embodiments. One or more steps of the method can be performed by a scoring server 106 or a slave server 102, e.g., the transaction processing server 202 and / or the monitoring system server 204. Steps performed by one server can be performed by the same or a different server as another depicted step. One or more servers can be combined in the foregoing. Further, the steps can be repeated for additional string comparisons. In step 302, a transaction processing server can receive a first data string in a first transaction request and a second data string in a second transaction request, e.g., during processing of the transaction requests. In step 304, the transaction processing server or a scoring server can determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string. In response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, in step 306, the transaction processing server or the scoring server can insert a placeholder character at a first index position in the first data string (e.g., the front of the string) and at a first index position in the second data string. As referred to herein, a placeholder character can describe a character that does not exist elsewhere in the first data string or the second data string.

[0206] In step 308, the transaction processing server or scoring server can determine at least one character pair of the first data string, where a first character of the at least one character pair matches a character in the second data string at a same index position as the first character (e.g., X n =Y n ), and where a second character of the at least one character pair matches a character in the second data string at an index position following the same index position as the second character (e.g., X n+1 =Y n+2 ) (e.g., the character pair “mo” when comparing “kmoq” to “lmno”). One or more such character pairs in the first data string can be determined. In step 310, the transaction processing server or scoring server can insert a placeholder character between each character pair so determined (e.g., “mo” in “kmoq” can become “km~oq”).

[0207] In step 312, the transaction processing server or scoring server can determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length (e.g., the n-gram length is 3). The predetermined n-gram length can be any feasible length for comparison according to the method described above. In response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, in step 314, the transaction processing server or scoring server can generate a similarity score based on a number of matching character pairs at a same index in the first data string and the second data string relative to a total number of character pairs. In response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, in step 316, the transaction processing server or scoring server can generate a similarity score based on an n-gram distance scoring model to compare the first data string to the second data string. In step 318, the transaction processing server or monitoring system can trigger a remediation process for the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold (e.g., the threshold can be set to 0.5 or higher for a normalized score from 0 to 1). The predetermined threshold can be set at any feasible level that is determined to effectively balance false positives and false negatives.

[0208] Reference is now made to Figure 5, a method of generating and using an enhanced n-gram model is shown, in accordance with non-limiting embodiments. One or more steps of the method can be performed by a scoring server 106 or a slave server 102, such as the transaction processing server 202 and / or the monitoring system server 204. Steps performed by one server can be performed by the same or a different server as another depicted step. One or more servers can be combined in the foregoing. Further, the steps can be repeated for additional string comparisons. In step 318, the monitoring system can trigger a remediation process for the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold. The monitoring system can be a compliance system, and in step 404, the remediation process can include modifying the data of the first transaction request and / or the second transaction request such that the first data string and the second data string are the same data string (e.g., the same name, the same identifier, the same data field, etc.). Then, in step 408, the compliance system can update a whitelist for the user.

[0209] The monitoring system can also be a fraud system, and in step 406, the remediation process can include identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request. For example, a fraud system running a fraud detection model that relies on exact data sets from the same user can rely on exact matches of transactions from the same user. Then, in step 410, the fraud system can update a blacklist for the user. In step 412, the transaction processing system or the monitoring system can authorize future transaction requests by users on the whitelist and / or deny authorization of future transaction requests by users on the blacklist.

[0210] Reference is now made to Figure 6, methods of generating and using an enhanced n-gram model are provided in accordance with non-limiting embodiments. One or more steps of the methods can be performed by a scoring server 106 or a slave server 102, such as the transaction processing server 202 and / or the monitoring system server 204. Steps performed by one server can be performed by the same or a different server as another depicted step. One or more servers can be combined in the foregoing. Moreover, the steps can be repeated for additional string comparisons. For the depicted method, a first data string and a second data string can each comprise a set of character sequences (e.g., an individual’s name is split into a first name sequence, a middle name sequence, and / or a last name sequence). In step 502, the transaction processing server or scoring server can generate a combined similarity score comparing the first set of character sequences to the second set of character sequences. In step 504, the combined similarity score can be based on a weighted probability score comprising a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences. Each of the plurality of probability scores can represent a probability that a character sequence in the first set of character sequences is present in the second set of character sequences. Each probability score of the plurality of probability scores can be based on an n-gram distance model, such as the enhanced n-gram model described above. In step 506, the combined similarity score can also be based on a penalty value assessed for each character sequence in the second set of character sequences that is not present in the first set of character sequences.

[0211] In step 508, the transaction processing server or monitoring system can trigger a remediation process for the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold (e.g., for a normalized score from 0 to 1, the threshold can be set to 0.75 or higher). The predetermined threshold can be set at any workable level that is determined to effectively balance false positives and false negatives.

[0212] Referring now to Figure 1 , a diagram showing example components of an apparatus 900 is shown in accordance with non-limiting embodiments or aspects. As an example, the apparatus 900 can correspond to a slave server 102, such as the transaction processing server 202 or the monitoring system 204 server (e.g., a compliance system server, a fraud system server, etc.), the communication interface 104, and / or the scoring server 106 in Figure 1 and 2 . In some non-limiting embodiments or aspects, such systems or apparatuses can include at least one apparatus 900 and / or at least one component of the apparatus 900. As an example, the number and arrangement of illustrated components are provided. In some non-limiting embodiments or aspects, components can be combined, divided, re-arranged, omitted, eliminated, and / or additional components can be added to the apparatus 900, as compared to Figure 6Compared to those shown, device 900 may include additional components, fewer components, different components, or components arranged in a different manner. Alternatively, a set of components of device 900 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 900.

[0213] like Figure 6 As shown, device 900 may include bus 902, processor 904, memory 906, storage component 908, input component 910, output component 912, and communication interface 914. Bus 902 may include components that allow communication between components of device 900. In some non-limiting embodiments or aspects, processor 904 may be implemented in hardware, firmware, or a combination of hardware and software. For example, processor 904 may include a processor (e.g., central processing unit (CPU), graphics processing unit (GPU), accelerated processing unit (APU), etc.), microprocessor, digital signal processor (DSP), and / or any processing component that can be programmed to perform functions (e.g., field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), etc.). Memory 906 may include random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by processor 904.

[0214] Continue to refer to ​ Storage component 908 may store information and / or software related to the operation and use of device 900. For example, storage component 908 may include a hard disk (e.g., magnetic disk, optical disk, magneto-optical disk, solid-state disk, etc.) and / or another type of computer-readable medium. Input component 910 may include components that allow device 900 to receive information, for example, through user input (e.g., touch screen display, keyboard, keypad, mouse, buttons, switches, microphone, etc.). Alternatively or additionally, input component 910 may include sensors for sensing information (e.g., Global Positioning System (GPS) components, accelerometers, gyroscopes, actuators, etc.). Output component 912 may include components that provide output information from device 900 (e.g., display, speaker, one or more light-emitting diodes (LEDs), etc.). Communication interface 914 may include transceiver-like components (e.g., transceivers, separate receivers and transmitters, etc.) that enable device 900 to communicate with other devices, for example, via wired connection, wireless connection, or a combination of wired and wireless connections. Communication interface 914 may allow device 900 to receive information from another device and / or provide information to another device. For example, the communication interface 914 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, etc. Interfaces, cellular network interfaces, etc.

[0215] The device 900 can perform one or more processes described herein. The device 900 can perform these processes based on processor 904 executing software instructions stored by a computer-readable medium, such as memory 906 and / or storage component 908. A computer-readable medium can include any non-transitory memory. A memory device includes a memory space located internally to a single physical storage device or a memory space spread across multiple physical storage devices. The software instructions can be read into the memory 906 and / or storage component 908 from another computer-readable medium or from another device via a communication interface 914. When executed, the software instructions stored in the memory 906 and / or storage component 908 can cause the processor 904 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry can be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, embodiments described herein are not limited to any specific combination of hardware circuitry and software. The term “programmed or configured” as used herein refers to an arrangement of software, hardware circuitry, or any combination thereof on one or more devices.

[0216] While embodiments have been described in detail, it should be understood that the various details described herein are not intended to limit the scope of the disclosure, but merely form a portion of the examples of embodiments of the disclosure. As such, the disclosure is not limited to the embodiments described herein, but rather the scope of the disclosure is to be defined by the appended claims and equivalents thereof. For example, it is contemplated that embodiments of the disclosure can be implemented in any combination of hardware and / or software. Furthermore, it is contemplated that embodiments of the disclosure can be implemented using any suitable programming language, library, or tool.

Claims

1. A computer-implemented method for generating and using an enhanced n-gram model, comprising: receiving, using at least one processor, a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server; determining, using at least one processor, that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, inserting, using at least one processor, a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determining, using at least one processor, at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position immediately following the same index position as the second character; inserting, using at least one processor, a placeholder character between each of the at least one pair of characters; determining, using at least one processor, whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generating, using at least one processor, a similarity score based on a number of matching pairs of characters at a same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generating, using at least one processor, the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and in response to the similarity score exceeding a predetermined threshold, triggering, by a monitoring system in communication with the transaction processing server, a remediation process for the first transaction request and / or the second transaction request.

2. The computer-implemented method of claim 1, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system includes modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are a same data string.

3. The computer-implemented method of claim 2, further comprising updating, by the compliance system, a white list of users after performing the remediation process, wherein the transaction processing server is configured to authorize future transaction requests of users on the white list.

4. The computer-implemented method of claim 1, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system comprises identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

5. The computer-implemented method of claim 4, further comprising updating, by the fraud system, a blacklist of users after performing the remediation process, wherein the transaction processing server is configured to deny authorization of future transaction requests of users on the blacklist.

6. The computer-implemented method of claim 1, wherein the first data string comprises a first set of character sequences and the second data string comprises a second set of character sequences, the method further comprising: generating, using at least one processor, a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score comprising a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences exists in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that does not exist in the first set of character sequences; wherein each of the plurality of probability scores is based on an n-gram distance model.

7. The computer-implemented method of claim 6, further comprising triggering, by the monitoring system, the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

8. A system for generating and using an enhanced n-gram model, comprising: A transaction processing server comprising at least one processor and a monitoring system in communication with the transaction processing server, wherein the transaction processing server is programmed and / or configured to: receive a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server; determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, insert a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determine at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position immediately following the same index position as the second character; insert a placeholder character between each of the at least one pair of characters; determining whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generating a similarity score based on a number of matching character pairs at a same index in the first data string and the second data string relative to a total number of character pairs, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generating the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and wherein the monitoring system is programmed and / or configured to trigger a remediation process of the first transaction request and / or the second transaction request in response to the similarity score exceeding a predetermined threshold.

9. The system of claim 8, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system includes modifying, using a compliance system server, the first transaction request and / or the second transaction request such that the first data string and the second data string are a same data string.

10. The system of claim 9, wherein the compliance system is programmed and / or configured to update a whitelist of users after performing the remediation process, and wherein the transaction processing server is further programmed and / or configured to authorize future transaction requests of users on the whitelist.

11. The system of claim 8, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system includes identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

12. The system of claim 11, wherein the fraud system is programmed and / or configured to update a blacklist of users after performing the remediation process, and wherein the transaction processing server is further programmed and / or configured to deny authorization of future transaction requests of users on the blacklist.

13. The system of claim 8, wherein the first data string includes a first set of character sequences and the second data string includes a second set of character sequences, and wherein the transaction processing server is further programmed and / or configured to: generate a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score comprising a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences is present in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that is not present in the first set of character sequences; wherein each probability score in the plurality of probability scores is based on an n-gram distance model.

14. The system of claim 13, wherein the monitoring system is further programmed and / or configured to trigger the remediation process for the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold.

15. A computer program product comprising at least one non-transitory computer- readable medium comprising program instructions that, when executed by at least one processor, cause the at least one processor to: receive a first data string in a first transaction request and a second data string in a second transaction request processed by a transaction processing server; determine that a leading pair of characters of the first data string does not match a leading pair of characters of the second data string; in response to determining that the leading pair of characters of the first data string does not match the leading pair of characters of the second data string, insert a placeholder character at a first index position in the first data string and at a first index position in the second data string, wherein no placeholder characters exist in other positions in the first data string or the second data string; determine at least one pair of characters of the first data string, wherein a first character of the at least one pair of characters matches a character in the second data string at a same index position as the first character, and wherein a second character of the at least one pair of characters matches a character in the second data string at an index position immediately following the same index position as the second character; insert a placeholder character between each of the at least one pair of characters; determine whether a length of the first data string or a length of the second data string is less than a predetermined n-gram length, and (i) in response to determining that the length of the first data string or the length of the second data string is less than the predetermined n-gram length, generate a similarity score based on a number of matching pairs of characters at the same index in the first data string and the second data string relative to a total number of pairs of characters, or (ii) in response to determining that the length of the first data string and the length of the second data string is greater than or equal to the predetermined n-gram length, generate the similarity score based on an n-gram distance scoring model to compare the first data string to the second data string; and in response to the similarity score exceeding a predetermined threshold, trigger a remediation process of a monitoring system in communication with the transaction processing server for the first transaction request and / or the second transaction request.

16. The computer program product of claim 15, wherein the monitoring system is a compliance system, and wherein the remediation process performed by the compliance system includes modifying the first transaction request and / or the second transaction request using a compliance system server such that the first data string and the second data string are the same data string.

17. The computer program product of claim 16, wherein the program instructions further cause the at least one processor to trigger the compliance system to update a whitelist of users after execution of the remediation process, wherein the transaction processing server is configured to authorize future transaction requests of users on the whitelist.

18. The computer program product of claim 15, wherein the monitoring system is a fraud system, and wherein the remediation process performed by the fraud system includes identifying the first transaction request and / or the second transaction request as fraudulent and preventing authorization of the first transaction request and / or the second transaction request.

19. The computer program product of claim 18, wherein the program instructions further cause the at least one processor to trigger the fraud system to update a blacklist of users after execution of the remediation process, wherein the transaction processing server is configured to deny authorization of future transaction requests of users on the blacklist.

20. The computer program product of claim 15, wherein the first data string includes a first set of character sequences and the second data string includes a second set of character sequences, and wherein the program instructions further cause the at least one processor to: generate a combined similarity score comparing the first set of character sequences to the second set of character sequences, the combined similarity score based on: a weighted probability score comprising a sum of a plurality of probability scores divided by a number of character sequences in the first set of character sequences, wherein each of the plurality of probability scores represents a probability that a character sequence in the first set of character sequences is present in the second set of character sequences; and a penalty value assessed for each character sequence in the second set of character sequences that is not present in the first set of character sequences; and trigger the monitoring system to perform the remediation process of the first transaction request and / or the second transaction request in response to the combined similarity score exceeding a predetermined threshold, wherein each probability score in the plurality of probability scores is based on an n-gram distance model.

Citation Information

Patent Citations

  • Disambiguation and authentication of device users

    US20180060546A1

  • Hybrid approach to approximate string matching using machine learning

    US20180308003A1