R 有识别单词的功能吗?
有没有一种方法可以计算字符串的值并查看它是否计算为英语单词?这就是我要找的R 有识别单词的功能吗?,r,R,有没有一种方法可以计算字符串的值并查看它是否计算为英语单词?这就是我要找的 is.word("hello world") [1] FALSE is.word(c("hello", "world") [1] TRUE TRUE 上述方法不起作用,因为没有is.word的逻辑功能。正如评论所指出的,你需要一本英语词典来匹配。qdapDictionary包中的GradyAugmented对象就是这样一个字典: 包含Grady Ward英语单词向量的数据集 增加了“字典”,马克·坎特罗维茨的名单,其
is.word("hello world")
[1] FALSE
is.word(c("hello", "world")
[1] TRUE TRUE
上述方法不起作用,因为没有is.word的逻辑功能。正如评论所指出的,你需要一本英语词典来匹配。
qdapDictionary
包中的GradyAugmented
对象就是这样一个字典:
包含Grady Ward英语单词向量的数据集
增加了“字典”,马克·坎特罗维茨的名单,其他
专有名词和缩略语
库(qdapDictionaries)
is.word不,R中没有这样的函数
尽管你可以很容易地实施幼稚的方法,这将在10个案例中的9个案例中奏效
自定义解决方案
首先,您需要一个“单词”词典,以便将数据与之匹配。其中一本词典由GNU人员编写,并在网站上以开源许可证分发
下载数据文件并解压缩它。单词分散在多个文件中,后缀表示区域、类别和共性(或日常英语用户不熟悉单词的可能性)。使用带有pattern
参数的list.files()
函数,或grepl()
函数,您可以选择所关心的确切词典集
# set path to extracted package
words.dir <- '/tmp/scowl-2015.08.24/final/'
words <- unlist(sapply(list.files(words.dir, pattern='[1-6][05]$', full.names=TRUE), readLines, USE.NAMES=FALSE))
# For some reason most frequent words are not in "final" dir…
words <- c(words, readLines(paste0(words.dir, '../r/special/frequent')))
length(words)
# [1] 143681
核心问题
真正的问题是“什么算作单词?”。“谷歌搜索”算是单词吗?它现在很常用,但15年前就不是这样了。那么“”呢?我想很多以英语为母语的人都听不懂
讨论这个问题不在这个网站的范围之内,但是在语言上有一些随意性,目前没有计算机程序能够应付它。你需要一个英语词典来核对。你认为一个词到底是什么?“selfie”、“l8tr”、“hola”、“o”怎么样?正如皮埃尔指出的,我需要评估这是否是一个有效的英语单词。有人提出了一种解决方案,即查找没有空格的字符串并将其称为单词。很高兴知道这一点,但不是我在寻找什么。那么,您在解决方案方面做了哪些尝试呢?“echinuliform”,由提供。
# set path to extracted package
words.dir <- '/tmp/scowl-2015.08.24/final/'
words <- unlist(sapply(list.files(words.dir, pattern='[1-6][05]$', full.names=TRUE), readLines, USE.NAMES=FALSE))
# For some reason most frequent words are not in "final" dir…
words <- c(words, readLines(paste0(words.dir, '../r/special/frequent')))
length(words)
# [1] 143681
c("knight", "stack", "selfie", "l8er", "googling", "echinuliform") %in% words
# [1] TRUE TRUE TRUE FALSE TRUE FALSE