我有一段文本,我需要从中提取所有英文单词。例如我想要一个可以分析向量的函数
vector <- c("picture", "carpet", "lamp", "notaword", "anothernotaword")
并且仅从该向量中返回英文单词,即“picture”、“carpet”、“lamp”
我知道“英语单词”的定义取决于字典,但即使有一本基本的字典我也会感到满意。
最佳答案
您可以使用我维护的包qdapDictionaries(无需安装父包qdap)。如果您的数据更复杂,您可能需要使用 tolower
等工具来使其工作。这里的想法基本上是查看已知单词列表 ?GradyAugmented
与您的单词相交的位置。这里有两种非常相似的方法,第一种方法可能稍微快一些,具体取决于数据:
vector <- c("picture", "carpet", "lamp", "notaword", "anothernotaword")
library(qdapDictionaries)
vector[vector %in% GradyAugmented]
## [1] "picture" "carpet" "lamp"
intersect(vector, GradyAugmented)
## [1] "picture" "carpet" "lamp"
您在安装 qdap 时收到的错误听起来像@Ben Bolker 是正确的。您将需要更新版本(我建议使用最新版本)的 data.table安装(使用 packageVersion("data.table")
检查)。这是我的一个疏忽,不需要最小版本的 data.table,我认为 setDT
(data.table 中的一个函数)包)一直存在,但它似乎不在您的版本中。但是要解决这个特殊问题,您不需要安装父 qdap 包,只需安装 qdapDictionaries。
关于r - 从 R 中的文本中提取英语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715380/