The goal of this project is to explore a large collection of text data and identify patterns that can be used to build a predictive text application. The dataset contains text from three sources: blogs, news, and Twitter. The exploratory analysis focuses on understanding the size of the data, word frequencies, and common combinations of words.
The analysis uses a sample of the available data so that the processing can be performed efficiently while still providing useful information about the language patterns.
The three English-language files were examined to understand their size and content.
## Dataset Lines Size_MB Words
## 1 Blogs 899288 200.42 37334131
## 2 News 1010206 196.28 34371031
## 3 Twitter 2360148 159.36 30373543
The three datasets contain a large amount of text. The blogs file contains 899,288 lines, the news file contains 1,010,206 lines, and the Twitter file contains 2,360,148 lines.
The sampled data also show that a relatively small number of common words occur very frequently. This indicates that word frequency is highly uneven, which is important when designing a prediction model.
The following plot shows the ten most frequent words in the sample.
The following plot shows the ten most frequent two-word combinations in the sample.
The word-frequency analysis shows that common words occur much more often than rare words. In the sample, the most frequent word is “the”. The frequency distribution is highly uneven, with many words occurring only a few times.
The analysis shows that 139 unique words are needed to account for approximately 50% of all word instances in the sample, while 7,067 unique words are needed to account for approximately 90%.
The next stage of the project will use n-gram models to predict the next word from the words already entered by the user. The model will consider common word sequences and use word frequencies to make predictions. Smoothing or backoff methods can be used when a particular word sequence has not appeared in the training data.
The final application will provide a simple interface where a user enters text and receives a predicted next word. The model will be designed to balance prediction quality, memory usage, and response time so that the application remains fast and practical.
The exploratory analysis provides a useful understanding of the three text sources and the frequency of words and word combinations. The findings will guide the development of a compact n-gram based prediction model and the final Shiny application.