소스 정보
- 저장소
- Supreme-Ultimate/novel-to-script-team
- 최근 소스 활동
- 2026년 5월 2일 03:48
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 159
- 포크
- 30
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Supreme-Ultimate/novel-to-script-team --skill style-analysis-skill명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | style-analysis-skill |
| description | 风格分析技能。分析生成剧本的语言风格,对比爆款剧本,确保网文感和可读性。 |
../../references/00-first-principles.md — 第一性原则(可拍性、留存性)../../references/03-script-writing-standard.md — 剧本写作标准(句长、对话比、视觉标记、网文感关键词)../../references/12-genre-specific-techniques.md — 类型化技巧(男频/女频风格差异)深度分析剧本的语言风格,确保生成的剧本具有网文感、节奏感和可读性。
统计方法:
import re
def analyze_sentence_length(script):
# 按句号、问号、感叹号分句
sentences = re.split(r'[。!?]', script)
sentences = [s.strip() for s in sentences if s.strip()]
lengths = [len(s) for s in sentences]
return {
'avg_length': sum(lengths) / len(lengths),
'short_ratio': len([l for l in lengths if l < 10]) / len(lengths),
'medium_ratio': len([l for l in lengths if 10 <= l < 20]) / len(lengths),
'long_ratio': len([l for l in lengths if l >= 20]) / len(lengths)
}
理想指标:
统计方法:
def analyze_dialogue_ratio(script):
# 识别对话(引号内的内容)
dialogues = re.findall(r'[「『""]([^」』""]+)[」』""]', script)
dialogue_chars = sum(len(d) for d in dialogues)
total_chars = len(script)
return {
'dialogue_ratio': dialogue_chars / total_chars,
'dialogue_count': len(dialogues),
'avg_dialogue_length': dialogue_chars / len(dialogues) if dialogues else 0
}
理想指标:
视觉标记列表:
visual_markers = {
'表情': ['冷笑', '嗤笑', '冷哼', '微笑', '狞笑', '苦笑'],
'眼神': ['眼神一冷', '眸光一沉', '目光如炬', '眼中闪过', '瞳孔一缩'],
'动作': ['嘴角勾起', '挑眉', '皱眉', '咬牙', '握拳', '转身'],
'气场': ['气势汹汹', '霸气侧漏', '冷气逼人', '杀气腾腾']
}
统计方法:
def analyze_visual_markers(script):
all_markers = []
for category, markers in visual_markers.items():
all_markers.extend(markers)
marker_count = sum(script.count(marker) for marker in all_markers)
chars_per_100 = len(script) / 100
return {
'markers_per_100': marker_count / chars_per_100,
'marker_distribution': {
category: sum(script.count(m) for m in markers)
for category, markers in visual_markers.items()
}
}
理想指标:
网文感关键词:
wanwen_keywords = {
'情绪强化': ['冷笑', '嗤笑', '冷哼', '冷声', '冷冷地'],
'态度词': ['不屑', '轻蔑', '讥讽', '嘲讽', '鄙夷'],
'气场词': ['霸气', '强势', '凌厉', '锐利', '凛然'],
'反转词': ['没想到', '竟然', '居然', '原来', '突然'],
'打脸词': ['啪啪打脸', '狠狠打脸', '当场打脸', '脸色一变']
}
统计方法:
def analyze_wanwen_keywords(script):
all_keywords = []
for category, keywords in wanwen_keywords.items():
all_keywords.extend(keywords)
keyword_count = sum(script.count(kw) for kw in all_keywords)
chars_per_100 = len(script) / 100
return {
'keywords_per_100': keyword_count / chars_per_100,
'keyword_distribution': {
category: sum(script.count(kw) for kw in keywords)
for category, keywords in wanwen_keywords.items()
}
}
理想指标:
统计方法:
def analyze_rhythm(script):
# 按场景分割
scenes = re.split(r'场景\d+|第\d+场', script)
scene_lengths = [len(s) for s in scenes if s.strip()]
return {
'scene_count': len(scene_lengths),
'avg_scene_length': sum(scene_lengths) / len(scene_lengths),
'length_variance': calculate_variance(scene_lengths),
'rhythm_score': calculate_rhythm_score(scene_lengths)
}
理想指标:
generated_style = {
'sentence': analyze_sentence_length(generated_script),
'dialogue': analyze_dialogue_ratio(generated_script),
'visual': analyze_visual_markers(generated_script),
'wanwen': analyze_wanwen_keywords(generated_script),
'rhythm': analyze_rhythm(generated_script)
}
reference_styles = [
{
'sentence': analyze_sentence_length(ref),
'dialogue': analyze_dialogue_ratio(ref),
'visual': analyze_visual_markers(ref),
'wanwen': analyze_wanwen_keywords(ref),
'rhythm': analyze_rhythm(ref)
}
for ref in reference_scripts
]
# 计算平均值
reference_avg = average(reference_styles)
report = {
'sentence_analysis': compare_sentence(generated_style, reference_avg),
'dialogue_analysis': compare_dialogue(generated_style, reference_avg),
'visual_analysis': compare_visual(generated_style, reference_avg),
'wanwen_analysis': compare_wanwen(generated_style, reference_avg),
'rhythm_analysis': compare_rhythm(generated_style, reference_avg)
}
【风格分析报告】
## 1. 句长分析
生成剧本:
- 平均句长:18字符 ⚠️
- 短句比例:20% ⚠️
- 中句比例:60% ✓
- 长句比例:20% ⚠️
参考剧本:
- 平均句长:12字符
- 短句比例:35%
- 中句比例:55%
- 长句比例:10%
问题:
- 句子偏长,缺乏短句
- 长句比例过高
建议:
- 将长句拆分为2-3个短句
- 增加短句比例到30%以上
- 示例:
原:她看着他,心中涌起一股复杂的情绪,既有愤怒也有不甘。
改:她看着他。心中涌起复杂情绪。既愤怒,也不甘。
## 2. 对话比分析
生成剧本:
- 对话比:45% ⚠️
- 对话数量:12条/1000字 ⚠️
- 平均对话长度:35字符 ✓
参考剧本:
- 对话比:72%
- 对话数量:20条/1000字
- 平均对话长度:30字符
问题:
- 对话比严重偏低
- 叙述性文字过多
建议:
- 将叙述改为对话
- 增加人物互动
- 示例:
原:她很生气,觉得他太过分了。
改:"你太过分了!"她愤怒地说。
## 3. 视觉标记分析
生成剧本:
- 视觉标记:1个/100字 ⚠️
- 分布:表情(0.5), 眼神(0.3), 动作(0.2), 气场(0)
参考剧本:
- 视觉标记:4个/100字
- 分布:表情(1.5), 眼神(1.0), 动作(1.0), 气场(0.5)
问题:
- 视觉标记严重不足
- 缺乏气场描写
建议:
- 增加表情描写(冷笑、嗤笑等)
- 增加眼神描写(眼神一冷、眸光一沉等)
- 增加气场描写(霸气、强势等)
- 示例:
原:"你算什么东西?"他说。
改:"你算什么东西?"他冷笑一声,眼神一冷。
## 4. 网文感关键词分析
生成剧本:
- 网文感关键词:0.5个/100字 ⚠️
- 分布:情绪强化(0.2), 态度词(0.1), 气场词(0.1), 反转词(0.1), 打脸词(0)
参考剧本:
- 网文感关键词:2个/100字
- 分布:情绪强化(0.8), 态度词(0.4), 气场词(0.3), 反转词(0.3), 打脸词(0.2)
问题:
- 网文感严重不足
- AI味较重
建议:
- 增加情绪强化词(冷笑、嗤笑、冷哼等)
- 增加态度词(不屑、轻蔑、讥讽等)
增加反转词(没想到、竟然、居然等)
生成剧本:
场景数:6个 ⚠️
平均场景长度:180字 ⚠️
长度方差:低 ⚠️
参考剧本:
场景数:8.5个
平均场景长度:120字
长度方差:中等
问题:
场景数偏少
场景过长
节奏单调
建议:
增加2个过渡场景
缩短场景长度
增加节奏变化
句长:60/100 ⚠️
对话比:50/100 ⚠️
视觉标记:25/100 ⚠️
网文感:30/100 ⚠️
节奏感:65/100 ⚠️
提高对话比(45% → 70%)
增加视觉标记(1个/100字 → 4个/100字)
增加网文感关键词(0.5个/100字 → 2个/100字)
拆分长句,增加短句比例
增加场景数,优化节奏