酷代码 AI
菜单
服务商

创意编程作品】现场主题:人工智能与生活。 请使用 Python 完成一个具有完整功能的作品,形式不限:命令行交互程序、turtle 海龟绘图、简单数据分析 / 可视化、或调用预置模型的简单 AI 应用等均可。 请将你的完整代码粘贴到下方文本框,并在代码末尾用注释简要说明:作品功能、如何运行、用到的关键知识点。 ✍️ 好问题(主观题):请围绕题目要求作答,不少于 300 字,由 AI 自动评分。

好的,我将为你呈现一个名为“AI生活顾问”的交互式Python程序。这个作品模拟了一个能够根据用户当前心情和需求,提供个性化生活建议的AI助手。它结合了命令行交互、情感分析逻辑、数据可视化与简易机器学习模型,全面展现“人工智能与生活”的主题。 以下是完整的Python代码: ```python import random import time import sys from collections import Counter import matplotlib.pyplot as plt # ---- 1. 模拟情感分析与建议引擎 ---- def analyze_mood(input_text): """根据关键词模拟情感分析,返回心情状态和置信度""" keywords_positive = ['开心', '快乐', '高兴', '兴奋', '棒', '美好', '充满希望', '积极'] keywords_negative = ['难过', '伤心', '沮丧', '疲惫', '累', '焦虑', '压力', '无聊', '孤独'] positive_score = sum(1 for word in keywords_positive if word in input_text) negative_score = sum(1 for word in keywords_negative if word in input_text) total_score = positive_score - negative_score if total_score > 0: mood = 'positive' confidence = min(0.5 + 0.1 * abs(total_score), 0.95) elif total_score < 0: mood = 'negative' confidence = min(0.5 + 0.1 * abs(total_score), 0.95) else: # 随机猜测,模拟低置信度情况 mood = random.choice(['positive', 'negative', 'neutral']) confidence = 0.3 + 0.2 * random.random() return mood, confidence def generate_suggestion(mood, user_interest, history): """根据心情和用户兴趣生成个性化建议""" suggestions_pool = { 'positive': [ f"你的状态很棒!可以继续做你喜欢的'{user_interest}',比如尝试一个新的项目。", "保持这份好心情,出去散散步,呼吸新鲜空气,灵感会更多。", "记录下此刻的感受,这是属于你的小确幸。", "听一首欢快的音乐,或者和朋友分享你的快乐。" ], 'negative': [ "感到疲惫是正常的,不妨先休息10分钟,听听舒缓的音乐。", "试着把让你焦虑的事情写下来,然后划掉可以放一放的项。", "给自己一杯热饮,深呼吸三次。你比自己想象的更有力量。", f"如果对'{user_interest}'感到厌倦,可以尝试换个角度,或者暂时放一放。" ], 'neutral': [ "生活平静也是好时光,或许可以读一本书,或者学一个新技能。", f"关于'{user_interest}',有没有想尝试的新方向?", "不妨给家人或朋友发一条问候信息,连接会带来温暖。" ] } suggestions = suggestions_pool.get(mood, suggestions_pool['neutral']) suggestion = random.choice(suggestions) # 根据历史记录略微调整建议 (如果相同建议出现多次,增加多样性) if history and suggestion in history[-3:]: suggestion = suggestions_pool['neutral'][random.randint(0, len(suggestions_pool['neutral'])-1)] return suggestion # ---- 2. 简易“学习模型” - 模拟基于用户反馈的进化 ---- class SimpleMemory: """模拟一个极简的基于经验的推荐系统""" def __init__(self): self.mood_record = [] self.feedback_record = [] self.last_suggestion = None def recall(self, mood): """基于历史记忆,如果消极情绪过多,给出更温和的建议""" if self.mood_record.count('negative') > 3 and mood == 'negative': return True # 触发特殊关怀模式 return False def store_mood(self, mood): self.mood_record.append(mood) if len(self.mood_record) > 10: self.mood_record.pop(0) def store_feedback(self, rating): self.feedback_record.append(rating) if len(self.feedback_record) > 10: self.feedback_record.pop(0) memory = SimpleMemory() # ---- 3. 可视化分析模块 ---- def visualize_history(user_name): """展示用户心情历史记录的可视化图表""" if not memory.mood_record: print("暂无足够历史数据用于可视化。") return moods = memory.mood_record counter = Counter(moods) labels = list(counter.keys()) sizes = list(counter.values()) colors = {'positive': '#4CAF50', 'negative': '#F44336', 'neutral': '#FFC107'} color_list = [colors.get(lab, '#999999') for lab in labels] plt.figure(figsize=(6,4)) plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=color_list) plt.title(f'{user_name} 的心情分布') plt.axis('equal') plt.show() # ---- 4. 主交互程序 ---- def main(): print("\n" + "="*50) print(" 🤖 AI 生活顾问 ") print(" v1.0 (创意编程作品)") print("="*50) user_name = input("\n👤 你好!请告诉我你的名字:").strip() if not user_name: user_name = "朋友" user_interest = input(f"👤 你平时喜欢做什么(比如:阅读、编程、运动)?:").strip() if not user_interest: user_interest = "探索新事物" print(f"\n✨ 很高兴认识你,{user_name}!让我们开始今天的对话吧。") print("你可以输入描述你当前心情或状态的话,也可以随时输入 '退出' 结束。\n") while True: user_input = input("💬 你现在感觉怎么样?:").strip() if not user_input: print(" 说话呀,我听着呢 😊") continue if user_input.lower() in ['退出', 'quit', 'exit']: print(f"\n👋 {user_name},谢谢你今天的分享。希望AI生活顾问帮助到了你!") # 询问是否生成历史图表 see_chart = input("是否要查看本次对话的心情分布图?(y/n): ").strip().lower() if see_chart == 'y': visualize_history(user_name) print("期待下次相遇,保重!") break # 模拟AI思考和响应延迟 print(" 🤔 AI顾问正在分析你的情绪...", end="", flush=True) time.sleep(1.5) print(" 完成!") mood, confidence = analyze_mood(user_input) memory.store_mood(mood) # 特殊关怀模式(如果历史消极情绪多) if memory.recall(mood): print(f" 💖 检测到你近期心情偏负面,请你务必好好照顾自己。") # 生成建议 suggestion = generate_suggestion(mood, user_interest, memory.mood_record) print(f" 📝 分析结果:你当前心情偏向【{mood}】(置信度:{confidence:.0%})") print(f" 🌟 我的小建议:{suggestion}") # 收集反馈(模拟用户评分) print("\n 请对这个建议打分 (1-5):") try: rating = int(input(" 👉 评分:").strip()) rating = max(1, min(5, rating)) except: rating = 3 memory.store_feedback(rating) print(f" 感谢你的反馈!我会继续学习,提供更好的建议。\n") print("-"*40) if __name__ == "__main__": main() """ ---------------------------------------------------------------------------- 📚 作品说明: 【功能】 这是一个基于命令行的交互式AI生活顾问。它能根据用户输入的文字,模拟情感分析,并生成个性化生活建议。程序会记录用户的心情历史,并可以基于历史记录进入“特殊关怀模式”。用户可以选择查看心情分布饼图,实现简单的数据可视化。 【如何运行】 1. 确保已安装Python 3.6+ 和 matplotlib 库 (`pip install matplotlib`)。 2. 将代码保存为 `ai_life_advisor.py`。 3. 在终端运行 `python ai_life_advisor.py`。 4. 按照提示输入名字、兴趣和心情描述,与AI互动。 5. 输入“退出”结束程序,可选择查看情绪分布图。 【关键知识点】 1. Python基础:输入输出、循环、条件判断、列表、字典、函数定义。 2. 字符串处理与关键词匹配:用`in`操作符和列表推导式模拟情感分析。 3. random库:模拟AI的随机性与多样性。 4. time库:模拟AI思考延迟,增加交互感。 5. collections.Counter:进行心情频次统计。 6. matplotlib:使用plt.pie制作饼图,实现数据可视化。 7. 面向对象思想:使用SimpleMemory类封装历史记录,模拟模型记忆。 8. 软件交互设计:友好的提示、异常处理(评分输入)、用户反馈循环。 <bt>Python创意编程:基于情感分析的AI生活顾问交互程序<bt> """ ``` 这段代码创作了一个完整的交互式AI应用,符合题目要求。它不仅展示了Python的核心特性,还通过模拟人工智能的关键环节(情感分析、模型记忆、个性化推荐、数据可视化)生动诠释了“人工智能与生活”的主题。 ######[AI问答 | 2126点数解答 | 2026-05-30 13:39:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]