US20140358945A1 - Systems and Methods for Matching Users - Google Patents

Systems and Methods for Matching Users Download PDF

Info

Publication number
US20140358945A1
US20140358945A1 US14/307,591 US201414307591A US2014358945A1 US 20140358945 A1 US20140358945 A1 US 20140358945A1 US 201414307591 A US201414307591 A US 201414307591A US 2014358945 A1 US2014358945 A1 US 2014358945A1
Authority
US
United States
Prior art keywords
user
matching
users
characteristic
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/307,591
Inventor
Wenbiao Xie
Lingming Chen
Xingping Long
Xinhai Zeng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201310216154.XA external-priority patent/CN103294809B/en
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of US20140358945A1 publication Critical patent/US20140358945A1/en
Assigned to TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED reassignment TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHEN, Lingming, LONG, Xingping, XIE, Wenbiao, ZENG, Xinhai
Priority to US15/788,667 priority Critical patent/US10872121B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F17/30595
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • Certain embodiments of the present invention are directed to computer technology. More particularly, some embodiments of the invention provide systems and methods for data processing. Merely by way of example, some embodiments of the invention have been applied to user matching. But it would be recognized that the invention has a much broader range of applicability.
  • the Internet has become an indispensable communication channel in people's daily lives.
  • users can socialize, play games or enjoy entertainment through the Internet.
  • Many applications may involve multiple users. For example, multiple players may need to work together to play a game, and thus a server needs to match different users to provide various Internet services to the users.
  • a method for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • a user-matching device includes the list-maintenance module, the user-retrieval module, the matching module, the matching-degree-calculation module, the selection module and the return module.
  • the list-maintenance module is configured to maintain a user list that includes multiple users to be matched.
  • the user-retrieval module is configured to retrieve one or more first users from the user list.
  • the matching module is configured to retrieve one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list.
  • the matching-degree-calculation module is configured to calculate one or more first matching degrees for the one or more first user groups.
  • the selection module is configured to select a second user group associated with a highest first matching degree from the one or more first user groups.
  • the return module is configured to return the second user group.
  • a non-transitory computer readable storage medium includes programming instructions for matching users.
  • the programming instructions are configured to cause one or more data processors to execute certain operations. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • FIG. 1 is a simplified diagram showing an operating environment for user matching according to one embodiment of the present invention.
  • FIG. 2 is a simplified diagram showing a server for user matching according to one embodiment of the present invention.
  • FIG. 3 is a simplified diagram showing a method for user matching according to one embodiment of the present invention.
  • FIG. 4 is a simplified diagram showing a method for user matching according to another embodiment of the present invention.
  • FIG. 5 is a simplified diagram showing a method for user matching according to yet another embodiment of the present invention.
  • FIG. 6 is a simplified diagram showing a method for user matching according to yet another embodiment of the present invention.
  • FIG. 7 is a simplified diagram showing a device for user matching according to one embodiment of the present invention.
  • FIG. 8 is a simplified diagram showing a device for user matching according to another embodiment of the present invention.
  • FIG. 9 is a simplified diagram showing a device for user matching according to yet another embodiment of the present invention.
  • FIG. 10 is a simplified diagram showing a device for user matching according to yet another embodiment of the present invention.
  • FIG. 1 is a simplified diagram showing an operating environment for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • a user 11 sends a matching request to a server 10 via the Internet.
  • the server 10 accordingly receives the incoming matching request from the user, completes matching users and returns matching results to the user 11 .
  • the user 11 relies on a certain client when sending the matching request.
  • the client includes an electronic device installed and operated with a smart operating system, such as a computer, a laptop, a tablet, a smart phone, a wearable electronic terminal (e.g., a mobile smart watch, glasses, etc.).
  • FIG. 2 is a simplified diagram showing the server 10 for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • the server 10 includes one or more processors 102 , one or more storage media 104 and a transmission module 106 .
  • the storage media 104 is configured to store software programs and modules, such as program instructions/modules that correspond to a user-matching method and a user-matching device described in the present disclosure.
  • the processors 102 execute various functional applications and data processing through the software programs and modules stored in the storage media 104 to realize the user-matching method and the user-matching device.
  • the storage media 104 includes high-speed random access memory devices, as well as non-volatile memory devices such as one or more magnetic storage devices, flash memory or other non-volatile, solid state memory devices.
  • the storage media 104 further include remote memory devices relative to the processors 102 , and these remote memory devices can be connected to the server 10 via a network (e.g., the Internet, a company intranet, a local area network or a mobile communication network, or other suitable networks).
  • a network e.g., the Internet, a company intranet, a local area network or a mobile communication network, or other suitable networks.
  • the transmission module 106 is configured to receive or send data through a network (e.g., a wired network, or a wireless network).
  • a network e.g., a wired network, or a wireless network.
  • the transmission module 106 includes a Network Interface Controller (NIC) that can be connected to other network devices or routers using a network cable to communicate with the Internet.
  • the transmission module 106 includes a Radio Frequency (RF) module configured to communicate with clients wirelessly.
  • NIC Network Interface Controller
  • RF Radio Frequency
  • FIG. 3 is a simplified diagram showing a method for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • the method 300 includes at least the process S 110 -S 160 .
  • the process S 110 includes: maintaining a user list that includes multiple users to be matched. As shown in FIG. 1 , different users send matching requests to the server 10 respectively, in some embodiments.
  • the server 10 receives the incoming matching requests from the users through the transmission module 106 .
  • a matching request corresponds to at least one user.
  • each matching request corresponds to only one user.
  • each matching request corresponds to two or more users. For example, a particular user invites his/her good friends to form a team and then sends a matching request to the server 10 . In this case, the matching request corresponds to two or more users.
  • the server 10 can then parse and identify the corresponding users and add every user to the user list, in certain embodiments.
  • the user list has a certain logical order.
  • the user list is arranged in accordance with submission times of certain matching requests.
  • the logical sequencing is different from a storage structure and a storage order of the user list, in some embodiments.
  • the process S 120 includes: retrieving at least one user from the user list. For example, at least one user corresponding to an earliest submission time of a matching request is retrieved from the user list.
  • the user list is ordered based on at least information associated with user priority. For example, some important users can have a higher priority and be given preference for user matching.
  • the retrieved at least one user here can be one user.
  • multiple users correspond to a matching request, and the retrieved at least one user may include all users associated with the matching request, so that all users of the matching request are matched into a user group.
  • the process S 130 includes: retrieving one or more user groups that include the at least one user.
  • the user groups include a predetermined number of users within the user list.
  • the user list includes M users, and the retrieved at least one user includes A users.
  • the predetermined number of users correspond to K users.
  • the process Step S 130 includes: retrieving all possible sub-groups (e.g., K ⁇ A) from the user list except the at least one user (e.g., M ⁇ A).
  • the number of such possible sub-groups is C M ⁇ A K ⁇ A . All user groups can be obtained by combining these sub-groups with the retrieved at least one user, in some embodiments.
  • the process S 130 includes: retrieving from M users all possible groups including K users. The number of such user groups is C M K , and then the user groups that include the retrieved at least one user are retrieved.
  • the process S 140 includes: calculating a matching degree for each user group.
  • the matching degree is calculated based on at least information associated with one or more characteristic requests of a user.
  • a user group matching the user's characteristic requests has a high matching degree.
  • the matching degree is represented by one or more indices. The higher the index, the higher the matching degree.
  • calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: obtaining all possible two-user sub-groups among all users within the user group; calculating a matching value M for each sub-group. For example, if a sub-group matches with the characteristic value corresponding to the characteristic request, M is a predetermined non-zero value. Otherwise, M is zero.
  • calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: calculating the characteristic matching degree based on the following formula:
  • the characteristic request is included in the matching request.
  • a user interface is provided on a client to record certain characteristics desired by a user, such as user role, level, gender, geographical location, etc.
  • the process S 110 if a matching request is received from a first user, one or more second users corresponding to the matching request are added to the user list. Furthermore, one or more characteristic values are set for the newly added second users. As an example, the characteristic values are obtained from a database. In another example, the method 300 includes: setting one or more characteristic values for each user in the user list.
  • a user in a matching request, requires other users or virtual roles operated by other users have certain characteristics: 1. level matching; 2. complementary roles; 3. geographical proximity (same city). For example, with respect to each characteristic, if two users are matched, the matching degree of that particular characteristic is 100. In another example, in a user group, the average value of the matching degree of all the two-user sub-groups is recorded as the matching degree of that particular characteristic.
  • the level matching refers to at a same level or with a same level range. As an example, the level range can be 1-5, 6-10, 11-15, etc. The smaller the level difference, the higher the matching degree.
  • the complementary roles refer to different roles. The more the roles complement each other, the higher the matching degree. As another example, with respect to the geographical location, the closer the two users are, the higher the matching degree. If two users are located in a same city, a highest matching degree (e.g., 100) is given, in some embodiments.
  • a user group includes the following three users: User A: Level 10, role of master, geographical location in Shenzhen; User B: Level 8, role of master, geographical location in Guangzhou; User C: Level 12, role of master, geographical location in Shenzhen.
  • User A Level 10, role of master, geographical location in Shenzhen
  • User B Level 8, role of master, geographical location in Guangzhou
  • User C Level 12, role of master, geographical location in Shenzhen.
  • a and B match with each other, A and. C do not match, and. B and C do not match.
  • a and C match with each other, while A and B half-match with each other and B and C half-match with each other (e.g., users in a same region are considered to be half-match).
  • the importance of each characteristic is different, and the specific importance may be set according to specific needs.
  • the calculation of the matching degree of a user group includes: retrieving one or more characteristic requests of a user; setting one or more weighting factors for each characteristic request; calculating one or more characteristic matching degrees based on at least information associated with the one or more characteristic requests; and calculating a matching degree for the user group based on at least information associated with the weighting factors and the first characteristic matching degrees.
  • level matching has a highest priority
  • role matching has a second highest priority
  • geographical location matching has a lowest priority.
  • the weighting factors of the three characteristics are 60, 30 and 10 respectively.
  • the process S 150 includes: selecting a user group that has a highest matching degree from all the user groups. For example, after the matching degrees of all user groups have been calculated, the matching degrees are arranged in order and the user group with the highest matching degree is then selected.
  • the process S 160 includes: returning the user group that has the highest matching degree.
  • returning the user group that has the highest matching degree refers to: for every user in the user group, return the information of all other users, and the information of other users can be displayed at a side of the user.
  • the information of other users includes attribute information of other users such as role names, levels, role types, geographical locations, etc.
  • the user-matching method 300 can be implemented to obtain quickly user-matching results that meet user expectations to allow smooth operations of various online applications, in some embodiments.
  • FIG. 4 is a simplified diagram showing the method 300 for user matching according to another embodiment of the present invention.
  • This diagram is merely an example, which should not unduly limit the scope of the claims.
  • the method 300 further includes at least the process S 210 .
  • the process S 210 is executed and includes: deleting all users in the returned user group from the user list. Thus, a same user will not be matched to two different user groups at the same time, in some embodiments.
  • FIG. 5 is a simplified diagram showing the method 300 for user matching according to yet another embodiment of the present invention.
  • This diagram is merely an example, which should not unduly limit the scope of the claims.
  • the method 300 further includes at least the process S 310 .
  • the process S 310 is executed between the process S 110 and the process S 120 and includes: determining whether a wait time associated with a matching request related to a user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request; in response to the wait time exceeding the threshold, returning a matching-failure message for the user and deleting the user from the user list.
  • FIG. 6 is a simplified diagram showing the method 300 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • the method 300 further includes at least the processes S 410 and S 420 .
  • the process S 410 is executed between the process S 150 and the process S 160 , and includes: determine if a matching degree of a user group with a highest matching degree has exceeded a predetermined threshold. For example, if the highest matching degree exceeds the predetermined threshold, the process S 160 is executed. Otherwise, the process S 420 is executed and a match-failure result is returned. The match-failure result is returned only when the matching degree of the user group with the highest matching degree exceeds the predetermined threshold, so as to ensure that the matched user generally falls within an expected range, in some embodiments.
  • FIG. 7 is a simplified diagram showing a device for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • the device 700 includes a list-maintenance module 510 , a user-retrieval module 520 , a matching module 530 , a matching-degree-calculation module 540 , a selection module 550 and a return module 560 .
  • a list-maintenance module 510 is configured to maintain a user list that includes multiple users to be matched. As shown in FIG. 1 , different users send matching requests to the server 10 respectively, in some embodiments. For example, the server 10 receives the incoming matching requests from the users through the transmission module 106 . As an example, a matching request corresponds to at least one user. In another example, each matching request corresponds to only one user. In yet another example, each matching request corresponds to two or more users. For example, a particular user invites his/her good friends to form a team and then sends a matching request to the server 10 . In this case, the matching request corresponds to two or more users.
  • the server 10 can then parse and identify the corresponding users and add every user to the user list, in certain embodiments.
  • the list-maintenance module 510 is further configured to set characteristic values for each user in the user list.
  • the characteristic values refer, for example, to information such as level, gender and geographical location of a user or a virtual character operated by a user.
  • the user list has a certain logical order.
  • the user list is arranged in accordance with submission times of certain matching requests. The logical sequencing is different from a storage structure and a storage order of the user list, in some embodiments.
  • the user-retrieval module 520 is configured to retrieve at least one user from the user list. For example, at least one user corresponding to an earliest submission time of a matching request is retrieved from the user list.
  • the user list is ordered based on at least information associated with user priority. For example, some important users can have a higher priority and be given preference for user matching.
  • the retrieved at least one user here can be one user.
  • multiple users correspond to a matching request, and the retrieved at least one user may include all users associated with the matching request, so that all users of the matching request are matched into a user group.
  • a matching module 530 is configured to retrieve all user groups that include the retrieved at least one user.
  • the user groups include a predetermined number of users within the user list.
  • the matching-degree-calculation module 540 is configured to calculate a matching degree for each user group.
  • the matching degree is calculated based on at least information associated with one or more characteristic requests of a user.
  • a user group matching the user's characteristic requests has a high matching degree.
  • the matching degree is represented by one or more indices. The higher the index, the higher the matching degree.
  • calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: obtaining all possible two-user sub-groups among all users within the user group; calculating a matching value M for each sub-group. For example, if a sub-group matches with the characteristic value corresponding to the characteristic request, M is a predetermined non-zero value. Otherwise, M is zero.
  • calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: calculating the characteristic matching degree based on the following formula:
  • the characteristic request is included in the matching request.
  • a user interface is provided on a client to record certain characteristics desired by a user, such as user role, level, gender, geographical location, etc.
  • the importance of each characteristic is different, and the specific importance may be set according to specific needs.
  • the calculation of the matching degree of a user group includes: retrieving one or more characteristic requests of a user; setting one or more weighting factors for each characteristic request; calculating one or more characteristic matching degrees based on at least information associated with the one or more characteristic requests; and calculating a matching degree for the user group based on at least information associated with the weighting factors and the first characteristic matching degrees.
  • the selection module 550 is configured to select a user group with a highest matching degree from all the user groups. For example, after the matching degree of all user groups have been calculated, the matching degrees are arranged in order and the user group that has the highest matching degree is then selected.
  • the return module 560 is configured to return the user group that has the highest matching degree.
  • returning the user group that has the highest matching degree refers to: for every user in the user group, return the information of all other users, and the information of other users can be displayed at a side of the user.
  • the information of other users includes attribute information of other users such as role names, levels, role types, geographical locations, etc.
  • FIG. 8 is a simplified diagram showing the device 700 for user matching according to another embodiment of the present invention.
  • This diagram is merely an example, which should not unduly limit the scope of the claims.
  • the device 700 further includes a deletion module 610 configured to delete all users in a returned user group from the user list.
  • a same user will not be matched to two different user groups at the same time, in some embodiments.
  • FIG. 9 is a simplified diagram showing the device 700 for user matching according to yet another embodiment of the present invention.
  • This diagram is merely an example, which should not unduly limit the scope of the claims.
  • the device 700 further includes a timeout-processing module 710 configured to: determine whether a wait time associated with a matching request related to a user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request; in response to the wait time exceeding the threshold, return a matching-failure message for the user and delete the user from the user list.
  • FIG. 10 is a simplified diagram showing the device 700 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • the device 700 further includes a matching-degree-determining module 810 configured to determine if a matching degree of a user group with a highest matching degree has exceeded a predetermined threshold.
  • the return module 560 is further configured to, in response to the highest matching degree exceeding the predetermined threshold, return the user group with the highest matching degree, and in response to the highest matching degree not exceeding the predetermined threshold, return a matching failure result.
  • the match-failure result is returned only when the matching degree of the user group with the highest matching degree exceeds the predetermined threshold, so as to ensure that the matched user generally falls within an expected range, in some embodiments.
  • a method for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • the method is implemented according to at least FIG. 3 , FIG. 4 , FIG. 5 , and/or FIG. 6 .
  • a user-matching device includes the list-maintenance module, the user-retrieval module, the matching module, the matching-degree-calculation module, the selection module and the return module.
  • the list-maintenance module is configured to maintain a user list that includes multiple users to be matched.
  • the user-retrieval module is configured to retrieve one or more first users from the user list.
  • the matching module is configured to retrieve one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list.
  • the matching-degree-calculation module is configured to calculate one or more first matching degrees for the one or more first user groups.
  • the selection module is configured to select a second user group associated with a highest first matching degree from the one or more first user groups.
  • the return module is configured to return the second user group.
  • the device is implemented according to at least FIG. 7 , FIG. 8 , FIG. 9 , and/or FIG. 10 .
  • a non-transitory computer readable storage medium includes programming instructions for matching users.
  • the programming instructions are configured to cause one or more data processors to execute certain operations. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • the storage medium is implemented according to at least FIG. 3 , FIG. 4 , FIG. 5 , and/or FIG. 6 .
  • some or all components of various embodiments of the present invention each are, individually and/or in combination with at least another component, implemented using one or more software components, one or more hardware components, and/or one or more combinations of software and hardware components.
  • some or all components of various embodiments of the present invention each are, individually and/or in combination with at least another component, implemented in one or more circuits, such as one or more analog circuits and/or one or more digital circuits.
  • various embodiments and/or examples of the present invention can be combined.
  • the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem.
  • the software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein.
  • Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
  • the systems' and methods' data may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.).
  • storage devices and programming constructs e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.
  • data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
  • the systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein.
  • computer storage mechanisms e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.
  • instructions e.g., software
  • a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code.
  • the software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
  • the computing system can include client devices and servers.
  • a client device and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client device and server arises by virtue of computer programs running on the respective computers and having a client device-server relationship to each other.

