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

时间:2017-06-28 14:05:57

标签: r text-mining tm

我想从csv文件中读取同义词,其中第一个单词是“主”单词,同一记录中的其余单词是其同义词 enter image description here

现在我基本上想要创建一个像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"

基本上是“单词”和“syns”列表的列表。 如何在从csv文件中读取单词和同义词时创建类似列表

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

1 个答案:

答案 0 :(得分:1)

此过程应返回您想要的内容。

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

这将返回一个字符向量,文件中每行一个元素。请注意,读取文件不需要textConnection。只需提供文件路径。现在,使用strsplit将每个向量元素拆分为向量并返回一个列表。

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

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

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

这将返回所需的结果。我们使用lapply来浏览列表项。对于每个列表项,我们返回一个命名列表,其中名为word的第一个元素对应于作为列表项的向量的第一个元素,此向量的其余元素放在名为synonyms的第二个列表元素中。

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"