2

我有一个带有文本的数据框

TERM
good morning
hello
morning good
you're welcome
hello
hi

我想过滤掉所有重复的内容,以及所有具有相同单词但顺序不同的内容。这样我得到:

TERM
good morning
hello
you're welcome
hi

我知道如何用 stringdist 获得两个单词的距离。

stringdist(stringOriginal,stringCompare,method=qgram)

但由于我有很长的数据框,我不想遍历所有条目。

如何过滤掉相似的术语?

谢谢乔尔格

4

1 回答 1

2

将其分解为单词,对每条记录中的单词进行排序,并保留已排序单词不重复的行。不使用任何包。

subset(DF, !duplicated(lapply(strsplit(TERM, " "), sort)))

给予:

            TERM
1   good morning
2          hello
4 you're welcome
6             hi

注意:可重现形式的输入是:

Lines <- "TERM
good morning
hello
morning good
you're welcome
hello
hi"
DF <- read.csv(text = Lines, as.is = TRUE, strip.white = TRUE)
于 2016-12-20T13:47:59.543 回答