如何在 R 中使用正则表达式创建新的规范化公司名称列?

How do I use regex in R to create a new column of canonicalized company names?

我有一个包含公司名称列的数据框。我想创建一个新列,它是名称的 fuzzy/canonicalized 版本(可能使用正则表达式去除 "corporation, "inc" 和 "llc" 等后缀以及 "the" 等前缀) .

name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name)

我想要公司$canonicalized_name return

"microsoft", "apple", "youtube", "huffington post"

如何在 R 中编写此正则表达式模式?

我不知道应该应用什么规则来规范化您的数据,但如果您只想 (a) 删除逗号后的所有内容,然后将字符串转换为小写(就像您在示例中所做的那样),您可以,例如使用

执行此操作
library(dplyr)
library(stringr)
name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name) %>%
        dplyr::mutate(canonicalized_name = stringr::str_replace(name, ",.*", "") %>% tolower)

companies
#              name canonicalized_name
# 1       Microsoft          microsoft
# 2     Apple, Inc.              apple
# 3    Youtube, LLC            youtube
# 4 Huffington Post    huffington post