同义词的多个列表 2 的列表

a list of multiple lists of 2 for synonyms

我想从 csv 文件中读取同义词,其中第一个词是 "main" 词,同一记录中的其余词是它的同义词

现在我基本上想像在 R 中那样创建一个列表,

**synonyms <- list(
  list(word="ss", syns=c("yy","yyss")),
  list(word="ser", syns=c("sert","sertyy","serty"))
)**

这给了我一个列表

synonyms
[[1]]
[[1]]$word
[1] "ss"

[[1]]$syns
[1] "yy"   "yyss"


[[2]]
[[2]]$word
[1] "ser"

[[2]]$syns
[1] "sert"   "sertyy" "serty"

本质上是 "word" 和 "syns" 列表的列表。 我如何在从 csv 文件中读取单词和同义词时创建相似列表

任何指点都会有所帮助!!谢谢

这个过程应该return你想要的。

# read in data using readLines
myStuff <- readLines(textConnection(temp))

这将 return 文件中每行一个元素的字符向量。请注意 textConnection 不是读入文件所必需的。只需提供文件路径。现在,使用 strsplit 和 return 列表将每个矢量元素拆分为一个矢量。

myList <- strsplit(myStuff, split=" ")

现在,将列表中每个向量的第一个元素与其余元素分开。

result <- lapply(myList, function(x) list(word=x[1], synonyms=x[-1]))

这 return 是期望的结果。我们使用 lapply 在列表项中移动。对于每个列表项,我们 return 一个命名列表,其中第一个元素,名为 word,对应于作为列表项的向量的第一个元素,该向量的其余元素放置在第二个列表元素中,称为同义词。

result
[[1]]
[[1]]$word
[1] "ss"

[[1]]$synonyms
[1] "yy"   "yyss"


[[2]]
[[2]]$word
[1] "ser"

[[2]]$synonyms
[1] "sert"   "sertyy" "serty" 


[[3]]
[[3]]$word
[1] "at"

[[3]]$synonyms
[1] "ate"  "ater" "ates"


[[4]]
[[4]]$word
[1] "late"

[[4]]$synonyms
[1] "lated" "lates" "latee"

数据

temp <- 
"ss yy yyss
ser sert sertyy serty
at ate ater ates
late lated lates latee"