R书代码中文本分析中的regex //divxlc
Regex //divxlc in text analysis in R book code
我目前正在学习 Silge and Robinson 编写的 R 书中的文本分析,鉴于我的新手身份,我无法理解这个正则表达式 "^chapter [\divxlc]"
在整理时如何计算章节编号文本。我已经检查了 regex101 引擎(我也可能会忽略如何让它满足我的需要)。有人可以帮我弄清楚吗?这是我指的代码:
tidy_books <- austen_books() %>%
group_by(book) %>%
mutate(linenumber = row_number(),
chapter = cumsum(str_detect(text, regex("^chapter [\divxlc]",
ignore_case = TRUE)))) %>%
ungroup() %>%
unnest_tokens(word, text)
我的看法是,这将识别也用罗马数字书写的章节编号(我认为`\d 对于小数就足够了)。是这样吗?无论其编号如何,识别章节编号的通用公式是什么?如果是这样,它将如何识别某些罗马数字重复的第 III 章、第 21 章等?
如果有任何指示或参考以寻求澄清,我将不胜感激。
提前致谢。
字符class匹配方括号之间的单个字符。如果 "chapter (space)" 之后的字符是罗马数字,那么您已经有了一个匹配项,不必特别在意它后面跟的是什么。您可以添加 +
来表示 "one or more" 但这不会改变匹配的行,并且省略它可以节省几个周期。
我目前正在学习 Silge and Robinson 编写的 R 书中的文本分析,鉴于我的新手身份,我无法理解这个正则表达式 "^chapter [\divxlc]"
在整理时如何计算章节编号文本。我已经检查了 regex101 引擎(我也可能会忽略如何让它满足我的需要)。有人可以帮我弄清楚吗?这是我指的代码:
tidy_books <- austen_books() %>%
group_by(book) %>%
mutate(linenumber = row_number(),
chapter = cumsum(str_detect(text, regex("^chapter [\divxlc]",
ignore_case = TRUE)))) %>%
ungroup() %>%
unnest_tokens(word, text)
我的看法是,这将识别也用罗马数字书写的章节编号(我认为`\d 对于小数就足够了)。是这样吗?无论其编号如何,识别章节编号的通用公式是什么?如果是这样,它将如何识别某些罗马数字重复的第 III 章、第 21 章等?
如果有任何指示或参考以寻求澄清,我将不胜感激。
提前致谢。
字符class匹配方括号之间的单个字符。如果 "chapter (space)" 之后的字符是罗马数字,那么您已经有了一个匹配项,不必特别在意它后面跟的是什么。您可以添加 +
来表示 "one or more" 但这不会改变匹配的行,并且省略它可以节省几个周期。