commit
						42eee9f8e6
					
				
					 2 changed files with 49 additions and 0 deletions
				
			
		
							
								
								
									
										20
									
								
								bin/ebooks
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								bin/ebooks
									
										
									
									
									
								
							|  | @ -25,6 +25,7 @@ Usage: | |||
|      ebooks auth | ||||
|      ebooks consume <corpus_path> [corpus_path2] [...] | ||||
|      ebooks consume-all <model_name> <corpus_path> [corpus_path2] [...] | ||||
|      ebooks append <model_name> <corpus_path> | ||||
|      ebooks gen <model_path> [input] | ||||
|      ebooks archive <username> [path] | ||||
|      ebooks tweet <model_path> <botname> | ||||
|  | @ -116,6 +117,24 @@ STR | |||
|     log "Corpuses consumed to #{outpath}" | ||||
|   end | ||||
| 
 | ||||
|   HELP.append = <<-STR | ||||
|     Usage: ebooks append <model_name> <corpus_path> | ||||
| 
 | ||||
|     Process then append the provided corpus to the model  | ||||
|     instead of overwriting. | ||||
|   STR | ||||
| 
 | ||||
|   def self.append(name, path) | ||||
|     if !name || !path | ||||
|       help :append | ||||
|       exit 1 | ||||
|     end | ||||
| 
 | ||||
|     Ebooks::Model.consume(path).append(File.join(APP_PATH,'model',"#{name}.model")) | ||||
|     log "Corpus appended to #{name}.model" | ||||
|   end | ||||
|   | ||||
| 
 | ||||
|   HELP.jsonify = <<-STR | ||||
|     Usage: ebooks jsonify <tweets.csv> [tweets.csv2] [...] | ||||
| 
 | ||||
|  | @ -380,6 +399,7 @@ STR | |||
|     when "new" then new(args[1]) | ||||
|     when "consume" then consume(args[1..-1]) | ||||
|     when "consume-all" then consume_all(args[1], args[2..-1]) | ||||
|     when "append" then append(args[1],args[2]) | ||||
|     when "gen" then gen(args[1], args[2..-1].join(' ')) | ||||
|     when "archive" then archive(args[1], args[2]) | ||||
|     when "tweet" then tweet(args[1], args[2]) | ||||
|  |  | |||
|  | @ -69,6 +69,35 @@ module Ebooks | |||
|       self | ||||
|     end | ||||
| 
 | ||||
|     # Append a generated model to existing model file instead of overwriting it | ||||
|     # @param path [String] | ||||
|     def append(path) | ||||
|       existing = File.file?(path) | ||||
|       if !existing | ||||
|         log "No existing model found at #{path}" | ||||
|         return | ||||
|       else | ||||
|         #read-in and deserialize existing model | ||||
|         props = Marshal.load(File.open(path,'rb') { |old| old.read }) | ||||
|         old_tokens = props[:tokens] | ||||
|         old_sentences = props[:sentences] | ||||
|         old_mentions = props[:mentions] | ||||
|         old_keywords = props[:keywords] | ||||
| 
 | ||||
|         #append existing properties to new ones and overwrite with new model | ||||
|         File.open(path, 'wb') do |f| | ||||
|           f.write(Marshal.dump({ | ||||
|             tokens: @tokens.concat(old_tokens), | ||||
|             sentences: @sentences.concat(old_sentences), | ||||
|             mentions: @mentions.concat(old_mentions), | ||||
|             keywords: @keywords.concat(old_keywords) | ||||
|           })) | ||||
|         end | ||||
|       end | ||||
|       self | ||||
|     end | ||||
|       | ||||
| 
 | ||||
|     def initialize | ||||
|       @tokens = [] | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jaiden Mispy
						Jaiden Mispy