根据多个数据帧中的单词频率创建建议单词列表

约翰尼·托马斯

所以我在 R 中有 3 个数据帧,每个数据帧都有单词和单词出现在文档中的频率(其中 df 代表)。我正在 R Shiny 中创建一个应用程序,用户可以在其中搜索单词并返回包含该单词的 pdf。所以我想添加功能,向用户提供基于其他数据帧推荐的单词。

一个例子:

因此,假设用户输入了“考试”一词。“考试”一词存在于两个数据帧中,因此它会从这些数据帧中推荐单词,并重复此过程,以便您可以根据我们拥有的数据帧找到可能的最佳单词。我希望有一个包可以做到这一点,或者可以实现 PCA 或 LDA/QDA。

有任何想法吗?

这是要尝试的 3 个数据帧,但只有前 20 个条目

df1 <- structure(list(word = c("data", "summit", "research", "program", 
"analysis", "study", "evaluation", "minority", "federal", "department", 
"statistical", "experience", "business", "design", "education", 
"response", "sampling", "learning", "project", "review"), n = c(213L, 
131L, 101L, 98L, 90L, 84L, 82L, 82L, 76L, 72L, 65L, 63L, 60L, 
58L, 58L, 58L, 55L, 50L, 50L, 46L)), row.names = c(NA, -20L), class = c("tbl_df", 
"tbl", "data.frame"))

df2 <- structure(list(word = c("regression", "sampling", "research", "forecast", 
"analysis", "development", "disparity", "firms", "impact", "office", 
"statistical", "experience", "sample", "support", "consulting", 
"provide", "contract", "technology", "result", "system"), n = c(113L, 
89L, 76L, 24L, 20L, 20L, 19L, 16L, 26L, 10L, 9L, 4L, 2L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L)), row.names = c(NA, -20L), class = c("tbl_df", 
"tbl", "data.frame"))

df3 <- structure(list(word = c("knowledge", "veteran", "association", "compliance", 
"random", "safety", "treatment", "analyst", "legal", "welfare", 
"selection", "solicitation", "tasks", "personnel", "student", 
"estimating", "investigation", "multivariate", "result", "system"), n = c(302L, 
300L, 279L, 224L, 199L, 180L, 156L, 112L, 101L, 100L, 100L, 67L, 56L, 
55L, 55L, 54L, 23L, 23L, 22L, 11L)), row.names = c(NA, -20L), class = c("tbl_df", 
"tbl", "data.frame"))


理想情况下,我希望 R 返回与您已经输入的文档在同一文档中的可能性很高的单词。

杰尔

理想情况下,我希望 R 返回与您已经输入的文档在同一文档中的可能性很高的单词。

如果您只是在寻找单词共现或相似性,您可能需要查看Word2VecWikipedia2Vec - 您可以使用基于向量的方法对文本做一些有趣的事情。

但是:鉴于您上面关于不使用字数的评论

我要问的是,如果用户输入一个词,我想提供一些也可能有帮助的词。这意味着从他们搜索的单词所在的 pdf 中返回很有可能的单词

我想你想要的可能会有所不同。我将您的问题解释为用户有一个词 "orange" 并且他想知道哪些文档包含相关概念,例如 "tree" 或 "juice" 或 "California"

如果您正在寻找文档之间的相似性,那么您就是在描述主题模型的用例。Latent Dirichlet Allocation是最基本的主题模型,也是LDA的缩写,但不一样。

LDA直觉

您可以将 LDA 视为非结构化文本数据的 PCA。

它从文档中提取“潜在”主题——我不会在这里详细介绍,但本质上它会检查哪些词在不同文档中不断弹出,然后将它们分组为“主题”。

示例:关于橘子的文档也更有可能包含“树”或“果汁”等词,而关于汽车的文档可能包含“汽油”和“发动机”——如果您使用足够多的文本集合,您将能够使用一些相似性度量(我会选择软余弦相似性)告诉关于从关于橙汁的文档中提取的文档,您将能够判断出一篇关于橙子运输成本的文章是关于两者的。重要的是,它还为主题分配了单词,因此“橙色”在“橙色和相关内容”主题中的加载量较高,而在汽车主题中的加载量较低 - 因为颜色可能与汽车的讨论较少,以及关于橙色物流可能很少见。

实施(非常粗略的指导方针)

