<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">OALibJ</journal-id><journal-title-group><journal-title>Open Access Library Journal</journal-title></journal-title-group><issn pub-type="epub">2333-9705</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/oalib.1110228</article-id><article-id pub-id-type="publisher-id">OALibJ-126447</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Biomedical&amp;Life Sciences</subject><subject> Business&amp;Economics</subject><subject> Chemistry&amp;Materials Science</subject><subject> Computer Science&amp;Communications</subject><subject> Earth&amp;Environmental Sciences</subject><subject> Engineering</subject><subject> Medicine&amp;Healthcare</subject><subject> Physics&amp;Mathematics</subject><subject> Social Sciences&amp;Humanities</subject></subj-group></article-categories><title-group><article-title>
 
 
  Enhanced Document Retrieval System Using Suffix Tree Clustering Algorithm
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Linda</surname><given-names>Uchenna Oghenekaro</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Ifeanyi</surname><given-names>Emmanuel Olughu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Joshua</surname><given-names>Oluwasegun Jatto</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of Computer Science, University of Port Harcourt, Port Harcourt, Nigeria</addr-line></aff><pub-date pub-type="epub"><day>06</day><month>07</month><year>2023</year></pub-date><volume>10</volume><issue>07</issue><fpage>1</fpage><lpage>10</lpage><history><date date-type="received"><day>9,</day>	<month>May</month>	<year>2023</year></date><date date-type="rev-recd"><day>17,</day>	<month>July</month>	<year>2023</year>	</date><date date-type="accepted"><day>20,</day>	<month>July</month>	<year>2023</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  Most search engines in use today present the user with a single-ordered list of documents matching the search query leading to lexical ambiguity. An alternative to a single-ordered list is to cluster the search results and present a list of clusters to the user. This study implements the suffix tree clustering algorithm to optimize search. The user selects which cluster appears most relevant and the search results in that cluster are then displayed in a list under the assumption that similar documents are likely to be relevant to the same query. The proposed system clusters search results from the file system. The proposed system allows the user to issue a search query and we return the results as a set of coherent clusters. The suffix tree clustering algorithm efficiently determined documents that share common phrases. The nodes in the suffix tree define the initial cluster and to increase the number of documents in each cluster, clusters that are sufficiently similar are merged. The proposed system adopted web technologies such as hypertext markup language (HTML), and cascade styling sheet (CSS), to design the interface, while Javascript programming language was used to implement the entire system. The proposed system was implemented using PHP5 and MySQL database. The experimental results show that the suffix tree clustering algorithm can be used to cluster documents efficiently. The resulting system demonstrated an optimized search of 4.1 trillion search results of the word “Electricity” whereas a total result of 4.3 trillion was retrieved by the conventional Google Search Engine.
 
