module Ebooks class Generator attr_accessor :dictionary def initialize(config) @tweets_csv_path = config[:tweets_csv_path] @corpus_path = config[:corpus_path] build_corpus @dictionary_name = config[:dictionary_name] @dictionary = build_dictionary end def generate_twitter_corpus # Go to Twitter.com -> Settings -> Download Archive. # This tweets.csv file is in the top directory. Put it in the same directory as this script. csv_text = CSV.read(@tweets_csv_path) # Create a new clean file of text that acts as the seed for your Markov chains File.open(@corpus_path, 'w') do |file| csv_text.reverse_each do |row| # Strip links and new lines tweet_text = row[5].gsub(/(?:f|ht)tps?:\/[^\s]+/, '').gsub(/\n/,' ') # Save the text file.write("#{tweet_text}\n") end end end def generate_sentence # Run when you want to generate a new Markov tweet dictionary.generate_n_sentences(2).split(/\#\