当前位置: 首页 > 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)  # 文件保存成功提示

相关文章:

文本分词排序

文本分词 在这个代码的基础上 把英语单词作为一类汉语,作为一类然后列出选项 1. 大小排序 2. 小大排序 3. 不排序打印保存代码 import jieba# 输入文本,让我陪你聊天吧~ lines [] print("请输入多行文本,以\"2333.3\"结束&am…...

SQL与关系数据库基本操作

SQL与关系数据库基本操作 文章目录 第一节 SQL概述一、SQL的发展二、SQL的特点三、SQL的组成 第二节 MySQL预备知识一、MySQL使用基础二、MySQL中的SQL1、常量(1)字符串常量(2)数值常量(3)十六进制常量&…...

【2023年11月第四版教材】第18章《项目绩效域》(第一部分)

第18章《项目绩效域》(第一部分) 1 章节内容2 干系人绩效域2.1 绩效要点2.2 执行效果检查2.3 与其他绩效域的相互作用 3 团队绩效域3.1 绩效要点3.2 与其他绩效域的相互作用3.3 执行效果检查3.4 开发方法和生命周期绩效域 4 绩效要点4.1 与其他绩效域的相…...

Docker启动Mysql

如果docker里面没有mysql需要先pull一个mysql镜像 docker pull mysql其中123456是mysql的密码 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql可以使用如下命令进入Mysql的命令行界面 docker exec -it mysql bash登录mysql使用如下命令,root是…...

QScrollArea样式

简介 QScrollBar垂直滚动条分为sub-line、add-line、add-page、sub-page、up-arrow、down-arrow和handle几个部分。 QScrollBar水平滚动条分为sub-line、add-line、add-page、sub-page、left-arrow、right-arrow和handle几个部分。 部件如下图所示: 样式详…...

【gitlab】git push -u origin master 报403

问题描述 gitlab版本:14.0.5 虚拟机版本:centos7 项目:renren-fast 原因分析 .git -> config目录下 url配错 但这个url不是手动配置的,还不知道怎么生成。 解决方法 把配置错误的url改成gitlab的project的url 这样&#…...

第二篇:矩阵的翻转JavaScript

一维数组的翻转 // 一维矩阵翻转 // 实例&#xff1a; arr [1,2,3,4,5] > [5,4,3,2,1] let n readline() let arr readline().split( ).map(Number) // console.log(n,arr) let temp 0 for(let i 0; i < n/2;i){temp arr[i]arr[i] arr[n-i-1]arr[n-i-1] temp }…...

代码随想录算法训练营第五十七天 | 动态规划 part 15 | 392.判断子序列、115.不同的子序列

目录 392.判断子序列思路代码 115.不同的子序列思路代码 392.判断子序列 Leetcode 思路 dp[i][j] 表示以下标i-1为结尾的字符串s&#xff0c;和以下标j-1为结尾的字符串t&#xff0c;相同子序列的长度为dp[i][j]递推公式&#xff1a; 初始化&#xff1a;为0遍历顺序&#xff…...

【国漫逆袭】人气榜,小医仙首次上榜,霍雨浩排名飙升,不良人热度下降

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 为了提升作品和角色的讨论度&#xff0c;增加平台的用户活跃度&#xff0c;小企鹅推出了动漫角色榜&#xff0c;该榜单以【年】【周】【日】为单位&#xff0c;通过角色的点赞量和互动量进行排名 上周的动漫角…...

国庆中秋特辑(七)Java软件工程师常见20道编程面试题

以下是中高级Java软件工程师常见编程面试题&#xff0c;共有20道。 如何判断一个数组是否为有序数组&#xff1f; 答案&#xff1a;可以通过一次遍历&#xff0c;比较相邻元素的大小。如果发现相邻元素的大小顺序不对&#xff0c;则数组不是有序数组。 public boolean isSort…...

长剖与贪心+树上反悔贪心:1004T4

长剖的本质是一种贪心。&#xff08;启发式合并本质也是类似哈夫曼树的过程&#xff09; 在此题中&#xff0c;首先肯定变直径&#xff0c;然后选端点为根。然后选叶子。而每个叶子为了不重复计算&#xff0c;可以只计算其长剖后所在链的贡献。&#xff08;本题精髓&#xff0…...

二叉树经典例题

前言&#xff1a; 本文主要讲解了关于二叉树的简单经典的例题。 因为二叉树的特性&#xff0c;所以关于二叉树的大部分题目&#xff0c;需要利用分治的思想去递归解决问题。 分治思想&#xff1a; 把大问题化简成小问题&#xff08;根节点、左子树、右子树&#xff09;&…...

什么是指针的指针和指向函数的指针?

理解指针的指针和指向函数的指针对于C语言初学者来说可能会有些挑战&#xff0c;但它们都是非常重要的概念&#xff0c;可以帮助你更好地理解和利用C语言的强大功能。在本文中&#xff0c;我将详细解释这两个概念&#xff0c;包括它们的概念、用途和示例。 指针的指针&#xf…...

多个excel合并

目的&#xff1a;将同一个文件下的多个 “京东差评.xlsx” 合并为一个&#xff1a;“京东汇总.xlsx" 代码如下&#xff1a; # -*- coding: utf-8 -*- """ Created on Wed Oct 4 12:52:32 2023author: 64884 """import pandas as pd impor…...

Integrity Plus for Mac,保障网站链接无忧之选

在如今数字化的时代&#xff0c;网站链接的完整性对于用户体验和搜索引擎排名至关重要。如果您是一位网站管理员或者经常需要检查网站链接的人&#xff0c;那么Integrity Plus for Mac&#xff08;Integrity Plus&#xff09;将成为您最好的伙伴。 Integrity Plus是一款专业的…...

C#,数值计算——Sobol拟随机序列的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { /// <summary> /// Sobol quasi-random sequence /// </summary> public class Sobol { public Sobol() { } public static void sobseq(int n,…...

以太网协议介绍(ARP、UDP、ICMP、IP)

以太网协议介绍 一、ARP协议 请求&#xff1a; 应答&#xff1a; ARP协议&#xff1a; 0x0001 0x0800 6 4硬件类型&#xff1a;2个字节&#xff0c;arp协议不仅能在以太网上运行还能在其他类型的硬件上运行。以太网用1来表示&#xff1b; 协议类型&#xff1a;两字节。指的是a…...

【C++】STL详解(十)—— 用红黑树封装map和set

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…...

Android学习之路(17) Android Adapter详解

Adapter基础讲解 本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的&#xff0c;了解并学会使用这个Adapter很重要&#xff0c; Adapter是用来帮助填充数据的中间桥梁&#xff0c;简单点说就是&#xff1a;将各种数据以合适的形式显示到view上,提供 给用户看…...

实验室超声波萃取技术的原理和特点是什么?

梵英超声(fanyingsonic)实验室超声波清洗机 超声波萃取中药材的优越性源于超声波的特殊物理性质。通过压电换能器产生的快速机械振动波&#xff0c;超声波可减少目标萃取物与样品基体之间的作用力&#xff0c;从而实现固液萃取分离。 &#xff08;1&#xff09;加速介质质点运…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...