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

如何将分类列的bigram转换为独立列实现字符串编码?

实现字符串Bigram拆分与One-Hot编码

原数据集

A
blue
red
black

期望结果

Ablluuereedlaacck
blue11100000
red00011000
black10000111

代码实现(基于Pandas)

用Python的Pandas库就能直接完成需求,步骤如下:

  1. 导入库并初始化数据集
import pandas as pd

df = pd.DataFrame({'A': ['blue', 'red', 'black']})
  1. 定义Bigram生成函数
    这个函数负责把单个字符串拆分成连续的双字符组合:
def get_bigrams(s):
    # 遍历字符串,每次取连续两个字符,直到倒数第二个字符
    return [s[i:i+2] for i in range(len(s)-1)]
  1. 收集所有唯一的Bigram
    遍历所有字符串,收集所有可能的Bigram并去重:
all_bigrams = []
for string in df['A']:
    all_bigrams.extend(get_bigrams(string))
# 去重并排序,保证列顺序稳定
unique_bigrams = sorted(list(set(all_bigrams)))
  1. 生成One-Hot编码列
    对每个唯一的Bigram,检查每行字符串是否包含它,生成对应的1/0标记列:
for bg in unique_bigrams:
    df[bg] = df['A'].apply(lambda x: 1 if bg in get_bigrams(x) else 0)

运行完以上代码后,df就是你需要的结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:05:20