使用 R 在字符串中进行文本挖掘

Text Mining in a string using R

我最近开始使用 R 和一个数据分析新手。

当使用数据字符串进行搜索时,在 R 中是否可以找到单个数据主字符串中的重复次数?

示例:
主字符串:'abcdefghikllabcdefgllabcd'
并搜索字符串:'lla'

期望的输出:'abcdefghik lla bcdefg lla bcd'

[我尝试使用 R 的 grep() 函数,但它没有以预期的方式工作,只给出了多个主字符串中搜索字符串的重复次数。 ]

提前致谢。

像这样尝试 gsub() 方法:

main_string <- 'abcdefghikllabcdefgllabcd'
search_string <- 'lla'

output_string <- gsub(search_string, paste(' ', search_string, ' ', sep = ''), main_string)

这也适用于使用正则表达式捕获组:

gsub("(lla)"," \1 ","abcdefghikllabcdefgllabcd")

您的问题是说您可能只想计算搜索字符串在主字符串中出现的次数。如果是这样,试试这个衬垫:

string = "abcdefghikllabcdefgllabcd"
search  = 'lla'

( nchar(string) - nchar( gsub(search, "", string)) ) / nchar(search)
#returns 2

string2 = "llaabcdefghikllabcdefgllabcdlla"
( nchar(string2) - nchar( gsub(search, "", string2)) ) / nchar(search)
#returns 4

注意:Unit-test 匹配字符串开头和结尾的解决方案(即确保它适用于 'llaabcdefghikllabcdefgllabcdlla')。我在其他地方看到了几个依赖 strsplit() 来拆分 'lla' 的解决方案,但是这些解决方案跳过了单词末尾的最后一个 'lla'。