Website similarity determination
Generate jump paths through user access data, simplify the website topology, solve the complex and inaccurate website similarity determination problem in the existing technology, and achieve more efficient and accurate similarity assessment.
Patent Information
- Application Number
- CN202380046293.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-28
- Filing Date
- 2023-06-16
- Publication Date
- 2025-01-21
AI Technical Summary
The prior art is complex and inaccurate in determining similarity between websites, especially when dealing with complex topological maps of large numbers of web pages, where computational work is high and time-cost.
By obtaining user access data, the user's jump paths are generated, and based on these paths, the similarity between websites is determined, the topology is simplified, the interference of unvisited web pages is removed, and the computing workload is reduced.
It achieves a more accurate and efficient determination of website similarity, reduces calculation workload and time cost, and at the same time improves the accuracy of similarity determination.
Smart Images

Figure CN119343674A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. patent application No. 17 / 809,513, filed on June 28, 2022, entitled “Website Similarity Determination,” the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present disclosure relates generally to website management and, more particularly, to methods, apparatus, and computer program products for determining similarities between websites. Background Art
[0004] With the development of computer and network technology, a large number of websites have been established. Generally, a website may contain a large number of web pages and have a complex structure. Nowadays, technical solutions have been developed to determine whether two websites are similar based on the topological map of the website. However, these solutions involve complex calculations and may be interfered by various factors, so they cannot accurately determine the similarity between websites. At this time, it is desired to provide a simpler and more efficient way to determine website similarity. Summary of the invention
[0005] In a first aspect of the present disclosure, a method for determining the similarity between a first website and a second website is provided. In the method, first access data of a first group of users and second access data of a second group of users are obtained, and the first group of users and the second group of users visit the first website and the second website respectively. Based on the first access data and the second access data, a first jump path of the first group of users and a second jump path of the second group of users are generated respectively. Here, the first jump path describes the access history of the first group of users among a first group of web pages in the first website, and the second jump path describes the access history of the second group of users among a second group of web pages in the second website. Based on the first jump path and the second jump path, the similarity between the first website and the second website is determined.
[0006] In a second aspect of the present disclosure, an electronic device is provided, comprising: a computer processor coupled to a computer readable storage unit, the storage unit comprising instructions, which implement the method according to the first aspect of the present disclosure when executed by the computer processor.
[0007] In a third aspect of the present disclosure, a computer program product is provided. The computer program product includes a computer-readable storage medium, and the program instructions can be executed by an electronic device to enable the electronic device to perform the method according to the first aspect of the present disclosure.
[0008] The present invention summary is provided to introduce alternative concepts in a simplified form, which are further described in the specific implementation below. The present invention summary is not intended to identify the key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed technical solution. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of some implementations of the present disclosure in the accompanying drawings, in which the same reference numerals generally refer to the same components in the implementations of the present disclosure.
[0010] Figure 1 illustrates an example structure for a website to which implementations of the present disclosure may be applied;
[0011] Figure 2 An example diagram illustrating access data of users accessing web pages in a website according to an implementation of the present disclosure is shown;
[0012] Figure 3 An example diagram illustrating a jump path of a user accessing a web page in a website according to an implementation of the present disclosure;
[0013] Figure 4 An example diagram of simplifying jump paths based on interested web pages in a website according to an implementation of the present disclosure is illustrated;
[0014] Figure 5 An example diagram illustrating a jump code for generating a jump in a jump path according to an implementation of the present disclosure is illustrated;
[0015] Figure 6 An example diagram for determining similarity between two websites according to an implementation of the present disclosure is illustrated;
[0016] Figure 7 An example diagram for determining an intersection-and-union ratio of corresponding jump codes of two websites according to an implementation of the present disclosure is illustrated;
[0017] Figure 8 An example flow chart illustrating a method for determining similarity between two websites based on access data according to an implementation of the present disclosure; and
[0018] Fig. 9 Illustrated is a block diagram of a computing device in which various implementations of the present disclosure may be implemented. DETAILED DESCRIPTION
[0019] The principle of the present disclosure will now be described in conjunction with some implementations. It should be understood that describing these implementations is only for illustrative purposes, and helps those skilled in the art to understand and implement the present disclosure, rather than constituting any limitation to the scope of the present disclosure. The disclosure described herein can be implemented in various ways except for the way described below.
[0020] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.
[0021] References in this disclosure to "one implementation," "an implementation," "an example implementation," etc. indicate that the implementation being described may include a particular feature, structure, or characteristic, but not every implementation necessarily includes the particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same implementation. Additionally, when a particular feature, structure, or characteristic is described in conjunction with an example implementation, it is considered to be within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in relation to other implementations, whether or not explicitly described.
[0022] It should be understood that although the terms "first" and "second" etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element without departing from the scope of example implementations. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.
[0023] The terms used herein are for the purpose of describing particular implementations only and are not intended to limit example implementations. As used herein, the singular forms "a", "an", and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "including", "having", when used herein, specify the presence of stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.
[0024] The principle of the present disclosure will now be described in conjunction with some implementations. It should be understood that describing these implementations is only for illustrative purposes, and helps those skilled in the art to understand and implement the present disclosure, and is not intended to constitute any limitation to the scope of the present disclosure. The disclosure described herein can be implemented in a variety of ways except for the manner described below. In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meanings as those of ordinary skill in the art to which the present disclosure belongs.
[0025] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and relevant rules.
[0026] It is understandable that before using the technical solutions disclosed in various implementations of this disclosure, users should be informed of the type, scope of use and usage scenarios of the personal information involved in this disclosure in an appropriate manner. In accordance with the provisions of relevant laws and regulations, the user's authorization should be obtained.
[0027] For example, in response to receiving an active request from a user, a prompt message is sent to the user, clearly informing the user that the requested operation requires obtaining and using the user's personal information. Therefore, the user can independently choose whether to provide personal information to the electronic device, application, server, storage medium or other software or hardware that executes the operation of the technical solution of the present disclosure according to the prompt message.
[0028] As an optional but non-limiting implementation, in response to receiving an active request from the user, the method of sending the prompt information to the user may include, for example, a pop-up window, and the prompt information may be presented in the form of text in the pop-up window. In addition, the pop-up window may also have a selection control for the user to select "agree" or "disagree" to provide personal information to the electronic device.
[0029] It is understandable that the above process of notifying and obtaining user authorization is only exemplary and does not limit the implementation of the present disclosure. Other methods that comply with relevant laws and regulations can also be used for the implementation of the present disclosure.
[0030] refer to Figure 1 A general description of the site. Figure 1 FIG. 1 illustrates an example structure of a website 100 to which implementations of the present disclosure may be applied. Figure 1 As shown in , website 100 includes a plurality of web pages 110, 120, 130, 140, 150, 160, 170, etc. Here, an edge between two web pages indicates a link between the two web pages.
[0031] A number of solutions have been proposed to determine the similarity between two websites based on the comparison between the topological graphs of the two websites. However, a website may include more than 100,000 web pages, so the topological graph of the website may have a rather complex structure. At this point, the comparison between the topological graphs with countless nodes may lead to a huge computational workload and unacceptable time cost. Take two online shopping websites as an example, assuming that the first website involves 10,000 web pages for selling 10,000 products, and the second website involves 1,000 web pages for selling 1,000 products. Based on the topological graph comparison, the two websites are completely different. However, from the perspective of an ordinary shopper, the two online shopping websites are almost the same, with the only difference being the number of goods provided by the two websites.
[0032] In addition, most users only visit some web pages, and a large number of web pages are rarely or even never visited by users. Even if the rarely or never visited web pages do affect the user's behavior in the website, these web pages may also greatly affect the similarity between two websites. At this point, it is desirable to propose a technical solution for determining the similarity between websites in a more accurate and effective manner.
[0033] In view of this, the present disclosure proposes a solution for determining website similarity based on user access data. Figure 2 To generally describe the present disclosure, here Figure 2 An example diagram 200 of access data of a user accessing a web page in a website according to an implementation of the present disclosure is illustrated. Here, the operations on the two websites are similar, and Figure 2 Shows access data for only one website. Figure 2 As shown in FIG, a group of users who visit the website can obtain access data. For example, Figure 2 It is shown that 1000 users visit web page 110, 300 users visit web page 120, 200 users visit web page 130, 100 users visit web page 140, 30 users visit web page 150, and 20 users visit web page 160. Here, the arrow between the predecessor web page and the successor web page indicates that one or more users jump from the predecessor web page to the successor web page through the link in the predecessor web page.
[0034] As in Figure 2 As shown in , not all web pages in the website are visited by users. For example, no user visits web pages 170 and 180, so these web pages 170 and 180 are excluded from the visit data and are not considered when determining similarity. In other words, web pages that have never been visited by users may be filtered out and will not contribute to the website comparison.
[0035] Furthermore, a jump path can be generated based on the access data. For example, 1000 users access web page 110, and 300 users jump from web page 110 to web page 120. At this time, jump 210 indicates that 300 of the 1000 users jump from web page 110 to web page 120, so the jump probability is 300 / 1000=0.3. Figure 2 In , a jump path may include a series of jumps between web pages as shown by arrows, and the jump path may also be used to determine similarity.
[0036] based on Figure 2 The operations shown in can be processed in a similar manner for the first website and the second website. At this time, the first access data of the first group of users and the second access data of the second group of users can be obtained, and the first group of users and the second group of users visit the first website and the second website respectively. Further, based on the first access data and the second access data, a first jump path and a second jump path can be generated. Here, the first jump path indicates the access history of the first group of users among the first group of web pages in the first website, and the second jump path indicates the access history of the second group of users among the second group of web pages in the second website. Then, the similarity between the first website and the second website can be determined based on the first jump path and the second jump path.
[0037] With these implementations, the access data of users who visit one or more web pages is used as the basis for similarity determination, and then the jump path (including only the visited web pages) can represent a simplified topological structure of the website. Here, the simplified topological structure only includes valid web pages visited by the user, and does not include invalid web pages that have never been visited by the user. Therefore, the jump path can remove the interference caused by unvisited web pages and further reduce the computational workload, so that the similarity determination can be achieved with less computational workload and time cost, while improving the accuracy level.
[0038] After providing an overall description, more details about the present disclosure will be provided below. In the implementation of the present disclosure, access data can be obtained from the monitoring system of the website. Recently, various monitoring tools are provided to detect user access history in the website. It is understood that the access data (including but not limited to the data itself, the collection or use of the data) complies with the requirements of the corresponding laws, regulations and relevant rules. For example, the monitoring tool can detect that the user first visits the web page 110, then jumps to the web page 130 through the link in the web page 110, then jumps to the web page 150 through the link in the web page 130, and so on. The access history of each user can be combined into the statistical data shown in Table 1 below.
[0039] Table 1 Correlation between web pages and number of users
[0040] Serial number Web page Number of users 1 Web 110 1000 2 Page 120 300 3 Page 130 200 4 Page 140 100 5 Page 150 150 6 Page 160 160 ……
[0041] As shown in Table 1, the "Webpage" column indicates the webpage accessed by the user, and the "Number of Users" column indicates the number of users accessing the webpage. For example, Table 1 shows that 1,000 users accessed webpage 110, 300 users accessed webpage 120, and so on. Here, a webpage may have one or more links through which users can jump from the current webpage to another webpage. Here, webpages 170 and 180 become noise data, and they are excluded from Table 1 because webpages 170 and 180 are not accessed by any user.
[0042] In the implementation of the present disclosure, similar operations can be performed on the websites to be compared. Specifically, first access data for a first group of users is obtained from a first website, and second access data for a second group of users is obtained from a second website. With these implementations, unimportant web pages are removed from the access data, thereby reducing the computational workload. Further, since the similarity determination is intended to detect user behavior in different websites, removing the unvisited web pages 170 and 180 will not affect user behavior, and therefore will not reduce the accuracy level for similarity determination.
[0043] Further, based on the corresponding access data, a corresponding jump path can be generated to indicate the user's access history among a set of web pages of the website. Figure 2 As shown in the example shown in , a jump path can be generated for the website 100. Figure 3 FIG. 3 illustrates an example diagram of a jump path 300 of a user accessing a web page in a website according to an implementation of the present disclosure. Figure 3 As shown in , the jump path 300 can be represented by a directed acyclic graph. In the jump path 300, the nodes indicate web pages in the website 100, and the edges between the nodes indicate the jump from the predecessor web page to the successor web page, and the weight of the edge indicates the jump probability of the jump.
[0044] At this time, based on the statistical data as shown in Table 1, the number of predecessor users who access the predecessor web page in the website can be determined. Further, the number of successor users who jump from the predecessor web page to the successor web page through the link in the predecessor web page can also be determined, and then based on the predecessor web page, the successor web page, the number of predecessor users, and the number of successor users, a jump can be generated. Utilizing the implementation method of the present disclosure, the jump path can be determined in an easy and effective manner, and the jump path can be run as a simplified version of the website topology. Further, compared with the traditional solution of obtaining the topology of the entire website through a crawler tool, the jump path can represent the backbone structure of the website visited by the user.
[0045] Taking the jump 210 between web page 110 (predecessor web page) and web page 120 (successor web page) as an example, the jump probability can be determined by comparing the number of users who access the successor web page and the number of users who access the predecessor web page. At this time, the jump probability of jump 210 is determined to be 300 / 1000=0.3. Similarly, the jump probabilities of other jumps can be determined in the same way.
[0046] In the implementation of the present disclosure, the web pages of interest can be predefined according to the purpose of the user behavior analysis. For example, if the purpose is to find conversion web pages related to registration operations, payment operations, etc., then the conversion web pages can be defined as the web pages of interest. For more details about the web pages of interest, see Figure 4 ,here Figure 4 An example diagram 400 of jump code for generating a jump in the jump path 300 according to an implementation of the present disclosure is illustrated. Figure 4 In the example, web page 150 is an interested web page, so web page 150 can be considered as the end point of the jump path. When the interested web page is added to the jump path, the determination of the jump path can be terminated. In other words, during the generation of the jump path, if the interested web page is used as a predecessor web page, the generation step can be stopped.
[0047] like Figure 4 As shown in , web page 160 can be excluded from the original jump path 300, and the portion in box 410 is used as the jump path for further processing. Although it is shown above that the original jump path 300 is cut according to web page 150 after the original jump path 300 is generated, alternatively and / or additionally, the access data can be filtered using the web page of interest before the original jump path 300 is generated. Specifically, the web page after the web page of interest can be first removed from the access data. At this time, the jump path generated from the filtered access data can exclude web page 160, which can further reduce the computational workload of similarity determination.
[0048] In the implementation of the present disclosure, the jump path can be traversed, and the jump code can be determined for each jump in the jump path. Specifically, the traversal can be started at the root node (e.g., web page 110) of the jump path. In the first round, jumps 210, 520, and 522 (which are directly connected to the root node) can be processed. Further, in the second round, the jumps starting from the subsequent web pages (such as web pages 120, 130, and 140) corresponding to the jumps processed above can be processed. At this point, all jumps in the jump path can be gradually processed.
[0049] For more details on jump code determination, see Figure 5 ,here Figure 5An example diagram 500 of generating jump codes for jumping in a jump path according to an implementation of the present disclosure is illustrated. Figure 5 In the example, the jump path includes multiple jumps, and the jumps 120, 520 and 522 in the block 510 are used as examples for determining the jump code. Figure 5 As shown in , the jump path can be expressed in a table form, where the first column "Jump ID" indicates the jump identifier, the second column "Predecessor Page" indicates the predecessor web page of the jump, the third column "Successor Page" indicates the successor web page of the jump, and the fourth column "Probability" indicates the jump probability of the jump.
[0050] In table 540, rows 542, 544, and 546 show data related to jumps 210, 520, and 522, respectively, and row 548 shows data related to another case of web page 110 (denoted as "empty"), which indicates that the user does nothing and stops visiting at web page 110. At this time, the probability of "empty jump" can be determined as (1-0.3-0.1-0.2)=0.4. It should be understood that table 540 only provides an example of the portion within box 510 in the jump path. For other jumps outside box 510, more rows can be added to table 540. For example, for jump 524, a new row can be added: (jump 524, web page 120, web page 150, 0.05). Figure 5 Other jumps in the jump path may be processed in a similar manner, and thus table 540 may include data related to all jumps in the jump path.
[0051] In addition, a jump code can be determined for each jump in the jump path. For example, jump code 550 shows jump codes for jump 210, jump 220, jump 546, and a null jump. Specifically, for the jumps in table 540, a jump code can be determined based on the predecessor web page, the successor web page, and the jump probability. Figure 5 In FIG. 5 , row 552 shows an example of a jump code. Here, a predecessor web page may be represented by a predecessor code (e.g., the ID “110” of the predecessor web page), and a successor web page may be represented by a successor code (e.g., the ID “120” of the successor web page). Then, the jump code may be determined by using the predecessor code, the successor code, and the jump probability.
[0052] In the implementation of the present disclosure, the jump code can be represented as a sequence or set containing the following three elements: {predecessor code, successor code, jump probability}. At this time, the jump code of jump 210 can be represented as {110, 120, 0.3}, and the jump code of jump 520 can be represented as {110, 140, 0.1}. Although the code for the web page described above is represented in decimal format, the code can also be represented in binary format, octal format, hexadecimal format or even string format.
[0053] In an implementation of the present disclosure, a hash function can be performed on a predecessor code and a successor code to obtain a hash value HASH (predecessor code, successor code). Here, the hash function can be selected from a commonly used hash function for converting two codes into values (e.g., integers) within a predefined range. Alternatively and / or additionally, the predecessor code and the successor code can be connected as one code, and then the connected code can be input into a hash function for mapping the code to a value within a predefined range. Further, based on the hash value and the jump probability, the jump code can be determined. Specifically, for jump 210, the jump code can be represented by {HASH(110,120),0.3}. Assuming HASH(110,120)=3, the jump code for jump 210 can be represented as {3,0.3}.
[0054] In an implementation of the present disclosure, the jump code can be represented as a sequence or set of two numbers "3" and "0.3". Alternatively and / or additionally, the jump code can be represented in different formats. For example, a hash function can map a predecessor code, a successor code, and a jump probability to a value for representing a jump code within another range. At this time, the jump code can be represented by HASH(110,120,0.3), and then the jump code for jump 210 can be indicated as a hash value of HASH(110,120,0.3), such as "3" (or another value within a predefined range).
[0055] In the implementation of the present disclosure, the websites to be compared can be processed through the above steps to respectively determine their jump codes, and then the jump codes of the two websites can be compared to determine the similarity between the two websites. Figure 6 An example diagram 600 for determining similarity between two websites according to an implementation of the present disclosure is illustrated. Figure 6 In the embodiment, a jump path 610 and a jump path 620 can be determined for the first website and the second website, respectively. Then, each jump in the jump paths 610 and 620 can be processed, and then a jump code set 612 for the first website and a jump code set 622 for the second website can be obtained.
[0056] In addition, the sets 612 and 622 may be compared to determine the similarity. Specifically, an intersection over union (IoU) operation may be performed on the two sets 612 and 622. Here, IoU is also referred to as the Jaccard index, which is a popular evaluation metric for comparison tasks. At this time, the similarity between the first website and the second website may be determined based on the following formula 1:
[0057]
[0058] In formula 1, Website 1 and Website 2 represents the first website and the second website respectively, S() represents the similarity between the first website and the second website, Jaccard() represents the Jaccard index, L 1 and L 2 Respectively represent the jump code sets of the first website and the second website.
[0059] For more details on the Jaccard index, see Figure 7 ,here Figure 7 FIG. 700 is an example diagram for determining the intersection-and-union ratio of corresponding jump codes of two websites according to an implementation of the present disclosure. Figure 7 As shown in , intersection area 710 represents the intersection between set 612 and set 622, and union area 720 (including the area of both sets 612 and 622) represents the union of sets 612 and 622. Further, the ratio between intersection 710 and union 720 can be used as the similarity between the first website and the second website. Assuming that both sets 612 and 622 include 200 jump codes, where the two sets have a total of 100 jump codes, the similarity can be determined as: 100 / (200+200-100)=1 / 3. Using the implementation of the present disclosure, the complex problem of detecting the similarity between two websites is converted into a simple mathematical problem. Therefore, the computational workload is greatly reduced and the time cost is reduced.
[0060] The above provides detailed information on determining similarities between websites. Once the similarity is determined, the similarity can also be used to establish an association relationship between two websites and recommend similar websites and / or similar web pages. For example, if a first web page in a first website is an interesting web page, a second web page corresponding to the first web page in a second website can be determined based on the similarity, and then the second web page can be provided to a user who browses the first web page in the first website.
[0061] Specifically, suppose that a user is visiting an online shopping website A and wants to purchase goods (such as smartphones, etc.) through web page A1 (web page of interest) in website A. At this time, another website similar to website A can be found for further recommendation. If it is determined that another shopping website B is very similar to website A, web page B1 in website B (which also sells smartphones, corresponding to web page A1) can be identified and recommended to the user. Using these implementations, similarity can facilitate website comparison, and similar web pages in other similar websites can be recommended to users. At this time, when a user visits web page A1 in website A for some purpose, similar web page B1 in similar website B can be automatically recommended to the user, so the user can directly access similar web page B1 without manually searching for web page B1.
[0062] The details for similarity determination have been described above. According to the implementation of the present disclosure, a method for determining the similarity between a first website and a second website is provided. For more details about the method, see Figure 8 , Figure 8 An example flow chart of a method for determining the similarity between two websites based on access data according to an implementation of the present disclosure is illustrated. In box 810, first access data of a first group of users and second access data of a second group of users are obtained, and the first group of users and the second group of users visit the first website and the second website respectively. In box 820, based on the first access data and the second access data, a first jump path for the first group of users and a second jump path for the second group of users are generated respectively, the first jump path describing the access history of the first group of users among the first group of web pages in the first website, and the second jump path describing the access history of the second group of users among the second group of web pages in the second website. In box 830, based on the first jump path and the second jump path, the similarity between the first website and the second website is determined.
[0063] In an implementation of the present disclosure, generating a first jump path based on first access data includes: determining the number of predecessor users in the first group of users based on the first access data, the predecessor users accessing the predecessor web pages in the first group of web pages; determining the number of successor users in the first group of users based on the first access data, the successor users jumping from the predecessor web pages to the successor web pages in the first group of web pages that are linked to the predecessor web pages; and obtaining jumps in the first jump path based on the predecessor web pages, the successor web pages, the number of predecessor users, and the number of successor users.
[0064] In the implementation of the present disclosure, obtaining a jump in the first jump path includes: determining a jump probability for the jump based on the number of predecessor users and the number of successor users; and obtaining a jump based on the predecessor webpage, the successor webpage, and the jump probability.
[0065] In an implementation of the present disclosure, the method 800 further includes: in response to determining that the predecessor web page is a predetermined web page of interest in the first group of web pages, stopping determining the first jump path.
[0066] In an implementation of the present disclosure, determining the similarity between the first website and the second website includes: determining a corresponding first jump code for a corresponding jump in a first jump path, and a corresponding second jump code for a corresponding jump in a second jump path; and determining the similarity between the first website and the second website based on the corresponding first jump code and the corresponding second jump code.
[0067] In an implementation of the present disclosure, determining a corresponding first jump code for a corresponding jump in a first jump path includes: for the jump in the first jump path, determining a jump code for the jump based on a predecessor web page, a successor web page, and a jump probability.
[0068] In the implementation of the present disclosure, determining the jump code for jumping includes: respectively obtaining a predecessor code for a predecessor web page and a successor code for a successor web page; and determining the jump code for jumping based on the predecessor code, the successor code, and the jump probability.
[0069] In an implementation of the present disclosure, determining a jump code for jumping based on a predecessor code, a successor code, and a jump probability includes: determining a hash value associated with the predecessor code and the successor code based on a hash operation; and determining a jump code for jumping based on the hash value and the jump probability.
[0070] In an implementation of the present disclosure, determining the similarity between the first website and the second website based on the corresponding first jump code and the corresponding second jump code includes: determining the similarity between the first website and the second website based on an intersection-and-union operation of the corresponding first jump code and the corresponding second jump code.
[0071] In an implementation of the present disclosure, method 800 further includes: in response to determining that a first web page in the first group of web pages is an interested web page, based on similarity, determining a second web page corresponding to the first web page in a second website; and providing the second web page to a user browsing the first web page.
[0072] According to an implementation of the present disclosure, a device for determining the similarity between a first website and a second website is provided. The device includes: an acquisition unit configured to acquire first access data of a first group of users and second access data of a second group of users, the first group of users and the second group of users respectively accessing the first website and the second website; a generation unit configured to generate a first jump path of the first group of users and a second jump path of the second group of users respectively based on the first access data and the second access data, the first jump path describing the access history of the first group of users among the first group of web pages in the first website, and the second jump path describing the access history of the second group of users among the second group of web pages in the second website; and a determination unit configured to determine the similarity between the first website and the second website based on the first jump path and the second jump path. Further, the device may also include other units for implementing other steps in the above method.
[0073] According to the implementation of the present disclosure, an electronic device is provided for implementing the above method. The electronic device includes: a computer processor, the computer processor is coupled to a computer-readable storage unit, the storage unit includes instructions, and the instructions implement a method for determining the similarity between a first website and a second website when executed by the computer processor. The method includes: obtaining first access data of a first group of users and second access data of a second group of users, the first group of users and the second group of users visit the first website and the second website respectively; based on the first access data and the second access data, generating a first jump path for the first group of users and a second jump path for the second group of users respectively, the first jump path describing the access history of the first group of users among the first group of web pages in the first website, and the second jump path describing the access history of the second group of users among the second group of web pages in the second website; and determining the similarity between the first website and the second website based on the first jump path and the second jump path.
[0074] In an implementation of the present disclosure, generating a first jump path based on first access data includes: determining the number of predecessor users in the first group of users based on the first access data, the predecessor users accessing the predecessor web pages in the first group of web pages; determining the number of successor users in the first group of users based on the first access data, the successor users jumping from the predecessor web pages to the successor web pages in the first group of web pages that are linked to the predecessor web pages; and obtaining jumps in the first jump path based on the predecessor web pages, the successor web pages, the number of predecessor users, and the number of successor users.
[0075] In an implementation of the present disclosure, obtaining a jump in the first jump path includes: determining a jump probability for the jump based on the number of predecessor users and the number of successor users; and obtaining the jump based on the predecessor webpage, the successor webpage, and the jump probability.
[0076] In an implementation of the present disclosure, the method further includes: in response to determining that the predecessor web page is a predetermined web page of interest in the first group of web pages, stopping determining the first jump path.
[0077] In an implementation of the present disclosure, determining the similarity between the first website and the second website includes: determining a corresponding first jump code for a corresponding jump in a first jump path, and a corresponding second jump code for a corresponding jump in a second jump path; and determining the similarity between the first website and the second website based on the corresponding first jump code and the corresponding second jump code.
[0078] In an implementation of the present disclosure, determining a corresponding first jump code for a corresponding jump in a first jump path includes: for the jump in the first jump path, determining a jump code for the jump based on a predecessor web page, a successor web page, and a jump probability.
[0079] In the implementation of the present disclosure, determining the jump code for jumping includes: respectively obtaining a predecessor code for a predecessor webpage and a successor code for a successor webpage; and determining the jump code for jumping based on the predecessor code, the successor code, and the jump probability.
[0080] In an implementation of the present disclosure, determining a jump code for jumping based on a predecessor code, a successor code, and a jump probability includes: determining a hash value associated with the predecessor code and the successor code based on a hash operation; and determining the jump code for jumping based on the hash value and the jump probability.
[0081] In an implementation of the present disclosure, determining the similarity between the first website and the second website based on the corresponding first jump code and the corresponding second jump code includes: determining the similarity between the first website and the second website based on an intersection-and-union operation of the corresponding first jump code and the corresponding second jump code.
[0082] In an implementation of the present disclosure, the method further includes: in response to determining that a first web page in the first group of web pages is an interested web page, based on similarity, determining a second web page corresponding to the first web page in a second website; and providing the second web page to a user browsing the first web page.
[0083] According to an implementation of the present disclosure, a computer program product is provided. The computer program product includes a computer-readable storage medium having program instructions implemented therewith. The program instructions can be executed by an electronic device to enable the electronic device to perform the method.
[0084] Fig. 9 9 illustrates a block diagram of a computing device 900 in which various implementations of the present disclosure may be implemented. It should be understood that Fig. 9The computing device 900 shown is for illustration purposes only and does not in any way imply any limitation on the functionality and scope of the present disclosure. The computing device 900 may be used to implement the above method 800 in the implementation of the present disclosure. Fig. 9 As shown, the computing device 900 may be a general computing device and may include at least one or more processors or processing units 910 , a memory 920 , a storage unit 930 , one or more communication units 940 , one or more input devices 950 , and one or more output devices 960 .
[0085] The processing unit 910 may be a physical or virtual processor and may implement various processes based on a program stored in the memory 920. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to increase the parallel processing capability of the computing device 900. The processing unit 910 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0086] The computing device 900 typically includes various computer storage media. Such media can be any media accessible to the computing device 900, including but not limited to volatile and non-volatile media, or removable and non-removable media. The memory 920 can be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory), or any combination thereof. The storage unit 930 can be any removable or non-removable medium, and can include a machine-readable medium, such as a memory, a flash drive, a disk, or other media, which can be used to store information and / or data and can be accessed in the computing device 900.
[0087] The computing device 900 may also include additional removable / non-removable, volatile / non-volatile storage media. Fig. 9 Not shown in the figure, but a disk drive for reading and / or writing from a removable and non-volatile disk and an optical drive for reading and / or writing from a removable non-volatile disk may be provided. In this case, each drive may be connected to a bus (not shown) via one or more data medium interfaces.
[0088] The communication unit 940 communicates with another computing device via a communication medium. In addition, the functionality of the components in the computing device 900 can be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Therefore, the computing device 900 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.
[0089] Input device 950 may be one or more of a variety of input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 960 may be one or more of a variety of output devices, such as a display, speaker, printer, etc. With the aid of communication unit 940, computing device 900 may also communicate 980 with one or more external devices (not shown), such as storage devices and display devices, one or more of which enable a user to interact 970 with computing device 900, if desired, or with any device that enables computing device 900 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).
[0090] In some implementations, some or all of the components of the computing device 900 may also be arranged in a cloud computing architecture rather than being integrated in a single device. In a cloud computing architecture, the components may be provided remotely and work together to implement the functions described in the present disclosure. In some implementations, cloud computing provides computing, software, data access, and storage services, which will not require the end user to know the physical location or configuration of the system or hardware that provides these services. In various implementations, cloud computing uses a suitable protocol to provide services via a wide area network (e.g., the Internet). For example, a cloud computing provider provides an application via a wide area network, which can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data may be stored on a server at a remote location. The computing resources in a cloud computing environment may be merged or distributed at the location of a remote data center. Cloud computing infrastructure may provide services through a shared data center, although they act as a single access point for users. Therefore, cloud computing architectures may be used to provide the components and functions described herein from a service provider at a remote location. Alternatively, they may be provided from a traditional server or installed directly or otherwise on a client device.
[0091] The functions described herein may be performed at least in part by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), etc.
[0092] The program code for executing the technical solution described herein can be written in any combination of one or more programming languages. The program code can be provided to a processor or controller of a general-purpose computer, a special-purpose computer or other programmable data processing device, and when executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed in whole or in part on the machine, in part on the machine as an independent software package, in part on a remote machine, or in whole on a remote machine or server.
[0093] In the context of the present disclosure, a machine-readable medium may be any tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any suitable combination of the foregoing. More specific examples of machine-readable storage media would include an electrical connection with one or more wires, a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable memory, a programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0094] In addition, although operations are shown in a particular order, this should not be understood as requiring such operations to be performed in the particular order shown or in a continuous order, or performing all of the operations shown to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the discussion above, these should not be interpreted as limitations on the scope of the technical solutions described herein, but should be interpreted as descriptions of features that may be specific to a particular implementation. Certain features described in the context of a separate implementation may also be implemented in combination in a single implementation. On the contrary, the various features described in a single implementation may also be implemented individually in multiple implementations or in any suitable sub-combination.
[0095] Although the technical solution has been described in language specific to structural features and / or method behaviors, it should be understood that the technical solution specified in the appended claims is not necessarily limited to the above-mentioned specific features or behaviors. Instead, the above-mentioned specific features and actions are disclosed as example forms of implementing the claims.
[0096] From the foregoing, it should be understood that the specific implementation of the currently disclosed technology is described herein for illustrative purposes, but various modifications can be made without departing from the scope of the present disclosure. Therefore, the currently disclosed technology is not limited by the attached claims.
[0097] The implementation of the technical solutions and functional operations described in the present disclosure can be implemented in various systems, digital electronic circuits, or computer software, firmware or hardware, including the structures disclosed in this specification and their structural equivalents, or one or more of them can be implemented in a combined form. The implementation of the technical solutions described in this specification can be implemented as one or more computer program products, that is, one or more computer program instruction modules data processing devices encoded on a tangible and non-temporary computer-readable medium for execution or control operations. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material composition that affects a machine-readable propagation signal, or a combination of one or more of them. The term "data processing unit" or "data processing device" covers all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may also include code to create an execution environment for the computer program in question, such as code constituting a processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0098] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language (including compiled or interpreted languages) and may be deployed in any form, including as a stand-alone form, a separate program, or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communications network.
[0099] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally speaking, a computer will also include or be operably coupled to receive data from or transmit data to one or more large-capacity storage devices for storing data, or both, such as magnetic disks, magneto-optical disks, or optical disks. However, a computer does not need to have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor storage devices, such as EPROM, EEPROM, and flash memory devices. The processor and memory can be supplemented by or incorporated into a dedicated logic circuit.
[0100] This manual and the attached Figure 1 The foregoing are to be considered exemplary only, where exemplary means example. As used herein, the use of "or" is intended to include "and / or" unless the context clearly dictates otherwise.
[0101] Although the present disclosure contains many details, these should not be interpreted as limitations on the scope of any disclosure or the scope of what may be claimed, but rather as descriptions of features that may be specific to a particular implementation disclosed in particular. Certain features described in the present disclosure in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented individually in multiple implementations or in any suitable sub-combination. In addition, although features may be described above as functioning in certain combinations and even initially claimed as such, one or more features from the claimed combination may be deleted from the claimed combination in some cases, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination.
[0102] Similarly, although operations are shown in a particular order in the accompanying drawings, this should not be understood as requiring that the operations be performed in the particular order shown or in a sequential order, or that all of the operations shown be performed, to achieve the desired results. In addition, the separation of various system components in the implementations described in this disclosure should not be understood as requiring such separation in all implementations. Only some implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this disclosure.
Claims
1. A method for determining a similarity between a first website and a second website, comprising: Acquire first access data of a first group of users and second access data of a second group of users, wherein the first group of users and the second group of users visit the first website and the second website respectively; Based on the first access data and the second access data, respectively generate a first jump path of the first group of users and a second jump path of the second group of users, the first jump path describing the access history of the first group of users among a first group of web pages in the first website, and the second jump path describing the access history of the second group of users among a second group of web pages in the second website; as well as Based on the first jump path and the second jump path, a similarity between the first website and the second website is determined.
2. The method according to claim 1, wherein generating the first jump path based on the first access data comprises: determining, based on the first access data, a number of predecessor users in the first group of users, the predecessor users accessing predecessor web pages in the first group of web pages; Determining the number of successor users in the first group of users based on the first access data, the successor users jumping from the predecessor web page to the successor web page in the first group of web pages linked to the predecessor web page; as well as Based on the predecessor webpage, the successor webpage, the number of the predecessor users, and the number of the successor users, a jump in the first jump path is acquired.
3. The method according to claim 2, wherein obtaining the jump in the first jump path comprises: Determining a jump probability for the jump based on the number of the predecessor users and the number of the successor users; as well as The jump is obtained based on the predecessor webpage, the successor webpage, and the jump probability.
4. The method according to claim 2, further comprising: In response to determining that the predecessor web page is a predetermined web page of interest in the first group of web pages, determining the first jump path is stopped.
5. The method of claim 3, wherein determining the similarity between the first website and the second website comprises: determining a corresponding first jump code for a corresponding jump in the first jump path, and a corresponding second jump code for a corresponding jump in a second jump path; as well as The similarity between the first website and the second website is determined based on the corresponding first jump code and the corresponding second jump code.
6. The method of claim 5 , wherein determining a corresponding first jump code for a corresponding jump in the first jump path comprises: For the jump in the first jump path, a jump code for the jump is determined based on the predecessor webpage, the successor webpage, and the jump probability.
7. The method of claim 6, wherein determining the jump code for the jump comprises: Respectively obtaining a predecessor code for the predecessor webpage and a successor code for the successor webpage; as well as The jump code used for the jump is determined based on the predecessor code, the successor code, and the jump probability.
8. The method of claim 7, wherein determining the jump code for the jump based on the predecessor code, the successor code, and the jump probability comprises: Based on a hash operation, determining a hash value associated with the predecessor code and the successor code; as well as Based on the hash value and the jump probability, the jump code for the jump is determined.
9. The method of claim 5, wherein determining the similarity between the first website and the second website based on the corresponding first jump code and the corresponding second jump code comprises: The similarity between the first website and the second website is determined based on an intersection-and-union operation of the corresponding first jump code and the corresponding second jump code.
10. The method according to claim 1, further comprising: In response to determining that a first web page in the first set of web pages is a web page of interest, Based on the similarity, determining a second webpage corresponding to the first webpage in the second website; as well as The second web page is provided to a user browsing the first web page.
11. An electronic device comprising a processor coupled to a computer readable storage unit, the storage unit comprising instructions that, when executed by the computer processor, implement a method for determining a similarity between a first website and a second website, the method comprising: Acquire first access data of a first group of users and second access data of a second group of users, wherein the first group of users and the second group of users visit the first website and the second website respectively; Based on the first access data and the second access data, respectively generate a first jump path of the first group of users and a second jump path of the second group of users, the first jump path describing the access history of the first group of users among a first group of web pages in the first website, and the second jump path describing the access history of the second group of users among a second group of web pages in the second website; as well as Based on the first jump path and the second jump path, a similarity between the first website and the second website is determined.
12. The apparatus according to claim 11, wherein generating the first jump path based on the first access data comprises: determining, based on the first access data, a number of predecessor users in the first group of users, the predecessor users accessing predecessor web pages in the first group of web pages; Determining the number of successor users in the first group of users based on the first access data, the successor users jumping from the predecessor web page to the successor web page in the first group of web pages linked to the predecessor web page; as well as Based on the predecessor webpage, the successor webpage, the number of the predecessor users, and the number of the successor users, a jump in the first jump path is acquired.
13. The apparatus of claim 12, wherein obtaining the jump in the first jump path comprises: Determining a jump probability for the jump based on the number of the predecessor users and the number of the successor users; as well as The jump is obtained based on the predecessor webpage, the successor webpage, and the jump probability.
14. The apparatus according to claim 12, further comprising: In response to determining that the predecessor web page is a predetermined web page of interest in the first group of web pages, determining the first jump path is stopped.
15. The apparatus of claim 13, wherein determining the similarity between the first website and the second website comprises: determining a corresponding first jump code for a corresponding jump in the first jump path, and a corresponding second jump code for a corresponding jump in a second jump path; as well as The similarity between the first website and the second website is determined based on an intersection-over-union operation for the corresponding first jump code and the corresponding second jump code.
16. The apparatus of claim 15, wherein determining a corresponding first jump code for a corresponding jump in the first jump path comprises: For the jump in the first jump path, a jump code for the jump is determined based on the predecessor webpage, the successor webpage, and the jump probability.
17. The apparatus of claim 16, wherein determining the jump code for the jump comprises: Respectively obtaining a predecessor code for the predecessor webpage and a successor code for the successor webpage; as well as The jump code used for the jump is determined based on the predecessor code, the successor code, and the jump probability.
18. The apparatus of claim 17, wherein determining the jump code for the jump based on the predecessor code, the successor code, and the jump probability comprises: Based on a hash operation, determining a hash value associated with the predecessor code and the successor code; as well as Based on the hash value and the jump probability, the jump code for the jump is determined.
19. The apparatus of claim 11, further comprising: In response to determining that a first web page in the first set of web pages is a web page of interest, Based on the similarity, determining a second webpage corresponding to the first webpage in the second website; as well as The second web page is provided to a user browsing the first web page.
20. A computer program product, the computer program product comprising a computer-readable storage medium having program instructions implemented therewith, the program instructions being executable by an electronic device to cause the electronic device to perform a method for determining a similarity between a first website and a second website, the method comprising: Acquire first access data of a first group of users and second access data of a second group of users, wherein the first group of users and the second group of users visit the first website and the second website respectively; Based on the first access data and the second access data, respectively generate a first jump path of the first group of users and a second jump path of the second group of users, the first jump path describing the access history of the first group of users among a first group of web pages in the first website, and the second jump path describing the access history of the second group of users among a second group of web pages in the second website; as well as Based on the first jump path and the second jump path, a similarity between the first website and the second website is determined.