AI大模型分析电影写微小说项目:基于AI的影视内容深度解析

电影台词智能分析工具:基于AI的影视内容深度解析

🎬 项目简介

这是一个利用人工智能技术自动分析电影台词内容的智能工具。通过简单的文本输入,程序能够:

  • 自动识别电影名称:从台词内容或文件名智能推断
  • 提炼经典台词:筛选最具代表性的10句精彩对白
  • 创作微小说:基于电影主题创作现代化改编故事
  • 支持长文本处理:智能分段处理超长电影台词

✨ 核心功能

🔍 智能电影分析

  • 自动推断电影名称和基本信息
  • 深度理解剧情脉络和人物关系
  • 提取最具代表性的经典台词

📝 创意内容生成

  • 基于电影主题创作全新微小说
  • 现代背景下的故事改编
  • 保持原作风味的同时创新叙事

⚡ 技术优势

  • 流式处理:支持超长台词分段分析
  • 多模型支持:兼容DeepSeek、通义千问等主流模型
  • 智能记忆:完整接收台词后再统一分析

🛠️ 技术架构

核心技术

  • AI模型:DeepSeek-R1推理模型(支持思维链)
  • API接口:硅基流动平台(OpenAI兼容)
  • 处理引擎:Python + OpenAI SDK

💡 代码解析

1. 智能分段处理长文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def split_text_into_parts(text_content, part_length=3000):
"""智能文本分段,避免截断完整句子"""
parts = []
sentences = re.split(r'(?<=[。!?!?])', text_content)

current_part = ""
for sentence in sentences:
if len(current_part) + len(sentence) <= part_length:
current_part += sentence
else:
if current_part:
parts.append(current_part)
current_part = sentence

if current_part:
parts.append(current_part)

return parts

2. 电影名称提取

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def extract_movie_name(file_path):
"""从复杂文件名中智能提取电影名称"""
filename = Path(file_path).stem

# 移除下载站点标记
clean_name = re.sub(r'^\[.*?\]', '', filename)

# 移除分辨率、编码等信息
patterns_to_remove = [
r'\d{4}p', # 1080p, 720p等
r'BluRay', 'DVD', 'WEB-DL',
r'x\d{3}', 'H\.?264', 'HEVC',
r'\d{4}\.\d{2}\.\d{2}', # 日期
r'[A-Z][A-Za-z]+-?Team', # 发布组
]

for pattern in patterns_to_remove:
clean_name = re.sub(pattern, '', clean_name, flags=re.IGNORECASE)

# 清理多余字符
clean_name = re.sub(r'[_-]+', ' ', clean_name)
clean_name = re.sub(r'\s+', ' ', clean_name).strip()

return clean_name

3. 上下文记忆管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class ConversationManager:
"""管理多轮对话上下文"""
def __init__(self, max_context_tokens=4000):
self.history = []
self.max_tokens = max_context_tokens

def add_message(self, role, content):
"""添加消息并维护上下文长度"""
self.history.append({"role": role, "content": content})
self._trim_history()

def _trim_history(self):
"""智能修剪历史记录,保留最重要的对话"""
total_tokens = sum(len(msg["content"]) for msg in self.history)

while total_tokens > self.max_tokens and len(self.history) > 2:
# 移除最旧的非系统消息
for i, msg in enumerate(self.history):
if msg["role"] != "system":
removed = self.history.pop(i)
total_tokens -= len(removed["content"])
break

🎯 Prompt工程

1. 分段发送策略

1
2
3
4
5
6
7
8
9
10
# 第一阶段:告知模型准备接收长内容
initial_prompt = f"""我将分{parts_count}次发送电影《{movie_name}》的完整台词给你。
请你先接收所有台词内容,不要立即分析。
等我发送完所有部分后,我会让你开始分析。

这是第1部分,共{parts_count}部分:
{first_part}

请回复"收到第1部分,等待后续内容。"
"""