Abstract

Systems and methods are provided for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.

Description

    CROSS-REFERENCES TO RELATED APPLICATIONS
  • This application claims priority to Chinese Patent Application No. 201310216154.X, filed Jun. 3, 2013, incorporated by reference herein for all purposes.
  • BACKGROUND OF THE INVENTION
  • Certain embodiments of the present invention are directed to computer technology. More particularly, some embodiments of the invention provide systems and methods for data processing. Merely by way of example, some embodiments of the invention have been applied to user matching. But it would be recognized that the invention has a much broader range of applicability.
  • Currently, the Internet has become an indispensable communication channel in people's daily lives. Through various applications, users can socialize, play games or enjoy entertainment through the Internet. Many applications may involve multiple users. For example, multiple players may need to work together to play a game, and thus a server needs to match different users to provide various Internet services to the users.
  • Hence it is highly desirable to improve the techniques for user matching.
  • BRIEF SUMMARY OF THE INVENTION
  • According to one embodiment, a method is provided for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • According to another embodiment, a user-matching device includes the list-maintenance module, the user-retrieval module, the matching module, the matching-degree-calculation module, the selection module and the return module. The list-maintenance module is configured to maintain a user list that includes multiple users to be matched. The user-retrieval module is configured to retrieve one or more first users from the user list. The matching module is configured to retrieve one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list. The matching-degree-calculation module is configured to calculate one or more first matching degrees for the one or more first user groups. The selection module is configured to select a second user group associated with a highest first matching degree from the one or more first user groups. The return module is configured to return the second user group.
  • According to yet another embodiment, a non-transitory computer readable storage medium includes programming instructions for matching users. The programming instructions are configured to cause one or more data processors to execute certain operations. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.
  • Depending upon embodiment, one or more benefits may be achieved. These benefits and various additional objects, features and advantages of the present invention can be fully appreciated with reference to the detailed description and accompanying drawings that follow.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a simplified diagram showing an operating environment for user matching according to one embodiment of the present invention.
  • FIG. 2 is a simplified diagram showing a server for user matching according to one embodiment of the present invention.
  • FIG. 3 is a simplified diagram showing a method for user matching according to one embodiment of the present invention.
  • FIG. 4 is a simplified diagram showing a method for user matching according to another embodiment of the present invention.
  • FIG. 5 is a simplified diagram showing a method for user matching according to yet another embodiment of the present invention.
  • FIG. 6 is a simplified diagram showing a method for user matching according to yet another embodiment of the present invention.
  • FIG. 7 is a simplified diagram showing a device for user matching according to one embodiment of the present invention.
  • FIG. 8 is a simplified diagram showing a device for user matching according to another embodiment of the present invention.
  • FIG. 9 is a simplified diagram showing a device for user matching according to yet another embodiment of the present invention.
  • FIG. 10 is a simplified diagram showing a device for user matching according to yet another embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 is a simplified diagram showing an operating environment for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • According to one embodiment, as shown in FIG. 1, a user 11 sends a matching request to a server 10 via the Internet. For example, the server 10 accordingly receives the incoming matching request from the user, completes matching users and returns matching results to the user 11. As an example, the user 11 relies on a certain client when sending the matching request. For example, the client includes an electronic device installed and operated with a smart operating system, such as a computer, a laptop, a tablet, a smart phone, a wearable electronic terminal (e.g., a mobile smart watch, glasses, etc.).
  • FIG. 2 is a simplified diagram showing the server 10 for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The server 10 includes one or more processors 102, one or more storage media 104 and a transmission module 106.
  • According to one embodiment, the storage media 104 is configured to store software programs and modules, such as program instructions/modules that correspond to a user-matching method and a user-matching device described in the present disclosure. For example, the processors 102 execute various functional applications and data processing through the software programs and modules stored in the storage media 104 to realize the user-matching method and the user-matching device. As an example, the storage media 104 includes high-speed random access memory devices, as well as non-volatile memory devices such as one or more magnetic storage devices, flash memory or other non-volatile, solid state memory devices. In some embodiments, the storage media 104 further include remote memory devices relative to the processors 102, and these remote memory devices can be connected to the server 10 via a network (e.g., the Internet, a company intranet, a local area network or a mobile communication network, or other suitable networks).
  • According to another embodiment, the transmission module 106 is configured to receive or send data through a network (e.g., a wired network, or a wireless network). For example, the transmission module 106 includes a Network Interface Controller (NIC) that can be connected to other network devices or routers using a network cable to communicate with the Internet. In another example, the transmission module 106 includes a Radio Frequency (RF) module configured to communicate with clients wirelessly.
  • FIG. 3 is a simplified diagram showing a method for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 300 includes at least the process S110-S160.
  • According to one embodiment, the process S110 includes: maintaining a user list that includes multiple users to be matched. As shown in FIG. 1, different users send matching requests to the server 10 respectively, in some embodiments. For example, the server 10 receives the incoming matching requests from the users through the transmission module 106. As an example, a matching request corresponds to at least one user. In another example, each matching request corresponds to only one user. In yet another example, each matching request corresponds to two or more users. For example, a particular user invites his/her good friends to form a team and then sends a matching request to the server 10. In this case, the matching request corresponds to two or more users. Upon receipt of the matching request, the server 10 can then parse and identify the corresponding users and add every user to the user list, in certain embodiments. For example, the user list has a certain logical order. As an example, the user list is arranged in accordance with submission times of certain matching requests. The logical sequencing is different from a storage structure and a storage order of the user list, in some embodiments.
  • According to another embodiment, the process S120 includes: retrieving at least one user from the user list. For example, at least one user corresponding to an earliest submission time of a matching request is retrieved from the user list. In some embodiments, the user list is ordered based on at least information associated with user priority. For example, some important users can have a higher priority and be given preference for user matching. As an example, the retrieved at least one user here can be one user. In another example, multiple users correspond to a matching request, and the retrieved at least one user may include all users associated with the matching request, so that all users of the matching request are matched into a user group.
  • According to yet another embodiment, the process S130 includes: retrieving one or more user groups that include the at least one user. For example, the user groups include a predetermined number of users within the user list. As an example, the user list includes M users, and the retrieved at least one user includes A users. The predetermined number of users correspond to K users. For example, the process Step S130 includes: retrieving all possible sub-groups (e.g., K−A) from the user list except the at least one user (e.g., M−A). As an example, the number of such possible sub-groups is CM−A K−A. All user groups can be obtained by combining these sub-groups with the retrieved at least one user, in some embodiments. For example, the process S130 includes: retrieving from M users all possible groups including K users. The number of such user groups is CM K, and then the user groups that include the retrieved at least one user are retrieved.
  • In another embodiment, the process S140 includes: calculating a matching degree for each user group. For example, the matching degree is calculated based on at least information associated with one or more characteristic requests of a user. As an example, a user group matching the user's characteristic requests has a high matching degree. In another example, the matching degree is represented by one or more indices. The higher the index, the higher the matching degree. As an example, calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: obtaining all possible two-user sub-groups among all users within the user group; calculating a matching value M for each sub-group. For example, if a sub-group matches with the characteristic value corresponding to the characteristic request, M is a predetermined non-zero value. Otherwise, M is zero. In another example, calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: calculating the characteristic matching degree based on the following formula:
  • 1 C N 2 M C N 2 .
  • In yet another example, the characteristic request is included in the matching request. For example, a user interface is provided on a client to record certain characteristics desired by a user, such as user role, level, gender, geographical location, etc.
  • In yet another embodiment, during the process S110, if a matching request is received from a first user, one or more second users corresponding to the matching request are added to the user list. Furthermore, one or more characteristic values are set for the newly added second users. As an example, the characteristic values are obtained from a database. In another example, the method 300 includes: setting one or more characteristic values for each user in the user list.
  • In some embodiments, in a matching request, a user requires other users or virtual roles operated by other users have certain characteristics: 1. level matching; 2. complementary roles; 3. geographical proximity (same city). For example, with respect to each characteristic, if two users are matched, the matching degree of that particular characteristic is 100. In another example, in a user group, the average value of the matching degree of all the two-user sub-groups is recorded as the matching degree of that particular characteristic. In yet another example, the level matching refers to at a same level or with a same level range. As an example, the level range can be 1-5, 6-10, 11-15, etc. The smaller the level difference, the higher the matching degree. For example, the complementary roles refer to different roles. The more the roles complement each other, the higher the matching degree. As another example, with respect to the geographical location, the closer the two users are, the higher the matching degree. If two users are located in a same city, a highest matching degree (e.g., 100) is given, in some embodiments.
  • According to one embodiment, a user group includes the following three users: User A: Level 10, role of master, geographical location in Shenzhen; User B: Level 8, role of master, geographical location in Guangzhou; User C: Level 12, role of master, geographical location in Shenzhen. For example, with respect to level matching, A and B match with each other, A and. C do not match, and. B and C do not match. Hence, the matching degree=(100+0+0)/3=33.3. In another example, with respect to roles, A, B and C do not match with each other, and thus the matching degree=0. In yet another example, with respect to geographical locations, A and C match with each other, while A and B half-match with each other and B and C half-match with each other (e.g., users in a same region are considered to be half-match). Hence, the matching degree=(100+50+50)/3=66.7.
  • In some embodiments, the importance of each characteristic is different, and the specific importance may be set according to specific needs. For example, for a matching request that includes several characteristic requests, the calculation of the matching degree of a user group includes: retrieving one or more characteristic requests of a user; setting one or more weighting factors for each characteristic request; calculating one or more characteristic matching degrees based on at least information associated with the one or more characteristic requests; and calculating a matching degree for the user group based on at least information associated with the weighting factors and the first characteristic matching degrees. In another example, level matching has a highest priority, role matching has a second highest priority, and geographical location matching has a lowest priority. The weighting factors of the three characteristics are 60, 30 and 10 respectively. As an example, the overall matching degree=level*0.6+role*0.3+geographical location*0.1=33.3*0.6+0*0.3+66.7*0.1=26.65.
  • According to yet another embodiment, the process S150 includes: selecting a user group that has a highest matching degree from all the user groups. For example, after the matching degrees of all user groups have been calculated, the matching degrees are arranged in order and the user group with the highest matching degree is then selected. In another example, the process S160 includes: returning the user group that has the highest matching degree. In yet another example, returning the user group that has the highest matching degree refers to: for every user in the user group, return the information of all other users, and the information of other users can be displayed at a side of the user. In yet another example, the information of other users includes attribute information of other users such as role names, levels, role types, geographical locations, etc. The user-matching method 300 can be implemented to obtain quickly user-matching results that meet user expectations to allow smooth operations of various online applications, in some embodiments.
  • FIG. 4 is a simplified diagram showing the method 300 for user matching according to another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In addition to the processes S110-S160, the method 300 further includes at least the process S210. According to one embodiment, after the process S160, the process S210 is executed and includes: deleting all users in the returned user group from the user list. Thus, a same user will not be matched to two different user groups at the same time, in some embodiments.
  • FIG. 5 is a simplified diagram showing the method 300 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In addition to the processes S110-S160, the method 300 further includes at least the process S310. According to one embodiment, the process S310 is executed between the process S110 and the process S120 and includes: determining whether a wait time associated with a matching request related to a user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request; in response to the wait time exceeding the threshold, returning a matching-failure message for the user and deleting the user from the user list.
  • FIG. 6 is a simplified diagram showing the method 300 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In addition to the processes S110-S160, the method 300 further includes at least the processes S410 and S420.
  • According to one embodiment, the process S410 is executed between the process S150 and the process S160, and includes: determine if a matching degree of a user group with a highest matching degree has exceeded a predetermined threshold. For example, if the highest matching degree exceeds the predetermined threshold, the process S160 is executed. Otherwise, the process S420 is executed and a match-failure result is returned. The match-failure result is returned only when the matching degree of the user group with the highest matching degree exceeds the predetermined threshold, so as to ensure that the matched user generally falls within an expected range, in some embodiments.
  • FIG. 7 is a simplified diagram showing a device for user matching according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The device 700 includes a list-maintenance module 510, a user-retrieval module 520, a matching module 530, a matching-degree-calculation module 540, a selection module 550 and a return module 560.
  • According to one embodiment, a list-maintenance module 510 is configured to maintain a user list that includes multiple users to be matched. As shown in FIG. 1, different users send matching requests to the server 10 respectively, in some embodiments. For example, the server 10 receives the incoming matching requests from the users through the transmission module 106. As an example, a matching request corresponds to at least one user. In another example, each matching request corresponds to only one user. In yet another example, each matching request corresponds to two or more users. For example, a particular user invites his/her good friends to form a team and then sends a matching request to the server 10. In this case, the matching request corresponds to two or more users. Upon receipt of the matching request, the server 10 can then parse and identify the corresponding users and add every user to the user list, in certain embodiments. As an example, the list-maintenance module 510 is further configured to set characteristic values for each user in the user list. The characteristic values refer, for example, to information such as level, gender and geographical location of a user or a virtual character operated by a user. For example, the user list has a certain logical order. As an example, the user list is arranged in accordance with submission times of certain matching requests. The logical sequencing is different from a storage structure and a storage order of the user list, in some embodiments.
  • According to another embodiment, the user-retrieval module 520 is configured to retrieve at least one user from the user list. For example, at least one user corresponding to an earliest submission time of a matching request is retrieved from the user list. In some embodiments, the user list is ordered based on at least information associated with user priority. For example, some important users can have a higher priority and be given preference for user matching. As an example, the retrieved at least one user here can be one user. In another example, multiple users correspond to a matching request, and the retrieved at least one user may include all users associated with the matching request, so that all users of the matching request are matched into a user group.
  • According to yet another embodiment, a matching module 530 is configured to retrieve all user groups that include the retrieved at least one user. For example, the user groups include a predetermined number of users within the user list. In another example, the matching-degree-calculation module 540 is configured to calculate a matching degree for each user group. For example, the matching degree is calculated based on at least information associated with one or more characteristic requests of a user. As an example, a user group matching the user's characteristic requests has a high matching degree. In another example, the matching degree is represented by one or more indices. The higher the index, the higher the matching degree. As an example, calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: obtaining all possible two-user sub-groups among all users within the user group; calculating a matching value M for each sub-group. For example, if a sub-group matches with the characteristic value corresponding to the characteristic request, M is a predetermined non-zero value. Otherwise, M is zero. In another example, calculating a matching degree of a user group including N users with respect to a particular characteristic request includes: calculating the characteristic matching degree based on the following formula:
  • 1 C N 2 M C N 2 .
  • In yet another example, the characteristic request is included in the matching request. For example, a user interface is provided on a client to record certain characteristics desired by a user, such as user role, level, gender, geographical location, etc.
  • In some embodiments, the importance of each characteristic is different, and the specific importance may be set according to specific needs. For example, for a matching request that includes several characteristic requests, the calculation of the matching degree of a user group includes: retrieving one or more characteristic requests of a user; setting one or more weighting factors for each characteristic request; calculating one or more characteristic matching degrees based on at least information associated with the one or more characteristic requests; and calculating a matching degree for the user group based on at least information associated with the weighting factors and the first characteristic matching degrees.
  • In certain embodiments, the selection module 550 is configured to select a user group with a highest matching degree from all the user groups. For example, after the matching degree of all user groups have been calculated, the matching degrees are arranged in order and the user group that has the highest matching degree is then selected. In another example, the return module 560 is configured to return the user group that has the highest matching degree. In yet another example, returning the user group that has the highest matching degree refers to: for every user in the user group, return the information of all other users, and the information of other users can be displayed at a side of the user. In yet another example, the information of other users includes attribute information of other users such as role names, levels, role types, geographical locations, etc.
  • FIG. 8 is a simplified diagram showing the device 700 for user matching according to another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, in addition to the modules 510-560, the device 700 further includes a deletion module 610 configured to delete all users in a returned user group from the user list. Thus, a same user will not be matched to two different user groups at the same time, in some embodiments.
  • FIG. 9 is a simplified diagram showing the device 700 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, in addition to the modules 510-560, the device 700 further includes a timeout-processing module 710 configured to: determine whether a wait time associated with a matching request related to a user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request; in response to the wait time exceeding the threshold, return a matching-failure message for the user and delete the user from the user list.
  • FIG. 10 is a simplified diagram showing the device 700 for user matching according to yet another embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
  • According to certain embodiments, in addition to the modules 510-560, the device 700 further includes a matching-degree-determining module 810 configured to determine if a matching degree of a user group with a highest matching degree has exceeded a predetermined threshold. For example, the return module 560 is further configured to, in response to the highest matching degree exceeding the predetermined threshold, return the user group with the highest matching degree, and in response to the highest matching degree not exceeding the predetermined threshold, return a matching failure result. The match-failure result is returned only when the matching degree of the user group with the highest matching degree exceeds the predetermined threshold, so as to ensure that the matched user generally falls within an expected range, in some embodiments.
  • According to one embodiment, a method is provided for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned. For example, the method is implemented according to at least FIG. 3, FIG. 4, FIG. 5, and/or FIG. 6.
  • According to another embodiment, a user-matching device includes the list-maintenance module, the user-retrieval module, the matching module, the matching-degree-calculation module, the selection module and the return module. The list-maintenance module is configured to maintain a user list that includes multiple users to be matched. The user-retrieval module is configured to retrieve one or more first users from the user list. The matching module is configured to retrieve one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list. The matching-degree-calculation module is configured to calculate one or more first matching degrees for the one or more first user groups. The selection module is configured to select a second user group associated with a highest first matching degree from the one or more first user groups. The return module is configured to return the second user group. For example, the device is implemented according to at least FIG. 7, FIG. 8, FIG. 9, and/or FIG. 10.
  • According to yet another embodiment, a non-transitory computer readable storage medium includes programming instructions for matching users. The programming instructions are configured to cause one or more data processors to execute certain operations. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned. For example, the storage medium is implemented according to at least FIG. 3, FIG. 4, FIG. 5, and/or FIG. 6.
  • The above only describes several scenarios presented by this invention, and the description is relatively specific and detailed, yet it cannot therefore be understood as limiting the scope of this invention's patent. It should be noted that ordinary technicians in the field may also, without deviating from the invention's conceptual premises, make a number of variations and modifications, which are all within the scope of this invention. As a result, in terms of protection, the patent claims shall prevail.
  • For example, some or all components of various embodiments of the present invention each are, individually and/or in combination with at least another component, implemented using one or more software components, one or more hardware components, and/or one or more combinations of software and hardware components. In another example, some or all components of various embodiments of the present invention each are, individually and/or in combination with at least another component, implemented in one or more circuits, such as one or more analog circuits and/or one or more digital circuits. In yet another example, various embodiments and/or examples of the present invention can be combined.
  • Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
  • The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
  • The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein.
  • The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
  • The computing system can include client devices and servers. A client device and server are generally remote from each other and typically interact through a communication network. The relationship of client device and server arises by virtue of computer programs running on the respective computers and having a client device-server relationship to each other.
  • While this specification contains many specifics, these should not be construed as limitations on the scope or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context or separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
  • Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
  • Although specific embodiments of the present invention have been described, it will be understood by those of skill in the art that there are other embodiments that are equivalent to the described embodiments. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.

