You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式生成哑变量?以reviews列拼写变体提取为例

解决拼写变体的哑变量生成问题

没问题,这事儿很容易搞定!你之前用str.contains('good')其实只是用了固定字符串匹配,但str.contains()本身就支持正则表达式——默认参数regex=True就是干这个的,刚好能用来匹配good的各种拼写变体。

具体实现步骤

  1. 构造正则表达式:针对你提到的good、goid、goof,可以用字符类来简化匹配规则,精准覆盖这些拼写错误:

    • go[oi][df]:表示匹配以go开头,第三个字符是o或i,第四个字符是d或f的字符串,完美命中你列出的三个变体。
    • 如果要匹配独立单词(避免误匹配goodness这类包含目标词的长单词),可以加上单词边界\b,变成r'\bgo[oi][df]\b'。
  2. 编写代码生成哑变量:

    # 生成名为good_variant的哑变量列
    df['good_variant'] = df['reviews'].str.contains(
        r'\bgo[oi][df]\b',  # 正则匹配模式
        case=False,         # 忽略大小写,可选,根据你的需求调整
        regex=True          # 明确启用正则匹配(默认就是True,写出来更清晰)
    ).astype(int)
    

扩展说明

如果之后需要匹配更多拼写变体(比如gud、goood这类),可以轻松扩展正则规则:

  • 匹配多个o:用g[o]+[i]?d(允许1个或多个o,可选中间的i)
  • 匹配更多字母替换:用g[ou][oi][df](把o的常见替换u也加入匹配范围)

这样就能灵活应对各种拼写错误的情况啦!

内容的提问来源于stack exchange,提问作者Said Tahmazov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:33:00