将关键字与一系列文本注释匹配

时间:2019-02-22 04:27:51

标签: r text text-mining

我有两组信息:

  1. 一个csv文件,其中每一行都有注释,例如:

    a。我爱足球   b。橄榄球是一场艰难的比赛   C。你好世界

  2. 另一个列出与运动有关的单词的csv文件,例如:

    a。网球   b。足球   C。橄榄球

我想做的是:   一种。查找第二个文件中的任何单词是否在第一个文件的每个单独行中至少出现一次。   b。如果它至少出现一次,则应归类为反对每条评论的运动,其他评论除外。

输出文件应如下所示:

C#

我想在R中进行此练习。我在R中探索了str_detect和grepl函数,但未实现所需的输出。

感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

这是一种迭代关键字并使用grepl匹配句子的方法。根据句子数据的干净程度,您可能需要考虑使用agrepl来进行模糊匹配(但也可能导致误报)。

df <- data.frame(sentences=c("I love football", "Rugby is a tough game", "Hello World"))
keywords <- c("tennis", "football", "rugby")

cbind(df, sapply(keywords, function(x) grepl(x, df$sentences, ignore.case = TRUE)))

               sentences tennis football rugby
 1       I love football  FALSE     TRUE FALSE
 2 Rugby is a tough game  FALSE    FALSE  TRUE
 3           Hello World  FALSE    FALSE FALSE

重新阅读您的帖子,如果您只想标记某项而非个人运动,则可以:

cbind(df, sports = rowSums(sapply(keywords, function(x) grepl(x, df$sentences, ignore.case = TRUE))) > 0)
              sentences sports
1       I love football   TRUE
2 Rugby is a tough game   TRUE
3           Hello World  FALSE