R-分裂字符串 - 议会辩论中的话语隔离



我有一个数据框架,该数据框架由500个书面议会辩论的协议组成,其中每个会话代表一个新的行。我的目标是创建一个数据框架,其中每一行都是独特的话语,并且没有掉落字符串的部分。

协议具有标准格式,其中每种新话语都是由说话者的名称和政党/组织引入的,然后是结肠。例如,这些实例以

的形式

" MP Peter Mueller(SPD(:"或"外部专家Petra Meier(德国工会(:"

协议看起来有点像这样:

protocol <- "MP Peter Mueller (SPD): What do you think about the bill? External Expert Petra Meier (German Trade Union): I support the bill. MP Peter Mueller (SPD): Thank you for your expertise."

我熟悉我需要匹配的所有正则表达式,并找到新话语的这些实例。对于此示例,我会使用。

utterances <- c(grep("MP \w+ \w+ \(\w+\):", protocol),
                grep("External Expert \w+ \w+ \(\w+ \w+ \w+\):", protocol))

我现在正在努力提取每个新话语作为子字符串,并将其写入我的数据框架中的新行中。我的预期输出是:

dataframe
[1] "MP Peter Mueller (SPD): What do you think about the bill?" 
[2] "External Expert Petra Meier (German Trade Union): I support the bill." 
[3] "MP Peter Mueller (SPD): Thank you for your expertise."

非常感谢您的帮助!

我在这里发表评论中留下的话。使用提供的示例(即协议(,一个建议是以下建议。您想用遵循?.的空间分开字符串。在这里,我在Stringi软件包中使用了stri_split_regex()。但是您可以使用任何其他类似的功能。

trimws(unlist(stri_split_regex(str = protocol, pattern = "(?<=[.|?])", omit_empty = T)))
#[1] "MP Peter Mueller (SPD): What do you think about the bill?"            
#[2] "External Expert Petra Meier (German Trade Union): I support the bill."
#[3] "MP Peter Mueller (SPD): Thank you for your expertise." 

最新更新