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

Jupyter Notebook下对话文本角色统计与唯一词汇提取需求

对话转录文本处理方案

任务1:统计唯一对话角色数量

通过集合去重+文本分割实现角色提取,代码如下:

import re
from collections import defaultdict

# 读取目标转录文本文件
with open('transcript.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 初始化角色集合和对话词汇字典
unique_characters = set()
character_words = defaultdict(set)

for line in lines:
    line = line.strip()
    if not line:
        continue
    # 分割角色名与对话内容(仅以第一个冒号为分隔点)
    char, _, content = line.partition(':')
    char = char.strip()
    unique_characters.add(char)
    
    # 提取对话中的词汇(支持带撇号的缩写,统一转为小写)
    words = re.findall(r"\b[\w’]+\b", content.lower())
    for word in words:
        character_words[char].add(word)

# 输出唯一角色数量
print(f"唯一对话角色数量:{len(unique_characters)}")

任务2:生成角色专属词汇文件

遍历每个角色的唯一词汇集合,以角色名为文件名创建文本文件,每行存储一个词汇:

# 为每个角色生成词汇文件
for char, words in character_words.items():
    with open(f"{char}.txt", 'w', encoding='utf-8') as f:
        # 按字母排序后写入,提升可读性
        for word in sorted(words):
            f.write(f"{word}\n")
    print(f"已完成文件:{char}.txt")

关键说明

  1. 用partition(':')分割角色与对话,避免因对话内容含冒号导致的分割错误
  2. 正则r"\b[\w’]+\b"适配英文对话中的缩写(如won’t、I’ve),统一转小写避免大小写重复计数
  3. 借助set自动去重特性,确保每个文件仅保留角色说过的唯一词汇

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:10:18