Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 有识别单词的功能吗?_R - Fatal编程技术网

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