昨天我找到了良好的R代码,用于分类情感并采取了一些措施
happy = readLines("./happy.txt")
sad = readLines("./sad.txt")
happy_test = readLines("./happy_test.txt")
sad_test = readLines("./sad_test.txt")
tweet = c(happy, sad)
tweet_test= c(happy_test, sad_test)
tweet_all = c(tweet, tweet_test)
sentiment = c(rep("happy", length(happy) ),
rep("sad", length(sad)))
sentiment_test = c(rep("happy", length(happy_test) ),
rep("sad", length(sad_test)))
sentiment_all = as.factor(c(sentiment, sentiment_test))
library(RTextTools)
mat= create_matrix(tweet_all, language="english",
removeStopwords=FALSE, removeNumbers=TRUE,
stemWords=FALSE, tm::weightTfIdf)
container = create_container(mat, as.numeric(sentiment_all),
trainSize=1:160, testSize=161:180,virgin=FALSE)
models = train_models(container, algorithms=c("MAXENT",
"SVM",
#"GLMNET", "BOOSTING",
"SLDA","BAGGING",
"RF", # "NNET",
"TREE"
))
# test the model
results = classify_models(container, models)
table(as.numeric(as.numeric(sentiment_all[161:180])), results[,"FORESTS_LABEL"])
一切都很好,但有一个问题。在这里,我们处理数据,我们自己向机器指出什么是悲伤的,什么是快乐的文本。如果我有新文件而没有表明什么是悲伤,什么是快乐或什么是积极的,什么是消极的(假设,这篇文件的路径之一n = read.csv(“C:/1/ttt.csv”)),怎么做,那个建立模型可以定义什么短语是否定的和什么是积极的?
答案 0 :(得分:0)
那么,建立一个模型来检测什么是悲伤和什么是幸福的目的是什么?你想要实现什么?这看起来不像是问题/答案。
因此,您在标记数据中使用监督学习(您已经知道是悲伤或快乐)来了解定义这些类的内容,因此稍后您可以使用构建的模型来预测您没有标签的新内容。
因此,对于训练数据所做的任何转换都必须为新数据进行,并且您要求模型根据这些新输入数据进行预测(评估)。所以你使用预测作为结果。这不会改变您的模型,只是在新数据中进行评估。
另一种情况是你带来了新的标签数据,所以你想要更新你的模型,这样你就可以根据新数据重新训练它,你可能会学习可能有更多功能的新模型。
在您的情况下,您应该查看该程序包中的classify_model
或classify_models
函数。