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

如何从DataFrame分词列提取单词dog前后各2个词并生成新列

实现方案

你可以通过自定义提取函数搭配pandas的apply方法完成需求,完整代码如下:

def extract_dog_context(tokens):
    # 无匹配词时的返回逻辑可按需调整
    if "dog" not in tokens:
        return []
    # 获取dog首次出现的索引位置
    dog_idx = tokens.index("dog")
    # 计算切片起止位置,左边界取0避免负数索引越界
    start_idx = max(0, dog_idx - 2)
    # 右边界加3是因为Python列表切片左闭右开,刚好覆盖dog后2个元素
    end_idx = dog_idx + 3
    return tokens[start_idx:end_idx]

# 生成新列
df["tokenized_part2"] = df["tokenized"].apply(extract_dog_context)

注意事项

  • 如果单条分词列表中存在多个dog,上述代码默认只提取第一个dog的上下文,如需提取所有匹配项的上下文,可修改函数遍历所有匹配索引拼接结果即可
  • 边界场景自动兼容:如果dog出现在列表前两位,前面不足2个词时会从列表开头开始提取;如果dog出现在列表末尾后两位,后面不足2个词时会自动截取到列表结尾,不会报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:57:06