gpt4 book ai didi

R 文本挖掘 - 如何将 R 数据框列中的文本更改为多个具有词频的列?

转载 作者:行者123 更新时间:2023-12-05 01:29:15 24 4
gpt4 key购买 nike

我有一个包含 4 列的数据框。第 1 列包含 ID,第 2 列包含文本(每列约 100 个单词),第 3 列和第 4 列包含标签。

现在我想从文本列中检索词频(最常见的词),并将这些词频作为额外列添加到数据框中。我希望列名是单词本身,并且列中填充了它们在文本中的频率(范围从 0 到 ... 每个文本)。

我尝试了 tm 包的一些功能,但直到现在都不尽如人意。有谁知道如何处理这个问题或从哪里开始?有没有可以完成这项工作的软件包?

id  texts   label1    label2

最佳答案

那么让我们一起解决问题吧......

我猜你有一个看起来像这样的 data.frame:

       person sex adult                                 state code
1 sam m 0 Computer is fun. Not too fun. K1
2 greg m 0 No it's not, it's dumb. K2
3 teacher m 1 What should we do? K3
4 sam m 0 You liar, it stinks! K4
5 greg m 0 I am telling the truth! K5
6 sally f 0 How can we be certain? K6
7 greg m 0 There is no way. K7
8 sam m 0 I distrust you. K8
9 sally f 0 What are you talking about? K9
10 researcher f 1 Shall we move on? Good then. K10
11 greg m 0 I'm hungry. Let's eat. You already? K11

该数据集来自qdap包。要获取 qdap,请使用 install.packages("qdap")

现在要制作我正在谈论的关于您的数据集的可重现示例,请执行我在此处使用来自 qdap 的 DATA 数据集所做的操作。

DATA
dput(head(DATA))

现在好了,对于你原来的问题,我想 wfm 会做你想做的事:

freqs <- t(wfm(DATA$state, 1:nrow(DATA)))
data.frame(DATA, freqs, check.names = FALSE)

如果您只想要排在首位的那么多单词,请使用我在此处使用的排序技术:

freqs <- t(wfm(DATA$state, 1:nrow(DATA)))
ords <- rev(sort(colSums(freqs)))[1:9] #top 9 words
top9 <- freqs[, names(ords)] #grab those columns from freqs
data.frame(DATA, top9, check.names = FALSE) #put it together

结果是这样的:

> data.frame(DATA, top9, check.names = FALSE)
person sex adult state code you we what not no it's is i fun
1 sam m 0 Computer is fun. Not too fun. K1 0 0 0 1 0 0 1 0 2
2 greg m 0 No it's not, it's dumb. K2 0 0 0 1 1 2 0 0 0
3 teacher m 1 What should we do? K3 0 1 1 0 0 0 0 0 0
4 sam m 0 You liar, it stinks! K4 1 0 0 0 0 0 0 0 0
5 greg m 0 I am telling the truth! K5 0 0 0 0 0 0 0 1 0
6 sally f 0 How can we be certain? K6 0 1 0 0 0 0 0 0 0
7 greg m 0 There is no way. K7 0 0 0 0 1 0 1 0 0
8 sam m 0 I distrust you. K8 1 0 0 0 0 0 0 1 0
9 sally f 0 What are you talking about? K9 1 0 1 0 0 0 0 0 0
10 researcher f 1 Shall we move on? Good then. K10 0 1 0 0 0 0 0 0 0
11 greg m 0 I'm hungry. Let's eat. You already? K11 1 0 0 0 0 0 0 0 0

关于R 文本挖掘 - 如何将 R 数据框列中的文本更改为多个具有词频的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258954/

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