我是R的新手,我正在使用widyr进行文本挖掘。我成功地使用了here找到的方法来获取每个文本部分中共同出现的单词列表及其phi系数。
代码如下:
word_cors <- review_words %>%
group_by(word) %>%
pairwise_cor(word, title, sort = TRUE) %>%
filter(correlation > .15)
据我所知,我还可以使用以下代码生成包含同时出现的单词及其出现次数的数据框:
word_pairs <- review_words %>%
pairwise_count(word, title, sort = TRUE)
我需要的是一个表,它具有phi系数和每对单词的出现次数。我一直在挖掘pairwise_cor和pairwise_count,但仍然无法弄清楚如何组合它们。如果我理解正确,连接只考虑一列进行匹配,因此我无法可靠地使用常规连接,因为可能有多个对在item1列中具有相同的单词。
这是否可以使用widyr?如果没有,是否有其他包可以让我这样做?
以下是完整代码:
#Load packages
pacman::p_load(XML, dplyr, stringr, rvest, httr, xml2, tidytext, tidyverse, widyr)
#Load source material
prod_reviews_df <- read_csv("SOURCE SPREADSHEET.csv")
#Split into one word per row
review_words <- prod_reviews_df %>%
unnest_tokens(word, comments, token = "words", format = "text", drop = FALSE) %>%
anti_join(stop_words, by = c("word" = "word"))
#Find phi coefficient
word_cors <- review_words %>%
group_by(word) %>%
pairwise_cor(word, title, sort = TRUE) %>%
filter(correlation > .15)
#Write data to CSV
write.csv(word_cors, "WORD CORRELATIONS.csv")
我想添加pairwise_count,但我需要它与phi系数一起使用。
谢谢!
答案 0 :(得分:0)
我今天发现并使用了合并,它似乎使用了两个相关列来合并数据。我不确定如何检查准确性,但我认为它有效。
答案 1 :(得分:0)
如果您正在使用整洁的数据原则和tidyverse工具,我会建议一切尽力:)并使用dplyr进行您感兴趣的连接。您可以使用REP
连接计算来自left_join
和pairwise_cor()
,如果您愿意,可以从一个管道传输到另一个管道。
pairwise_count()