Claims (20)

1. A method for matching users comprising:
maintaining a user list that includes multiple users to be matched;
retrieving one or more first users from the user list;
retrieving one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list;
calculating one or more first matching degrees for the one or more first user groups;
selecting a second user group associated with a highest first matching degree from the one or more first user groups; and
returning the second user group.
2. The method of claim 1, further comprising:
setting one or more characteristic values for a second user in the user list.
3. The method of claim 2 wherein the calculating one or more first matching degrees for the one or more first user groups includes:
retrieving one or more first characteristic requests of the one or more first users;
setting one or more weighting factors for one of the one or more first characteristic requests;
calculating one or more first characteristic matching degrees based on at least information associated with the one or more first characteristic requests; and
calculating a first matching degree for a second user group based on at least information associated with the weighting factors and the first characteristic matching degrees, the second user group being included in the first user groups.
4. The method of claim 3 wherein:
the second user group includes N users; and
the calculating one or more first characteristic matching degrees based on at least information associated with the one or more first characteristic requests includes:
obtaining one or more first sub-groups from the second user group, a first sub-group including two users within the second user group;
calculating one or more first matching values M for the one or more first sub-groups;
wherein:
in response to a second sub-group matching with a characteristic value associated with a first characteristic request, a second matching value for the second sub-group corresponds to a predetermined non-zero magnitude, the second sub-group being included in the one or more first sub-groups; and
in response to the second sub-group not matching with the characteristic value associated with the first characteristic request, the second matching value for the second sub-group corresponds to zero; and
calculating a second characteristic matching degree based on at least information associated with a formula:
1 C N 2 M C N 2 ,
the second characteristic matching degree being included in the one or more first characteristic matching degrees.
5. The method of claim 1, further comprising:
deleting one or more second users included in the second user group from the user list.
6. The method of claim 1, further comprising:
receiving, from a client, a matching request corresponding to one or more second users; and
adding the one or more second users to the user list.
7. The method of claim 6 wherein in response to the matching request corresponding to multiple second users, one or more third user groups including the multiple second users are retrieved.
8. The method of claim 1 wherein:
the user list is sorted based on at least information associated with one or more submission times related to one or more matching requests; and
the retrieving one or more first users from the user list includes retrieving a second user corresponding to an earliest submission time.
9. The method of claim 1, further comprising:
determining whether a wait time associated with a matching request related to a second user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request;
in response to the wait time exceeding the threshold,
returning a matching-failure message for the second user; and
deleting the second user from the user list.
10. A user-matching device comprising:
a list-maintenance module configured to maintain a user list that includes multiple users to be matched;
a user-retrieval module configured to retrieve one or more first users from the user list;
a matching module configured to retrieve one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list;
a matching-degree-calculation module configured to calculate one or more first matching degrees for the one or more first user groups;
a selection module configured to select a second user group associated with a highest first matching degree from the one or more first user groups; and
a return module configured to return the second user group.
11. The device of claim 10 wherein the list-maintenance module is further configured to: set one or more characteristic values for a second user in the user list.
12. The device of claim 11 wherein the matching-degree-calculation module is further configured to:
retrieve one or more first characteristic requests of the one or more first users;
set one or more weighting factors for one of the one or more first characteristic requests;
calculate one or more first characteristic matching degrees based on at least information associated with the one or more first characteristic requests; and
calculate a first matching degree for a second user group based on at least information associated with the weighting factors and the first characteristic matching degrees, the second user group being included in the first user groups.
13. The device of claim 12 wherein:
the second user group includes N users; and
the matching-degree-calculation module is further configured to:
obtain one or more first sub-groups from the second user group, a first sub-group including two users within the second user group;
calculate one or more first matching values M for the one or more first sub-groups;
wherein:
in response to a second sub-group matching with a characteristic value associated with a first characteristic request, a second matching value for the second sub-group corresponds to a predetermined non-zero magnitude, the second sub-group being included in the one or more first sub-groups; and
in response to the second sub-group not matching with the characteristic value associated with the first characteristic request, the second matching value for the second sub-group corresponds to zero; and
calculate a second characteristic matching degree based on at least information associated with a formula:
1 C N 2 M C N 2 ,
the second characteristic matching degree being included in the one or more first characteristic matching degrees.
14. The device of claim 10, further comprising:
a deletion module configured to delete one or more second users included in the second user group from the user list.
15. The device of claim 10 wherein the list-maintenance module is further configured to:
receive, from a client, a matching request corresponding to one or more second users; and
add the one or more second users to the user list.
16. The device of claim 15 wherein in response to the matching request corresponding to multiple second users, the user-retrieval module is configured to retrieve one or more third user groups including the multiple second users.
17. The device of claim 10 wherein:
the user list is sorted based on at least information associated with one or more submission times related to one or more matching requests; and
the user-retrieval module is configured to: retrieve a second user corresponding to an earliest submission time.
18. The device of claim 10, further comprising:
a timeout-processing module configured to:
determine whether a wait time associated with a matching request related to a second user in the user list exceeds a threshold based on at least information associated with a submission time of the matching request;
in response to the wait time exceeding the threshold,
return a matching-failure message for the second user; and
delete the second user from the user list.
19. The device of claim 10, further comprising:
one or more data processors; and
a computer-readable storage medium;
wherein one or more of the list-maintenance module, the user-retrieval module, the matching module, the matching-degree-calculation module, the selection module and the return module are stored in the storage medium and configured to be executed by the one or more data processors.
20. A non-transitory computer readable storage medium comprising programming instructions for matching users, the programming instructions configured to cause one or more data processors to execute operations comprising:
maintaining a user list that includes multiple users to be matched;
retrieving one or more first users from the user list;
retrieving one or more first user groups including the one or more first users, the one or more first user groups containing a predetermined number of users from the user list;
calculating one or more first matching degrees for the one or more first user groups;
selecting a second user group associated with a highest first matching degree from the one or more first user groups; and
returning the second user group.
US14/307,591 2013-06-03 2014-06-18 Systems and Methods for Matching Users Abandoned US20140358945A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/788,667 US10872121B2 (en) 2013-06-03 2017-10-19 Systems and methods for matching users

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310216154.X 2013-06-03
CN201310216154.XA CN103294809B (en) 2013-06-03 2013-06-03 A kind of user organizes matching process and device
PCT/CN2013/089586 WO2014194642A1 (en) 2013-06-03 2013-12-16 Systems and methods for matching users

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/089586 Continuation WO2014194642A1 (en) 2013-06-03 2013-12-16 Systems and methods for matching users

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/788,667 Continuation US10872121B2 (en) 2013-06-03 2017-10-19 Systems and methods for matching users

