AI编程文本挖掘提示词实战

一、提示词的核心逻辑

AI编程的本质是将需求转化为AI可理解的指令。一个好的提示词应遵循IPO模型

复制代码
Input (输入)  → Process (处理) → Output (输出)

基础示例

复制代码
读取data.xlsx的"评论"列 → 统计词频Top20 → 保存到result.xlsx

完整示例

复制代码
读取D:\project\reviews.xlsx的"用户评论"列,
使用jieba分词统计Top20高频词(过滤单字和停用词),
结果保存到D:\output\wordfreq.xlsx

区别在于:完整版明确了路径、工具、参数和输出位置。

二、路径提示词的三种场景

场景1:单文件处理

基础格式

复制代码
文件:{绝对路径}
目标:{字段名}

实例

复制代码
# 提示词
分析D:\data\用户反馈_20251201.xlsx的"评价内容"列

# AI生成
df = pd.read_excel(r'D:\data\用户反馈_20251201.xlsx')
text = df['评价内容']

关键点

  • 使用完整路径而非相对路径
  • 中文路径需说明编码问题
  • 字段名用引号标注

场景2:批量文件

提示词模板

复制代码
处理{文件夹}下所有{格式}文件,
每个文件分析"{字段}"列,
结果按{命名规则}保存

实例

复制代码
# 提示词
批量处理D:\reports\目录下所有xlsx文件,
分析"反馈意见"列,结果保存为"原文件名_分析.xlsx"

# AI生成
from pathlib import Path
for file in Path(r'D:\reports').glob('*.xlsx'):
    df = pd.read_excel(file)
    result = analyze(df['反馈意见'])
    output = file.parent / f"{file.stem}_分析.xlsx"
    result.to_excel(output)

场景3:多资源依赖

提示词结构

复制代码
主文件:{路径}
词典文件:{路径}
模板文件:{路径}

实例

复制代码
分析D:\data\comments.xlsx的"内容"列,
使用词典D:\dict\custom.txt,
mask图片D:\img\shape.png

三、字段类型的通用表达

文本字段

核心原则:用"列名"+数据特征描述

场景 提示词 说明
短文本 "商品名称"列(10-30字) 明确长度范围
长文本 "用户评论"列(可能含表情) 说明特殊字符
结构化文本 "参数说明"列(键值对格式) 说明内部结构

通用模板

复制代码
对"{列名}"列进行分析,该列为{长度/格式/特征}

数值字段

明确三要素:字段名+范围+分析方法

复制代码
# 单列分析
分析"价格"列(范围100-5000),绘制分布直方图

# 多列对比
对比"评分A"、"评分B"、"评分C"三列(1-5分),绘制箱线图

分类字段

分组统计模板

复制代码
按"{分组列}"分组,计算每组的{统计指标}

实例

复制代码
按"门店"分组,统计各店好评率(评分≥4的占比)

四、分析方法的标准表达

情感分析

必备要素:算法+阈值+输出

复制代码
# 基础版
使用SnowNLP对"评论"列进行情感分析

# 完整版
使用SnowNLP情感分析,
阈值:>0.6为正面,<0.4为负面,
添加"情感倾向"和"情感得分"两列

生成代码

复制代码
from snownlp import SnowNLP

def sentiment(text):
    score = SnowNLP(str(text)).sentiments
    label = '正面' if score > 0.6 else ('负面' if score < 0.4 else '中性')
    return label, score

df[['情感倾向','情感得分']] = df['评论'].apply(
    lambda x: pd.Series(sentiment(x))
)

词频分析

配置要点:分词工具+词典+停用词+统计数

复制代码
# 标准模板
使用{分词工具}进行分词,
加载词典{路径},
停用词={系统词表/自定义列表},
统计Top{N},词长≥{M}

实例

复制代码
使用jieba分词,
加载D:\dict\domain.txt,
停用词=系统词表+["的","了"],
统计Top30,词长≥2

关键代码

复制代码
import jieba

jieba.load_userdict(r'D:\dict\domain.txt')
stopwords = set(open('stopwords.txt').read().split())
stopwords.update(['的','了'])

