文本挖掘 - 根据关键字分成列

时间:2018-02-01 12:30:04

标签: r text mining

我刚开始在R工作。我的要求如下: 我有一个带有'描述的csv文件'专栏(从带有问题的表单生成的文字'名称','城市'和#39;兴趣')。

'描述的例子': "姓名:XYZ,城市:纽约,兴趣:我弹吉他,在周末玩羽毛球和网球。"

我需要将文字解析为' XYZ'纽约'和我弹吉他......'分为3列 - '名称','城市'和'描述'。

这可能与R有关,我该如何处理?

1 个答案:

答案 0 :(得分:0)

在基础r中,这对你的情况来说足够简单(与上面的逻辑相同,真的,只是更详细):

raw <- read.csv(textConnection("Name: XYZ, City: New York, Interests: \"I play the guitar, and spend my weekends playing badminton and tennis.\""), col.names = c("Name", "City", "Interests"), header = F) 
raw <- gsub(pattern = "(Name\\:|City\\:|Interests\\:)", replacement = "", x = as.matrix(raw))
final <- data.frame(trimws(raw))

但是,请注意首先如何在源文件中格式化文本字符串。在你的例子中,逗号在&#34;我弹吉他,......&#34;将csv分成四列。

或者tidyverse:

raw <- read.csv(textConnection("Name: XYZ, City: New York, Interests: \"I play the guitar, and spend my weekends playing badminton and tennis.\""), col.names = c("Name", "City", "Interests"), header = F) 
library(tidyr, dplyr)
final <- raw %>% 
   separate(Name, c("Descriptor1", "Name"), sep = "\\:") %>%
   separate(City, c("Descriptor2", "City"), sep = "\\:") %>% 
   separate(Interests, c("Descriptor3", "Interests"), sep = "\\:") %>% 
   select(-contains("Descriptor"))
相关问题