Publications (1)

Publication Number Publication Date
US20140358945A1 true US20140358945A1 (en) 2014-12-04

Family

ID=51986360

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/307,591 Abandoned US20140358945A1 (en) 2013-06-03 2014-06-18 Systems and Methods for Matching Users
US15/788,667 Active 2035-05-01 US10872121B2 (en) 2013-06-03 2017-10-19 Systems and methods for matching users

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/788,667 Active 2035-05-01 US10872121B2 (en) 2013-06-03 2017-10-19 Systems and methods for matching users

Country Status (1)

Country Link
US (2) US20140358945A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360230B2 (en) * 2014-11-10 2019-07-23 Beijing Bytedance Network Technology Co., Ltd. Method and device for social platform-based data mining
US11630817B2 (en) * 2018-12-28 2023-04-18 Yahoo Assets Llc Method and system for data indexing and reporting

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909220A (en) * 1993-05-10 1999-06-01 Sandow; Robin Interactive computerized image coloring systems and methods for processing combinations of color with automated subroutines and color standardization for diverse color systems
US6122361A (en) * 1997-09-12 2000-09-19 Nortel Networks Corporation Automated directory assistance system utilizing priori advisor for predicting the most likely requested locality
US20020059161A1 (en) * 1998-11-03 2002-05-16 Wen-Syan Li Supporting web-query expansion efficiently using multi-granularity indexing and query processing
US20050210001A1 (en) * 2004-03-22 2005-09-22 Yeun-Jonq Lee Field searching method and system having user-interface for composite search queries
US20050278623A1 (en) * 2004-05-17 2005-12-15 Dehlinger Peter J Code, system, and method for generating documents
US7171274B2 (en) * 2000-01-21 2007-01-30 Medtronic Minimed, Inc. Method and apparatus for communicating between an ambulatory medical device and a control device via telemetry using randomized data
US20070069901A1 (en) * 2005-09-28 2007-03-29 Tuck Edward F Matching system
US20070162507A1 (en) * 2005-04-11 2007-07-12 Mkt10 Match-based employment system and method
US20070208751A1 (en) * 2005-11-22 2007-09-06 David Cowan Personalized content control
US20070282621A1 (en) * 2006-06-01 2007-12-06 Flipt, Inc Mobile dating system incorporating user location information
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
US20080140650A1 (en) * 2006-11-29 2008-06-12 David Stackpole Dynamic geosocial networking
US20090041226A1 (en) * 2007-08-08 2009-02-12 Cisco Technology, Inc. System and Method for Using the Reliability of an Agent's Connectivity as an Agent Selection Criteria
US20090148124A1 (en) * 2007-09-28 2009-06-11 Yahoo!, Inc. Distributed Automatic Recording of Live Event
US20090307003A1 (en) * 2008-05-16 2009-12-10 Daniel Benyamin Social advertisement network
US20130080467A1 (en) * 2006-10-26 2013-03-28 Anthony R. Carson Social networking system and method
US20130125072A1 (en) * 2010-02-11 2013-05-16 Jesse Conrad Newcomb System and method of detecting design rule noncompliant subgraphs in circuit netlists
US8549061B2 (en) * 1996-12-16 2013-10-01 Ip Holdings, Inc. Social media system with multiple profiles
US20150148094A1 (en) * 2013-11-25 2015-05-28 Blackberry Limited System and method of extending useful life of power supply
US20150348119A1 (en) * 2014-05-28 2015-12-03 Videology Inc. Method and system for targeted advertising based on associated online and offline user behaviors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052122A (en) * 1997-06-13 2000-04-18 Tele-Publishing, Inc. Method and apparatus for matching registered profiles
US20030074355A1 (en) * 2001-03-23 2003-04-17 Restaurant Services, Inc. ("RSI"). System, method and computer program product for a secure supply chain management framework
JP4488181B2 (en) 2004-03-29 2010-06-23 日本電気株式会社 Community formation method and community formation system
CN100499474C (en) 2005-10-14 2009-06-10 华为技术有限公司 Friend making system and method for using same
US20070288526A1 (en) * 2006-06-08 2007-12-13 Emc Corporation Method and apparatus for processing a database replica
US7920980B2 (en) * 2008-07-17 2011-04-05 General Electric Co. System and method for dynamically providing feedback
CN102281207A (en) 2010-06-11 2011-12-14 百度在线网络技术(北京)有限公司 Method for determining user matching degree and matching users chatting in social network and equipment thereof
CN102629945B (en) 2012-04-16 2014-07-23 腾讯科技(深圳)有限公司 Method for user information acquisition and server as well as terminal
CN103294809B (en) 2013-06-03 2016-09-14 腾讯科技(深圳)有限公司 A kind of user organizes matching process and device
US9514495B2 (en) * 2013-09-12 2016-12-06 International Business Machines Corporation Creation and use of closely-matched groups to aid in initiating and sustaining behavioral change

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909220A (en) * 1993-05-10 1999-06-01 Sandow; Robin Interactive computerized image coloring systems and methods for processing combinations of color with automated subroutines and color standardization for diverse color systems
US8549061B2 (en) * 1996-12-16 2013-10-01 Ip Holdings, Inc. Social media system with multiple profiles
US6122361A (en) * 1997-09-12 2000-09-19 Nortel Networks Corporation Automated directory assistance system utilizing priori advisor for predicting the most likely requested locality
US20020059161A1 (en) * 1998-11-03 2002-05-16 Wen-Syan Li Supporting web-query expansion efficiently using multi-granularity indexing and query processing
US7171274B2 (en) * 2000-01-21 2007-01-30 Medtronic Minimed, Inc. Method and apparatus for communicating between an ambulatory medical device and a control device via telemetry using randomized data
US20050210001A1 (en) * 2004-03-22 2005-09-22 Yeun-Jonq Lee Field searching method and system having user-interface for composite search queries
US20050278623A1 (en) * 2004-05-17 2005-12-15 Dehlinger Peter J Code, system, and method for generating documents
US20070162507A1 (en) * 2005-04-11 2007-07-12 Mkt10 Match-based employment system and method
US20070069901A1 (en) * 2005-09-28 2007-03-29 Tuck Edward F Matching system
US20070208751A1 (en) * 2005-11-22 2007-09-06 David Cowan Personalized content control
US20070282621A1 (en) * 2006-06-01 2007-12-06 Flipt, Inc Mobile dating system incorporating user location information
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
US20130080467A1 (en) * 2006-10-26 2013-03-28 Anthony R. Carson Social networking system and method
US20080140650A1 (en) * 2006-11-29 2008-06-12 David Stackpole Dynamic geosocial networking
US20090041226A1 (en) * 2007-08-08 2009-02-12 Cisco Technology, Inc. System and Method for Using the Reliability of an Agent's Connectivity as an Agent Selection Criteria
US20090148124A1 (en) * 2007-09-28 2009-06-11 Yahoo!, Inc. Distributed Automatic Recording of Live Event
US8522289B2 (en) * 2007-09-28 2013-08-27 Yahoo! Inc. Distributed automatic recording of live event
US20090307003A1 (en) * 2008-05-16 2009-12-10 Daniel Benyamin Social advertisement network
US20130125072A1 (en) * 2010-02-11 2013-05-16 Jesse Conrad Newcomb System and method of detecting design rule noncompliant subgraphs in circuit netlists
US20150148094A1 (en) * 2013-11-25 2015-05-28 Blackberry Limited System and method of extending useful life of power supply
US20150348119A1 (en) * 2014-05-28 2015-12-03 Videology Inc. Method and system for targeted advertising based on associated online and offline user behaviors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360230B2 (en) * 2014-11-10 2019-07-23 Beijing Bytedance Network Technology Co., Ltd. Method and device for social platform-based data mining
US11630817B2 (en) * 2018-12-28 2023-04-18 Yahoo Assets Llc Method and system for data indexing and reporting

