文本分词排序

复制代码
文本分词
在这个代码的基础上
把英语单词作为一类汉语,作为一类

然后列出选项
1. 大小排序
2. 小大排序
3. 不排序

打印保存

代码

复制代码
import jieba

# 输入文本,让我陪你聊天吧~
lines = []
print("请输入多行文本,以\"2333.3\"结束:")
while True:
    line = input()
    if line == "2333.3":
        break
    lines.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":
        break
    lines.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)  # 文件保存成功提示
相关推荐
啊阿狸不会拉杆3 分钟前
《机器学习导论》第 5 章-多元方法
人工智能·python·算法·机器学习·numpy·matplotlib·多元方法
自不量力的A同学18 分钟前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
wangsir.20 分钟前
测试之自动化测试常用函数
python·测试
Exquisite.20 分钟前
Mysql
数据库·mysql
铁蛋AI编程实战23 分钟前
MemoryLake 实战:构建超长对话 AI 助手的完整代码教程
人工智能·python·microsoft·机器学习
清水白石00828 分钟前
《为什么说 deque 是 Python 滑动窗口的“隐藏神器”?深入解析双端队列的高效之道》
开发语言·python
池央31 分钟前
CANN 诊断工具链深度解析:oam-tools 的自动化故障信息收集、软硬件状态快照与 AI Core 错误溯源机制
运维·人工智能·自动化
kjkdd31 分钟前
5. LangChain设计理念和发展历程
python·语言模型·langchain·ai编程
摘星编程37 分钟前
CANN ops-nn 激活函数算子全解析:从ReLU到GELU的演进与实现
python
全栈前端老曹1 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集