假设我对您的项目的假设(主要是这就是您想要的并且您拥有原始文档,并且拆分为三个数据框并不重要),这是一种解决方法:

  1. 获取您的文档并在其上运行 LDA
  2. 编写一些代码,将一个词作为输入,然后返回一些(比如 2-5 个)主题,这个词加载到这些主题中,并说,这个主题中的前 10 个词。或者,使用距离度量(即 Hellinger 来比较文档)。
  3. 完毕。您还可以让用户获取整个文档并让算法找到相似的文档(见下文)。

野外应用

您可以查看JSTOR 文本分析器,它完全符合我解释您的用例的方式。您上传了一个文档,它返回了类似的文档。(它使用LDA)

:例如ldatopicmodels,还有其他具有此功能的包。

(旁注:首字母缩写词 LDA 是我偶然发现这篇文章的原因......)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算单词列表中的单词频率

来自分类Dev

计算R?中多个单词的单词频率

来自分类Dev

TfidfVectorizer的单词频率

来自分类Dev

如何计算文字中的单词频率

来自分类Dev

读取一个.txt文件,并返回文件中包含单词频率的单词列表

来自分类Dev

读取一个.txt文件,并返回文件中包含单词频率的单词列表

来自分类Dev

2个文件中的单词频率计数

来自分类Dev

计算R中的特定单词频率

来自分类Dev

如何计算文本中单词频率的最佳zipf分布

来自分类Dev

在文本文件Perl中打印单词频率

来自分类Dev

2个文件中的单词频率计数

来自分类Dev

Stata中的描述性统计-单词频率

来自分类Dev

从列表中查找数据框中的单词出现频率

来自分类Dev

在列表中连接多个数据帧

来自分类Dev

使用pandas和matplotlib的单词频率

来自分类Dev

opennlp:如何获得单词频率

来自分类Dev

绘制单词频率(线图)

来自分类Dev

获取PostgreSQL中单词的单词频率排名并按标签过滤

来自分类Dev

根据R中的单词顺序保留数据帧的特定行

来自分类Dev

Python在数据框架中搜索列表中的单词,并跟踪找到的单词和频率

来自分类Dev

如何根据单词的词性获取文本中单词的频率?

来自分类Dev

如何生成单词频率直方图,其中条形根据其高度排序

来自分类Dev

获取包含字符串列表的pandas列的单词频率

来自分类Dev

计算字典列表中单词的出现频率

来自分类Dev

需要帮助来创建一个功能,该功能将根据给定列表建议单词

来自分类Dev

使用汇总函数计算数据帧中单词的频率

来自分类Dev

R 文本挖掘 - 整个数据框中字符串中出现频率最高的单词

来自分类Dev

R:根据数据框中的列表计算单词的出现

来自分类Dev

如何使用Scikit Learn CountVectorizer获得语料库中的单词频率?

Related 相关文章

  1. 1

    计算单词列表中的单词频率

  2. 2

    计算R?中多个单词的单词频率

  3. 3

    TfidfVectorizer的单词频率

  4. 4

    如何计算文字中的单词频率

  5. 5

    读取一个.txt文件,并返回文件中包含单词频率的单词列表

  6. 6

    读取一个.txt文件,并返回文件中包含单词频率的单词列表

  7. 7

    2个文件中的单词频率计数

  8. 8

    计算R中的特定单词频率

  9. 9

    如何计算文本中单词频率的最佳zipf分布

  10. 10

    在文本文件Perl中打印单词频率

  11. 11

    2个文件中的单词频率计数

  12. 12

    Stata中的描述性统计-单词频率

  13. 13

    从列表中查找数据框中的单词出现频率

  14. 14

    在列表中连接多个数据帧

  15. 15

    使用pandas和matplotlib的单词频率

  16. 16

    opennlp:如何获得单词频率

  17. 17

    绘制单词频率(线图)

  18. 18

    获取PostgreSQL中单词的单词频率排名并按标签过滤

  19. 19

    根据R中的单词顺序保留数据帧的特定行

  20. 20

    Python在数据框架中搜索列表中的单词,并跟踪找到的单词和频率

  21. 21

    如何根据单词的词性获取文本中单词的频率?

  22. 22

    如何生成单词频率直方图,其中条形根据其高度排序

  23. 23

    获取包含字符串列表的pandas列的单词频率

  24. 24

    计算字典列表中单词的出现频率

  25. 25

    需要帮助来创建一个功能,该功能将根据给定列表建议单词

  26. 26

    使用汇总函数计算数据帧中单词的频率

  27. 27

    R 文本挖掘 - 整个数据框中字符串中出现频率最高的单词

  28. 28

    R:根据数据框中的列表计算单词的出现

  29. 29

    如何使用Scikit Learn CountVectorizer获得语料库中的单词频率?

热门标签

归档