2. 格式约束技巧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
analysis_prompt = f"""请根据所有台词内容完成以下分析,严格按照要求的格式输出:

电影名称:{movie_name}
经典台词:
1. [第一句经典台词]
2. [第二句经典台词]
...(必须输出10句)

微小说:[根据台词创作的300字微小说。]

要求(重要指令):
1. 根据你所知道的给出该电影超级简单的介绍
2. 经典台词要选择最具代表性、最打动人心的10句
3. 微小说要基于所有台词的意境和主题创作,保持故事完整性
4. 注意:不要和原电影叙事年代相同,尽量用现在的年代
5. 记得为微小说写题目
6. 禁止:不要输出任何评价性内容,只输出要求的格式内容

严格按照上述格式,不要添加额外说明!"""

3. 角色设定增强效果

1
2
3
4
5
6
7
system_prompt = """你是一位资深的电影评论家和小说作家,具有以下特点:
1. 对电影艺术有深刻理解,能准确把握电影主题
2. 擅长从台词中提炼精华,识别经典对白
3. 具有出色的改编能力,能将经典故事现代化
4. 严格遵守格式要求,输出结构清晰

你的任务是根据提供的电影台词,完成专业分析。"""

4. 分阶段处理长文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def create_staged_prompts(movie_name, parts):
"""创建分阶段的prompt序列"""
prompts = []

# 阶段1:建立上下文
prompts.append({
"role": "system",
"content": f"你将接收电影《{movie_name}》的完整台词,请先专心接收,不要分析。"
})

# 阶段2:分段发送内容
for i, part in enumerate(parts, 1):
if i == 1:
content = f"开始发送《{movie_name}》台词,这是第{i}部分:\n\n{part}\n\n请确认收到。"
else:
content = f"继续发送《{movie_name}》台词,第{i}部分:\n\n{part}\n\n请确认收到。"
prompts.append({"role": "user", "content": content})

# 阶段3:分析指令
prompts.append({
"role": "user",
"content": """现在你已经接收了完整台词,请开始分析。注意以下关键要求:
1. 输出10句经典台词,必须编号1-10
2. 微小说要现代背景,300字左右
3. 不要评价,只输出结果"""
})

return prompts

📋 使用示例

输入电影台词文件(如《倩女幽魂2》台词):

1
2
宁采臣:这里阴气太重,我们快走吧。
聂小倩:公子,你可知道前世今生?

输出分析结果:

1
2
3
4
5
6
7
8
电影名称:倩女幽魂2
经典台词:
1. "人间道,鬼道,各有各的轮回"
2. "爱情如果能超越生死,那该多好"
3. ...
微小说:《数字时代的灵异情缘》
2024年,程序员宁晨在修复一个古老的数据库时,
发现了一段被遗忘的AI代码"小倩"...

🚀 快速开始

环境要求

1
pip install openai

配置使用

1
2
3
4
# 简单三步配置
API_KEY = "您的API密钥"
INPUT_FILE_PATH = "电影台词.txt"
MODEL_NAME = "deepseek-ai/DeepSeek-R1"

运行脚本

1
python movie_analysis.py

🎪 项目特色

🔥 技术创新点

  • 智能上下文管理:自动维护对话历史,优化token使用
  • 动态prompt调整:根据输入内容自动调整指令细节
  • 错误恢复机制:网络异常时自动重试,保证任务完成
  • 进度实时反馈:流式输出让用户看到处理过程

🎨 Prompt设计哲学

  1. 明确指令优先:使用编号、强调等让模型准确理解
  2. 格式强制约束:通过具体示例规范输出格式
  3. 分阶段处理:复杂任务拆解为简单步骤
  4. 角色代入法:赋予模型特定角色提升质量

🔧 应用场景

影视行业

  • 剧本分析和优化建议
  • 经典台词数据库建设
  • 跨时代故事改编创意

教育研究

  • 电影文学课程辅助工具
  • 叙事结构分析研究
  • 跨文化影视对比

个人兴趣

  • 观影笔记智能整理
  • 电影主题深度理解
  • 创意写作灵感来源

📊 项目亮点

  1. 智能化程度高:自动识别电影、分析主题、提取精华
  2. 创作能力强:不仅能分析,还能创作全新内容
  3. 用户体验好:一键式操作,结果清晰易懂
  4. 扩展性强:支持多种AI模型和API平台
  5. 实用价值大:适合影视爱好者、创作者、研究者