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

如何改进Python字符串匹配代码以识别‘Jakarta Barat’而非‘Jakarta’

解决多词城市名匹配问题

原代码的问题在于将推文拆分为单个单词逐一匹配,无法识别Jakarta Barat这类由多个单词组成的城市名。以下是优化后的实现:

优化思路

  • 优先匹配更长的城市名,避免短城市名(如Jakarta)先被匹配,导致多词城市名被忽略
  • 直接在完整推文文本中查找城市名,无需拆分单词
  • 统一文本大小写,解决大小写不一致导致的匹配失败问题

优化后代码

def check_keterangan(row):
    # 获取推文文本,统一转为小写消除大小写影响
    tweet_text = row['Tweet'].lower()
    # 将城市列表按名称单词数量从多到少排序,优先匹配多词城市名
    sorted_cities = sorted(kota['kabko'], key=lambda x: len(x.split()), reverse=True)
    # 遍历排序后的城市列表
    for city in sorted_cities:
        # 城市名同步转小写,和推文文本格式统一
        if city.lower() in tweet_text:
            return city
    # 未匹配到任何城市名时返回原字段值
    return row['kota']

关键说明

  1. 排序城市列表:通过len(x.split())统计城市名的单词数量,按降序排序,确保Jakarta Barat这类多词城市名先被检查,避免被短名城市提前匹配覆盖。
  2. 完整文本匹配:直接使用字符串包含操作in,无需拆分推文,能完整识别连续的多词城市名。
  3. 大小写统一:将推文和城市名同步转为小写,避免因大小写差异(如Jakarta Barat和jakarta barat)导致的匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:42:07