R中的正则表达式作为Quanteda的列表

数据挖掘 r 正则表达式
2022-02-18 02:04:08

R新手在这里。我正在使用 package 进行一些文本分析quanteda基本上,我要做的是将所有单词child|(care)基本上都遵循正则表达式模式,以捕获任何包含“孩子”或“照顾”一词的文本。
为此,我可以创建一个列表,然后使用字典函数:
childcare_list <- c("child","care")
word_dict <- dictionary(list(childcare = childcare_list)).

但是,我如何合并正则表达式并为其他模式执行此操作,这些模式在第一行中手动输入会很乏味?例如,我可能想要捕获类似
\bC\w?V\w?D\-19“COVID-19”的可能拼写错误的内容,例如“CiVID-19”、“CpVID-19”。
我当然可以,covid_list <- c("CiVID-19", "CpVID-19", ...)但这太手动了。同样,它不使用\b锚。

基本上,询问是否有可能使列表包含正则表达式的所有可能组合。

1个回答

对于正则表达式来说,这似乎不是一项伟大的任务——即使你的模式也会错过非常接近的拼写错误COWID-19或潜在的 OCR 错误,如C0VID-I9. 相反,我建议使用该stringdist包进行模糊匹配,也许是stringdist::afind为了找到“COVID-19”的近似匹配。你可以在这里阅读一些关于它的信息

这将让您从各种字符串距离算法中进行选择并设置最大距离。然后,您可以正确匹配“COVID-19”并继续进行分析。