def word_freq(texts, top_n=30):
    words = []
    for text in texts:
        words.extend([w for w in jieba.cut(text) 
                     if len(w)>=2 and w not in stopwords])
    return pd.Series(words).value_counts().head(top_n)

网络分析

核心参数:节点来源+边规则+布局

复制代码
构建共现网络:
节点:Top{N}高频词
边:共现窗口={M}(同段落/同句)
权重:共现频次
布局:{spring/circular/kamada_kawai}

生成逻辑

复制代码
import networkx as nx

def build_network(texts, top_words, window=5):
    cooccur = {}
    for text in texts:
        words = [w for w in jieba.cut(text) if w in top_words]
        for i in range(len(words)-1):
            for j in range(i+1, min(i+window, len(words))):
                pair = tuple(sorted([words[i], words[j]]))
                cooccur[pair] = cooccur.get(pair, 0) + 1
    
    G = nx.Graph()
    for (w1, w2), weight in cooccur.items():
        G.add_edge(w1, w2, weight=weight)
    return G

五、可视化的精确控制

词云图配置

避免模糊描述,使用精确参数

错误 正确
"温暖的颜色" 色值:#E8977D, #D97662
"好看的形状" mask:D:\img\cloud.png
"合适的大小" 尺寸:800x600px,最大100词

标准模板

复制代码
绘制词云:
mask:{图片路径}
配色:{色值列表}
字体:{字体名}
参数:最大{N}词,背景{颜色},DPI={分辨率}

实例

复制代码
词云配置:
mask:D:\img\shape.png
配色:#F4A896, #E8977D, #D97662
字体:微软雅黑
参数:最大100词,背景白色,DPI=300

统计图表

箱线图示例

复制代码
绘制箱线图:
字段:["评分1","评分2","评分3"]
配色:#E8977D(与词云一致)
标注:显示异常值,添加均值线
布局:1行3列子图

生成代码

复制代码
fig, axes = plt.subplots(1, 3, figsize=(15,5))
cols = ['评分1','评分2','评分3']

for ax, col in zip(axes, cols):
    bp = ax.boxplot(df[col], patch_artist=True)
    bp['boxes'][0].set_facecolor('#E8977D')
    ax.axhline(df[col].mean(), color='green', 
               linestyle='--', label='均值')
    ax.set_title(col)
    ax.legend()

六、参数化与代码组织

要求可调参数

在提示词末尾添加

复制代码
在代码开头定义CONFIG字典,包含所有可调参数并注释说明

生成效果

复制代码
# ========== 配置参数 ==========
CONFIG = {
    # 情感分析
    'sentiment_threshold_pos': 0.6,  # 正面阈值
    'sentiment_threshold_neg': 0.4,  # 负面阈值
    
    # 词频统计
    'top_n_words': 30,        # Top词数
    'min_word_len': 2,        # 最小词长
    
    # 词云图
    'wordcloud_max': 100,     # 最大显示词数
    'wordcloud_colors': ['#E8977D','#D97662','#C95447'],
    
    # 网络分析
    'network_window': 5,      # 共现窗口
    'network_nodes': 50,      # 网络节点数
    
    # 输出
    'output_dpi': 300         # 图片分辨率
}

模块化函数

要求

复制代码
代码按功能拆分为独立函数:
- load_data(): 数据加载
- preprocess(): 预处理
- analyze(): 核心分析
- visualize(): 可视化
- main(): 主流程

七、通用提示词模板

标准模板结构

复制代码
【数据输入】
文件:{绝对路径}
字段:"{列名}" ({数据特征})

【分析任务】
1. {任务名}
   - 方法:{算法名}
   - 参数:{关键参数=默认值}
   - 输出:{结果形式}

【依赖资源】
- 词典:{路径}
- 停用词:{路径或列表}
- 素材:{路径}

【可视化】
- {图表类型}:配色{色值},尺寸{宽x高},DPI{分辨率}

【输出规范】
- 目录:{路径}
- 命名:{规则}
- 格式:{文件类型}

