kwic() 函数 returns 行数少于应有的行数
kwic() function returns less rows than it should
我目前正在尝试对 kwic
对象执行情绪分析,但恐怕 kwic()
函数没有 return 它应该 return。我不太确定究竟是什么问题导致难以 post 一个可重现的示例,所以我希望对我正在尝试做的事情进行详细解释就足够了。
我将包含要分析的演讲的原始数据集子集化为一个新的数据框,该数据框仅包含提及某些关键字的演讲。我使用以下代码创建了这个子集:
ostalgie_cluster <- full_data %>%
filter(grepl('Schwester Agnes|Intershop|Interflug|Trabant|Trabi|Ostalgie',
speechContent,
ignore.case = TRUE))
生成的数据框包含 201 个观察值。但是,当我使用以下代码对同一初始数据集执行 kwic()
时,它 return 是一个只有 82 个观测值的数据框。有谁知道这可能是什么原因?再次抱歉,我无法提供可重现的示例,但是当我尝试从头开始创建 reprex 时,它只是..有效...
#create quanteda corpus object
qtd_speeches_corp <- corpus(full_data,
docid_field = "id",
text_field = "speechContent")
#tokenize speeches
qtd_tokens <- tokens(qtd_speeches_corp,
remove_punct = TRUE,
remove_numbers = TRUE,
remove_symbols = TRUE,
padding = FALSE) %>%
tokens_remove(stopwords("de"), padding = FALSE) %>%
tokens_compound(pattern = phrase(c("Schwester Agnes")), concatenator = " ")
ostalgie_words <- c("Schwester Agnes", "Intershop", "Interflug", "Trabant", "Trabi", "Ostalgie")
test_kwic <- kwic(qtd_tokens,
pattern = ostalgie_words,
window = 5)
如果没有可重现的示例(即您的输入 full_data
),这只是一个猜测,但这是我最好的猜测。您的 kwic()
调用使用默认的“glob”模式匹配,而您需要的是正则表达式匹配。
这样修正:
kwic(qtd_tokens, pattern = ostalgie_words, valuetype = "regex",
window = 5
我目前正在尝试对 kwic
对象执行情绪分析,但恐怕 kwic()
函数没有 return 它应该 return。我不太确定究竟是什么问题导致难以 post 一个可重现的示例,所以我希望对我正在尝试做的事情进行详细解释就足够了。
我将包含要分析的演讲的原始数据集子集化为一个新的数据框,该数据框仅包含提及某些关键字的演讲。我使用以下代码创建了这个子集:
ostalgie_cluster <- full_data %>%
filter(grepl('Schwester Agnes|Intershop|Interflug|Trabant|Trabi|Ostalgie',
speechContent,
ignore.case = TRUE))
生成的数据框包含 201 个观察值。但是,当我使用以下代码对同一初始数据集执行 kwic()
时,它 return 是一个只有 82 个观测值的数据框。有谁知道这可能是什么原因?再次抱歉,我无法提供可重现的示例,但是当我尝试从头开始创建 reprex 时,它只是..有效...
#create quanteda corpus object
qtd_speeches_corp <- corpus(full_data,
docid_field = "id",
text_field = "speechContent")
#tokenize speeches
qtd_tokens <- tokens(qtd_speeches_corp,
remove_punct = TRUE,
remove_numbers = TRUE,
remove_symbols = TRUE,
padding = FALSE) %>%
tokens_remove(stopwords("de"), padding = FALSE) %>%
tokens_compound(pattern = phrase(c("Schwester Agnes")), concatenator = " ")
ostalgie_words <- c("Schwester Agnes", "Intershop", "Interflug", "Trabant", "Trabi", "Ostalgie")
test_kwic <- kwic(qtd_tokens,
pattern = ostalgie_words,
window = 5)
如果没有可重现的示例(即您的输入 full_data
),这只是一个猜测,但这是我最好的猜测。您的 kwic()
调用使用默认的“glob”模式匹配,而您需要的是正则表达式匹配。
这样修正:
kwic(qtd_tokens, pattern = ostalgie_words, valuetype = "regex",
window = 5