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

如何用Python将连在一起的两个西班牙裔姓名拆分为独立单词

西班牙裔连写姓名拆分实现方案

核心思路

这类连写姓名本质是两个固定的西班牙裔常用姓氏拼接而成,通用拼写检查库没有针对性的姓氏词库所以无法适配,我们可以通过「西班牙裔常见姓氏数据集+最大匹配算法」实现批量拆分,常见场景下准确率可满足需求。

实现步骤

  • 提前整理西班牙裔常见姓氏词表,转成全小写后存为集合类型,方便后续毫秒级查询
  • 对每个连写的姓名字符串,从后往前遍历所有可能的拆分点,判断拆分出的前后两部分是否都在姓氏词表中
  • 匹配不到的罕见姓氏可单独整理进自定义白名单,迭代优化词库覆盖度

示例代码(Python)

# 提前导入西班牙裔姓氏集合,此处仅列部分常用姓氏做演示,可自行扩充词库
SPANISH_SURNAMES = {"trujillo", "hernandez", "garcia", "rodriguez", "martinez", "lopez", "gonzalez", "perez", "sanchez"}

def split_spanish_combined_name(combined_name: str) -> str:
    combined_name = combined_name.lower().strip()
    # 优先匹配更长的前半段姓氏,避免短词优先导致的匹配错误
    for split_idx in range(len(combined_name)-1, 0, -1):
        first_part = combined_name[:split_idx]
        second_part = combined_name[split_idx:]
        if first_part in SPANISH_SURNAMES and second_part in SPANISH_SURNAMES:
            return f"{first_part} {second_part}"
    # 未匹配到的返回原字符串,方便后续人工校验
    return combined_name

效果测试

  • 输入:trujillohernandez
  • 输出:trujillo hernandez

批量处理说明

针对整列数千条数据,直接对列中每个元素调用上述function即可,全量处理耗时不会超过1秒。如果存在三个姓氏连写的情况,可修改匹配逻辑支持多段拆分。

内容的提问来源于stack exchange,提问作者bernard romero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 20:30:04