【代码要求】
- CONFIG字典管理参数
- 函数化拆分模块
- 异常处理和日志

填充示例

复制代码
【数据输入】
文件:D:\project\reviews_20251201.xlsx
字段:"用户评论" (50-500字用户反馈)

【分析任务】
1. 情感分析
   - 方法:SnowNLP
   - 参数:正面阈值=0.6,负面阈值=0.4
   - 输出:添加"情感"和"得分"列

2. 词频统计
   - 方法:jieba分词
   - 参数:Top30,词长≥2
   - 输出:正负面分别统计

【依赖资源】
- 词典:D:\dict\custom.txt
- 停用词:系统词表+["的","了","在"]
- mask:D:\img\cloud.png

【可视化】
- 词云图:配色#E8977D/#D97662,尺寸800x600,DPI=300
- 箱线图:显示异常值和均值线

【输出规范】
- 目录:D:\output\
- 命名:原文件名_分析结果_时间戳
- 格式:xlsx(数据)+png(图表)

【代码要求】
- CONFIG字典管理所有参数
- 拆分为5-8个独立函数
- 文件不存在时友好提示

八、常见问题速查

问题 错误示例 正确示例
路径不完整 "分析data.xlsx" "分析D:\project\data.xlsx"
字段不明确 "分析评论" "分析'用户评论'列"
方法不清晰 "做情感分析" "使用SnowNLP情感分析"
配色模糊 "用暖色调" "配色:#E8977D, #D97662"
缺少参数 "统计词频" "统计Top30词频,词长≥2"

九、提示词质量检查表

写完提示词后对照检查:

必备项

  • 文件路径是绝对路径
  • 字段名加引号且准确
  • 算法/工具名称明确
  • 输出路径和命名清晰

优化项

  • 参数有默认值说明
  • 配色给出具体色值
  • 要求参数化配置
  • 要求函数化组织
  • 说明异常处理

十、进阶技巧

1. 分步骤对话

复杂任务拆分为多轮:

复制代码
第一轮:先生成数据读取和预处理部分
第二轮:基于预处理结果,添加情感分析
第三轮:补充可视化代码

2. 参考示例

提供类似代码片段:

复制代码
情感分析参考这个逻辑:
[粘贴示例代码]
但改用SnowNLP并添加阈值判断

3. 迭代优化

复制代码
优化上面的代码:
1. 将硬编码路径改为CONFIG配置
2. 添加文件存在性检查
3. 输出改为多sheet的Excel

总结

好的AI编程提示词=精确的IPO描述 +标准化表达 +参数化设计

核心要点

  1. 路径要全:使用绝对路径
  2. 字段要准:列名加引号
  3. 方法要明:指定算法名
  4. 参数要清:给出默认值
  5. 输出要细:格式和位置

实践建议

  • 建立自己的提示词模板库
  • 每次成功的提示词都保存下来
  • 从简单开始,逐步添加细节
  • 用生成的代码反向优化提示词
相关推荐
Raink老师6 小时前
第 11 章 错误处理与异常
python
用户5191495848456 小时前
ADBKeyBoard:通过ADB实现Android虚拟键盘输入
人工智能·aigc
HappRobot7 小时前
Python 面向对象
开发语言·python
一瞬祈望7 小时前
⭐ 深度学习入门体系(第 3 篇):反向传播到底怎么工作的?
人工智能·深度学习
居然JuRan7 小时前
终于有人把大模型讲明白了:LLM 从入门到精通全解析
人工智能
2501_924794907 小时前
告别报告撰写“时间黑洞”:华为云Flexus AI智能体,重塑企业研究与决策效率
人工智能·华为云
kkk_皮蛋7 小时前
“红色警报“后的反击:OpenAI 发布 GPT-5.2,AI 霸主之争白热化
人工智能·gpt·chatgpt
Felaim7 小时前
Sparse4D 时序输入和 Feature Queue 详解
人工智能·深度学习·自动驾驶
Ki13817 小时前
我的AI学习小结:从入门到放弃
人工智能·学习