【问题标题】:Feature extraction using Chi2 with Quanteda使用 Chi2 和 Quanteda 进行特征提取
【发布时间】:2017-06-01 15:05:25
【问题描述】:

我有一个具有这种结构的数据框 df:

Rank Review
5    good film
8    very good film
..

然后我尝试使用 quanteda 包创建 DocumentTermMatris:

mydfm <- dfm(df$Review, remove = stopwords("english"), stem = TRUE)

我想如何用文档计算每个特征(术语)的 CHi2 值,以便根据 Chi2 值提取最佳特征

你能帮我解决这个问题吗?

编辑:

head(mydfm[, 5:10])
Document-feature matrix of: 63,023 documents, 6 features (92.3% sparse).
(showing first 6 documents and first 6 features)


> head(mydfm[, 5:10])
Document-feature matrix of: 63,023 documents, 6 features (92.3% sparse).
(showing first 6 documents and first 6 features)
       features
docs    bon accueil conseillèr efficac écout répond
  text1   0       0          0       0     0      0
  text2   1       1          1       1     1      1
  text3   0       0          0       0     0      0
  text4   0       0          0       0     0      0
  text5   0       0          1       0     0      0
  text6   0       0          0       0     1      0
  ...
  text60300 0     0          1       1     1      1

这里有我的 dfm 矩阵,然后我创建我的 tf-idf 矩阵:

tfidf <- tfidf(mydfm)[, 5:10]

我想确定这些特征和文档之间的 chi2 值(这里我有 60300 个文档):

textstat_keyness(mydfm, target = 2)

但是,由于我有 60300 目标,我不知道如何自动执行此操作。 我在 Quanteda 手册中看到 dfm 函数中的 groups 选项可以解决这个问题,但我不知道该怎么做。 :(

编辑 2:

排名审查 10总是好的 1好看的电影 3正常

这里我尝试使用 dfm 对文档进行分组:

 mydfm <- dfm(Review, remove = stopwords("english"), stem = TRUE, groups = Rank)

但它无法对文档进行分组

你能帮我解决这个问题吗

谢谢

【问题讨论】:

    标签: r matrix quanteda


    【解决方案1】:

    ?textstat_keyness。默认度量是卡方。您可以更改 target 参数以将特定文档的频率设置为针对所有其他频率。例如

    textstat_keyness(mydfm, target = 1)
    

    针对所有其他文档的频率,或

    textstat_keyness(mydfm, target = 2)
    

    第二次对抗所有其他人,等等。

    如果您想比较对文档进行分组的频率类别,您需要使用 dfm() 中的 groups = 选项作为提供的变量或在 docvars 中使用。请参阅?textstat_keyness 中的示例。

    【讨论】:

    • 好的,谢谢,这么清楚我明白了,但是万一我有200000个文档,怎么一次运行呢?
    • 您可能想要对文档进行分组。例如,如果一半被编码为“正”,一半被编码为“负”,您可以计算一组中的术语与另一组的关键字。否则,您是对的,为 2e5 文档计算这个是没有用的。
    • 我只是编辑我的帖子,你能帮我解决我的问题吗?谢谢
    • 在对dfm()的调用中尝试groups = df$Rank
    猜你喜欢
    • 2019-07-25
    • 2018-09-25
    • 2019-06-07
    • 2020-08-06
    • 2012-10-19
    • 2022-01-15
    • 2019-01-12
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多