今天要分享的是AI编程技巧,用Python快速实现一个分词处理器。
提示词如下:
请使用Python编写一个分词处理工具,要有带有用户操作界面
简单粗暴,一句话搞定绝大部分编码工作,剩下的就是检查环境了。
Trae推荐的安装jieba库的方式为:
pip install jieba pandas
Python的第三方库,我这里荐使用下面的镜像源:
pip install jieba pandas -i http://pypi.doubanio.com/simple --trusted-host pypi.doubanio.com
提示词发送给Trae后,自动生成Python代码文
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
import jieba
import jieba.analyse
class SegmentApp:
def __init__(self, master):
self.master = master
master.title("中文分词工具 v1.0")
# 创建界面布局
self.create_widgets()
self.setup_layout()
def create_widgets(self):
# 输入区域
self.input_frame = ttk.LabelFrame(self.master, text="输入文本")
self.input_text = tk.Text(self.input_frame, height=10, wrap=tk.WORD)
self.btn_open = ttk.Button(self.input_frame, text="打开文件", command=self.open_file)
# 配置区域
self.option_frame = ttk.Frame(self.master)
self.mode_var = tk.StringVar(value="精确模式")
self.mode_selector = ttk.Combobox(self.option_frame,
textvariable=self.mode_var,
values=["精确模式", "全模式", "搜索引擎模式"])
self.btn_segment = ttk.Button(self.option_frame, text="开始分词", command=self.do_segment)
# 输出区域
self.output_frame = ttk.LabelFrame(self.master, text="分词结果")
self.output_text = tk.Text(self.output_frame, height=15, wrap=tk.WORD)
self.scrollbar = ttk.Scrollbar(self.output_frame, command=self.output_text.yview)
self.output_text.configure(yscrollcommand=self.scrollbar.set)
# 保存选项
self.save_frame = ttk.Frame(self.master)
self.save_var = tk.StringVar(value="txt")
ttk.Radiobutton(self.save_frame, text="保存为TXT", variable=self.save_var, value="txt").pack(side=tk.LEFT)
ttk.Radiobutton(self.save_frame, text="保存为CSV", variable=self.save_var, value="csv").pack(side=tk.LEFT)
self.btn_save = ttk.Button(self.save_frame, text="保存结果", command=self.save_result)
def setup_layout(self):
# 布局管理
self.input_frame.pack(padx=10, pady=5, fill=tk.X)
self.input_text.pack(side=tk.LEFT, padx=5, pady=5, fill=tk.BOTH, expand=True)
self.btn_open.pack(side=tk.RIGHT, padx=5)
self.option_frame.pack(padx=10, pady=5, fill=tk.X)
self.mode_selector.pack(side=tk.LEFT, padx=5)
self.btn_segment.pack(side=tk.RIGHT, padx=5)
self.output_frame.pack(padx=10, pady=5, fill=tk.BOTH, expand=True)
self.output_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
self.save_frame.pack(padx=10, pady=5, fill=tk.X)
self.btn_save.pack(side=tk.RIGHT)
def open_file(self):
filepath = filedialog.askopenfilename(filetypes=[("文本文件", "*.txt"), ("All Files", "*.*")])
if filepath:
try:
with open(filepath, 'r', encoding='utf-8') as f:
self.input_text.delete(1.0, tk.END)
self.input_text.insert(tk.END, f.read())
except Exception as e:
messagebox.showerror("错误", f"文件读取失败:{str(e)}")
def do_segment(self):
text = self.input_text.get(1.0, tk.END).strip()
if not text:
messagebox.showwarning("警告", "请输入需要分词的文本")
return
mode = self.mode_var.get()
try:
if mode == "精确模式":
words = jieba.cut(text)
elif mode == "全模式":
words = jieba.cut(text, cut_all=True)
else:
words = jieba.cut_for_search(text)
self.output_text.delete(1.0, tk.END)
self.output_text.insert(tk.END, "\n".join(words))
except Exception as e:
messagebox.showerror("错误", f"分词失败:{str(e)}")
def save_result(self):
result = self.output_text.get(1.0, tk.END).strip()
if not result:
messagebox.showwarning("警告", "没有可保存的内容")
return
filepath = filedialog.asksaveasfilename(
defaultextension="." + self.save_var.get(),
filetypes=[("Text Files", "*.txt"), ("CSV Files", "*.csv")]
)
if filepath:
try:
if self.save_var.get() == "csv":
import pandas as pd
df = pd.DataFrame({"词语": result.split("\n")})
df.to_csv(filepath, index=False, encoding="utf_8_sig")
else:
with open(filepath, "w", encoding="utf-8") as f:
f.write(result)
messagebox.showinfo("成功", "文件保存成功")
except Exception as e:
messagebox.showerror("错误", f"保存失败:{str(e)}")
if __name__ == "__main__":
jieba.initialize()
root = tk.Tk()
app = SegmentApp(root)
root.mainloop()
应用以上代码后,代码自动填充到代码编辑区,运行程序,效果就出来了。
一个简单的分词处理器就这样开发完成了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有