使用 wordnet for R 检索单词的同义词
Retrieve synonyms of words using wordnet for R
我目前在 R 中使用 wordnet(我在 Windows(64 位)中使用 RStudio)并创建了一个包含 synset_offset
、ss_type
的 data.frame
word
来自 wordnet 数据库的 data.x 个文件(其中 x 是名词、形容词等)。
示例可以这样创建:
wnet <- data.frame(
"synset_offset" = c(02370954,02371120,02371337),
"ss_type" = c("VERB","VERB","VERB"),
"word" = c("fill", "depute", "substitute")
)
我的问题发生在使用 wordnet 包获取我想添加为附加列的同义词列表时。
library(wordnet)
wnet$synonyms <- synonyms(wnet$word,wnet$ss_type)
我收到以下错误。
Error in .jnew(paste("com.nexagis.jawbone.filter", type, sep = "."), word, :
java.lang.NoSuchMethodError: <init>
如果我应用具有定义值的函数,它会起作用。
> synonyms("fill","VERB")
[1] "fill" "fill up" "fulfil" "fulfill" "make full" "meet" "occupy" "replete" "sate" "satiate" "satisfy"
[12] "take"
欢迎提出解决我的问题的任何建议。
由于某种原因,我无法在我的计算机上安装 wordnet 包,但似乎你正在提供同义词函数数组参数,但你不能,你应该可以通过应用解决它。
syn_list <- apply(wnet,by=1,function(row){synonyms(row["word"],row["ss_type"])})
它将return wnet 每一行的同义词函数的输出data.frame
不清楚你想做什么:
wnet$synonyms <- synonyms(wnet$word,wnet$ss_type)
至于每一行,您将有一个同义词数组,它们不适合您 data.frame 的 3 行。
也许这样的东西对你有用:
wnet$synonyms <- sapply(syn_list,paste,collapse=", ")
编辑 - 这是上述问题的有效解决方案。
wnet$synset <- mapply(synonyms, as.character(wnet$word), as.character(wnet$ss_type))
我目前在 R 中使用 wordnet(我在 Windows(64 位)中使用 RStudio)并创建了一个包含 synset_offset
、ss_type
的 data.frame
word
来自 wordnet 数据库的 data.x 个文件(其中 x 是名词、形容词等)。
示例可以这样创建:
wnet <- data.frame(
"synset_offset" = c(02370954,02371120,02371337),
"ss_type" = c("VERB","VERB","VERB"),
"word" = c("fill", "depute", "substitute")
)
我的问题发生在使用 wordnet 包获取我想添加为附加列的同义词列表时。
library(wordnet)
wnet$synonyms <- synonyms(wnet$word,wnet$ss_type)
我收到以下错误。
Error in .jnew(paste("com.nexagis.jawbone.filter", type, sep = "."), word, :
java.lang.NoSuchMethodError: <init>
如果我应用具有定义值的函数,它会起作用。
> synonyms("fill","VERB")
[1] "fill" "fill up" "fulfil" "fulfill" "make full" "meet" "occupy" "replete" "sate" "satiate" "satisfy"
[12] "take"
欢迎提出解决我的问题的任何建议。
由于某种原因,我无法在我的计算机上安装 wordnet 包,但似乎你正在提供同义词函数数组参数,但你不能,你应该可以通过应用解决它。
syn_list <- apply(wnet,by=1,function(row){synonyms(row["word"],row["ss_type"])})
它将return wnet 每一行的同义词函数的输出data.frame
不清楚你想做什么:
wnet$synonyms <- synonyms(wnet$word,wnet$ss_type)
至于每一行,您将有一个同义词数组,它们不适合您 data.frame 的 3 行。
也许这样的东西对你有用:
wnet$synonyms <- sapply(syn_list,paste,collapse=", ")
编辑 - 这是上述问题的有效解决方案。
wnet$synset <- mapply(synonyms, as.character(wnet$word), as.character(wnet$ss_type))