- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下内容:
x10 = data.frame(id = c(1,2,3),vars =c('top','down','top'),
text1=c('this is text','so is this','and this is too.'),
text2=c('we have more text here','and here too','and look at this, more text.'))
我想使用以下方法在 quanteda 中创建 dfm/语料库:
x1 = corpus(x10,docid_field='id',text_field=c(3:4),tolower=T)
显然这会出错,因为 text_field 只需要一个列。除了构建两个语料库之外,有没有更好的方法来处理这个问题?我可以构建 2 然后在 id 上合并吗?那是一回事吗?
最佳答案
首先,让我们在不考虑字符值的情况下重新创建您的 data.frame:
x10 = data.frame(id = c(1,2,3), vars = c('top','down','top'),
text1 = c('this is text', 'so is this', 'and this is too.'),
text2 = c('we have more text here', 'and here too', 'and look at this, more text.'),
stringsAsFactors = FALSE)
那么我们有两个选择。
首先“熔化”数据,这样就只有一列,然后作为语料库导入。 (另一种选择是 tidy::gather()
。)
x10b <- reshape2::melt(x10, id.vars = c("id", "vars"),
measure.vars = c("text1", "text2"),
variable.name = "doc_id", value.name = "text")
# because corpus() takes document names from row names, by default
row.names(x10b) <- paste(x10b$doc_id, x10b$id, sep = "_")
x10b
# id vars doc_id text
# text1_1 1 top text1 this is text
# text1_2 2 down text1 so is this
# text1_3 3 top text1 and this is too.
# text2_1 1 top text2 we have more text here
# text2_2 2 down text2 and here too
# text2_3 3 top text2 and look at this, more text.
x10_corpus <- corpus(x10b)
summary(x10_corpus)
# Corpus consisting of 6 documents:
#
# Text Types Tokens Sentences id vars doc_id
# text1_1 3 3 1 1 top text1
# text1_2 3 3 1 2 down text1
# text1_3 5 5 1 3 top text1
# text2_1 5 5 1 1 top text2
# text2_2 3 3 1 2 down text2
# text2_3 8 8 1 3 top text2
#
# Source: /Users/kbenoit/Dropbox (Personal)/GitHub/lse-my459/assignment-2/* on x86_64 by kbenoit
# Created: Tue Feb 6 19:06:07 2018
# Notes:
在这里,我们分别创建两个语料库对象并使用 +
组合它们运营商。
x10_corpus2 <-
corpus(x10[, -which(names(x10)=="text2")], text_field = "text1") +
corpus(x10[, -which(names(x10)=="text1")], text_field = "text2")
summary(x10_corpus2)
# Corpus consisting of 6 documents:
#
# Text Types Tokens Sentences id vars
# text1 3 3 1 1 top
# text2 3 3 1 2 down
# text3 5 5 1 3 top
# text11 5 5 1 1 top
# text21 3 3 1 2 down
# text31 8 8 1 3 top
#
# Source: Combination of corpuses corpus(x10[, -which(names(x10) == "text2")], text_field = "text1") and corpus(x10[, -which(names(x10) == "text1")], text_field = "text2")
# Created: Tue Feb 6 19:14:14 2018
# Notes:
你也可以在这个阶段使用 docnames(x10_corpus2) <-
将文档名重新分配为更像第一种方法。
关于r - 如何从具有多列文本的 data.frame 创建 quanteda 语料库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48649343/
是否有比 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
我是一名优秀的程序员,十分优秀!