Differences between revisions 3 and 4
Revision 3 as of 2023-04-28 07:43:58
Size: 2312
Editor: najizhu
Comment:
Revision 4 as of 2023-04-28 14:21:26
Size: 0
Comment: Not relevant to py2exe.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
import pptx
from pptx.util import Inches
from tkinter import *
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

# 创建一个数据集用于记录用户反馈
dataset = pd.DataFrame(columns=['Title', 'Subtitle', 'Bullet1', 'Bullet2', 'Feedback'])

# 创建PPT文件
prs = pptx.Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "My PPT"
subtitle.text = "Subtitle"

# 添加文本框和图片
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes

title_shape = shapes.title
body_shape = shapes.placeholders[1]

title_shape.text = 'Bullet Slide'

tf = body_shape.text_frame
tf.text = 'Bullet List'

p = tf.add_paragraph()
p.text = 'Bullet 1'
p.level = 1

p = tf.add_paragraph()
p.text = 'Bullet 2'
p.level = 2

img_path = 'image.jpg'
left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)

# 设计交互界面
def create_ppt():
    # 获取用户输入的PPT标题和文本
    title_text = title_entry.get()
    subtitle_text = subtitle_entry.get()
    bullet1_text = bullet1_entry.get()
    bullet2_text = bullet2_entry.get()

    # 更新PPT文件
    title.text = title_text
    subtitle.text = subtitle_text
    tf.paragraphs[0].text = bullet1_text
    tf.paragraphs[1].text = bullet2_text

    # 记录用户反馈
    feedback = feedback_var.get()
    dataset.loc[len(dataset)] = [title_text, subtitle_text, bullet1_text, bullet2_text, feedback]

    # 保存PPT文件
    prs.save('my_ppt.pptx')

# 训练模型
def train_model():
    # 获取数据集中的特征和标签
    X = dataset.drop(['Feedback'], axis=1)
    y = dataset['Feedback']

    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    # 创建决策树分类器并训练模型
    clf = DecisionTreeClassifier()
    clf.fit(X_train, y_train)

    # 计算模型在测试集上的准确率
    accuracy = clf.score(X_test, y_test)
    accuracy_label.config(text="模型准确率:{:.2f}%".format