textProcessor更改我的语料库的观察次数(使用R中的stm包)

时间:2017-10-03 20:49:39

标签: r stm

我正在处理一个数据集,该数据集有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个有效观察结果,没有空行。我不确定是什么。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

stm无法处理空文档,因此我们只是删除它们。 textProcessor从文本中删除了很多东西:自定义停用词,短于3个字符的单词,数字等等。所以这里发生的是你的一个文件(无论哪一个被删除)实际上是丢失所有内容的。做textProcessor的各种事情的过程。

您可以回复它的文档,并决定在此实例中您想要做什么。一般来说,如果你想要更多地控制文本操作,我强烈建议使用quanteda包,它具有比stm更精细的工具,用于将文本操作到文档术语矩阵中。