Bank card recommendation method and device, electronic equipment and storage medium
By determining the bank card element information rules and priority sequence of the bank APP, the target rules and priorities are determined for the target user's bank card element information, the problem of insufficient flexibility in traditional bank card recommendation methods is solved, and the flexibility and accuracy of bank card recommendations are achieved.
Patent Information
- Application Number
- CN202411853531.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-13
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2044-12-13
AI Technical Summary
The traditional bank card recommendation method is poor in flexibility and cannot meet the needs of different bank APPs.
By determining the bank card element information rules and target priority sequences corresponding to each bank APP, the target rules and priority are determined for the target user's bank card element information, and the recommended order of bank cards is determined.
It realizes the flexibility and accuracy of bank card recommendations, adapts to the needs of different bank APPs, and improves user payment experience.
Smart Images

Figure CN119887321A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of financial technology, and in particular to a bank card recommendation method, device, electronic device and storage medium. Background Art
[0002] With the rapid development of mobile Internet and the innovative application of financial technology, the payment industry has undergone increasingly intensified changes, and traditional financial services have been comprehensively impacted. More and more commercial banks have realized the necessity and urgency of developing mobile payments, and have developed and built mobile payment capabilities based on bank apps. However, on the one hand, the user scale of bank apps is relatively limited, and it is difficult for a single bank to compete with Internet giants in the field of mobile payments; on the other hand, the payment product process design and interface standards of various bank apps vary greatly, which brings great difficulties to the cultivation of user payment habits and the construction of an acceptance environment.
[0003] In traditional technology, bank card recommendations are generally made in a default order, for example, the order of a user's bank cards is determined and recommended according to the time sequence in which the user binds the bank card. The bank card recommendation method of traditional technology is less flexible and cannot adapt to the needs of different bank apps. Summary of the invention
[0004] The present application provides a bank card recommendation method, device, electronic device and storage medium to solve the problem that the bank card recommendation method of traditional technology has poor flexibility and cannot adapt to the needs of different bank APPs.
[0005] In a first aspect, the present application provides a bank card recommendation method, the method comprising:
[0006] For each bank application APP, determine each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0007] For each target bank card bound to the target user, determine the target bank card element information corresponding to the target bank card; determine the corresponding target rule according to the target bank card element information; determine the target priority corresponding to the target bank card according to the target priority sequence;
[0008] The recommendation order of the target bank cards is determined according to the target priorities corresponding to the target bank cards; when it is identified that the target user uses the APP, bank card recommendations are made according to the recommendation order.
[0009] Optionally, the process of determining the target priority sequence corresponding to each rule includes:
[0010] Obtain the first priority sequence corresponding to each rule sent by the bank institution corresponding to the APP; and obtain the second priority sequence corresponding to each rule determined last time;
[0011] Determine the longest ascending priority subsequence in the first priority sequence; determine the priority value corresponding to the longest ascending priority subsequence in the second priority sequence, and use the priority value as the priority value corresponding to the longest ascending priority subsequence in the target priority sequence;
[0012] According to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, other priority values in the first priority sequence are updated to obtain other priority values in the target priority sequence.
[0013] Optionally, updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes:
[0014] Determine the first number of other priorities in the first priority sequence that are less than the first minimum value based on the first minimum value of the priority values corresponding to the longest ascending priority subsequence in the first priority sequence; determine each first priority value based on the second minimum value of the priority values corresponding to the longest ascending priority subsequence in the target priority sequence and the first number of other priorities that are less than the first minimum value; and use each first priority value to update the corresponding other priority values that are less than the first minimum value.
[0015] Optionally, determining each first priority value according to the second minimum value of the priority value corresponding to the longest priority ascending subsequence in the target priority sequence and the first number of other priorities that are less than the first minimum value comprises:
[0016] Substitute the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value into the following formula to determine each first priority value:
[0017] X j =j*C[0] / (n0+1), 0 <j<n0+1;
[0018] Wherein, C[0] refers to the second minimum value, n0 refers to the first number, and X j refers to each first priority value.
[0019] Optionally, updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes:
[0020] Determine, according to the priority value corresponding to the longest priority increasing subsequence in the first priority sequence, a second number of other priorities between every two adjacent priority values in the first priority sequence;
[0021] For every two adjacent priority values in the first priority sequence, each second priority value is determined according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priority values located between the two adjacent priority values; and each second priority value is used to correspondingly update the other priority values located between the two adjacent priority values.
[0022] Optionally, determining each second priority value according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values comprises:
[0023] Substitute the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values into the following formula to determine each second priority value:
[0024] Y j =C[i-1]+j*(C[i]-C[i-1]) / (n i +1), 0 <j<n i +1;
[0025] Wherein, C[i-1] refers to the smaller value among the priority values in the target priority sequence, C[i] refers to the larger value among the priority values in the target priority sequence, and n i refers to the second quantity, Y j refers to each of the second priority values.
[0026] Optionally, updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes:
[0027] Determine the third number of other priorities in the first priority sequence that are greater than the first maximum value based on the first maximum value of the priority values corresponding to the longest priority ascending subsequence in the first priority sequence; determine each third priority value based on the maximum priority value, the second largest priority value, and the third number of other priorities that are greater than the first maximum value corresponding to the longest priority ascending subsequence in the target priority sequence; and use each third priority value to correspondingly update the other priority values that are greater than the first maximum value.
[0028] Optionally, determining each third priority value according to the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority ascending subsequence in the target priority sequence includes:
[0029] Substitute the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence into the following formula to determine each third priority value:
[0030] Z j =C[k-1]+j*(C[k-1]-C[k-2]), 0 <j<n k +1;
[0031] Wherein, C[k-1] refers to the maximum priority value, C[k-2] refers to the second largest priority value, and n k refers to the third quantity, Z j refers to each third priority value.
[0032] Furthermore, after obtaining other priority values in the target priority sequence, the method further includes:
[0033] Determine whether there is a priority value in the target priority sequence whose number of decimal places is greater than a preset digit threshold. If so, amplify each priority value by a preset multiple until the number of decimal places of each amplified priority value is no greater than the preset digit threshold.
[0034] Furthermore, after determining the target priority sequence corresponding to each rule and before determining the corresponding target rule according to the target bank card element information, the method further includes:
[0035] According to the target priority sequence, a first data table is established with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority;
[0036] Determining the corresponding target rule according to the target bank card element information includes:
[0037] According to the target bank card element information and the first data table, a corresponding target rule is determined.
[0038] Further, according to the target bank card element information and the first data table, determining the corresponding target rule includes:
[0039] According to the first data table, in order of priority from high to low, determine in turn whether the bank card element information corresponding to the current rule number contains all the target bank card element information corresponding to the target bank card. If so, determine that the rule corresponding to the current rule number is the target rule.
[0040] Furthermore, after establishing the first data table and before determining the corresponding target rule according to the target bank card element information, the method further includes:
[0041] Transforming the table structure of the first data table to obtain a second data table corresponding to each type of bank card element information with the bank card element information as the primary key and the rule number as the association key;
[0042] Determining the corresponding target rule according to the target bank card element information includes:
[0043] According to the target bank card element information and the second data table corresponding to each type of bank card element information, the corresponding target rule is determined.
[0044] Further, according to the target bank card element information and the second data table corresponding to each type of bank card element information, determining the corresponding target rule includes:
[0045] For each target bank card element information corresponding to the target bank card, determine the rule number corresponding to the target bank card element information according to the second data table corresponding to each type of bank card element information; among the intersection of the rule numbers corresponding to the target bank card element information, determine the rule corresponding to the rule number with the highest priority as the target rule.
[0046] In a second aspect, the present application provides a bank card recommendation device, the device comprising:
[0047] A first determination module is used to determine, for each bank application APP, each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0048] The second determination module is used to determine the target bank card element information corresponding to each target bank card bound to the target user; determine the corresponding target rule according to the target bank card element information; and determine the target priority corresponding to the target bank card according to the target priority sequence;
[0049] The recommendation module is used to determine the recommendation order of each target bank card according to the target priority corresponding to each target bank card; when it is identified that the target user uses the APP, the bank card is recommended according to the recommendation order.
[0050] The first determination module is specifically used to obtain the first priority sequence corresponding to the various rules sent by the bank institution corresponding to the APP; and obtain the second priority sequence corresponding to the various rules determined last time; determine the longest priority increasing subsequence in the first priority sequence; determine the priority value corresponding to the longest priority increasing subsequence in the second priority sequence, and use the priority value as the priority value corresponding to the longest priority increasing subsequence in the target priority sequence; according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, update other priority values in the first priority sequence to obtain other priority values in the target priority sequence.
[0051] The first determination module is specifically used to determine the first number of other priorities in the first priority sequence that are less than the first minimum value according to the first minimum value of the priority value corresponding to the longest priority ascending subsequence in the first priority sequence; determine each first priority value according to the second minimum value of the priority value corresponding to the longest priority ascending subsequence in the target priority sequence and the first number of other priorities that are less than the first minimum value; and use each first priority value to update the corresponding other priority values that are less than the first minimum value.
[0052] The first determination module is specifically configured to substitute the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value into the following formula to determine each first priority value:
[0053] X j =j*C[0] / (n0+1), 0 <j<n0+1;
[0054] Wherein, C[0] refers to the second minimum value, n0 refers to the first number, and X j refers to each first priority value.
[0055] The first determination module is specifically used to determine the second number of other priorities between each two adjacent priority values in the first priority sequence according to the priority value corresponding to the longest priority ascending subsequence in the first priority sequence; for each two adjacent priority values in the first priority sequence, determine each second priority value according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values; and use each second priority value to update the corresponding other priority values between the two adjacent priority values.
[0056] The first determination module is specifically configured to substitute the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values into the following formula to determine each second priority value:
[0057] Y j =C[i-1]+j*(C[i]-C[i-1]) / (n i +1), 0 <j<n i +1;
[0058] Wherein, C[i-1] refers to the smaller value among the priority values in the target priority sequence, C[i] refers to the larger value among the priority values in the target priority sequence, and n i refers to the second quantity, Y j refers to each of the second priority values.
[0059] The first determination module is specifically used to determine the third number of other priorities in the first priority sequence that are greater than the first maximum value according to the first maximum value of the priority value corresponding to the longest priority ascending subsequence in the first priority sequence; determine each third priority value according to the maximum priority value, the second largest priority value, and the third number of other priorities that are greater than the first maximum value corresponding to the longest priority ascending subsequence in the target priority sequence; and use each third priority value to update the corresponding other priority values that are greater than the first maximum value.
[0060] The first determination module is specifically configured to substitute the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence into the following formula to determine each third priority value:
[0061] Z j=C[k-1]+j*(C[k-1]-C[k-2]), 0 <j<n k +1;
[0062] Wherein, C[k-1] refers to the maximum priority value, C[k-2] refers to the second largest priority value, and n k refers to the third quantity, Z j refers to each third priority value.
[0063] The first determination module is also used to determine whether there is a priority value with a decimal point greater than a preset digit threshold among the priority values in the target priority sequence. If so, each priority value is amplified by a preset multiple until the number of decimal points of each amplified priority value is no greater than the preset digit threshold.
[0064] The first determination module is further used to establish a first data table according to the target priority sequence, with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority;
[0065] The first determination module is specifically used to determine the corresponding target rule according to the target bank card element information and the first data table.
[0066] The first determination module is specifically used to determine, according to the first data table and in descending order of priority, whether the bank card element information corresponding to the current rule number contains all the target bank card element information corresponding to the target bank card; if so, determine that the rule corresponding to the current rule number is the target rule.
[0067] The first determination module is further used to transform the table structure of the first data table to obtain a second data table corresponding to each type of bank card element information with the bank card element information as the primary key and the rule number as the association key;
[0068] The first determination module is specifically used to determine the corresponding target rule according to the target bank card element information and the second data table corresponding to each type of bank card element information.
[0069] The first determination module is specifically used to determine the rule number corresponding to each target bank card element information corresponding to the target bank card according to the second data table corresponding to each type of bank card element information; and determine the rule corresponding to the highest priority rule number in the intersection of the rule numbers corresponding to the various target bank card element information as the target rule.
[0070] In a third aspect, the present application provides an electronic device, including a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other via the communication bus;
[0071] Memory, used to store computer programs;
[0072] The processor is used to implement the method when executing the program stored in the memory.
[0073] In a fourth aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the described method is implemented.
[0074] In a fifth aspect, the present application provides a computer program product, wherein the computer program product comprises an executable program, and the executable program is executed by a processor to implement the described method.
[0075] In this application, for each bank APP, first determine the various rules containing bank card element information corresponding to the APP and the target priority sequence corresponding to each rule. Then, for each target bank card bound to the target user, first determine the target bank card element information corresponding to the target bank card; then determine the corresponding target rule based on the target bank card element information; and then determine the target priority corresponding to the target bank card based on the target priority sequence. After determining the target priority corresponding to each target bank card, determine the recommendation order for each target bank card; when the target user uses the APP, make bank card recommendations based on the recommendation order. Thereby realizing a bank card recommendation method that adapts to the needs of different bank APPs, and improving the flexibility and accuracy of bank card recommendations. BRIEF DESCRIPTION OF THE DRAWINGS
[0076] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0077] Figure 1 A schematic diagram of the first bank card recommendation process provided for this application;
[0078] Figure 2 A schematic diagram of the process of determining the target priority sequence corresponding to each rule provided by this application;
[0079] Figure 3 A schematic diagram of a first process for updating other priority values in a first priority sequence provided by the present application;
[0080] Figure 4 A schematic diagram of a second process for updating other priority values in the first priority sequence provided by the present application;
[0081] Figure 5 A schematic diagram of a third process for updating other priority values in the first priority sequence provided by the present application;
[0082] Figure 6 A schematic diagram of the second bank card recommendation process provided for this application;
[0083] Figure 7 Schematic diagram of the third bank card recommendation process provided for this application;
[0084] Figure 8 Recommended bank card architecture diagram for this application;
[0085] Fig. 9 A flowchart for determining the longest priority increasing subsequence provided by the present application;
[0086] Fig.10 A flowchart of transforming the table structure of a first data table into a second data table provided by the present application;
[0087] Fig.11 The card list sorting effect diagram provided for this application;
[0088] Fig.12 A schematic diagram of the structure of the bank card recommendation device provided for this application;
[0089] Fig.13 This is a schematic diagram of the electronic device structure provided in this application. DETAILED DESCRIPTION
[0090] In order to make the purpose and implementation method of the present application clearer, the exemplary implementation method of the present application will be clearly and completely described below in conjunction with the drawings in the exemplary embodiments of the present application. Obviously, the described exemplary embodiments are only part of the embodiments of the present application, rather than all the embodiments.
[0091] It should be noted that the brief description of terms in this application is only for the convenience of understanding the embodiments described below, and is not intended to limit the embodiments of this application. Unless otherwise specified, these terms should be understood according to their common and usual meanings.
[0092] The terms "first", "second", "third", etc. in the specification and claims of this application and the above drawings are used to distinguish similar or similar objects or entities, and do not necessarily mean to limit a specific order or sequence, unless otherwise noted. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances.
[0093] The terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device comprising a list of components is not necessarily limited to all the components expressly listed but may include other components not expressly listed or inherent to such product or device.
[0094] The term "module" refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic or combination of hardware and / or software code that is capable of performing the functions associated with that element.
[0095] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
[0096] For the convenience of explanation, the above description has been made in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or limit the embodiments to the specific forms disclosed above. Based on the above teachings, various modifications and variations can be obtained. The selection and description of the above embodiments are to better explain the principles and practical applications, so that those skilled in the art can better use the embodiments and various different variations of the embodiments suitable for specific use considerations.
[0097] In the prior art, bank APP provides a function to query the bank card list. By obtaining the user ID, it traverses all the card lists under the user's name on the online payment platform and transparently transmits and returns them in the order of entry time. The prior art has the following problems:
[0098] Business aspect: Online payment platforms overstepped their authority and excessively interfered with the original card list configuration logic functions of the bank APP, failing to be compatible with the personalized payment scenarios and marketing demands of commercial banks.
[0099] Product: They are all the same. The card lists of online payment platforms transmitted by various bank apps are too homogeneous, lacking functions such as the last payment card, bubble recommendation function, and bank card function for commercial banks to choose independently.
[0100] Technical aspect: Following the rules, the bank fails to follow the principle of flexible assembly. It is urgent to flexibly combine and encapsulate the components in the online payment platform SDK according to the capabilities of the commercial banks' own APPs, and generate SDK versions exclusive to each bank.
[0101] In order to solve the above problems, the present application provides a bank card recommendation method based on dynamic rules. Each rule has a unique priority, and the initial priority value is identified by 1-N. Through different bank APP filtering rules, the order of bank cards is rearranged in real time according to the rules of each bank, thereby improving the user payment experience while ensuring data consistency.
[0102] This application integrates the card element rule sorting algorithm and the card list rule scoring algorithm to form a new algorithm. The online payment platform can support the bank APP to configure any number of rules. Each rule supports dynamic adjustment and can constrain the dimensions of each card element. Each dimension is optional. If it is not filled in, it means that the dimension is unlimited. The intersection between each dimension of a single rule is taken, and the union between multiple rules is taken. Cards recommended according to the recommendation rules are placed before unrecommended cards. Cards that meet the screening conditions of the first recommendation rule are displayed optimally; cards that meet the second recommendation rule and do not belong to the first recommendation rule are displayed subsequently. The order of cards in the same recommendation rule is consistent with the order of the previous card list. If there is no background configuration, the default logic of no recommended cards is returned in the order of the original card list. This application improves system performance, saves resource space, flexibly processes data, and is scalable.
[0103] Figure 1 The first bank card recommendation process diagram provided for this application includes the following steps:
[0104] S101: for each bank application APP, determining each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0105] S102: for each target bank card bound to the target user, determine the target bank card element information corresponding to the target bank card; determine the corresponding target rule according to the target bank card element information; determine the target priority corresponding to the target bank card according to the target priority sequence;
[0106] S103: Determine a recommendation order for each target bank card according to the target priority corresponding to each target bank card; and when it is identified that the target user uses the APP, recommend a bank card according to the recommendation order.
[0107] The bank card recommendation method provided in the application is applied to an electronic device, which may be a PC, computer, server or other device.
[0108] For each bank APP, the bank institution to which the APP belongs can issue the various rules corresponding to the APP containing bank card element information and the target priority sequence corresponding to each rule. The bank card element information includes at least one of the bank card institution identification, bank card type and bank card application scope. The bank card institution identification is, for example, Industrial and Commercial Bank of China, China Construction Bank, Agricultural Bank of China, etc.; the bank card type is, for example, savings card, loan card, etc.; the bank card application scope is, for example, consumption, repayment, etc. In addition, the bank card element information can also be other bank card attribute information, such as the bank card upload channel, etc. The upload channel is, for example, an online channel, an offline channel, a promotional activity, a partner channel, etc. For example, for each bank APP, the various rules containing bank card element information corresponding to the APP include Rule 1: Industrial and Commercial Bank of China, savings card; Rule 2: Industrial and Commercial Bank of China, loan card; Rule 3: China Construction Bank, consumption, etc. It should be noted that the type of bank card element information not involved in the rule indicates that the rule does not restrict the type of bank card element information. The types of bank card element information are, for example, the bank card institution identification, bank card type and bank card application scope. For example, rule 1: ICBC, savings card, does not restrict the type of bank card applicable scope. In other words, consumer bank cards or repayment bank cards all hit rule 1. For example, the rules corresponding to the APP include 8 in total. The rules corresponding to the APP and the target priority sequence corresponding to each rule are shown in Table 1 below:
[0109] Rule No. 1 2 3 4 5 6 7 8 Priority 8 7 4 6 2 3 5 1
[0110] Table 1
[0111] As shown in Table 1, the rule numbers of the rules corresponding to APP are 1 to 8, the rule number sequence is [1, 2, 3, 4, 5, 6, 7, 8], and the target priority sequence corresponding to each rule is [8, 7, 4, 6, 2, 3, 5, 1]. This means that the priority corresponding to rule number 8 is the highest, and the priority corresponding to rule number 1 is the lowest.
[0112] For the target user, obtain each target bank card bound to the target user. For each target bank card, determine the target bank card element information corresponding to the target bank card. The target bank card element information includes the bank card institution identification, bank card type and bank card applicable scope, etc. Determine the corresponding target rule according to the target bank card element information. For example, Rule 1: ICBC, savings card; Rule 2: ICBC, loan card; Rule 3: CCB, consumption. The target bank card element information corresponding to the target bank card is ICBC, savings card, consumption. Then the corresponding target rule determined according to the target bank card element information is Rule 1. In this way, the target rules corresponding to each target bank card bound to the target user can be determined. Then, as shown in Table 1, the target priority sequence includes the priorities corresponding to each rule. After determining the target rules corresponding to each target bank card bound to the target user, the target priorities corresponding to each target bank card can be determined according to the target priority sequence.
[0113] According to the target priority corresponding to each target bank card, the recommendation order of each target bank card is determined. Optionally, the target bank card with the highest target priority is ranked first, the target bank card with the second highest target priority is ranked second, and so on. It should be noted that if a target bank card does not hit the rule, the target bank card is ranked after the target bank card that hits the rule. For example, rule 1: ICBC, savings card; rule 2: ICBC, loan card; rule 3: CCB, consumption. If a target bank card is a loan card of Bank of Communications, it means that the target bank card does not hit the rule. When it is identified that the target user uses the APP, the bank card recommendation is made according to the recommendation order. Optionally, when the electronic device recognizes that the APP icon is clicked, it means that the user wants to use the APP. Obtain the user's identity information, such as the user's ID number, APP login information, etc. When it is determined that the target user uses the APP according to the user's identity information, the bank card recommendation is made according to the recommendation order. It should be noted that the bank cards bound to different users may be different, so the bank card recommendation order determined for different users is also different. This application implements an accurate bank card recommendation method for each bank APP and for different users.
[0114] In this application, for each bank APP, first determine the various rules containing bank card element information corresponding to the APP and the target priority sequence corresponding to each rule. Then, for each target bank card bound to the target user, first determine the target bank card element information corresponding to the target bank card; then determine the corresponding target rule based on the target bank card element information; and then determine the target priority corresponding to the target bank card based on the target priority sequence. After determining the target priority corresponding to each target bank card, determine the recommendation order for each target bank card; when the target user uses the APP, make bank card recommendations based on the recommendation order. Thereby realizing a bank card recommendation method that adapts to the needs of different bank APPs, and improving the flexibility and accuracy of bank card recommendations.
[0115] Figure 2 The schematic diagram of the process of determining the target priority sequence corresponding to each rule provided in this application includes the following steps:
[0116] S201: Obtain the first priority sequence corresponding to each rule sent by the bank institution corresponding to the APP; and obtain the second priority sequence corresponding to each rule determined last time;
[0117] S202: Determine the longest priority increasing subsequence in the first priority sequence; determine the priority value corresponding to the longest priority increasing subsequence in the second priority sequence, and use the priority value as the priority value corresponding to the longest priority increasing subsequence in the target priority sequence;
[0118] S203: According to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, other priority values in the first priority sequence are updated to obtain other priority values in the target priority sequence.
[0119] For example, the first priority sequence corresponding to each rule sent by the bank institution corresponding to the APP is the priority sequence shown in the above Table 1. The second priority sequence corresponding to each rule determined last time is shown in the following Table 2:
[0120] Rule No. 1 2 3 4 5 6 7 8 Priority 1 2 3 4 5 6 7 8
[0121] Table 2
[0122] Determine the longest priority increasing subsequence in the first priority sequence; the priority increasing subsequence refers to a subsequence with increasing priority in the order of rule numbers 1 to 8. The longest priority increasing subsequence in the first priority sequence shown in Table 1 is [2, 3, 5].
[0123] Determine the priority value corresponding to the longest priority increasing subsequence in the second priority sequence. First, determine the rule number sequence corresponding to the first longest priority increasing subsequence, and then use the rule number sequence corresponding to the priority value in the second priority sequence as the priority value corresponding to the longest priority increasing subsequence in the second priority sequence. For example, the longest priority increasing subsequence in the first priority sequence is [2, 3, 5], and the rule number sequence corresponding to the first longest priority increasing subsequence is [5, 6, 7]. The priority values corresponding to the rule number sequence in the second priority sequence are 5, 6, and 7, respectively. Use the priority value as the priority value corresponding to the longest priority increasing subsequence in the target priority sequence. That is, in the target priority sequence, the priority values corresponding to the rule number sequence [5, 6, 7] are 5, 6, and 7, respectively. In other words, ensure that the priority value of the longest priority increasing subsequence in the target priority sequence is guaranteed to remain unchanged in correspondence with the priority value in the previous second priority sequence.
[0124] Then, according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, the other priority values in the first priority sequence are updated to obtain other priority values in the target priority sequence. Among them, the principle of updating other priority values in the first priority sequence to obtain other priority values in the target priority sequence is that the size relationship of the first priority sequence is the same as the size relationship of the target priority sequence. For example, the first priority sequence is [8, 7, 4, 6, 2, 3, 5, 1], and the target priority sequence is [x1, x2, x3, x4, 5, 6, 7, x5]. x1, x2, x3, x4, x5 are the priority values to be updated in the target priority sequence except for the longest priority increasing subsequence. The priority value corresponding to rule number 8 in the first priority sequence is less than the priority value corresponding to rule number 5, so x5 is a value less than 5, such as 4, 3, 2, 1, etc. The priority value corresponding to rule number 4 in the first priority sequence is less than the priority value corresponding to rule number 7, so x4 is a value greater than 7, such as 8, 9, etc. The priority value corresponding to rule number 3 in the first priority sequence is smaller than the priority value corresponding to rule number 6, and smaller than the priority value corresponding to rule number 7. Therefore, x3 is a value greater than 6 and less than 7, such as 6.5, 6.6, etc. The priority value corresponding to rule number 2 in the first priority sequence is greater than the priority value corresponding to rule number 4. For example, the priority value x4 corresponding to rule number 4 is 8, then x2 is a value greater than 8, such as 9, 10, etc. The priority value corresponding to rule number 1 in the first priority sequence is greater than the priority value corresponding to rule number 2. For example, the priority value x2 corresponding to rule number 2 is 9, then x1 is a value greater than 9, such as 10, 11, etc.
[0125] Figure 3 The first process schematic diagram of updating other priority values in the first priority sequence provided by the present application includes the following steps:
[0126] S301: Determine a first number of other priorities in the first priority sequence that are smaller than the first minimum value according to a first minimum value of priority values corresponding to the longest priority ascending subsequence in the first priority sequence;
[0127] S302: Determine each first priority value based on the second minimum value of the priority value corresponding to the longest priority ascending subsequence in the target priority sequence, and the first number of other priority values that are less than the first minimum value; and use each first priority value to update the corresponding other priority values that are less than the first minimum value.
[0128] Specifically, according to the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, and the first number of other priorities that are less than the first minimum value, determining each first priority value includes:
[0129] Substitute the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value into the following formula to determine each first priority value:
[0130] X j =j*C[0] / (n0+1), 0 <j<n0+1;
[0131] Wherein, C[0] refers to the second minimum value, n0 refers to the first number, and X j refers to each first priority value.
[0132] Figure 4 The second process schematic diagram of updating other priority values in the first priority sequence provided by the present application includes the following steps:
[0133] S401: Determine a second number of other priorities between every two adjacent priority values in the first priority sequence according to the priority value corresponding to the longest ascending priority subsequence in the first priority sequence;
[0134] S402: For every two adjacent priority values in the first priority sequence, determine each second priority value according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priority values located between the two adjacent priority values; and use each second priority value to correspondingly update the other priority values located between the two adjacent priority values.
[0135] Specifically, according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values, determining each second priority value includes:
[0136] Substitute the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values into the following formula to determine each second priority value:
[0137] Y j =C[i-1]+j*(C[i]-C[i-1]) / (n i +1), 0 <j<n i +1;
[0138] Wherein, C[i-1] refers to the smaller value among the priority values in the target priority sequence, C[i] refers to the larger value among the priority values in the target priority sequence, and n i refers to the second quantity, Y j refers to each of the second priority values.
[0139] Figure 5 The third process schematic diagram of updating other priority values in the first priority sequence provided by the present application includes the following steps:
[0140] S501: Determine a third number of other priorities in the first priority sequence that are greater than the first maximum value according to a first maximum value of priority values corresponding to the longest priority increasing subsequence in the first priority sequence;
[0141] S502: Determine each third priority value based on the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority ascending subsequence in the target priority sequence; and use each third priority value to correspondingly update the other priority values greater than the first maximum value.
[0142] Specifically, according to the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence, determining each third priority value includes:
[0143] Substitute the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence into the following formula to determine each third priority value:
[0144] Z j =C[k-1]+j*(C[k-1]-C[k-2]), 0 <j<n k +1;
[0145] Wherein, C[k-1] refers to the maximum priority value, C[k-2] refers to the second largest priority value, and n k refers to the third quantity, Z j refers to each third priority value.
[0146] In the present application, after obtaining other priority values in the target priority sequence, the method further includes:
[0147] Determine whether there is a priority value in the target priority sequence whose number of decimal places is greater than a preset digit threshold. If so, amplify each priority value by a preset multiple until the number of decimal places of each amplified priority value is no greater than the preset digit threshold.
[0148] A preset digit threshold is stored in the electronic device. After determining each priority value in the target priority sequence, if there is a priority value with a decimal place greater than the preset digit threshold among the priority values in the target priority sequence, each priority value is amplified by a preset multiple, and it is further determined whether there is a priority value with a decimal place greater than the preset digit threshold among the priority values obtained after the amplification. If so, each priority value obtained after the amplification is further amplified by a preset multiple until the decimal place of each priority value obtained is no greater than the preset digit threshold.
[0149] Figure 6 The second bank card recommendation process diagram provided for this application includes the following steps:
[0150] S601: for each bank application APP, determining each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0151] S602: According to the target priority sequence, a first data table is established with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority;
[0152] S603: for each target bank card bound to the target user, determine the target bank card element information corresponding to the target bank card; determine the corresponding target rule according to the target bank card element information and the first data table; determine the target priority corresponding to the target bank card according to the target priority sequence;
[0153] S604: Determine a recommendation order for each target bank card according to the target priority corresponding to each target bank card; and when it is identified that the target user uses the APP, recommend a bank card according to the recommendation order.
[0154] Taking rule numbers as rule_1 and rule_2, and bank card element information as item_A, item_B, and item_C as an example, the first data table is shown in Table 3 below:
[0155]
[0156] Table 3
[0157] According to the target bank card element information and the first data table corresponding to each type of bank card element information, the corresponding target rule is determined. At this time, it is necessary to traverse the data of all rows in Table 3 to determine the corresponding target rule.
[0158] Specifically, according to the target bank card element information and the first data table, determining the corresponding target rule includes:
[0159] According to the first data table, in order of priority from high to low, determine in turn whether the bank card element information corresponding to the current rule number contains all the target bank card element information corresponding to the target bank card. If so, determine that the rule corresponding to the current rule number is the target rule.
[0160] Taking Table 3 as an example, the first data table can be established in order of priority from high to low. That is, the priority corresponding to the rule number rule_1 in Table 3 is higher than the priority corresponding to rule_2. For the target bank card, first determine whether the bank card element information corresponding to the first row of the first data table contains all the target bank card element information corresponding to the target bank card. If so, determine that the rule corresponding to the first row is the target rule. If not, continue to determine whether the bank card element information corresponding to the second row of the first data table contains all the target bank card element information corresponding to the target bank card. If so, determine that the rule corresponding to the second row is the target rule, otherwise continue to make subsequent judgments.
[0161] Figure 7 The third bank card recommendation process diagram provided for this application includes the following steps:
[0162] S701: for each bank application APP, determining each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0163] S702: According to the target priority sequence, a first data table is established with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority;
[0164] S703: transforming the table structure of the first data table to obtain a second data table corresponding to each type of bank card element information with the bank card element information as the primary key and the rule number as the association key;
[0165] S704: for each target bank card bound to the target user, determine the target bank card element information corresponding to the target bank card; determine the corresponding target rule according to the target bank card element information and the second data table corresponding to each type of bank card element information; determine the target priority corresponding to the target bank card according to the target priority sequence;
[0166] S705: Determine a recommendation order for each target bank card according to the target priority corresponding to each target bank card; and when it is identified that the target user uses the APP, recommend a bank card according to the recommendation order.
[0167] Taking rule numbers as rule_1 and rule_2, and a certain type of bank card element information as item_A, item_B, and item_C as an example, the second data table is shown in Table 4 below:
[0168]
[0169] Table 4
[0170] According to the target bank card element information and the second data table corresponding to each type of bank card element information, the corresponding target rule is determined. At this time, the first column of data in Table 4 can be directly matched according to the target bank card element information, and then the corresponding target rule can be determined according to the second column of data corresponding to the matching row.
[0171] Specifically, according to the target bank card element information and the second data table corresponding to each type of bank card element information, determining the corresponding target rule includes:
[0172] For each target bank card element information corresponding to the target bank card, determine the rule number corresponding to the target bank card element information according to the second data table corresponding to each type of bank card element information; among the intersection of the rule numbers corresponding to the target bank card element information, determine the rule corresponding to the rule number with the highest priority as the target rule.
[0173] The bank card recommendation process provided by this application is described below with reference to the accompanying drawings.
[0174] The present application provides a card list dynamic rule recommendation method based on a card element rule sorting algorithm and a card list rule scoring algorithm, which optimizes the time complexity of the card element rule sorting algorithm and the time complexity of the card list rule scoring algorithm.
[0175] Figure 8 The recommended bank card architecture diagram provided for this application, Figure 8 A represents the card element rule sorting algorithm, and B represents the card list rule scoring algorithm.
[0176] A. The card element rule sorting algorithm is described as follows:
[0177] Rule No. 1 2 3 4 5 6 7 8 Priority before modification 1 2 3 4 5 6 7 8 Modified priority 8 1 2 3 4 5 6 7 change +7 -1 -1 -1 -1 -1 -1 -1
[0178] Table 5
[0179] As shown in Table 5, the priority of each rule has been modified. If the priorities of rules 2-8 remain unchanged and the priority of rule 1 is changed to a number greater than 8, only the priority of one rule needs to be modified. Similarly, if rule 8 is not adjusted before rule 1, but between rules 4 and 5, in order to modify only one rule, the priority can be a decimal, and changing it to 4.5 can meet the requirements. For operation and maintenance personnel, if batch modification is used instead of a small amount of dragging, it is necessary to evaluate whether all records need to be adjusted or only a small number of records can still be modified. Through the above manual modification, it can be found that the number of changed rules is complementary to the longest increasing subsequence number of the rule order before and after the modification, which is converted into the longest increasing subsequence, and then the priority of the rule that needs to be modified can be inserted into the corresponding position as needed.
[0180] Rule No. 1 2 3 4 5 6 7 8 Priority before modification 1 2 3 4 5 6 7 8 Modified priority 8 7 4 6 2 3 5 1 change +7 +5 +1 +2 -3 -3 -2 -7 Algorithm correction priority 10 9 6.5 8 5 6 7 2.5 change +9 +7 +3.5 +4 0 0 0 -5.5
[0181] Table 6
[0182] Naturally, we can think that the longest increasing subsequence time complexity O(nlog(n)) is better than the bubble sort time complexity O(n 2 ), it ensures that the relative order of the subsequences does not need to be adjusted, and the number of remaining adjusted elements is minimal. Considering the general situation as shown in Table 6, the priority value corresponding to the longest increasing subsequence does not need to be modified. Just modify the priority values corresponding to rules 1, 2, 3, 4, and 8. At this time, we can think of insertion sorting. The fractional form between integers may be difficult for users to understand, but for the underlying code in the middle process, the density of rational numbers is sufficient to maintain the incremental requirements of sorting. When the interval between the adjusted priority value and the value is less than a specific threshold, the scaling idea is used to unify the magnification ratio to meet the subsequent re-sorting requirements, thereby avoiding the inability to insert due to decimal precision problems.
[0183] Reset the remaining elements of the original sequence: Binary search the interval position of each element in the longest increasing subsequence C[k-1] with a time complexity of O(log(n)) and accumulate the number of elements in k interval spaces.
[0184] According to the first minimum value of the priority value corresponding to the longest priority increasing subsequence in the first priority sequence, determine that the first number of other priorities in the first priority sequence that is less than the first minimum value is n0, and assign values j*C[0] / (n0+1) in order, 0 <j<n0+1。
[0185] According to the priority value corresponding to the longest priority increasing subsequence in the first priority sequence, the second number of other priorities between each two adjacent priority values in the first priority sequence is determined to be n. i , assign values C[i-1]+j*(C[i]-C[i-1]) / (ni +1), 0 <j<n i +1.
[0186] Determine a third number n of other priorities in the first priority sequence that are greater than the first maximum value according to the first maximum value of the priority value corresponding to the longest priority increasing subsequence in the first priority sequence k , assign values C[k-1]+j*(C[k-1]-C[k-2]) in order, 0 <j<n k +1.
[0187] The float type is a basic data type used to represent single-precision floating-point numbers in computer programming. Since the mantissa of the float type occupies 23 bits, this means that the first 6 bits of the decimal part (10 7 <2 23 <10 8 ) is accurate. Even in extreme cases, if a user wants to insert new records between two existing records, it can ensure 19 consecutive times (2 -19 >10 -6 >2 -20 ) is effectively inserted, and then the storage function protection is realized by enlarging the ratio.
[0188] Fig. 9 The flowchart for determining the longest priority increasing subsequence provided by this application is as follows: Fig. 9 As shown, the original array a, create array ep, create array b, where ep[i] represents the element position with the smallest value of the preceding element of the longest increasing subsequence ending with the i-th element, or the current position of the element if there is no preceding element. Where b[i] represents the element position with the smallest value of the ending element of the subsequence length i. Initialize a[n], ep[n], b[n], i=0, j=0, k=0, l=0, max=1.
[0189] Dynamic programming (sequence S, default sequence elements are not equal):
[0190] An array dp of length n-1, in which each element stores the minimum value of the last element of the global longest increasing subsequence of length i, and assigns 0 to it when there is no value. dp[n] is derived using the array dp[n-1] and the element S[n];
[0191] An array ep of length n-1, in which each element stores the element S[i] as the preceding element of the last element of the local longest increasing subsequence. If there is no value, S[i] is assigned. ep[n] is derived using the array ep[n-1] and the element S[n].
[0192] Function LIS (sequence S, default sequence elements are not equal):
[0193] Insert the current value S[n] into the dp array and add an element to the end of the ep array, and update the length len of the longest increasing subsequence;
[0194] Use binary search on the dp array until dp[i]<S[n]<dp[i + 1], with the initial value of len being 1.
[0195] S[n]<dp[0]: ep[n]=S[n], dp[0]=S[n];
[0196] dp[i]<S[n]<dp[i + 1]: ep[n]=dp[i], dp[i + 1]=S[n];
[0197] 0<dp[i]<S[n] & dp[i + 1]=0: ep[n]=dp[i], dp[i + 1]=S[n], len=len + 1.
[0198] The function returns the dp array, the ep array, and the length len, where dp[len - 1] is the last element of the global longest increasing subsequence, ep[dp[len - 1]] is the previous element of this last element, and continue to search for ep[ep[dp[len - 1]]] until ep[...ep[dp[len - 1]]...]=S[...ep[dp[len - 1]]...] is the starting element of the global longest increasing subsequence.
[0199] B. The description of the card list rule scoring algorithm is as follows:
[0200] After completing the rule priority sorting, the card list needs to be sorted according to the rules. The sorting standard is to score each card one by one according to the rule priority. If multiple rules are hit, the highest priority score is taken. If no rules are hit, the lowest backup score is taken. Finally, the score is used to reset the order of the original card list. Each card has multiple element features (such as head office organization, delivery channel, card type, bank card applicable scope, etc.). Each element feature must belong to the element feature set of the same card rule to be considered a hit. Obviously, if n cards, a card rule, m element features, and b element values are matched one by one, the algorithm time complexity is O(namb). Further analysis shows that there is no correlation between cards and element features, but in each element feature, the number of rules is a constant and definite value, the element value of each rule is uncertain but listable, and the element values between rules are shared. The actual operation and maintenance personnel are concerned about which rules can hit a card element value, rather than which element values a rule can hit. In other words, in this scenario, it is the element value that is matched instead of the rule value. In a single feature, changing the arrangement of feature values by rule to the arrangement of rule values by feature can reduce the time complexity of matching. During the sorting process, each feature has a total of b*a feature-rule values, and the time complexity of binary sorting is O(ablog(ab)), and the time complexity of m feature features is O(mablog(ab)). During the matching process, the time complexity of binary search for each feature is O(log(b)), and the time complexity of a card rule, m feature features, and n cards is O(nmalog(b)). Sorting and matching support asynchronous processing, so the overall time complexity is max(O(mabmax(log(a),log(b))),O(nmalog(b))). The query time after sorting is better, and when n is large enough and a and b are bounded, the overall time is also optimal.
[0201] Fig.10 The flowchart of transforming the table structure of the first data table into the second data table provided by the present application is as follows: Fig.10 As shown, the card list before adjustment is Card[n,m], where n represents the number of card lists and m represents the dimension of rule elements. The element order is Item[m,set[b:a]], where a represents the number of rules, m represents the dimension of rule elements, b represents the element value set, set order, rule hit count Exist[a], where a represents the number of rules, and empty list score Priority[n], where n represents the number of card lists; i=1, i represents the card list number; j=1, j represents the rule number; k=1, k represents the rule element number; l=1, l represents the rule element value number.
[0202] Deformed binary search:
[0203] There are m rule dimensions before deformation, each rule has n element dimensions, and m*n point sets can be configured.
[0204] Num cards match rules-element dimension. Each card needs to traverse all m*n point sets to obtain at most m rules for the specified element. The complexity is O(m*n), and the total complexity is O(Num*m*n).
[0205] After deformation, there are n element dimensions, each element has m regular dimensions, and n*m point sets can be configured. The relationship before and after deformation is surjective.
[0206] The m*n binary sorting process is n*m, with a complexity of O(m*n*log2(m*n)), and only one global match is required. In the matching feature-rule dimension, the feature is searched in binary search first, and then the m point sets under the feature dimension are traversed to obtain at most m rules for the specified feature, with a complexity of O(m*log2(n)), and a total complexity of O(Num*m*log2(n)).
[0207] When Num is large enough, Num>max(log2(m),log2(n)), the deformation processing is optimized to improve the rule matching performance.
[0208] Fig.11 The card list sorting effect diagram provided for this application. Fig.11 As shown, the card list before sorting is [1, 2, 3, 4, 5, 6, 7, 8]. The priority of rule 8 is higher than that of rule 5, and the priority of rule 5 is higher than that of rule 6. Bank cards 3 and 6 hit rule 8, bank cards 2, 4 and 8 hit rule 5, bank card 7 hits rule 6, and bank cards 1 and 5 do not hit the rule. Bank cards 3 and 6 are ranked first, bank cards 2, 4 and 8 are ranked second, bank card 7 is ranked third, and bank cards 1 and 5 are ranked last. In addition, the sorting between bank cards 3 and 6 can be random, or it can be consistent with the sorting of bank cards 3 and 6 last time. For example, if bank card 3 was ranked before 6 last time, the sorted card list will still be bank card 3 ranked before bank card 6. The sorting between bank cards 2, 4 and 8 can be random, or it can be consistent with the sorting of bank cards 2, 4 and 8 last time. For example, if bank card 2 was ranked before bank card 4 last time, and bank card 4 was ranked before bank card 8, then the sorted card list will still have bank card 2 ranked before bank card 4, and bank card 4 ranked before bank card 8. The sorting between bank cards 1 and 5 can be random, or it can be consistent with the sorting of bank cards 1 and 5 last time. For example, if bank card 1 was ranked before 5 last time, then the sorted card list will still have bank card 1 ranked before bank card 5.
[0209] The minimum change order method in the card element rule sorting algorithm can be extended to other scenarios with strict hierarchical divisions, such as quarterly performance mutual evaluation, payment deduction order, etc. The replacement arrangement dimension method in the card list rule scoring algorithm can be extended to other two-dimensional distribution scenarios where the original dimension is unrelated to the query element, and the new dimension after deformation is related to the query element.
[0210] Fig.12 The schematic diagram of the bank card recommendation device provided for this application includes:
[0211] The first determination module 121 is used to determine, for each bank application APP, each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope;
[0212] The second determination module 122 is used to determine the target bank card element information corresponding to each target bank card bound to the target user; determine the corresponding target rule according to the target bank card element information; and determine the target priority corresponding to the target bank card according to the target priority sequence;
[0213] The recommendation module 123 is used to determine the recommendation order of each target bank card according to the target priority corresponding to each target bank card; when it is identified that the target user uses the APP, the bank card is recommended according to the recommendation order.
[0214] The first determination module 121 is specifically used to obtain the first priority sequence corresponding to the various rules sent by the bank institution corresponding to the APP; and obtain the second priority sequence corresponding to the various rules determined last time; determine the longest priority increasing subsequence in the first priority sequence; determine the priority value corresponding to the longest priority increasing subsequence in the second priority sequence, and use the priority value as the priority value corresponding to the longest priority increasing subsequence in the target priority sequence; according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, update other priority values in the first priority sequence to obtain other priority values in the target priority sequence.
[0215] The first determination module 121 is specifically used to determine the first number of other priorities in the first priority sequence that are less than the first minimum value according to the first minimum value of the priority value corresponding to the longest priority ascending subsequence in the first priority sequence; determine each first priority value according to the second minimum value of the priority value corresponding to the longest priority ascending subsequence in the target priority sequence and the first number of other priorities that are less than the first minimum value; and use each first priority value to update the corresponding other priority values that are less than the first minimum value.
[0216] The first determination module 121 is specifically configured to substitute the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value into the following formula to determine each first priority value:
[0217] X j =j*C[0] / (n0+1), 0 <j<n0+1;
[0218] Wherein, C[0] refers to the second minimum value, n0 refers to the first number, and X j refers to each first priority value.
[0219] The first determination module 121 is specifically used to determine the second number of other priorities between each two adjacent priority values in the first priority sequence according to the priority value corresponding to the longest priority ascending subsequence in the first priority sequence; for each two adjacent priority values in the first priority sequence, determine each second priority value according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values; and use each second priority value to update the corresponding other priority values between the two adjacent priority values.
[0220] The first determination module 121 is specifically configured to substitute the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values into the following formula to determine each second priority value:
[0221] Y j =C[i-1]+j*(C[i]-C[i-1]) / (n i +1), 0 <j<n i +1;
[0222] Wherein, C[i-1] refers to the smaller value among the priority values in the target priority sequence, C[i] refers to the larger value among the priority values in the target priority sequence, and n i refers to the second quantity, Y j refers to each of the second priority values.
[0223] The first determination module 121 is specifically used to determine the third number of other priorities in the first priority sequence that are greater than the first maximum value according to the first maximum value of the priority value corresponding to the longest priority increasing subsequence in the first priority sequence; determine each third priority value according to the maximum priority value, the second largest priority value, and the third number of other priorities that are greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence; and use each third priority value to correspondingly update the other priority values that are greater than the first maximum value.
[0224] The first determination module 121 is specifically configured to substitute the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence into the following formula to determine each third priority value:
[0225] Z j =C[k-1]+j*(C[k-1]-C[k-2]), 0 <j<n k +1;
[0226] Wherein, C[k-1] refers to the maximum priority value, C[k-2] refers to the second largest priority value, and n k refers to the third quantity, Z j refers to each third priority value.
[0227] The first determination module 121 is also used to determine whether there is a priority value with a decimal place greater than a preset digit threshold among the priority values in the target priority sequence. If so, each priority value is amplified by a preset multiple until the number of decimal places of each amplified priority value is no greater than the preset digit threshold.
[0228] The first determination module 121 is further used to establish a first data table according to the target priority sequence, with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority;
[0229] The first determination module 121 is specifically configured to determine a corresponding target rule according to the target bank card element information and the first data table.
[0230] The first determination module 121 is specifically used to determine, according to the first data table and in descending order of priority, whether the bank card element information corresponding to the current rule number contains all the target bank card element information corresponding to the target bank card; if so, determine that the rule corresponding to the current rule number is the target rule.
[0231] The first determination module 121 is further used to transform the table structure of the first data table to obtain a second data table corresponding to each type of bank card element information with the bank card element information as the primary key and the rule number as the association key;
[0232] The first determination module 121 is specifically configured to determine a corresponding target rule according to the target bank card element information and the second data table corresponding to each type of bank card element information.
[0233] The first determination module 121 is specifically used to determine, for each target bank card element information corresponding to the target bank card, the rule number corresponding to the target bank card element information according to the second data table corresponding to each type of bank card element information; and determine the rule corresponding to the highest priority rule number in the intersection of the rule numbers corresponding to the target bank card element information as the target rule.
[0234] The present application also provides an electronic device, such as Fig.13 As shown, it includes: a processor 131, a communication interface 132, a memory 133 and a communication bus 134, wherein the processor 131, the communication interface 132, and the memory 133 communicate with each other through the communication bus 134;
[0235] The memory 133 stores a computer program, and when the program is executed by the processor 131, the processor 131 executes any of the above method steps.
[0236] The communication bus mentioned in the above electronic device can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0237] The communication interface 132 is used for communication between the above electronic device and other devices.
[0238] The memory may include a random access memory (RAM) or a non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.
[0239] The above-mentioned processor can be a general-purpose processor, including a central processing unit, a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc.
[0240] The present application also provides a computer storage readable storage medium, wherein the computer readable storage medium stores a computer program executable by an electronic device, and when the program runs on the electronic device, the electronic device implements any of the above method steps when executing.
[0241] The present application provides a computer program product, wherein the computer program product comprises an executable program, and when the executable program is executed by a processor, the method described above is implemented.
[0242] Although the preferred embodiments of the present application have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
[0243] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A bank card recommendation method, characterized in that: The method comprises: For each bank application APP, determine each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope; For each target bank card bound to the target user, determine the target bank card element information corresponding to the target bank card; determine the corresponding target rule according to the target bank card element information; determine the target priority corresponding to the target bank card according to the target priority sequence; The recommendation order of the target bank cards is determined according to the target priorities corresponding to the target bank cards; when it is identified that the target user uses the APP, bank card recommendations are made according to the recommendation order.
2. The method according to claim 1, characterized in that The process of determining the target priority sequence corresponding to each of the rules includes: Obtain the first priority sequence corresponding to each rule sent by the bank institution corresponding to the APP; and obtain the second priority sequence corresponding to each rule determined last time; Determine the longest ascending priority subsequence in the first priority sequence; determine the priority value corresponding to the longest ascending priority subsequence in the second priority sequence, and use the priority value as the priority value corresponding to the longest ascending priority subsequence in the target priority sequence; According to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence, other priority values in the first priority sequence are updated to obtain other priority values in the target priority sequence.
3. The method according to claim 2, characterized in that Updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes: Determine the first number of other priorities in the first priority sequence that are less than the first minimum value based on the first minimum value of the priority values corresponding to the longest ascending priority subsequence in the first priority sequence; determine each first priority value based on the second minimum value of the priority values corresponding to the longest ascending priority subsequence in the target priority sequence and the first number of other priorities that are less than the first minimum value; and use each first priority value to update the corresponding other priority values that are less than the first minimum value.
4. The method according to claim 3, characterized in that Determining each first priority value according to the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value comprises: Substitute the second minimum value of the priority value corresponding to the longest priority increasing subsequence in the target priority sequence and the first number of other priorities less than the first minimum value into the following formula to determine each first priority value: X j =j*C[0] / (n0+1),0<j<n0+1; Wherein, C[0] refers to the second minimum value, n0 refers to the first number, and X j refers to each first priority value.
5. The method according to claim 2, characterized in that Updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes: Determine, according to the priority value corresponding to the longest priority increasing subsequence in the first priority sequence, a second number of other priorities between every two adjacent priority values in the first priority sequence; For every two adjacent priority values in the first priority sequence, each second priority value is determined according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priority values located between the two adjacent priority values; and each second priority value is used to correspondingly update the other priority values located between the two adjacent priority values.
6. The method according to claim 5, characterized in that Determining each second priority value according to the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values comprises: Substitute the two adjacent priority values in the first priority sequence, the priority value corresponding to the target priority sequence, and the second number of other priorities between the two adjacent priority values into the following formula to determine each second priority value: Y j =C[i-1]+j*(C[i]-C[i-1]) / (n i +1),0<j<n i +1; Wherein, C[i-1] refers to the smaller value among the priority values in the target priority sequence, C[i] refers to the larger value among the priority values in the target priority sequence, and n i refers to the second quantity, Y j refers to each of the second priority values.
7. The method according to claim 2, characterized in that Updating other priority values in the first priority sequence according to the priority value corresponding to the longest priority increasing subsequence in the target priority sequence includes: Determine the third number of other priorities in the first priority sequence that are greater than the first maximum value based on the first maximum value of the priority values corresponding to the longest priority ascending subsequence in the first priority sequence; determine each third priority value based on the maximum priority value, the second largest priority value, and the third number of other priorities that are greater than the first maximum value corresponding to the longest priority ascending subsequence in the target priority sequence; and use each third priority value to correspondingly update the other priority values that are greater than the first maximum value.
8. The method according to claim 7, characterized in that Determining each third priority value according to the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence comprises: Substitute the maximum priority value, the second largest priority value, and the third number of other priorities greater than the first maximum value corresponding to the longest priority increasing subsequence in the target priority sequence into the following formula to determine each third priority value: Z j =C[k-1]+j*(C[k-1]-C[k-2]),0<j<n k +1; Wherein, C[k-1] refers to the maximum priority value, C[k-2] refers to the second largest priority value, and n k refers to the third quantity, Z j refers to each third priority value.
9. The method according to claim 2, characterized in that After obtaining other priority values in the target priority sequence, the method further includes: Determine whether there is a priority value with a decimal place greater than a preset digit threshold among the priority values in the target priority sequence. If so, amplify each priority value by a preset multiple until the number of decimal places of each amplified priority value is no greater than the preset digit threshold.
10. The method according to claim 1, characterized in that After determining the target priority sequence corresponding to each rule and before determining the corresponding target rule according to the target bank card element information, the method further includes: According to the target priority sequence, a first data table is established with the rule number as the primary key and the bank card element information as the associated key; wherein the rule numbers in the first data table are arranged in descending order of priority; Determining the corresponding target rule according to the target bank card element information includes: According to the target bank card element information and the first data table, a corresponding target rule is determined.
11. The method according to claim 10, characterized in that Determining the corresponding target rule according to the target bank card element information and the first data table includes: According to the first data table, in order of priority from high to low, determine in turn whether the bank card element information corresponding to the current rule number contains all the target bank card element information corresponding to the target bank card. If so, determine that the rule corresponding to the current rule number is the target rule.
12. The method according to claim 10, characterized in that After establishing the first data table and before determining the corresponding target rule according to the target bank card element information, the method further includes: Transforming the table structure of the first data table to obtain a second data table corresponding to each type of bank card element information with the bank card element information as the primary key and the rule number as the association key; Determining the corresponding target rule according to the target bank card element information includes: According to the target bank card element information and the second data table corresponding to each type of bank card element information, the corresponding target rule is determined.
13. The method according to claim 12, characterized in that Determining the corresponding target rule according to the target bank card element information and the second data table corresponding to each type of bank card element information includes: For each target bank card element information corresponding to the target bank card, determine the rule number corresponding to the target bank card element information according to the second data table corresponding to each type of bank card element information; among the intersection of the rule numbers corresponding to the target bank card element information, determine the rule corresponding to the rule number with the highest priority as the target rule.
14. A bank card recommendation device, characterized in that: The device comprises: A first determination module is used to determine, for each bank application APP, each rule corresponding to the APP and containing bank card element information and a target priority sequence corresponding to each rule; wherein the bank card element information includes at least one of a bank card institution identifier, a bank card type, and a bank card applicable scope; The second determination module is used to determine the target bank card element information corresponding to each target bank card bound to the target user; determine the corresponding target rule according to the target bank card element information; and determine the target priority corresponding to the target bank card according to the target priority sequence; The recommendation module is used to determine the recommendation order of each target bank card according to the target priority corresponding to each target bank card; when it is identified that the target user uses the APP, the bank card is recommended according to the recommendation order.
15. An electronic device, characterized in that: It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor, for implementing the method described in any one of claims 1 to 13 when executing a program stored in a memory.
16. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 13 is implemented.
17. A computer program product, characterized in that The computer program product comprises an executable program, which is executed by a processor to implement the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Information sorting method and device
CN105786868A
Intelligent management method for multiple cards and system thereof
CN106611307A
Card recommending method, device and mobile terminal
CN109146472A
Information recommendation method and device
CN114202370A
Card data list sorting method and device
CN114489430A