我有一个唯一ID的数据集和每个ID的句子。我想用语言分解句子并删除停用词来清理数据以便进一步分析。
Example of dataset:
ID Sentence
1 The quick brown fox
2 Feel free to be
Breaking up sentence:
ID Word
1 The
1 quick
1 brown
1 fox
2 Feel
2 free
2 to
2 be
Removing the stopwords:
ID Word
1 quick
1 brown
1 fox
2 Feel
2 free
我已经拥有数据框中的ID和句子。什么是合适的功能来分解文本,包括删除每个单词后的标点符号,然后删除带有停用词的行。
答案 0 :(得分:2)
使用tidytext
包,您可以执行以下操作。该软件包有停用词。您需要调用数据。然后,您将unnest_tokens()
应用于文本列。您需要指定两个名称。一个用于目标列,另一个用于输出中的新列。一旦你分开了句子,你就可以对数据进行子集化。我在filter()
包中使用了dplyr
。
library(dplyr)
library(tidytext)
foo <- data.frame(ID = c(1, 2),
Sentence = c("The quick brown fox", "Feel free to be"),
stringsAsFactors = FALSE)
data(stop_words)
unnest_tokens(foo, input = Sentence, output = word) %>%
filter(!word %in% stop_words$word)
ID word
1 1 quick
2 1 brown
3 1 fox
4 2 feel
5 2 free
答案 1 :(得分:0)
A=read.table(text="ID Sentence
1 'The quick brown fox'
2 'Feel free to be'",h=T,stringsAsFactors=F)
(dat=rev(stack(setNames(strsplit(A$Sentence," "),1:2))))
ind values
1 1 The
2 1 quick
3 1 brown
4 1 fox
5 2 Feel
6 2 free
7 2 to
8 2 be
dat[-grep("The|to|be",dat$values),]
ind values
2 1 quick
3 1 brown
4 1 fox
5 2 Feel
6 2 free
或者你可以这样做:
dat[!dat$values%in%stop_words$word,TRUE),]