2016-04-09 18 views
2

Kullanıcının metin girişini alan, en yakın sonraki kelimeyi tahmin etmek için son iki kelimeyi trigram veri karesiyle karşılaştıran Parlak bir uygulama yapıyorum. Server.R'de, çıkışa çalıştığım triPred işlevinin çıktısının altında tek bir sözcük var. Uygulamaya bazı metinler yazdıktan sonra bu uygulamayı yüklediğimde aşağıdaki hatayı alıyorum - 'argüman 1' ('kapanış' türü) 'cat' tarafından işlenemiyor - ki bu sunucudaki son satırla ilgili gibi görünüyor. Bu sadece bir kelimedir, 'kedi' ile neyin başarısız olduğunu belirsiz değilim, yani birleştirme.Parlak uygulama başarısız "argüman 1 ('kapanış' tipi) 'kedi' tarafından ele alınamaz - bu ne anlama geliyor?

server.R

library(stringr) 

shinyServer(function(input, output) { 

    triSplit <- function(input) { 
      el <- unlist(str_split(input," ")) 
      bigram <- paste(el[length(el)-1],el[length(el)]) 
      return(bigram) 
    } 

    triPred <- function(input) { 
      ## pulls out end words that match the input bigram 
      temp_wf_T <- wf_T[wf_T$start == triSplit(input),] 
      ##Picks one of the best options at random based on count 
      ans <- sample(temp_wf_T$end[temp_wf_T$count == max(temp_wf_T$count)],1) 
      return(ans) } 

    ##Read in a dataframe of bigrams, their possible completions, and counts of occurence 
    wf_T<-readRDS("C:/Users/LTM/DataScienceCertificateCapstone/ShinyTest/data/tdm.rds") 
    ##Runs the triPred function to guess the next most likely word 
    ans <- reactive(triPred(input$sent)) 
    ##generates an output variable to display 
    output$out <- renderText({ans}) 
    }) 

ui.R

library(shiny) 

shinyUI(fluidPage(
    titlePanel(h1("My Shiny App", align = "center")), 
    sidebarLayout(
      sidebarPanel(helpText("Please enter a sentence you would like me to complete"), 
      textInput("sent", label = "sentence")), 
      ########## 
      mainPanel(h1("Best Guess"), 
      br(), 
      textOutput("out") 
      ) 
    ) 
)) 

cevap

4

Ben uygulamanızı yeniden olamaz çünkü söylemek zor, ancak birlikte denemelisiniz:

output$out <- renderText({ans()}) ya da sadece output$out <- renderText(ans()).

()'u çıkarırsanız, reaktifin kendisine değil, kendisinin değerine erişirsiniz. Bir işlev için foo() yerine foo yazdığınızda bir bit.

+0

Bu hatayı düzeltmek gibi görünüyor. Ve Shiny ile çalışmak için yararlı bir öğrenme örneğidir. Bunun için teşekkür ederim. –

+0

Rica ederim. –