gpt4 book ai didi

r - 计算单词组合频率

转载 作者:行者123 更新时间:2023-12-02 08:30:20 26 4
gpt4 key购买 nike

我有句子向量,比如:

x = c("I like donut", "I like pizza", "I like donut and pizza")

我想计算两个词的组合。理想的输出是一个包含 3 列(word1、word2 和频率)的数据框,应该是这样的:

 I      like    3
I donut 2
I pizza 2
like donut 2
like pizza 2
donut pizza 1
donut and 1
pizza and 1

在输出的第一条记录中,freq = 3 因为"I""like" 一起出现了 3 次: x[1]x[2]x[3]

感谢任何建议:)

最佳答案

拆分成词,排序正确识别对,得到所有对combn粘贴对获取以空格分隔的词对,使用 table 获取频率,然后将它们放在一起。

这是一个例子:

f <- function(x) {
pr <- unlist(
lapply(
strsplit(x, ' '),
function(i) combn(sort(i), 2, paste, collapse=' ')
)
)

tbl <- table(pr)

d <- do.call(rbind.data.frame, strsplit(names(tbl), ' '))
names(d) <- c('word1', 'word2')
d$Freq <- tbl

d
}

使用您的示例数据:

> f(x)
word1 word2 Freq
1 and donut 1
2 and I 1
3 and like 1
4 and pizza 1
5 donut I 2
6 donut like 2
7 donut pizza 1
8 I like 3
9 I pizza 2
10 like pizza 2

关于r - 计算单词组合频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27575941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com