用户输入文字。
根据此文本,我的应用程序进行预测(KatzPred函数)并返回data.frame - 每次用户输入单词时都会更新。
该函数返回的thes data.frame是这样的:
pred PKatz
the 0.003
of 0.002
in 0.002
to 0.001
我的服务器应该采用这种预测并与用户文本进行比较,并将data.frame和plot作为输出。
这是我的代码,它没有按预期工作(我只是最后一次预测,无法使用所有预测)。
SERVER.R
teste<-reactive({
KatzPred(input$userinput)
})
output$predTable<-renderDataTable({teste()})
prediction<-reactive({
a<-c()
a<-c(a,teste()$term[1])
a
})
newtext<-reactive({
if (length(unlist(strsplit(input$userinput, " ")))>0){
actual<-unlist(strsplit(input$userinput, " "))
pred.data<-data.frame(pred = prediction() , actual = actual, correct = prediction()==actual)
pred.data<-mutate(pred.data, accuracy = cumsum(correct)/1:nrow(pred.data))
}else{
pred.data<-data.frame(pred = "", actual = "")
}
pred.data
})
output$accu<-renderDataTable({newtext()})
output$accu2<-renderPlot({
(ggplot(data= newtext(),aes(x=1:nrow(newtext())))
+geom_line(aes(y=accuracy, group=1))
+geom_point(aes(y=accuracy)))
})
我得到的结果是:
用户输入:我要出去了
pred actual correct accuracy
to i FALSE 0
to am FALSE 0
to going FALSE 0
to out FALSE 0
应该是(在R上运行):
pred actual correct accuracy
the i FALSE 0
am am TRUE 0.5
very going FALSE 0.33
out out TRUE 0.5
这个应用程序在我右边的图表中执行我想要做的事情(它将用户输入与预测历史进行比较)。