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

使用Hugging Face摘要功能时触发IndexError问题求助

解决YouTube字幕摘要的IndexError问题

你的报错核心原因有两个:

  1. 默认使用的sshleifer/distilbart-cnn-12-6模型最大支持1024个token,但你的字幕文本转换成token后有11628个,远超限制,直接输入触发了索引越界错误。
  2. 未明确指定模型,不符合生产环境使用规范(虽不是直接报错原因,但官方不推荐)。

解决方案

1. 分割超长文本为符合模型限制的片段

用NLTK将字幕分割成句子,再合并成不超过模型最大token长度的文本块,确保每个块都能被模型正常处理。

2. 明确指定模型(可选但推荐)

直接指定默认模型或更换支持更长序列的模型,同时符合生产环境的使用要求。

修改后的完整代码

import nltk
nltk.download('punkt')
from youtube_transcript_api import YouTubeTranscriptApi
from transformers import pipeline, AutoTokenizer

video_id = 'wK4XmXJ299k'

# 获取字幕并合并成完整文本
transcript = YouTubeTranscriptApi.get_transcript(video_id)
corpus = ' '.join([line['text'] for line in transcript])

# 初始化摘要模型和tokenizer,明确指定模型
model_name = "sshleifer/distilbart-cnn-12-6"
summarizer = pipeline("summarization", model=model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# 模型允许的最大token长度
max_token_len = 1024
# 用NLTK将完整文本分割成句子
sentences = nltk.sent_tokenize(corpus)
# 构建符合长度限制的文本块
text_chunks = []
current_chunk = []
current_length = 0

for sentence in sentences:
    # 计算当前句子的token长度
    sentence_len = len(tokenizer.encode(sentence))
    # 如果当前块加新句子会超限制,就保存当前块并重置
    if current_length + sentence_len > max_token_len:
        text_chunks.append(' '.join(current_chunk))
        current_chunk = [sentence]
        current_length = sentence_len
    else:
        current_chunk.append(sentence)
        current_length += sentence_len
# 加入最后一个未完成的文本块
if current_chunk:
    text_chunks.append(' '.join(current_chunk))

# 对每个文本块单独生成摘要,再合并结果
summaries = []
for chunk in text_chunks:
    # 可根据需求调整摘要的长度范围
    summary = summarizer(chunk, max_length=150, min_length=30, do_sample=False)
    summaries.append(summary[0]['summary_text'])

# 合并所有片段的摘要得到最终结果
final_summary = ' '.join(summaries)
print(final_summary)

关键说明

  • 文本分割逻辑:通过tokenizer精准计算句子的token长度,确保每个文本块不超过模型限制,从根源避免索引越界错误。
  • 模型指定:明确声明模型名称,既符合生产环境规范,也方便后续更换其他支持更长序列的摘要模型。
  • 摘要参数调整:max_length和min_length可根据需求修改,控制输出摘要的长度范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:01:21