r - 计算两个字符串中的常见单词

标签 r string text-mining data-analysis

我有两个字符串:

a <- "Roy lives in Japan and travels to Africa"
b <- "Roy travels Africa with this wife"

我正在寻找这些字符串之间常用单词的计数。

答案应该是3。
  • “罗伊”
  • “旅行”
  • 《非洲》

  • 作为常用词

    这是我尝试过的:
    stra <- as.data.frame(t(read.table(textConnection(a), sep = " ")))
    strb <- as.data.frame(t(read.table(textConnection(b), sep = " ")))
    

    取唯一以避免重复计数
    stra_unique <-as.data.frame(unique(stra$V1))
    strb_unique <- as.data.frame(unique(strb$V1))
    colnames(stra_unique) <- c("V1")
    colnames(strb_unique) <- c("V1")
    
    common_words <-length(merge(stra_unique,strb_unique, by = "V1")$V1)
    

    对于包含 2000 多个和 1200 个字符串的数据集,我需要这样做。
    我必须评估字符串的总次数是 2000 X 1200。任何快速方法,不使用循环。

    最佳答案

    您可以使用 strsplit intersect 来自 base图书馆:

    > a <- "Roy lives in Japan and travels to Africa"
    > b <- "Roy travels Africa with this wife"
    > a_split <- unlist(strsplit(a, sep=" "))
    > b_split <- unlist(strsplit(b, sep=" "))
    > length(intersect(a_split, b_split))
    [1] 3
    

    关于r - 计算两个字符串中的常见单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930550/

    相关文章:

    algorithm - URL路径相似度/字符串相似度算法

    r - R中的队列分析

    r - geom_smooth 在数据子集上

    java - 如何将字符串数组带到 TextView 中的下一行?

    python - 这个字符串操作在Python中是如何工作的?

    r - R 中随时间变化的动态主题模型/主题

    java - 如何在 OpenNLP 中创建良好的 NER 训练模型?

    r - 为 RMarkdown 自定义 Beamer 模板

    r - na.rm = FALSE 和 na.ram = na.rm 有区别吗?

    python - 获取整数中偶数最长序列的最佳方法