Patent Publication Number: US-9405750-B2

Title: Discrete wavelet transform method for document structure similarity

Description:
BACKGROUND 
     Networks can provide communication paths to access a plurality of electronic information. One example of such a network is the Internet, which can provide communication paths to access a plurality of web sites. The web sites can be formed of a number of individual web pages that are linked together. With the proliferation of web pages, determining the similarity of various web pages can be useful. Similar web pages can include identical web pages, and may include some web pages that are non-identical. Determining identical web pages can be a straight forward process. Determining whether non-identical web pages are similar can be more challenging. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a Document Object Model (DOM) tree in accordance with one or more examples of the present disclosure. 
         FIG. 2  illustrates a computing system for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. 
         FIG. 3  illustrates a method for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. 
         FIG. 4  illustrates an example DOM tree analyzed in accordance with one or more examples of the present disclosure. 
         FIG. 5  illustrates a flow diagram of a method for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. 
         FIG. 6  illustrates a block diagram of an example computing system for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. 
         FIG. 7  illustrates a block diagram of an example computer readable medium (CRM) in communication with processing resources in accordance with one or more examples of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Examples of the present disclosure may include methods, systems, and computer readable media with executable instructions, and/or logic. According to one or more examples of the present disclosure, an example method for determining document structure similarity can include segmenting path sequences of Document Object Model (DOM) trees from a number of web pages into B components. Path signals corresponding to the path sequences are determined based on a count of the occurrences of particular paths in the B th  component, and unique path signals are transformed into discrete wavelet signals. The discrete wavelet signals are analyzed at multiple DOM tree resolution levels. 
     As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on. The term “document,” as used herein, includes but not limited to, electronic files such as web pages and word processing files, among others. 
     This disclosure provides one or more systems and methods for determining document structure similarity using discrete wavelet transformation. Determining document structure similarity using discrete wavelet transformation according to examples of the present disclosure can be utilized as an auxiliary mechanism to a pool of web pages (represented as a tree structured data) to rapidly locate particular DOM trees given a particular web page. The systems and methods described herein for determining similarity can not only achieve high precision, but also can result in increased computing speed. 
     According to examples of the present disclosure, such systems and methods can determine similarity based on a whether documents, such as web pages, are approximately equivalent. Similar web pages need not be completely identical to be similar. Instead web pages may be identical in part, or possess certain characteristics of interest that are alike. According to some examples of the present disclosure, a measure of similarity can be determined. According to various examples, the measure of similarity can be a numerical value, such as a difference of numerical values computed for each document. According to certain examples, the measure of similarity can be a binary indication of one or more characteristics of the document structures matching or not matching. Determining similarity between two documents, including determining document structure similarity, can be most useful where the determination can be made in real time. Thus, speed in determining document structure similarity can be advantageous. To that end, computational efficiency can be adjusted commensurate with the precision of the similarity determination. 
       FIG. 1  illustrates a Document Object Model (DOM) tree in accordance with one or more examples of the present disclosure. A document can include content and structure information. The document structure information may define how the document is arranged and/or specify various characteristics for portions of the document (e.g., format, font, features, functions, etc.). For example, some documents, such as a web page, can have its structure defined by HyperText Markup Language (HTML). The structure of a document, such as an HTML document, can be represented as a DOM tree, such as the DOM tree  120  shown in  FIG. 1 . While  FIG. 1  illustrates the various paths of a DOM tree  120  graphically, information describing the various paths of a DOM tree can be represented numerically, such as in a matrix. A DOM tree can be a standard model for any structured document. 
     The DOM is a cross-platform and language-independent convention for representing and interacting with objects in various programming languages, such as HTML, eXtensible Hyper Text Markup Language (XHTML), and eXtensible Markup Language (XML) documents, among others. Aspects of the DOM, such as its elements, may be addressed and manipulated within the syntax of the programming language being used. The public interface of a DOM can be specified in its Application Programming Interface (API). 
     An HTML page can be rendered in a browser, for example. Web browsers rely on layout engines to parse HTML into a DOM. The browser assembles all the objects that are contained in the HTML page and downloaded from a web-server in its memory. Once completed, the browser then renders these objects in the browser window. The HTML objects, which belong within the DOM, can have descending relationship with each other. The topmost object in the DOM can specify the navigator (i.e., browser) itself, for example. The next level in the DOM can specify the browser&#39;s window, and the next level can specify the particular electronic information displayed in the browser&#39;s window, for example. 
       FIG. 1  shows an example DOM tree  120  for a web page structure define using HTML. A DOM tree can be specified and/or illustrated by a number of nodes connected by a number of edges. The DOM tree  120  includes a root node  122 , indicated in  FIG. 1  as being an HTML node. Along one path originating from the root node  122 , the root node  122  is connected to a head node  124 , which in turn is connected to a title node  128 , which is connected to text node  130 , which is a leaf node. A plurality of nodes, from the root node to a particular leaf node, is a path. For example, one path of DOM tree  120  is /html/head/title/text, and another path is /html/body/div/text. A group of continuous paths can be a path sequence. That is a number of paths from the root node to one or more leaf nodes can be a path sequence. For example, the various paths of DOM tree  120  collectively are a path sequence. 
     A particular DOM tree, such as DOM tree  120 , can have many paths that share portions of a path with other paths. For example, DOM tree  120  has several additional paths such as the path starting at HTML node  122  through body node  126  and division node  132  to image node  134 . DOM tree  120  further has a path starting at HTML node  122  through body node  126  and division node  132  to text node  136 . These two example paths differ only in their respective leaf nodes (e.g., image node  134  versus text node  136 ) but are otherwise share a portion of each path that includes the HTML node  122 , body node  126 , and division node  132 . DOM tree  120  can have additional paths from HTML node  122  through body node  226  that are not shown in  FIG. 1 , as indicated in  FIG. 1  at  235 , in addition to the path to the text leaf node at the far right of DOM tree  120 . The methods of the present disclosure can be applied to tree structure different from the example DOM tree  120  shown in  FIG. 1 . 
     One method for determining whether two documents are similar can be to determine if their respective corresponding DOM trees are identical. Tree matching methods can be used for comparing DOM trees for similarity in web page clustering and web wrapper induction. Among them, tree edit distance (TED) and simple tree matching (STM) are two previous approaches. These previous approaches are both full tree matching methodologies. That is, each of these previous approaches attempt to determine whether trees are identical. They can be accurate but can also be computationally intensive since determining identical trees can involve evaluation of each node and edge. 
     Previous approaches, such as a space vector model (e.g., cosine distance, Euclidean distance), toward matching approximations may take into account a number of times a portion of a tree (e.g., DOM tree) appears in the trees being compared, with positional information being disregarded. Disregarding positional information can render such previous approaches un-sensitive to structural differences. Such previous approaches can produce inaccurate results for at least the reason that a same quantity of tree branches can be arranged in multiple ways to produce different tree structures. Ignoring positional information, therefore, introduces errors that cannot be detected from only branch portion occurrence analysis. Therefore, such previous approaches may not be well suited for DOM tree similarity detection applications. 
       FIG. 2  illustrates a computing system for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. At a high level, the system of the present disclosure begins with the two web pages  202  to be compared as input. The output can be a page similar decision  218 , such as a logical and/or numerical value to indicate whether the web pages are similar or not. The computing system shown in  FIG. 2  can include an HTML parser  204  to parse document object model (DOM) trees from a number of web pages into path sequences. The HTML parser  204  can receive, for example, two web pages  202  being compared for similarity as inputs, and output various path sequences  106  comprising a corresponding DOM tree associated with each web page. 
     The computing system shown in  FIG. 2  can also include a path sequence segmentation module  208  to segment the path sequences into B equal components, and determine path signals corresponding to the path sequences based on a count of the occurrences of particular path sequences in the B th  component. The path sequence segmentation module  208  can receive as inputs, the path sequences  206  from the HTML parser  204 , and output path signals  210 . A Harr wavelet transformation module  212  can receive the path signals  210 , transforming unique path signals into discrete wavelet signals  214 , for example. An analyzer  216  can receive the wavelet signals  214  and compute a cumulative distance value of the discrete wavelet signals at multiple DOM tree resolution levels, from which a page similar decision  218  can be output. 
     The computing system shown in  FIG. 2  can be a computing system such as is discussed further with respect to  FIG. 6 . With respect to the components of the computing system shown in  FIG. 2 , each of the HTML parser  204 , path sequence segmentation module  208 , Harr wavelet transformation module  212 , and/or analyzer  216  can be individual apparatuses, such as a computing device including a processor coupled to a non-transitory computer-readable medium having computer-readable instructions stored thereon. The processor can execute the computer-readable instructions to perform the respective function. The components of the computing system shown in  FIG. 2  can also be logical modules, which may be implemented by hardware and/or embodied on computer readable medium, for example, and executed by a common processor. 
     The HTML parser  204  shown in  FIG. 2  can, for each web page, parse the HTML defining a respective web page, thereby converting the respective web page into a DOM Tree. The HTML parser  204  can further convert the resulting DOM tree into a sequence of paths (i.e., path sequences). For example, the DOM tree shown in  FIG. 1  can be converted into path sequences T=[html/head/title/text, html/body/div/image, . . . , html/body/text]. For convenience and faster processing, the sequence paths may be converted into numbers (e.g., hexadecimal values) with a hashing function. As an example, the sequence paths may be represented in this manner as T=[10AE, 13E1, . . . , 2F1E]. The numerically-represented sequence paths may be more easily manipulated further by digital processing resources. 
     The various components of the computing system shown in  FIG. 2  are discussed in more detail in conjunction with  FIG. 3 .  FIG. 3  illustrates a method for determining document structure similarity using discrete wavelet transformation in accordance with one or more examples of the present disclosure. More particularly  FIG. 3  illustrates an example of how the path signals can be obtained. 
     The path sequences, from the HTML parser  204  shown in  FIG. 2 , for a number of web pages can be summarized in a path-page matrix  338 , such as is shown in  FIG. 3 . The number of web pages can be, for example, a web page collection, associated with one or more web sites. Path-page matrix  338  can include a number of rows corresponding to web pages  340  (e.g., Page 1 , Page 2 , . . . , Page n ) and a number of columns corresponding to a distinct path  342  (e.g., Path 1 , Path 2 , . . . , Path m ). The path-page matrix  338  can indicate how many times the various paths occur within a DOM tree corresponding to a particular web page. The value for a particular path (e.g., Path 1 , Path 2 , . . . , Path m ) entered in the path-page matrix  338  can also indicate which of the various paths occur, and which paths do not occur, within a DOM tree corresponding to the particular web page. 
     A particular row of matrix  338  can correspond to a particular web page. For example, a row  344  of path-page matrix  338  corresponding to web page X is shown extracted from the path-page matrix  338  in  FIG. 3 . Row  344  can include a number of entries that numerically summarize the characteristics of each unique path  346  (e.g., Path 1 , Path 2 , . . . , Path m ) of a path sequence for a particular web page  348  (e.g., web page X). Each of the number of entries in row  344  can correspond to a unique path  346  (e.g., Path 1 , Path 2 , . . . , Path m ). For example, first entry  350 - 1  corresponds to Path 1 , and so on, through the m th  entry  350 - m , which corresponds to Path m . 
     The path sequence segmentation module  208  shown in  FIG. 2  can divide a path sequence  351  into B (e.g., 8) equal components, as shown in  FIG. 3 . Each path sequence can be converted to a path signal by counting the occurrences of a particular path p in the B th  component. For example, the first component  352 - 1  shown in  FIG. 3  reflects that path p occurs 2 times in the first component. As is further shown, path p occurs 0 times in the second component (e.g., X 2 ), 2 times in the third component (e.g., X 3 ), 1 times in each of the fourth, fifth and sixth components (e.g., X 4 , X 5 , and X 6 ), 0 times in the seventh component (e.g., X 7 ), and 0 times in the eighth component  352 - 8  (e.g., X 8 ). The cumulative quantity of occurrences (e.g., 2+0+2+1+1+1+0+0=7) for the B equal components of a path sequence can be entered path-page matrix  338  for the entry  350 - 1  corresponding to Path 1 of Page x , as shown. 
     The characteristics for the path sequence Path 1 of Page x  are also shown graphically in  FIG. 3  by graph  340 . Graph  340  represents the path sequence, and is divided into 8 equal components, with divisions  342  defining the various components along graph  340 . The dots  344  show the position of the path p in the path sequence. For example, path p occurs twice in the first component (e.g., left-most portion) of graph  340 . Again, the signal of path p (i.e., signal path) is f p,t =[2 0 2 1 1 1 0 0], as indicated by the quantity and placement of dots along graph  340 . 
     According to some examples of the present disclosure, weighting schemes can be used in arriving at a signal path from a path sequence, based on the properties of a certain tree and path. However, for the example discussed here, such weighting schemes are not implemented. 
     The Harr wavelet transformation module  212  shown in  FIG. 2  can function to transform unique path signals into discrete wavelet signals, such as Haar wavelet signals. Each path signal undergoes a discrete wavelet transform, which transforms the path signal into a wavelet signal. For example, the discrete wavelet transform can be a Haar wavelet transform. The Haar wavelet is a single cycle of the square wave having a period of 1. Haar wavelet analysis is similar to Fourier analysis in that it allows a target function over an interval to be represented in terms of an orthonormal function basis. The Haar wavelet&#39;s mother wavelet function ψ(t) can be described as: 
     
       
         
           
             
               ψ 
               ⁡ 
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     1 
                   
                   
                     
                       
                         0 
                         ≤ 
                         t 
                         &lt; 
                         
                           1 
                           / 
                           2 
                         
                       
                       , 
                     
                   
                 
                 
                   
                     
                       - 
                       1 
                     
                   
                   
                     
                       
                         
                           1 
                           / 
                           2 
                         
                         ≤ 
                         t 
                         &lt; 
                         1 
                       
                       , 
                     
                   
                 
                 
                   
                     0 
                   
                   
                     
                       otherwise 
                       . 
                     
                   
                 
               
             
           
         
       
     
     Its scaling function □(t) can be described as: 
               ϕ   ⁡     (   t   )       =     {         1           0   ≤   t   &lt;   1     ,             0         otherwise   .                   
The wavelet components allow the path signal to be analyzed at multiple tree resolution levels.
 
     The result of the Haar wavelet transform of path sequence  351  is shown in  FIG. 3  by Haar wavelet signal vector  353 . The transformed Haar wavelet signal vector  353  includes B (e.g., 8) components, corresponding to the B components of path sequence  351 . The B (e.g., 8) components of the transformed Haar wavelet signal vector are y1, . . . , y8. For this example, and as indicated in  FIG. 3 , the 8 components of Haar wavelet signal vector  353  are y1, y2, y3, y4, y5, y6, y7, and y8. The example illustrated in  FIG. 3  shows that component y1 has a value of 7, as indicated at  354 - 1 , and that component y8 has a value of 0, as indicated at  354 - 8 , among other entries. The components of Haar wavelet signal vector are generally computed as follows: 
     Level 0
 
 y 1 =x 1 +x 2 +x 3 +x 4 +x 5 +x 6 +x 7 +x 8
 
     Level 1
 
 y 2=( x 1 +x 2 +x 3 +x 4)−( x 5 −x 6 −x 7 −x 8)
 
     Level 2
 
 y 3=( x 1 +x 2)−( x 3 +x 4)
 
 y 4=( x 5 +x 6)−( x 7 +x 8)
 
     Level 3
 
 y 5 =x 1 −x 2
 
 y 6 =x 3 −x 4
 
 y 7 =x 5 −x 6
 
 y 8 =x 7 −x 8
 
     The discrete wavelet transform can be performed by determining how much of every possible scaled and shifted version of the reference wavelet (e.g., Haar wavelet) is present within the path signal. This can be determined by finding the dot product of the path signal vector and the Haar wavelet transform matrix. 
     Continuing with the previous example, the Haar transform is used to provide the different levels of resolution of a path signal. Using the path signal f p,t =[2 0 2 1 1 1 0 0] and using the Haar wavelet transform matrix (for 8 components): 
             H   =     [             1   8               1   8               1   8               1   8               1   8               1   8               1   8               1   8                   1   8               1   8               1   8               1   8             -       1   8               -       1   8               -       1   8               -       1   8                     1   4               1   4             -       1   4               -       1   4             0       0       0       0           0       0       0       0           1   4               1   4             -       1   4               -       1   4                     1   2             -       1   2             0       0       0       0       0       0           0       0           1   2             -       1   2             0       0       0       0           0       0       0       0           1   2             -       1   2             0       0           0       0       0       0       0       0           1   2             -       1   2               ]           
the Haar wavelets signal vector is
 
     
       
         
           
             
               Hf 
               
                 p 
                 , 
                 t 
               
               ′ 
             
             = 
             
               
                 [ 
                 
                   
                     
                       
                         7 
                         
                           8 
                         
                       
                     
                     
                       
                         3 
                         
                           8 
                         
                       
                     
                     
                       
                         - 
                         
                           1 
                           
                             4 
                           
                         
                       
                     
                     
                       
                         2 
                         
                           4 
                         
                       
                     
                     
                       
                         2 
                         
                           2 
                         
                       
                     
                     
                       
                         1 
                         
                           2 
                         
                       
                     
                     
                       0 
                     
                     
                       0 
                     
                   
                 
                 ] 
               
               . 
             
           
         
       
     
     The Haar wavelets signal vector for this example looks similar to the original path sequence vector, but its interpretation is quite different. This Haar wavelets signal vector shows the positions of the terms at many resolutions. The various resolutions are summarized in Table 1. 
                         TABLE 1               Transformed value   Description                  7/{square root over (8)}   Sum of signal       3/{square root over (8)}   First half - Second half of the signal       −1/{square root over (4)}    First quarter - Second quarter of the signal       2/{square root over (4)}   Third quarter - fourth quarter of the signal       2/{square root over (2)}   First eighth - second eighth of the signal       1/{square root over (2)}   Third eighth - fourth eighth of the signal       0   Fifth eighth - sixth eighth of the signal       0   Seventh eighth - eighth eighth of the signal                    
The transformed values towards the top of Table 1 are of lower resolution and the transformed values towards the bottom of Table 1 are of higher resolution.
 
     The first transformed value (7/√{square root over (8)}) is a sum of total signal and indicates that there are seven occurrences of the path. The second transformed value (3/√{square root over (8)}) means that there is three more occurrences of the path in the first half of the signal than in the second half. The third value (−1/√{square root over (4)}) shows that there is one less occurrence of the path in the first quarter compared to the second quarter. The fourth value (2/√{square root over (4)}) compares the third quarter and the fourth quarters of the original path signal. The next four transformed values correspond to the comparison between the four pairs of eighths of the signal. Therefore, the original path signal can be observed in different levels of resolution. This implies that frequency information is calculated from parts of the tree, providing frequency and position information. The above procedure can be repeated to convert all unique paths of the trees being compared into the Haar wavelets signals. 
     The benefits of performing the Haar wavelet transform include the spectral domain magnitude and phase values being related to the spatial path count and position, respectively. Also, the components of a path signal are orthogonal to each other, therefore it is not necessary to cross compare components within the path signal. 
       FIG. 3  further shows the Haar wavelets signal vector (e.g., vector component values) being used as an entry in a row  355  of a path-page matrix according to an example of the present disclosure to summarize the characteristics of each unique path sequence  360  (e.g., Path 1 , Path 2 , . . . , Path m ) of a particular web page  358  (e.g., web page X). For example, the above-determined discrete wavelet signal vector (e.g., Haar wavelet signal vector) can comprise path-page matrix entry  356 - 1  corresponding to Path 1  of Page x . Other wavelet signal vectors (e.g., Haar wavelet signal vector) can comprise corresponding path-page matrix entries, through entry  356 - m  corresponding to Path m  of Page x . In this manner, position information can be established at different resolutions. 
     According to various examples, fewer than all paths can be selected or further analysis (e.g., discrete wavelet transformation). Depending on the situation, one or more paths of interest, rather than all paths, can be used in arriving at the similarity decision between DOM trees. Paths of interest can be identified, for example, according to a path weighting scheme. 
     The matrix multiplication can cause the discrete wavelet transformation to be of order O(N 2 ) for signals of N components. According to some examples of the present disclosure, the wavelet transform can be reduced to an order of O(N) so as to speed up the transform process, such as by using a method proposed by Mallet in 2001. 
     The analyzer  216 , shown in  FIG. 2 , can function to compute distance on multi level resolutions, which computes the distance values for every common path of two DOM trees, and then sums the distance values for the respective DOM trees as a cumulative (e.g., final) DOM tree distance. The final DOM tree distances can be compared as a basis for determining similarity between the corresponding two web pages. 
     According to some examples of the present disclosure, the B th  component part of each path can be chosen for comparison between web pages. That is, component B of each path of two DOM trees can be compared as a basis for determining similarity of the corresponding documents. This method can reduce the entire DOM tree comparison to a particular portion comparison. According to other examples of the present disclosure, different components in different paths can be chosen to compare, which can be a form of proximity measure. 
     According to various examples of the present disclosure, two signals can be compared for similarity by checking from the top down (e.g., initiating the comparison from the root node towards a leaf node). If the signals differ at a certain level, the analysis can be terminated with the conclusion of the signals not being similar with no further analysis being necessary 
     The solution of the present disclosure can be a generalization of vector space model when B equals 1. That is, the methodology of the present disclosure behaves in the same manner as the vector space model when B equals 1. In practice, some experiments have been conducted on several small data sets on YAHOO!® (internet) news pages and AMAZON® (internet store) pages. The results show that the method of the present disclosure can determine the tree similarity with high precision. A typical two tree similarity decision time for the conducted experiments performed is 0.417 s for an exact tree matching algorithm, 0.031 s for vector space method and 0.047 s for the example method of the present disclosure using eight components. Reducing the number of components can reduce the running time in a linear fashion. 
     Using wavelets for document similarity determinations can provide a new perspective by extracting the positions at different resolutions. The benefits of performing the Haar wavelet transform can include: 
     (1) the spectral domain magnitude and phase values are related to the spatial path count and position, respectively; and 
     (2) the components of a path signal are orthogonal to each other, therefore it is not necessary to cross compare components within the path signal. Furthermore, if a DOM tree is converted into another format sequence instead of a path sequence, the systems and methods of the present disclosure can work as well. 
       FIG. 4  illustrates an example DOM tree analyzed in accordance with one or more examples of the present disclosure. A specific example can further illustrate the method for determining document structure similarity using discrete wavelet transformation of the present disclosure. An example web page may contain the following information: 
     YAHOO!® Worlds 
     YAHOO!® Business 
     YAHOO!® Entertainment 
     YAHOO!® Sports 
     YAHOO!® Tech 
     YAHOO!® Politics 
     YAHOO!® Science 
     The example web page content shown above can each be a link to other web pages. The HTML file behind the web page content shown above is shown on the following page: 
     
       
         
           
               
             
               
                   
               
             
            
               
                 &lt;html&gt; 
               
               
                  &lt;head&gt; &lt;/head&gt; 
               
               
                  &lt;body&gt; 
               
               
                   &lt;div&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;An html example&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/world/”&gt;Yahoo 
               
               
                    worlds&lt;/a&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/business/”&gt;Yahoo 
               
               
                    Business&lt;/a&gt;|&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/entertainment/”&gt;Yahoo 
               
               
                    Entertainment&lt;/a&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/sports/”&gt;Yahoo 
               
               
                    Sports&lt;/a&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/tech”&gt;Yahoo Tech&lt;/a&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/politics”&gt;Yahoo 
               
               
                    Politics&lt;/a&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;/p&gt; 
               
               
                    &lt;p&gt;&lt;a href=“http://news.yahoo.com/science”&gt;Yahoo 
               
               
                    Science&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
               
               
                    &lt;/div&gt; 
               
               
                  &lt;/body&gt; 
               
               
                 &lt;/html&gt; 
               
               
                   
               
            
           
         
       
     
     The DOM tree  462  for the HTML file shown on the previous page is illustrated in  FIG. 4 . DOM tree  462  includes a root (HTML) node  464  connected to each of a heading node  465  and a body node  466 . The body node  466  is further connected to a division node  467 , which is connected in parallel to a number of “p” nodes  468 , some of which are connected to text nodes  469  directly, or through an “a” node  470 , and as arranged as shown in  FIG. 4 . The path sequence of DOM tree  462  is: 
                                            { /html/head, /html/body/div/p, /html/body/div/p/text/,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text,           /html/body/div/p, /html/body/div/a/text }                        
There are four distinct paths in the path sequence (above), as follows:
 
                                            Path1: /html/head           Path2: /html/body/div/p           Path3: /html/body/div/p/text           Path4: /html/body/div/a/text                        
The above-listed path sequence can be split into eight (8) components, as follows:
 
                                            1: /html/head, /html/body/div/p, /html/body/div/p/text/,           2: /html/body/div/p, /html/body/div/a/text,           3: /html/body/div/p, /html/body/div/a/text,           4: /html/body/div/p, /html/body/div/a/text,           5: /html/body/div/p, /html/body/div/a/text,           6: /html/body/div/p, /html/body/div/a/text,           7: /html/body/div/p, /html/body/div/a/text,           8: /html/body/div/p, /html/body/div/a/text,                        
Because the sequence can&#39;t be divided equally, there are three paths in first component and two paths in the rest of the components.
 
     The occurrence of each path in each of the eight components can be counted, and summarized in vector format as follows: 
                                            Path1: {1, 0, 0, 0, 0, 0, 0, 0};           Path2: {1, 1, 1, 1, 1, 1, 1, 1};           Path3: {1, 0, 0, 0, 0, 0, 0, 0};           Path4: {0, 1, 1, 1, 1, 1, 1, 1};                        
That is, each element of a path vector represents how many times that path appears in the corresponding component. For example, Path1 (i.e., /html/head) occurs in the first component one time. A Haar wavelet transform can be performed on these vectors, and distances computed, as previously discussed above.
 
       FIG. 5  illustrates a flow diagram of a method for discrete wavelet transformation for document structure similarity in accordance with one or mare examples of the present disclosure. One example method for determining document structure similarity according to an example of the present disclosure can include segmenting path sequences of document object model (DOM) trees from a number of web pages into B components, as shown at  561 . Path signals corresponding to the path sequences are determined based on a count of the occurrences of particular path sequences in the B th  component, as indicated at  571 . As shown at  572 , unique path signals are transformed into discrete wavelet signals. The discrete wavelet signals are analyzed at multiple DOM tree resolution levels, as shown at  573 . 
       FIG. 6  illustrates a block diagram of an example computing system used to implement visual media searching according to the present disclosure. The computing system  674  can be comprised of a number of computing resources communicatively coupled to the network  678 .  FIG. 4  shows a first computing device  675  that may also have an associated data source  676 , and may have one or more input/output devices (e.g., keyboard, electronic display). A second computing device  679  is also shown in  FIG. 4  being communicatively coupled to the network  678 , such that executable instructions may be communicated through the network between the first and second computing devices. 
     Second computing device  679  may include one or more processors  680  communicatively coupled to a non-transitory computer-readable medium  681 . The non-transitory computer-readable medium  681  may be structured to store executable instructions  682  (e.g., one or more programs) that can be executed by the one or more processors  680  and/or data. The second computing device  679  may be further communicatively coupled to a production device  683  (e.g., electronic display, printer, etc.). Second computing device  679  can also be communicatively coupled to an external computer-readable memory  684 . The second computing device  679  can cause an output to the production device  683 , for example, as a result of executing instructions of one or more programs stored on non-transitory computer-readable medium  681 , by the at least one processor  680 , to implement a system for retrieving visual media according to the present disclosure. Causing an output can include, but is not limited to, displaying text and images to an electronic display and/or printing text and images to a tangible medium (e.g., paper). Executable instructions to implement visual media retrieving may be executed by the first computing device  675  and/or second computing device  679 , stored in a database such as may be maintained in external computer-readable memory  684 , output to production device  683 , and/or printed to a tangible medium. 
     One or more additional computers  677  may also be communicatively coupled to the network  678  via a communication link that includes a wired and/or wireless portion. The computing system can be comprised of additional multiple interconnected computing devices, such as server devices and/or clients. Each computing device can include control circuitry such as a processor, a state machine, application specific integrated circuit (ASIC), controller, and/or similar machine, 
     The control circuitry can have a structure that provides a given functionality, and/or execute computer-readable instructions that are stored on a non-transitory computer-readable medium (e.g.,  676 ,  681 ,  684 ). The non-transitory computer-readable medium can be integral (e.g.,  681 ), or communicatively coupled (e.g.,  676 ,  684 ) to the respective computing device (e.g.  675 ,  679 ) in either a wired or wireless manner. For example, the non-transitory, computer-readable medium can be an internal memory, a portable memory, a portable disk, or a memory located internal to another computing resource (e.g., enabling the computer-readable instructions to be downloaded over the Internet). The non-transitory computer-readable medium  330  can have computer-readable instructions stored thereon that are executed by the control circuitry (e.g., processor) to provide a particular functionality. 
     The non-transitory computer-readable medium, as used herein, can include volatile and/or non-volatile memory. Volatile memory can include memory that depends upon power to store information, such as various types of dynamic random access memory (DRAM), among others. Non-volatile memory can include memory that does not depend upon power to store information. Examples of non-volatile memory can include solid state media such as flash memory, EEPROM, phase change random access memory (PCRAM), among others. The non-transitory computer-readable medium can include optical discs, digital video discs (DVD), Blu-ray discs, compact discs (CD), laser discs, and magnetic media such as tape drives, floppy discs, and hard drives, solid state media such as flash memory, EEPROM, phase change random access memory (PCRAM), as well as other types of machine-readable media. 
     Logic can be used to implement the method(s) of the present disclosure, in whole or part. Logic can be implemented using appropriately configured hardware and/or machine readable instructions (including software). The above-mentioned logic portions may be discretely implemented and/or implemented in a common arrangement. 
       FIG. 7  illustrates a block diagram of an example computer readable medium (CRM)  795  in communication, e.g., via a communication path  796 , with processing resources  793  according to the present disclosure. As used herein, processor resources  793  can include one or a plurality of processors  794  such as in a parallel processing arrangement. A computing device having processor resources can be in communication with, and/or receive a tangible non-transitory computer readable medium  795  storing a set of computer readable instructions  732  (including software) for capturing and/or replaying network traffic, as described herein. 
     The above specification, examples and data provide a description of the method and applications, and use of the system and method of the present disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the present disclosure, this specification merely sets forth some of the many possible example configurations and implementations. 
     Although specific examples have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results can be substituted for the specific examples shown. This disclosure is intended to cover adaptations or variations of one or more examples provided herein. The above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above examples, and other examples not specifically described herein will be apparent upon reviewing the above description. Therefore, the scope of one or more examples of the present disclosure should be determined based on the appended claims, along with the full range of equivalents that are entitled. 
     Throughout the specification and claims, the meanings identified below do not necessarily limit the terms, but merely provide illustrative examples for the terms. The meaning of “a,” “an,” and “the” includes plural reference, and the meaning of in includes “in” and “on.” “Example,” as used herein, does not necessarily refer to the same example, although it may. 
     In the foregoing discussion of the present disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how examples of the disclosure may be practiced. These examples are described in sufficient detail to enable those of ordinary skill in the art to practice the examples of this disclosure, and it is to be understood that other examples may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of this disclosure. 
     Some features are grouped together in a single example for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the disclosed examples of the present disclosure have to use more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed example. The following claims are hereby incorporated into the Detailed Description, with each claim standing on its own.