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

构建存储分词嵌套列表的大型字典时内存占用激增求助

看起来你需要把每个源字典键对应的分词哈希嵌套列表,和原键一一对应起来生成新字典对吧?我来给你几个实用的实现方案:

解决方案

核心思路就是基于源字典的键,把对应的分词哈希嵌套列表映射到同一个键下,具体可以分两种场景来实现:

场景1:已经提前生成好所有分词哈希结果

如果你的分词和哈希处理已经完成,并且结果已经和源字典的键对应好了(比如存在一个临时的结果集合),那直接构建最终字典就行:

# 你的源字典
source_dict = { '1' : 'the horse', '2' : 'grass is green' }

# 假设你已经生成的分词哈希嵌套列表(和源字典键一一对应)
tokenized_hashes = {
    '1': [[1342, 24352, 524354, 356345], [35663, 53635, 25245, 457577]],
    '2': [[43412, 324423, 66546, 86887], [398908, 46523, 432432, 9854]]
}

# 这时候tokenized_hashes就是你要的最终字典
# 如果是分步生成的,也可以逐个赋值:
final_dict = {}
for key in source_dict:
    # 这里替换成你获取对应键的分词哈希列表的逻辑
    final_dict[key] = tokenized_hashes[key]

场景2:边遍历源字典边生成分词哈希

如果你的分词和哈希处理需要实时对源文本进行,那可以在遍历源字典的同时完成处理,一步到位构建最终字典:

def tokenize_and_hash(text):
    # 这里替换成你实际的分词+哈希逻辑,返回嵌套列表
    # 举个模拟例子:把文本拆分后,给每个词生成包含4个哈希值的子列表
    tokens = text.split()
    # 用hash()模拟哈希处理,实际替换成你的哈希算法即可
    return [[hash(token) + i for i in range(4)] for token in tokens]

# 源字典
source_dict = { '1' : 'the horse', '2' : 'grass is green' }
final_dict = {}

# 遍历源字典的键和文本,生成对应结果
for key, text in source_dict.items():
    final_dict[key] = tokenize_and_hash(text)

# 打印看看结果
print(final_dict)

运行后会得到你期望的格式:

{
 '1': [[-1898560030, -1898560029, -1898560028, -1898560027], [1290207713, 1290207714, 1290207715, 1290207716]],
 '2': [[-1509404704, -1509404703, -1509404702, -1509404701], [1599980447, 1599980448, 1599980449, 1599980450], [1849892450, 1849892451, 1849892452, 1849892453]]
}

注意事项

  • 一定要保证新字典的键和源字典完全一致:遍历源字典的键是最稳妥的方式,避免出现键不匹配或者遗漏的问题。
  • 你的分词哈希函数要确保返回的是嵌套列表结构,这样赋值后才能得到你想要的格式。
  • 如果是批量生成分词结果,建议用字典存储中间结果(而不是列表),这样能直接通过键对应,避免顺序错乱的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:19:31