news 2026/9/24 1:25:12

输入电影/书籍名称,自动生成精简版剧情梗概,提取核心人物和主题,帮快速判断是否想看/读。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
输入电影/书籍名称,自动生成精简版剧情梗概,提取核心人物和主题,帮快速判断是否想看/读。

1. 实际应用场景描述

在信息爆炸的时代,我们每天都会看到大量电影、书籍推荐,但往往只有标题和海报,难以快速判断是否值得花时间观看或阅读。

- 想看某部电影,但不确定剧情是否喜欢。

- 想读一本书,但简介太长或剧透太多。

- 需要在短时间内筛选多个作品。

如果有一个智能程序,输入电影或书籍名称,就能自动生成 精简版剧情梗概,并提取 核心人物 和 主题,就能帮助用户快速决策。

2. 痛点分析

1. 信息获取效率低:需要自己去搜索、阅读长篇简介。

2. 剧透风险:部分简介包含关键情节。

3. 筛选成本高:面对大量推荐,难以快速判断兴趣点。

4. 缺乏个性化:现有推荐系统多为评分或标签,缺少针对内容的快速摘要。

3. 核心逻辑讲解

3.1 数据来源

- 使用 公开 API(如 TMDB 电影、Open Library 书籍)获取基本信息。

- 或使用本地预存的电影/书籍数据库(演示用静态数据)。

3.2 剧情梗概生成

- 对原始简介进行 文本摘要(可用规则截取前几句,或 TF-IDF + TextRank 算法)。

- 保持简洁,避免剧透关键结局。

3.3 核心人物提取

- 使用 命名实体识别(NER) 或规则匹配(如“主演”、“主角”等关键词后的名字)。

- 可结合角色出现频率排序。

3.4 主题提取

- 使用 关键词提取(TF-IDF、TextRank)或简单规则(如高频名词)。

- 可映射到预定义主题标签(爱情、悬疑、科幻等)。

3.5 输出结构化信息

- 返回

"{title, summary, characters, themes}"。

4. 模块化代码(Python)

# media_summary.py

import re

class MediaSummary:

def __init__(self):

# 模拟数据库

self.database = {

"肖申克的救赎": {

"summary_full": "银行家安迪被误判入狱,在肖申克监狱中,他凭借智慧和毅力,最终成功越狱并揭露了典狱长的腐败。",

"characters": ["安迪", "瑞德", "典狱长"],

"themes": ["希望", "自由", "坚持"]

},

"三体": {

"summary_full": "人类与外星文明三体人的接触引发了一系列科学、政治和哲学的冲突,故事跨越数百年,探讨宇宙文明的生存法则。",

"characters": ["叶文洁", "罗辑", "程心"],

"themes": ["科幻", "文明冲突", "人性"]

}

}

def get_info(self, title):

"""根据标题获取数据"""

return self.database.get(title, None)

def generate_summary(self, full_text, max_length=50):

"""生成精简版剧情梗概(取前max_length字)"""

if len(full_text) <= max_length:

return full_text

# 简单规则:取到最后一个完整句子

sentences = re.split(r'[。!?]', full_text)

summary = ""

for s in sentences:

if len(summary + s) <= max_length:

summary += s + "。"

else:

break

return summary.strip("。")

def extract_characters(self, data):

"""提取核心人物"""

return data.get("characters", [])

def extract_themes(self, data):

"""提取主题"""

return data.get("themes", [])

def analyze(self, title):

"""主分析函数"""

data = self.get_info(title)

if not data:

return {"error": "未找到该作品"}

summary = self.generate_summary(data["summary_full"])

characters = self.extract_characters(data)

themes = self.extract_themes(data)

return {

"title": title,

"summary": summary,

"characters": characters,

"themes": themes

}

def main():

analyzer = MediaSummary()

title = input("请输入电影或书籍名称:").strip()

result = analyzer.analyze(title)

if "error" in result:

