- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个 dfm_tfidf 并且我想过滤掉低于某个阈值的值。
代码:
dfmat2 <-
matrix(c(1,1,2,1,0,0, 1,1,0,0,2,3),
byrow = TRUE, nrow = 2,
dimnames = list(docs = c("document1", "document2"),
features = c("this", "is", "a", "sample",
"another", "example"))) %>%
as.dfm()
#it works
dfmat2 %>% dfm_trim(min_termfreq = 3)
#it does not work
dfm_tfidf(dfmat2) %>% dfm_trim( min_termfreq = 1)
# "Warning message: In dfm_trim.dfm(., min_termfreq = 1) : dfm has been previously weighted"
问题 :如何过滤掉 dfm_tfidf 中存在的值?
最佳答案
这是一个基于绝对最小值在稀疏矩阵空间中执行此操作的函数。但要注意,因为 tf-idf 绝对值在不同的 dfm 对象中意义不大。
library("quanteda")
## Package version: 2.1.1
dfmat2 <-
matrix(c(1, 1, 2, 1, 0, 0, 1, 1, 0, 0, 2, 3),
byrow = TRUE, nrow = 2,
dimnames = list(
docs = c("document1", "document2"),
features = c(
"this", "is", "a", "sample",
"another", "example"
)
)
) %>%
as.dfm()
# function to trim features based on absolute minimum threshold
# operating directly on sparse matrix
dfm_trimabs <- function(x, min) {
maxvals <- sapply(
split(dfmat3@x, featnames(dfmat3)[as(x, "dgTMatrix")@j + 1]),
max
)
dfm_keep(x, names(maxvals)[maxvals >= min])
}
现在将其应用到上面的示例之前和之后:
# before trimming
dfm_tfidf(dfmat2)
## Document-feature matrix of: 2 documents, 6 features (33.3% sparse).
## features
## docs this is a sample another example
## document1 0 0 0.60206 0.30103 0 0
## document2 0 0 0 0 0.60206 0.90309
# after trimming
dfm_tfidf(dfmat2) %>%
dfm_trimabs(min = 0.5)
## Document-feature matrix of: 2 documents, 3 features (50.0% sparse).
## features
## docs a another example
## document1 0.60206 0 0
## document2 0 0.60206 0.90309
关于R. Quanteda 包。如何过滤 dfm_tfidf 中存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63902650/
是否有比 R quanteda::tokens_lookup() 更快的替代方法? 我使用“quanteda”R 包中的 tokens() 来标记包含 2000 个文档的数据框。每份文件为 50 -
我想明确替换 quanteda 包的 tokens 类对象中定义的特定标记。我未能复制适用于 stringr 的标准方法。 目标是用 c("XXX", "of") 形式的两个标记替换 "XXXof"
我想将一些元数据附加到kwic输出中,例如客户ID(请参见下文),以便可以轻松地对主文件进行查找。我尝试使用cbind附加数据,但没有正确匹配的内容。 如果可能的话,将不胜感激。 docna
相关问题可以在 here 中找到但不直接解决我在下面讨论的这个问题。 我的目标是删除与 token 一起出现的任何数字。例如,我希望能够摆脱以下情况下的数字:13f , 408-k , 10-k等。我
由于 Quanteda 中还没有现成的波兰语停用词实现,我想使用我自己的列表。我将其作为以空格分隔的列表形式保存在文本文件中。如果需要,我还可以准备一个以换行符分隔的列表。 如何从我的语料库中删除自定
我正在使用 quanteda 字典查找。我将尝试制定可以查找单词逻辑组合的条目。 例如: Teddybear = (fluffy AND adorable AND soft) 这可能吗?我只找到了一个
我有一些文本包含包含数字的短语,后跟一些符号。我想提取它们,例如,数字后跟百分比。使用 quanteda 包中的 kwic 函数似乎适用于数字作为正则表达式(例如 "\\d{1,}")。尽管如此,我没
我使用 quanteda 来构建文档术语矩阵: library(quanteda) mytext = "This is my old text" dtm <- dfm(mytext, tolower=
我有一个包含文档标记的字符向量列表。 list(doc1 = c("I", "like", "apples"), doc2 = c("You", "like", "apples", "too")) 我
我正在使用 Ken Benoit 和 Paul Nulty 的 quanteda 包来处理文本数据。 我的语料库包含带有完整德语句子的文本,我只想处理每个文本的名词。德语中的一个技巧是只使用大写单词,
我收到此警告消息。我使用这些数据: https://github.com/kbenoit/quanteda/tree/master/data/data_char_inaugural.RData RSt
我有一个包含 2 个文本字段的数据框:评论和主要帖子 基本上是这样的结构 id comment post_text
我正在尝试删除单字符和双字符标记。 这是一个例子: toks <- tokens(c("This is a sentence. This is a second sentence."), remove
有一个带有文本的数据框 df = data.frame(id=c(1,2), text = c("My best friend John works and Google", "However he
我正在尝试从数据文本分析中删除拼写错误。所以我使用 Quanteda 包的字典功能。对于 Unigrams 来说效果很好。但它为 Biggram 提供了意想不到的输出。不知道如何处理拼写错误,以免它们
我想分析一个大的(n=500,000)文档语料库。我使用 quanteda 期望 will be faster比 tm 中的 tm_map() 更好。我想逐步进行,而不是使用 dfm() 的自动化方式
我正在尝试删除单字符和双字符标记。 这是一个例子: toks <- tokens(c("This is a sentence. This is a second sentence."), remove
有一个带有文本的数据框 df = data.frame(id=c(1,2), text = c("My best friend John works and Google", "However he
Quanteda 包提供了稀疏文档特征矩阵 DFM,其方法包含 removeFeatures .我试过 dfm(x, removeFeatures="\\b[a-z]{1-3}\\b")删除太短的单词
所以我有一个 dfm_tfidf 并且我想过滤掉低于某个阈值的值。 代码: dfmat2 % as.dfm() #it works dfmat2 %>% dfm_trim(min_termfreq
我是一名优秀的程序员,十分优秀!