Also meine glänzende App soll einige Texte als Eingabe nehmen und dann ein Ein-Wort-Text als Ausgabe geben. Aber anscheinend bekomme ich den Fehler - "Argument ist kein Zeichenvektor". Das sind meine Codes:Welchen Typ liefert der textAreaInput von r shiny?
app.R
library(shiny)
server <- function(input, output) {
text1 <- eventReactive(input$actionButton,{
getPrediction(input$caption)
})
output$text1 <- renderUI({
text1()
})
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textAreaInput(inputId="caption", label="Put your text here", width="100%", height="400px", value="", placeholder = "Placeholder"),
actionButton("actionButton", label = "Submit")
),
mainPanel(
h3("Name"),
textOutput("text1")
)
)
)
shinyApp(ui = ui, server = server)
helper.R
library(doMC)
registerDoMC(cores=detectCores())
getPrediction <- function(ptest){
corpus <- Corpus(VectorSource(ptest))
corpus.clean <- corpus %>%
tm_map(content_transformer(tolower)) %>%
tm_map(removePunctuation) %>%
tm_map(removeNumbers) %>%
tm_map(removeWords, stopwords(kind="en")) %>%
tm_map(stripWhitespace)
corpus.clean.test <- corpus.clean
fivefreq <- findFreqTerms(dtm.train, 5)
dtm.test.nb <- DocumentTermMatrix(corpus.clean.test, control=list(dictionary = fivefreq))
convert_count <- function(x) {
y <- ifelse(x > 0, 1,0)
y <- factor(y, levels=c(0,1), labels=c("No", "Yes"))
y
}
testNB <- apply(dtm.test.nb, 2, convert_count)
pred <- predict(classifier, newdata=testNB)
pred
}
Was kann ich tun, um die Vorhersage als Ausgabe zu drucken?
Es gibt eine Zeichenkette. Wie Sie mit Print-Statements feststellen können. Funktioniert gut Ich denke, was glaubst du, woher kommt der Fehler? –
Ich habe versucht, es zu laufen, aber ich sehe nicht, wo Sie 'dtm.train' definieren, es stirbt dort Form mich. –
Oh, richtig, ich habe das entfernt. Jetzt bekomme ich einen neuen Fehler: $ Operator ist ungültig für atomare Vektoren. An diesem Punkt weiß ich es nicht wirklich. Ich benutze auch zum ersten Mal glänzend. Dies ist der gesamte Code: http://www.r-fiddle.org/#/fiddle?id=uq2FrPgE&version=2 Können Sie es ausführen? Danke für Ihre Hilfe. – 0x1