如何将数据帧转换为 Iramuteq 和 Alceste 可读的 txt
Posted
技术标签:
【中文标题】如何将数据帧转换为 Iramuteq 和 Alceste 可读的 txt【英文标题】:How to convert a dataframe to a txt readable by Iramuteq and Alceste 【发布时间】:2022-01-05 18:06:54 【问题描述】:Iramuteq 和 Alceste 是文本挖掘程序(在法国仍然很流行),它们处理格式怪异的 txt 文件:语料库中的每个文档都必须以 **** 开头,然后每个语料库变量必须编码为 *variablename_value (尊重一些格式规则)并且要分析的文本必须换行。例如:
**** year_2021 country_france
Bonjour, je m appelle Dario
**** year_2021 country_germany
Guten Tag, ich heisse Dario
如何将包含文本和语料库变量作为列的数据框转换为这种格式?
【问题讨论】:
【参考方案1】:以下函数可用于将任何数据框转换为这样的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")
【讨论】:
以上是关于如何将数据帧转换为 Iramuteq 和 Alceste 可读的 txt的主要内容,如果未能解决你的问题,请参考以下文章
Databricks:如何将 %python 下的 Spark 数据帧转换为 %r 下的数据帧