• 文本分词2.0


    修改的代码包括

    文本分词,去重词语和竖排,并且打印原文和分词后的结果
    
    input写入多行文本 233.3结束
    随后:分词 去重 删除空行
    .join 每行保存一个词语
    将文本保存txt
    /storage/emulated/0/数据中心/txt/
    文件夹📁没有就新建 print控制台和保存txt
    
    保存的文件命名规则:
    input手动输入(文件名).txt
    如果输入的是空值或者回车,
    则:编号. 第1个分词词语 时间戳
    
    结巴分词啊 还有不要以展现列表的方式啊
    .join 去除列表各种符号
    
    打印原文
    打印分词
    保存为一个文件
    
    在这个代码的基础上
    把英语单词作为一类汉语,作为一类
    
    然后列出选项
    1. 大小排序
    2. 小大排序
    3. 不排序
    
    打印保存
    
    要可爱优雅诙谐机智注释
    增加选项呗
    
    保留原始大小写,
    英语单词将转换为小写形式
    默认1
    
    原来的注释给我
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    这是代码

    重新修改了代码,并添加了更详细的注释,查看以下代码:

    import jieba
    
    # 输入文本,让我陪你聊天吧~
    lines = []
    print("请输入多行文本,以\"233.3\"结束:")
    while True:
        line = input()
        if line == "233.3":
            break
        lines.append(line)
    
    # 对每行文本进行分词和去重,将文字拆拆拆~
    words = []
    for line in lines:
        seg_list = jieba.cut(line)  # 使用jieba库进行分词
        for word in seg_list:
            words.append(word)  # 添加分词的结果
    
    # 去重处理
    new_words = list(set(words))
    
    # 将英文单词转换为小写形式
    new_words = [word.lower() if word.isalpha() else word for word in new_words]
    
    # 列出排序选项
    print("\n请选择排序方式:")
    print("1. 大小排序")
    print("2. 小大排序")
    print("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("\n请输入文件名(不需要加后缀):")
    if file_name.strip() == "":
        file_name = "编号. 第1个分词词语 时间戳"
        
    file_path = "/storage/emulated/0/数据中心/txt/" + file_name + ".txt"   
    
    try:
        # 写入文件
        with open(file_path, "w", encoding="utf-8") as f:
            # 写入原文
            f.write("原文:\n")
            f.write("\n".join(lines) + "\n")
        
            # 写入分词结果
            f.write("\n分词结果:\n")
            f.write("\n".join(new_words))
            
        print("\n文件保存成功!路径:%s" % file_path)  # 文件保存成功提示
    except Exception as e:
        print("\n文件保存失败:%s" % str(e))  # 文件保存失败提示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69

    图片

    在这里插入图片描述

    添加排序方式

    按字数统计排序
    
    • 1

    非常抱歉,我之前的回答并没有完全理解您的需求。以下是根据您的要求进行修改后的代码:

    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)  # 添加分词的结果
    
    # 去重处理
    new_words = list(set(words))
    
    # 将英文单词转换为小写形式
    new_words = [word.lower() if word.isalpha() else word for word in new_words]
    
    # 统计每个词语的字数
    word_lengths = {word: len(word) for word in new_words}
    
    # 根据字数进行排序
    sorted_words = sorted(word_lengths.items(), key=lambda x: x[1])
    
    # 列出排序选项
    print("\n请选择排序方式:")
    print("1. 大小排序")
    print("2. 小大排序")
    print("3. 不排序")
    print("4. 按字数统计排序")
    option = input("请选择选项(输入对应数字1/2/3/4):")
    
    # 根据选项进行排序
    if option == "1":
        sorted_words = sorted_words  # 默认不排序
    elif option == "2":
        sorted_words = sorted_words[::-1]  # 反向排序
    elif option == "3":
        sorted_words = list(word_lengths.items())  # 不排序
    elif option != "4":
        print("无效选项!默认按字数统计排序。")  # 默认按字数统计排序
    
    # 打印原文和分词结果
    print("原文:")
    for line in lines:
        print(line)
    
    print("\n分词结果:")
    for word, length in sorted_words:
        print(word)
    
    # 保存为txt文件
    file_name = input("\n请输入文件名(不需要加后缀):")
    if file_name.strip() == "":
        file_name = "编号. 第1个分词词语 时间戳"
    
    file_path = "/storage/emulated/0/数据中心/txt/" + file_name + ".txt"
    
    try:
        # 写入文件
        with open(file_path, "w", encoding="utf-8") as f:
            # 写入原文
            f.write("原文:\n")
            f.write("\n".join(lines) + "\n")
    
            # 写入分词结果
            f.write("\n分词结果:\n")
            for word, length in sorted_words:
                f.write(word + "\n")
    
        print("\n文件保存成功!路径:%s" % file_path)  # 文件保存成功提示
    except Exception as e:
        print("\n文件保存失败:%s" % str(e))  # 文件保存失败提示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    头条文章_signature
    学习java之前端知识掌握Day004
    Python3的安裝
    Windows11 python3.12 安装pyqt6 pyqt6-tools
    关于 ue unreal 虚幻 在编辑器editor未运行情况下 部分材质出现模糊 看不清的问题 的另外一种解决方案猜想
    Level-based Foraging 多智能体游戏仿真环境
    瑞吉外卖实战项目全攻略——优化篇第一天
    新电脑U盘安装重装系统Win10步骤图解
    WPF实现类似ChatGPT的逐字打印效果
    幸福心理与抗逆力培养的工控系统安全实验课程研究
  • 原文地址:https://blog.csdn.net/weixin_73675558/article/details/133578531