2017-07-28 35 views
0

text2vec中的语法是如何将文本向量化并仅通过指定的单词列表实现dtm?如何仅从存储的单词列表中生成text2vector中的文档术语矩阵

如何仅在指示的要素上进行矢量化并生成文档项矩阵?如果功能没有出现在文本中,变量应该保持空白。

我需要生成与dtm中运行建模的字段完全相同的文档矩阵,否则我无法在新文档上使用随机森林模型。 - 它不会工作好2)执行

v = create_vocabulary(c("word1", "word2")) 
vectorizer = vocab_vectorizer(v) 
dtm_test = create_dtm(it, vectorizer) 

不过我不建议:1)使用这种数据稀疏随机森林:

+0

您可以直接在** quanteda **中创建的'fcm'上运行text2vec,从而使用所有** quanteda **特征选择工具。如果您的问题是关于如何从** text2vec **输出中选择项目,则需要更清楚地说明问题的这一部分。一般而言,优秀的SO问题在开始的时候就会使问题变得清晰明了,并且只有在需要回答问题时才提供相关背景。很多你在这里提出的问题都是分心的,因为我不确定你需要答案的部分是什么。 –

+1

对不起。我让它变得柔和。我希望这是可以接受的,我的英语也不是本地人。 –

+0

@KenBenoit我觉得非常有趣,quanteda和text2vec对象可以互换使用。另一方面,我找不到一个关于如何使文本挖掘软件包符合标准dm软件包的简单明了的例子。它们涉及生成具有与学习集中的特征完全一致的特征的数据。 –

回答

1

只能从特定的功能集创建的文档词矩阵特征选择方式你描述 - 你可能会过度使用。

+0

删除停用词后,它并没有那么糟糕。我想知道还会删除在整个数据集中只出现过一次或两次的字词(罕见事件)。我也在考虑如何去除文档中小方差的所有特征。因此,即使在rf(?)之前,特征的数量也可以减少。然后,我从Random Forest中查看Feature重要性,并仅采用n个最重要的特征。然后,我只用这些功能重新运行RF。 –

+0

请查看教程http://text2vec.org/vectorization.html。它涵盖了在给定向量空间中创建另一个DTM的主题。另外它涵盖了修剪罕见词语的主题。 –

+1

谢谢,我会在周末阅读它。我也读过RF,对于稀疏矩阵来说,这确实不是一个好主意,谢谢你对此的评论。现在我会用RF来玩,然后转换成更好的。 –

2

我需要生成与dtm中的列完全相同的文档矩阵,我运行建模,否则我无法在新文档上使用随机森林模型。

quanteda你可以设置一个测试组相同的方法,使用dfm_select()训练集的特征。例如,为了使下面dfm1具有相同的功能,以dfm2

txts <- c("a b c d", "a a b b", "b c c d e f") 

(dfm1 <- dfm(txts[1:2])) 
## Document-feature matrix of: 2 documents, 4 features (25% sparse). 
## 2 x 4 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d 
## text1 1 1 1 1 
## text2 2 2 0 0 
(dfm2 <- dfm(txts[2:3])) 
## Document-feature matrix of: 2 documents, 6 features (41.7% sparse). 
## 2 x 6 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d e f 
## text1 2 2 0 0 0 0 
## text2 0 1 2 1 1 1 

dfm_select(dfm1, dfm2, valuetype = "fixed", verbose = TRUE) 
## kept 4 features, padded 2 features 
## Document-feature matrix of: 2 documents, 6 features (50% sparse). 
## 2 x 6 sparse Matrix of class "dfmSparse" 
##  features 
## docs a b c d e f 
## text1 1 1 1 1 0 0 
## text2 2 2 0 0 0 0 

对于功能方面矩阵(什么text2vec需求的输入),然而,这是行不通的,因为共同出现(至少是那些使用窗口而不是文档上下文进行计算)在各个功能之间是相互依赖的,因此您不能以相同的方式简单地添加和删除它们。

+1

感谢您的回答。我将用text2vec和quanteda进行实验。我是文本挖掘主题的初学者,理解一般术语,尝试深入到更复杂的领域,因此我阅读的一些明显的答案可以忽略并询问相同的答案。我是多力鱼。 –

相关问题