代码之家  ›  专栏  ›  技术社区  ›  Jacek Kotowski

如何仅从存储的单词列表中生成text2vector中的文档术语矩阵

  •  0
  • Jacek Kotowski  · 技术社区  · 7 年前

    text2vec中的语法是什么,用于将文本矢量化并仅使用指定的单词列表实现dtm?

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   Dmitriy Selivanov    7 年前

    您只能从特定的功能集创建文档术语矩阵:

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

    然而,我不建议1)在如此稀疏的数据上使用随机林-它不会很好地工作2)按照您描述的方式执行特征选择-您可能会过度拟合。

        2
  •  2
  •   Ken Benoit    7 年前

    量子田 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