Iramuteq和Alceste是文本挖掘程序(在法国仍然非常流行),它们处理格式奇怪的txt文件:语料库中的每个文档都必须以*开头,然后每个语料库变量都必须编码为*variablename_value (遵守一些格式规则),并且要分析的文本必须在新行上。例如:
**** year_2021 country_france
Bonjour, je m appelle Dario
**** year_2021 country_germany
Guten Tag, ich heisse Dario如何将文本和语料库变量作为列的数据帧转换为这种格式?
发布于 2021-11-28 16:33:08
以下函数可用于将任何数据帧转换为这样的txt文件:
dataframe2iramuteq <- function(data, filename) {
data %>%
rename_with(~str_replace_all(str_to_lower(.), "[\\W_]+", "")) %>% # clean column names
drop_na() %>%
mutate(across(1:ncol(.)-1, ~str_replace_all(., "[\\W_]+", "")), row = 1:n()) %>% # clean values
gather(coln, value, -row) %>%
group_by(row) %>%
summarise(text = str_c("**** ", str_c("*", coln[-n()], "_", value[-n()], collapse = " "), "\n", last(value))) %>%
summarise(text = str_c(text, collapse = "\n")) %>%
pull(1) %>%
write_file(filename)
}请注意,要分析的文本必须在数据帧的最后一列中,其他列都被视为语料库变量。
例如,如果我想分析以下数据帧:
starwars_names <- starwars %>%
select(2:11, 1)我可以使用dataframe2iramuteq(starwars_names, "my_file.txt")
https://stackoverflow.com/questions/70145413
复制相似问题