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

字符级单词编码函数实现:编写接收单词列表并返回张量的函数

字符级单词独热编码实现方案

嘿,这就给你搞定这个字符级独热编码的函数!我用PyTorch来实现,完全符合你的需求:每个单词对应一个独立张量,张量里每一行是对应字符的独热向量——整行0填充,仅目标字母位置为1。

实现思路

  1. 先建立小写英文字母到索引的映射(a→0,b→1…z→25),如果需要支持大写、数字或特殊字符,直接扩展这个映射表就行。
  2. 遍历输入的每个单词,把每个字符转换成对应的索引。
  3. 用PyTorch生成全0张量,再把对应索引的位置设为1,得到独热编码张量。
  4. 把每个单词的张量收集起来返回。

完整代码

import torch

def char_level_one_hot(word_list):
    # 构建小写英文字母到索引的映射表
    char_to_idx = {chr(ord('a') + i): i for i in range(26)}
    vocab_size = len(char_to_idx)
    word_tensors = []
    
    for word in word_list:
        # 统一转小写(如果需要区分大小写,去掉这行并扩展映射表)
        word_lower = word.lower()
        # 过滤掉不在字母表中的字符(比如标点、空格,需要的话可以加入映射)
        valid_indices = [char_to_idx[char] for char in word_lower if char in char_to_idx]
        # 初始化全0张量,形状为 (字符数, 词汇表大小)
        one_hot_tensor = torch.zeros(len(valid_indices), vocab_size)
        # 给对应字符的位置赋值为1
        one_hot_tensor[torch.arange(len(valid_indices)), valid_indices] = 1
        word_tensors.append(one_hot_tensor)
    
    return word_tensors

测试示例

比如你输入单词"abc",调用函数后就能得到你想要的结果:

# 测试代码
output_tensors = char_level_one_hot(["abc"])
print(output_tensors[0])

输出结果和你给出的完全一致:

tensor([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])

扩展说明

  • 支持大小写区分:如果需要区分大小写,去掉word.lower(),并扩展映射表:
    char_to_idx = {chr(ord('a') + i): i for i in range(26)} | {chr(ord('A') + i): 26 + i for i in range(26)}
    
  • 批量统一长度:如果需要让所有单词的张量长度一致(比如补全到最长单词的长度),可以在函数开头计算最长单词长度,然后对短单词的张量进行padding:
    max_len = max(len(word.lower()) for word in word_list)
    # 生成张量后添加padding
    padded_tensor = torch.cat([one_hot_tensor, torch.zeros(max_len - len(valid_indices), vocab_size)])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 21:29:05