text processing abundance of digitized text despite the wealth of multimedia informationtext processing remains one of the dominant functions of computers computer are used to editstoreand display documentsand to transport documents over the internet furthermoredigital systems are used to archive wide range of textual informationand new data is being generated at rapidly increasing pace large corpus can readily surpass petabyte of data (which is equivalent to thousand terabytesor million gigabytescommon examples of digital collections that include textual information aresnapshots of the world wide webas internet document formats html and xml are primarily text formatswith added tags for multimedia content all documents stored locally on user' computer email archives customer reviews compilations of status updates on social networking sites such as facebook feeds from microblogging sites such as twitter and tumblr these collections include written text from hundreds of international languages furthermorethere are large data sets (such as dnathat can be viewed computationally as "stringseven though they are not language in this we explore some of the fundamental algorithms that can be used to efficiently analyze and process large textual data sets in addition to having interesting applicationstext-processing algorithms also highlight some important algorithmic design patterns we begin by examining the problem of searching for pattern as substring of larger piece of textfor examplewhen searching for word in document the pattern-matching problem gives rise to the brute-force methodwhich is often inefficient but has wide applicability nextwe introduce an algorithmic technique known as dynamic programmingwhich can be applied in certain settings to solve problem in polynomial time that appears at first to require exponential time to solve we demonstrate the application on this technique to the problem of finding partial matches between strings that may be similar but not perfectly aligned this problem arises when making suggestions for misspelled wordor when trying to match related genetic samples because of the massive size of textual data setsthe issue of compression is importantboth in minimizing the number of bits that need to be communicated through network and to reduce the long-term storage requirements for archives for text compressionwe can apply the greedy methodwhich often allows us to approximate solutions to hard problemsand for some problems (such as in text compressionactually gives rise to optimal algorithms finallywe examine several special-purpose data structures that can be used to better organize textual data in order to support more efficient run-time queries