我正在处理一个数据集,该数据集有439个文本分析观察结果。当我使用textProcessor时,由于某种原因,观察数量变为438。这会在以后产生问题:例如,当使用findThoughts()函数时。
##############################################
#PREPROCESSING
##############################################
#Process the data for analysis.
temp<-textProcessor(sovereigncredit$Content,sovereigncredit, customstopwords = customstop, stem=FALSE)
meta<-temp$meta
vocab<-temp$vocab
docs<-temp$documents
length(docs) # QUESTION: WHY IS THIS 438 instead of 439, like the original dataset?
length(sovereigncredit$Content) # See, this original one is 439.
out <- prepDocuments(docs, vocab, meta)
docs<-out$documents
vocab<-out$vocab
meta <-out$meta
这成为问题的一个例子是:
thoughts1<-findThoughts(sovereigncredit1, texts=sovereigncredit$Content,n=5, topics=1)
输出为:
&#34; findThoughts出错(sovereigncredit1,texts = sovereigncredit $ Content,: 提供的文本数量和建模的文档数量与#34;
不匹配
其中&#34; sovereigncredit1&#34;是一个基于&#34; out&#34;的主题模型。从上面。
如果我的解释是正确的(并且我没有犯下另一个错误),问题似乎是文本处理前后观察数量的这一观察差异。
到目前为止,我已经查看了原始csv,并确保实际上有439个有效观察结果,没有空行。我不确定是什么。任何帮助将不胜感激!
答案 0 :(得分:1)
stm
无法处理空文档,因此我们只是删除它们。 textProcessor
从文本中删除了很多东西:自定义停用词,短于3个字符的单词,数字等等。所以这里发生的是你的一个文件(无论哪一个被删除)实际上是丢失所有内容的。做textProcessor
的各种事情的过程。
您可以回复它的文档,并决定在此实例中您想要做什么。一般来说,如果你想要更多地控制文本操作,我强烈建议使用quanteda包,它具有比stm
更精细的工具,用于将文本操作到文档术语矩阵中。