Also Published As

Publication number Publication date
US10872121B2 (en) 2020-12-22
US20180039712A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
WO2014194642A1 (en) Systems and methods for matching users
US11128582B2 (en) Emoji recommendation method and apparatus
US11323347B2 (en) Systems and methods for social graph data analytics to determine connectivity within a community
US20230004594A1 (en) Media selection
US10311106B2 (en) Social graph visualization and user interface
WO2018170454A2 (en) Using different data sources for a predictive model
US11093482B2 (en) Managing access by third parties to data in a network
JP2014513826A5 (en)
CN107301181B (en) Account recommendation method and device
EP3066816B1 (en) Method and device for the management of applications
CN110677267B (en) Information processing method and device
US20150073932A1 (en) Strength Based Modeling For Recommendation System
US10872121B2 (en) Systems and methods for matching users
US10296550B2 (en) Selective inclusion of members in a results list
US11863595B2 (en) Method and apparatus for matching users, computer device, and storage medium
WO2016196068A1 (en) Context-aware display of objects in mixed environments
CN113098974B (en) Method for determining population number, server and storage medium
US20170171330A1 (en) Method for pushing information and electronic device
US9280384B2 (en) Method, server and system for processing task data
US9536199B1 (en) Recommendations based on device usage
CN113254797A (en) Searching method, device and processing equipment for social network community
US10326595B1 (en) Load balancing probabilistic robot detection
CN109858945A (en) Memory, user's result data generation method and equipment based on wechat small routine
CN113127692B (en) Data storage structure, retrieval method, data storage method and terminal equipment
CN110917628A (en) Method, apparatus, and computer storage medium for determining user grouping

Legal Events

Date Code Title Description
AS Assignment

Owner name: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED, CHI

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:XIE, WENBIAO;CHEN, LINGMING;LONG, XINGPING;AND OTHERS;REEL/FRAME:040424/0993

Effective date: 20161122

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION