threaded.R 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. sentiment.test.threaded <- function(){
  2. env <- .GlobalEnv
  3. this <- new.env(parent = env)
  4. cat("Ohh so you want to test me?\n")
  5. cat("Well come on then. Let's do this!\n\n")
  6. cat("First of all. Can you give me the test(set)?\n")
  7. set <- file.choose()
  8. set <- env$set.import(set)
  9. MAX <- nrow(set)
  10. MIN <- 1
  11. if(!console.confirm(paste("Do you want me to test all of the", as.character(nrow(set)), "records?"))){
  12. cat("Well thanks that might just saved me a huge headache.\n")
  13. repeat{
  14. MIN <- console.ask("So where do you want me to start?", type = "integer")
  15. if(MIN > 0 && MIN <= MAX) break
  16. else cat("Please enter a number bigger than 0 and smaller or equal than the records in this set.\n")
  17. }
  18. repeat{
  19. MAX <- console.ask("And where do you want me to stop?", type = "integer")
  20. if(MAX >= MIN && MAX <= nrow(set)) break
  21. else cat(paste("Please enter a number bigger or equal then", as.character(MIN), "and smaller or equal then", as.character(nrow(set))))
  22. }
  23. }
  24. score <- c()
  25. cat("*Intensive thinking* Hmmmm...\n")
  26. worker <- function(i, env, prog){
  27. scr <- sentiment.calc(set[i,]$review, progress = FALSE)
  28. env$setTxtProgressBar(prog, i)
  29. return(scr)
  30. }
  31. prog <- txtProgressBar(min = (MIN-1), max = MAX, style = 3)
  32. setTxtProgressBar(prog, (MIN-1))
  33. score <- unlist(mcmapply(worker, MIN:MAX, MoreArgs = list(env, prog), mc.cores = 4))
  34. close(prog)
  35. cat("Phoee... Finally done. Hope I did well...\n")
  36. score <- as.integer(mean(score)*100)
  37. if(score > 80){
  38. cat(paste0("OMG! I got ", as.character(score), "% correct!\n"))
  39. }
  40. else{
  41. cat(paste0("Hmm. I'm not happy with a score of ", as.character(score), "%\n"))
  42. }
  43. return(score)
  44. }