当前位置: 首页 > news >正文

文本分词排序

文本分词
在这个代码的基础上
把英语单词作为一类汉语,作为一类然后列出选项
1. 大小排序
2. 小大排序
3. 不排序打印保存

代码


import jieba# 输入文本,让我陪你聊天吧~
lines = []
print("请输入多行文本,以\"2333.3\"结束:")
while True:line = input()if line == "2333.3":breaklines.append(line)# 对每行文本进行分词和去重,将文字拆拆拆~
words = []
for line in lines:seg_list = jieba.cut(line)  # 分词,把文字切得精精致致~for word in seg_list:words.append(word)  # 把词拼起来,组成一个个小秘密~# 将英文单词作为一类,给中英文都一个舞台~
new_words = []
for word in words:if word.isalpha():new_words.append(word.lower())  # 英文小写,不分大小~else:new_words.append(word)  # 中文就这样保留~# 选项控制排序:1. 大小排序 2. 小大排序 3. 不排序,看你喜欢哪种节奏~
option = input("请选择排序方式(输入对应数字1/2/3):")
if option == "1":new_words.sort(key=lambda w: (not w.isalpha(), w))  # 选了1,大小排序,这个节奏有点嗨~
elif option == "2":new_words.sort(key=lambda w: (not w.isalpha(), w), reverse=True)  # 选了2,小大排序,调皮一点~
elif option != "3":print("无效选项!默认不排序。")  # 嘘~别乱点哦~# 原文和分词结果打印,让我们揭开神秘的面纱~
print("原文:")
for line in lines:print(line)print("\n分词结果:")
for word in new_words:print(word)# 保存为txt文件,让文字在电子世界里流传~
file_name = input("请输入文件名(不需要加后缀):")
if file_name.strip() == "":file_name = "编号. 第1个分词词语 时间戳"file_path = "/storage/emulated/0/数据中心/txt/" + file_name + ".txt"   
with open(file_path, "w", encoding="utf-8") as f:# 写入原文f.write("原文:\n")for line in lines:f.write(line + "\n")# 写入分词结果f.write("\n分词结果:\n")for word in new_words:f.write(word + "\n")print("文件保存成功!路径:%s" % file_path)  # 保存完毕,请查收~

新添加的内容是将英语单词作为一类汉语,并进行排序。选项控制排序方式,可选择1. 大小排序 2. 小大排序 3. 不排序,默认选项为3. 不排序。

请注意,英语单词将转换为小写形式,如需保留原始大小写,


# 根据选项决定是否将英文单词转换为小写形式,并保留原始大小写
option = input("请选择选项:\n1. 将所有英文单词转换为小写形式\n2. 保留英文单词的原始大小写\n请选择选项(输入对应数字1/2): ")
if option == "1":new_words = [word.lower() if word.isalpha() else word for word in words] # 选了1,将所有英文单词都转换为小写形式
elif option == "2":new_words = words  # 选了2,保留英文单词的原始大小写
else:print("无效选项!默认将所有英文单词转换为小写形式。")new_words = [word.lower() if word.isalpha() else word for word in words]  # 嘘,别乱选哦~

修改后的代码~

import jieba# 输入文本,让我陪你聊天吧~
lines = []
print("请输入多行文本,以\"2333.3\"结束:")
while True:line = input()if line == "2333.3":breaklines.append(line)# 对每行文本进行分词和去重,将文字拆拆拆~
words = []
for line in lines:seg_list = jieba.cut(line)  # 使用jieba库进行分词for word in seg_list:words.append(word)  # 添加分词的结果# 根据选项决定是否将英文单词转换为小写形式,并保留原始大小写
option = input("请选择选项:\n1. 将所有英文单词转换为小写形式\n2. 保留英文单词的原始大小写\n请选择选项(输入对应数字1/2): ")
if option == "1":new_words = [word.lower() if word.isalpha() else word for word in words] # 将所有英文单词转换为小写形式
elif option == "2":new_words = words  # 保留英文单词的原始大小写
else:print("无效选项!默认将所有英文单词转换为小写形式。")new_words = [word.lower() if word.isalpha() else word for word in words]  # 默认将所有英文单词转换为小写形式# 将分词结果排序:1. 大小排序 2. 小大排序 3. 不排序,看你喜欢哪种节奏~
option = input("请选择排序方式(输入对应数字1/2/3):")
if option == "1":new_words.sort(key=lambda w: (not w.isalpha(), w))  # 大小排序
elif option == "2":new_words.sort(key=lambda w: (not w.isalpha(), w), reverse=True)  # 小大排序
elif option != "3":print("无效选项!默认不排序。")  # 默认不排序# 打印原文和分词结果
print("原文:")
for line in lines:print(line)print("\n分词结果:")
for word in new_words:print(word)# 保存为txt文件
file_name = input("请输入文件名(不需要加后缀):")
if file_name.strip() == "":file_name = "编号. 第1个分词词语 时间戳"file_path = "/storage/emulated/0/数据中心/txt/" + file_name + ".txt"   
with open(file_path, "w", encoding="utf-8") as f:# 写入原文f.write("原文:\n")for line in lines:f.write(line + "\n")# 写入分词结果f.write("\n分词结果:\n")for word in new_words:f.write(word + "\n")print("文件保存成功!路径:%s" % file_path)  # 文件保存成功提示
http://www.lryc.cn/news/182626.html

相关文章:

  • SQL与关系数据库基本操作
  • 【2023年11月第四版教材】第18章《项目绩效域》(第一部分)
  • Docker启动Mysql
  • QScrollArea样式
  • 【gitlab】git push -u origin master 报403
  • 第二篇:矩阵的翻转JavaScript
  • 代码随想录算法训练营第五十七天 | 动态规划 part 15 | 392.判断子序列、115.不同的子序列
  • 【国漫逆袭】人气榜,小医仙首次上榜,霍雨浩排名飙升,不良人热度下降
  • 国庆中秋特辑(七)Java软件工程师常见20道编程面试题
  • 长剖与贪心+树上反悔贪心:1004T4
  • 二叉树经典例题
  • 什么是指针的指针和指向函数的指针?
  • 多个excel合并
  • Integrity Plus for Mac,保障网站链接无忧之选
  • C#,数值计算——Sobol拟随机序列的计算方法与源程序
  • 以太网协议介绍(ARP、UDP、ICMP、IP)
  • 【C++】STL详解(十)—— 用红黑树封装map和set
  • Android学习之路(17) Android Adapter详解
  • 实验室超声波萃取技术的原理和特点是什么?
  • 用Python操作Word文档,看这一篇就对了!
  • 力扣 -- 879. 盈利计划(二维费用的背包问题)
  • 虚拟机的三种网络连接模式
  • SQL调优
  • python写一个开机启动的选项
  • 1500*A. Boredom(DP)
  • 小程序关键词排名:优化你的应用在搜索中的地位
  • OpenGLES:3D立方体纹理贴图
  • 线程的概述
  • 竞赛选题 机器视觉目标检测 - opencv 深度学习
  • python绘图系统27:matplotlib中平面坐标、极坐标和三维坐标的所有绘图函数