文本分词,去重词语和竖排,并且打印原文和分词后的结果
input写入多行文本 233.3结束
随后:分词 去重 删除空行
.join 每行保存一个词语
将文本保存txt
/storage/emulated/0/数据中心/txt/
文件夹📁没有就新建 print控制台和保存txt
保存的文件命名规则:
input手动输入(文件名).txt
如果输入的是空值或者回车,
则:编号. 第1个分词词语 时间戳
结巴分词啊 还有不要以展现列表的方式啊
.join 去除列表各种符号
打印原文
打印分词
保存为一个文件
在这个代码的基础上
把英语单词作为一类汉语,作为一类
然后列出选项
1. 大小排序
2. 小大排序
3. 不排序
打印保存
要可爱优雅诙谐机智注释
增加选项呗
保留原始大小写,
英语单词将转换为小写形式
默认1
原来的注释给我
重新修改了代码,并添加了更详细的注释,查看以下代码:
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)) # 文件保存失败提示

按字数统计排序
非常抱歉,我之前的回答并没有完全理解您的需求。以下是根据您的要求进行修改后的代码:
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)) # 文件保存失败提示