print(result["error"])

else:

print(f"\n作品:{result['title']}")

print(f"剧情梗概:{result['summary']}")

print(f"核心人物:{', '.join(result['characters'])}")

print(f"主题:{', '.join(result['themes'])}")

if __name__ == "__main__":

main()

5. README 文件

# 电影/书籍快速摘要工具

基于 Python 实现,输入电影或书籍名称,自动生成精简版剧情梗概,并提取核心人物与主题,帮助用户快速判断是否想看/读。

## 功能

- 输入作品名称

- 输出精简剧情梗概

- 提取核心人物

- 提取主题标签

## 安装

无需额外依赖,Python 3.x 直接运行。

## 使用

bash

python media_summary.py

输入作品名称即可。

## 示例

输入:`肖申克的救赎`

输出:

作品:肖申克的救赎

剧情梗概:银行家安迪被误判入狱,在肖申克监狱中,他凭借智慧和毅力,最终成功越狱并揭露了典狱长的腐败。

核心人物:安迪, 瑞德, 典狱长

主题:希望, 自由, 坚持

6. 使用说明

1. 确保 Python 环境已安装(3.6+)。

2. 下载

"media_summary.py"。

3. 运行

"python media_summary.py"。

4. 输入电影或书籍名称(需在数据库中)。

5. 查看精简摘要、核心人物、主题。

7. 核心知识点卡片

知识点 说明

文本摘要 规则截取或 TF-IDF/TextRank 算法生成精简内容

命名实体识别(NER) 提取人名等关键信息

关键词提取 识别主题词

模块化设计 分离数据获取、摘要生成、实体提取等功能

可扩展性 可接入外部 API 或训练模型提升效果

8. 总结

本项目展示了如何用 Python + 规则/NLP 方法 快速实现一个 电影/书籍快速摘要工具,解决了信息筛选和剧透风险的问题。

- 优点:响应快、结构清晰、易于扩展。

- 未来可引入 机器学习摘要模型(如 BART、T5)和外部数据源(TMDB、豆瓣 API),实现更智能的推荐与分析。

- 适合作为 AI 方法与技术课程 的实践案例,涵盖文本处理、信息抽取、API 集成等内容。

如果你愿意,可以升级为 API 版本,接入 TMDB 和豆瓣数据,并用 Transformer 模型生成摘要,让它能处理任意电影/书籍。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 17:10:00

Github 标星 60K,不愧是阿里巴巴内部出厂的“Java 核心面试神技”

前言 作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#x…

作者头像 李华
网站建设 2026/9/23 22:47:39

时代转型与企业重生:新政策背景下的专精特新企业破局之道

时代转型与企业重生&#xff1a;新政策背景下的专精特新企业破局之道 在产业变革的宏大叙事中&#xff0c;《优质中小企业梯度培育管理办法》的发布标志着中国产业政策的历史性转折。这份文件表面上是规范管理&#xff0c;实质上是发展范式的系统性重构——它不再满足于培育一…

作者头像 李华
网站建设 2026/9/19 17:53:23

对于后端要和linux打交道要掌握的点

管理运行在Linux上的Spring Boot JAR包进程&#xff0c;你需要掌握以下核心命令和技巧&#xff1a; 1. 进程查找命令 查找Spring Boot进程 # 按名称查找 ps aux | grep java ps aux | grep spring ps aux | grep jar# 精确查找jar包进程 ps aux | grep -E \.jar$# 查看指定端…

作者头像 李华
网站建设 2026/9/20 17:26:34

芯片数据数据传输速度评估方法

评估数据传输速度&#xff08;通常指比特率&#xff09;时&#xff0c;一个比特的持续时间必须大于信号从发送到接收并稳定下来所需的总时间 数据传输速率 ≈ 带宽 (2/3)

作者头像 李华
网站建设 2026/9/22 11:27:39

【开题答辩全过程】以 基于SpringBoot的律师事务所管理系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华