</p></abstract><kwd-group><kwd>Retrieval System</kwd><kwd> Document</kwd><kwd> Clustering Algorithm</kwd><kwd> Suffix Tree</kwd><kwd> Document Clustering</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The need to understand large, complex, information-rich data sets is common in virtually all fields of business, science, and engineering. The ability to extract useful knowledge hidden in these data and to act on that knowledge is becoming increasingly important in everyday people’s life and work. Data clustering is an unsupervised data mining approach that groups a large collection of objects (data points, records, documents etc.) into more meaningful smaller subgroups [<xref ref-type="bibr" rid="scirp.126447-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref2">2</xref>] .</p><p>Clustering is a division of data into groups of similar objects where each group, called cluster, consists of objects that are similar between themselves and dissimilar to objects of other groups. In other words, the goal of a good document clustering scheme is to minimize intra cluster distances between documents, while maximizing inter-cluster distances using an appropriate distance measure between documents. Clustering itself is not one specific algorithm, but the general task to be solved [<xref ref-type="bibr" rid="scirp.126447-ref1">1</xref>] . A distance measure or, dually, similarity measure thus lies at the heart of document clustering. Clustering is the most common form of unsupervised learning and this is the major difference between clustering and classification. No super vision means that there is no human expert who has assigned documents to classes. In clustering, it is the distribution and makeup of the data that will determine cluster membership [<xref ref-type="bibr" rid="scirp.126447-ref3">3</xref>] .</p><p>Clustering can be considered the most important unsupervised learning problem, understanding large and complex information data sets is commonly seen almost in all fields of human endeavour. The ability to remove useful hidden knowledge in a data and to act on it is becoming an important issue virtually in all works of life. Using a computer-based algorithm for discovering knowledge from hidden data set in data mining is also an iterative method within which progress is defined through automatic or manual process. It will often be necessary to modify data preprocessing and model parameters until the result achieves the desired properties [<xref ref-type="bibr" rid="scirp.126447-ref4">4</xref>] . There are many natural ways of obtaining user information and preference using algorithms like suffix tree that can use both online learning through user interactions with the search engine during document search. With the relevance feedback of the interaction between search engine and the user at large based on the user’s analysis, decisions and preferences according to [<xref ref-type="bibr" rid="scirp.126447-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref6">6</xref>] .</p><p>A suffix tree is a data structure that admits efficient string matching and querying suffix trees have been studied and used extensively and have been applied to fundamental sting problems such as finding the longest repeated substring, strings comparing and text compression. The suffix trees became useful as the search time is independent of the length of the string [<xref ref-type="bibr" rid="scirp.126447-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref8">8</xref>] .</p><p>Document clustering has been investigated for use in a number of different areas of text-mining and information retrieval. Initially, document clustering was investigated for improving the precision or recall in information retrieval systems and as an efficient way of finding the nearest neighbours of a document More recently, clustering has been proposed for use in browsing a collection of documents or in organizing the results returned by a search engine in response to a user’s query [<xref ref-type="bibr" rid="scirp.126447-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref10">10</xref>] . Clustering is a common form of unsupervised learning and is widely used in many areas of research and science. According to [<xref ref-type="bibr" rid="scirp.126447-ref4">4</xref>] the following are the basic directions in which clustering is used, finding similar documents, organizing large document collections, Duplicate content detection, recommendation system, search optimization.</p><p>Clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some sense or another) to each other than to those in other groups (clusters). It is a main task of exploratory data mining, and a common technique for statistical data analysis, used in many fields, including machine learning, pattern recognition image analysis, information retrieval, and bio-informatics. Clustering itself is not one specific algorithm, but the general task to be solved [<xref ref-type="bibr" rid="scirp.126447-ref11">11</xref>] . Clustering can therefore be formulated as a multi-objective optimization problem. The appropriate clustering algorithm and parameter settings (including values such as the distance function to use, a density threshold or the number of expected clusters) depend on the individual data set and intended use of the results. Clustering as such is not an automatic task, but an iterative process of knowledge discovery or interactive multi objective optimization that involves trial and failure. It will often be necessary to modify data preprocessing and model parameters until the result achieves the desired properties [<xref ref-type="bibr" rid="scirp.126447-ref4">4</xref>] .</p><p>More recently, a new model for document representation has been introduced, based on suffix tree, which is called Suffix Tree Document Model. This model is utilized to cluster web-documents in [<xref ref-type="bibr" rid="scirp.126447-ref12">12</xref>] . A phrase is an ordered sequence of words, which captures more semantic of text as compared to a single word. Hence, the clustering results produced by phrase-based similarity measure are of high quality when compared to the semantic interpretation of the corpus. The more recent work on the phrase-based approach is in [<xref ref-type="bibr" rid="scirp.126447-ref11">11</xref>] . A similar work that also utilizes suffix tree model is from [<xref ref-type="bibr" rid="scirp.126447-ref6">6</xref>] .</p><p>This algorithm starts by computing frequent two-word sets based on user-specified minimum support. Next, all words not in any of the frequent two-word sets are removed from the documents, resulting in compact representation of documents. The compact documents are added one-by-one into a generalized suffix tree data structure. The algorithm then traverses the generalized suffix tree in a depth-first fashion. It offers the possibilities like: grouping similar results [<xref ref-type="bibr" rid="scirp.126447-ref7">7</xref>] comprehend the link between the results [<xref ref-type="bibr" rid="scirp.126447-ref8">8</xref>] and creating the succinct representation and display of search results.</p></sec><sec id="s2"><title>2. Methodology</title><p>The proposed suffix tree clustering algorithm designed to meet the requirements of post-retrieval clustering of web search results. Suffix tree clustering is unique in treating a document as a string, not simply a set of words, thus making use of proximity information between words. Suffix tree clustering relies on a suffix tree to efficiently identify sets of documents that share common phrases and uses this information to create clustering and to succinctly summarize their contents for users.</p><p>The design of this system adopts the structured system analysis and design methodology (SSADM). The Structured System Analysis and Design Methodology is a system approach to the analysis and design of a property which has three design modelling known as:</p><p>1) Logical Data Modelling: this is the process of identifying, modelling and documenting the data requirements of the system being designed. The data are separated into entities (things about which a business needs to record information) and relationships (the associations between the entities).</p><p>2) Data Flow Modelling: This is a process of identifying, modelling and documenting how data moves around an information system. Data Flow Model examines processes (activities that transform data from one form to another), data stores (the holding areas for data), external entities (what sends data into a system or receives data from a system), and data flows (routes by which data can flow).</p><p>3) Entity Behaviour Modelling: this is the process of identifying, modelling arid documenting the events that affect each entity and the sequence in which these events occur.</p><p>In the design of this system, we used the suffix tree clustering algorithm to cluster a corpus of documents. The system of the project comprises of system flowchart, system architecture and system block.</p><sec id="s2_1"><title>2.1. System Flowchart</title><p>The system flowchart shows the flow of the activities from the start point of when the search word is put into the system, to the end point of when closely related document clusters are produced as output. The system flowchart as seen in <xref ref-type="fig" rid="fig1">Figure 1</xref>, illustrates how string are searched; the user inputs the search text which they have in mind. And the process of inputting cleans the hypertext markup language (html) to plain text. This process then identifies the base cluster by grouping the suffix of the inputted search which now deploys the output of the search words after proper clustering.</p></sec><sec id="s2_2"><title>2.2. Proposed System Architecture</title><p>This is the exceptional model that defines the structure, model, behavior and more views on the proposed system (<xref ref-type="fig" rid="fig2">Figure 2</xref>). The enter search strings column allows the user to input their desired text or word. The search system which applies suffix tree in order to get the clustered search, which is being stored in the database and sent to the web administration and returns back to the database after the searched words had been clustered and then deploys to the output as searched results.</p></sec><sec id="s2_3"><title>2.3. System Block Diagram</title><p>The system block diagram (<xref ref-type="fig" rid="fig3">Figure 3</xref>) refers to the high-level diagram of the system, it shows the detailed description aimed at understanding the overall concept and also for understanding the details of the implementation of the new system. The web browser helps to enter the search query, which results would be displayed, click and view the results of the searched query.</p></sec><sec id="s2_4"><title>2.4. Suffix Tree Algorithm</title><p>So when the results are being displayed in the search Engine, the results related to “data”, “mining”, or some “data … (any strings between two) … mining” are also displayed. This can also enable an easy way to even cluster the results into related phrases [<xref ref-type="bibr" rid="scirp.126447-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref12">12</xref>] .</p></sec><sec id="s2_5"><title>2.5. Suffix Tree Clustering (STC)</title><p>Apart from the introduction of Suffix tree, it is very necessary to relate Suffix tree to the clustering technique which the paper intended to address. The STC algorithm involves five steps [<xref ref-type="bibr" rid="scirp.126447-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.126447-ref12">12</xref>] :</p><p>1) Preparation of the documents: this involves retrieving document snippets from Google and results stemming.</p><p>2) Construction of Suffix tree: this is the process of inserting the string associated with the document in the Suffix tree.</p><p>3) Clustering Merging: this include the combination of two or more similar nodes of Suffix tree.</p><p>4) Clustering labeling: each cluster should have a label.</p><p>5) Clusters scoring: this has to do with clusters ranking.</p></sec><sec id="s2_6"><title>2.6. Input Design</title><p>Input to the suffix tree clustering for document retrieval is a search string to be retrieval from a set of documents. A prototype of the user interface is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>, and it shows the input design in block diagram, where users input their queries and a search box where the users click to process the queries.</p></sec><sec id="s2_7"><title>2.7. Output Design</title><p>The output of this system is a cluster of documents that contains possible documents that contains the search string. The side bars which display various forms of information to the right and left side of the system (<xref ref-type="fig" rid="fig5">Figure 5</xref>).</p></sec></sec><sec id="s3"><title>3. Result and Discussion</title><p>The result of a suffix tree clustering algorithm can be discussed in terms of its</p><p>accuracy, efficiency, and scalability. Using the searched word Hospital.</p><p>1) Accuracy: the accuracy of the algorithm can be evaluated based on how well it groups similar data points and separates dissimilar data points. When the word Hospital was searched, the STC search engine made sure to filter the relevant or the exact results of the searched word.</p><p>2) Efficiency: the time and memory complexity of the algorithm can be analysed to determine its efficiency, especially in handling large data sets. The STC search engine ensured that relevant or exact result was presenting thereby reducing time and memory.</p><p>3) Scalability: the ability of the algorithm to handle an increase in the size of the data set can also be evaluated. This includes its ability to process data in parallel or distributed manner.</p><p>Suffix tree clustering search engines differ from conventional search engines in several ways.</p><p>1) Indexing: conventional search engines use indexes for indexing, while suffix tree clustering search engines use suffix tree for indexing.</p><p>2) Search Efficiency: conventional search engines use algorithm such as Boolean search and vector space model to search, while suffix tree clustering search engines use clustering algorithms to search, which are often more efficient.</p><p>3) Query Handling: conventional search engines use simple keyword-based queries, while suffix tree clustering search engines can handle more complex queries such as regular expressions.</p><p>4) Result Relevance: conventional search engines rely on ranking algorithm and external signals such as page authority to determine result relevance, while suffix tree clustering search engines rely on the similarity of the query and documents in the clusters.</p><p>5) Scalability: conventional search engines may struggle with scaling as the number of documents increases, while suffix tree clustering search engines can handle very large datasets more efficiently.</p><p><xref ref-type="fig" rid="fig6">Figure 6</xref> and <xref ref-type="fig" rid="fig7">Figure 7</xref> shows the comparison between STC search engines and Conventional search engine using the search word “electricity”. In <xref ref-type="fig" rid="fig6">Figure 6</xref> there were about 4,320,000,000 searched results, while in <xref ref-type="fig" rid="fig7">Figure 7</xref> shows how the STC search engine clustered the query and reduced the result of the searched word to 4,010,000,000. In this observation the STC search engine had fewer, relevant, and exact results whereas the conventional search engine had many results with less relevance.</p></sec><sec id="s4"><title>4. Conclusion</title><p>The proposed suffix tree clustering (STC) algorithm is for clustering documents. STC is a linear time clustering algorithm that is based on a suffix tree which efficiently identifies sets of documents that share common phrases. It treats a document as a string, making use of proximity information between words. It is</p><p>novel, incremental and 0(n)-time algorithm. STC succinctly summarizes clusters’ contents for users. Therefore, suffix tree clustering is an effective and efficient technique for summarizing large volume of text data. Its implementation involves several steps and can benefit from advances in algorithms and techniques for string processing and document clustering.</p></sec><sec id="s5"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest.</p></sec><sec id="s6"><title>Cite this paper</title><p>Oghenekaro, L.U., Olughu, I.E. and Jatto, J.O. (2023) Enhanced Document Retrieval System Using Suffix Tree Clustering Algorithm. Open Access Library Journal, 10: e10228. https://doi.org/10.4236/oalib.1110228</p></sec></body><back><ref-list><title>References</title><ref id="scirp.126447-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Chim, H. and Deng, X. (2018) Efficient Phrase-Based Document Similarity for Clustering. IEEE Transaction on Knowledge and Data Engineering, 20, 1217-1229.  
https://doi.org/10.1109/TKDE.2008.50</mixed-citation></ref><ref id="scirp.126447-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Chung, S.M., Holt, J.D. and Li, Y. (2014) Text Document Clustering Based on Frequent Word Meaning Sequences. Data &amp;Knowledge Engineering, 64, 381-404.  
https://doi.org/10.1016/j.datak.2007.08.001</mixed-citation></ref><ref id="scirp.126447-ref3"><label>3</label><mixed-citation publication-type="book" xlink:type="simple">Hill, D.R. (2016) A Vector Clustering Technique. In: Samuelson, K., Ed., Mechanized Information Storage, Retrieval and Dissemination, North Holland, Amsterdam.</mixed-citation></ref><ref id="scirp.126447-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Campi, A. and Ronchi, S. (2019) The Role of Clustering in Search Computing. 2009 20th International Workshop on Database and Expert Systems Application, Linz, 31 August-4 September 2009, 432-436.</mixed-citation></ref><ref id="scirp.126447-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Baeza-Yates, R.A. and Gonnet, G.H. (2021) Fast Text Searching for Regular Expressions or Automaton Searching on Tries. Journal of the ACM, 43, 915-936.  
https://doi.org/10.1145/235809.235810</mixed-citation></ref><ref id="scirp.126447-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Farach-Colton, M., Ferragina, P. and Muthukrishnan, S. (2010) On the Sorting-Complexity of Suffix Tree Construction. Journal of the ACM, 47, 987-1011.  
https://doi.org/10.1145/355541.355547</mixed-citation></ref><ref id="scirp.126447-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Giegerich, R. and Kurtz, S. (2016) From Ukkonen to MeCreight and Weiner: A Unifying View of Linear-Time Suffix Tree Construction. Algorithmica, 19, 331-353.</mixed-citation></ref><ref id="scirp.126447-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Porter, M.F. (2022) An Algorithm for Suffix Stripping. Program: Electronic Library and Information Systems, 14, 130-137. https://doi.org/10.1108/eb046814</mixed-citation></ref><ref id="scirp.126447-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Hammouda, K.M. and Kamel, M.S. (2015) Efficient Phrase-Based Document Indexing for Web Document Clustering. IEEE Transaction on Knowledge and Data Engineering, 16, 1279-1296. https://doi.org/10.1109/TKDE.2004.58</mixed-citation></ref><ref id="scirp.126447-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Roccbio, J.J. (2019) Document Retrieval Systems—Optimization and Evaluation. Ph.D. Thesis, Harvard University, Boston.</mixed-citation></ref><ref id="scirp.126447-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Cutting, D.R., Karger, D.R, Pedersen, J.O. and Tukey, J.W. (2015) Scatter/Gather: A Cluster-Based Approach to Browsing Large Document Collections. Proceedings of the 15th International ACM SIGIR Conference on Research and Development in information Retrieval, Copenhagen, 21-24 June 1992, 318-329.</mixed-citation></ref><ref id="scirp.126447-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Oren, Z. and Oren, E. (1999) Grouper: A Dynamic Clustering Interface to Web Search Results. Computer Networks, 31, 1361-1374.</mixed-citation></ref></ref-list></back></article>