Python 基础练习:演示 jieba 库的分词效果(datetime 库、文件读写、try except、输出字符串的格式化、EOF 的处理)

测试日期:2020/10/2

要求

在终端中运行:

pip install jieba

安装 jieba 分词库。

编写 Python 代码,将需要进行分词的中文文本放入 txt 文件(编码:UTF-8),然后读入文件,输出分词结果。
使用 datetime 库中的函数计量将文件的全部内容读入以及分词需要的时间。
每读取一个文件和每输出一个样例时,都输出文件编号或样例编号(编号均从 1 开始)。
测试文件的格式要求:
1、多个连续的行视为同一组样例。
2、每两个样例之间单独隔一个空行。
3、在最后一个测试样例之后输入三个空行。
若不按照此格式构造测试文件,则会导致不能测试该文件全部的样例。

知识点

库的引用
datetime 库
文件的读写
try except 异常处理语句
输出字符串的格式化
EOF 的处理
UTF-8

代码

import datetime
import jieba

file_id = case_id = 0
sep = '-' * 78 + '\n'

while True:
	try:
		print('Please input the path of the test file: ')
		path = input()

		test_file = open(path, 'rt', encoding = 'utf-8')
		t0 = datetime.datetime.now();
		contents = test_file.readlines()
		t1 = datetime.datetime.now();
		print("\nReading completed. Time elapsed: " + str((t1 - t0).microseconds) + ' us.')

		file_id += 1
		print('\n{0:-^78}\n'.format('File ' + str(file_id)))
		case = ''

		for line in contents:
			if case.endswith('\n\n') == False:
				case += line
			else:
				case_id += 1
				print('----------------Case ' + str(case_id) + ':----------------\n\nIN:\n' + case[0:-1])

				t0 = datetime.datetime.now();
				result = jieba.lcut(case)
				t1 = datetime.datetime.now();
				print("Partition completed. Time elapsed: " + str((t1 - t0).microseconds) + ' us.\n\nOUT:')

				for word in result:
					print(word, end = ' ')
				print('')
				case = line
		print(sep)
	except EOFError:
		print('Exiting...')
		exit(0)

结果

文件1

汉语满级

让你别别别的别别别的你非得别别的!

在乎你的我只在乎我在乎的你是否像在乎你的我在乎我在乎的你一样在乎在乎你的我。

我有一点想点一点一点一点喝。

我不喜欢我喜欢的人喜欢我不喜欢的人。

老七写道老六想起来老五对老四说老三的老二老大了。

你什么意思?什么什么意思?问你什么意思?没什么意思。没什么意思是什么意思?就是意思意思。

大不一样,不大一样,一样不大,不一样大!

我已经上了动车准备上上海上上她。

-客服小姐:小明你是要几等座?
-小明:你们一共有几等?
-客服小姐:特等,一等,二等,等等,二等要多等一等。

你怎么知道我知不知道你知道他知道?

你以为我以为你以为什么?

今天下雨,我骑车差点摔倒,好在我一把把把把住了!

多亏跑了两步,差点没上上上上海的车。

用毒蛇的蛇毒毒毒蛇毒蛇会被毒蛇的蛇毒毒死吗?



结果:

Please input the path of the test file:
D:\0_Study\NLP\Test Materials\普通话分词测试 - 汉语十级.txt

Reading completed. Time elapsed: 0 us.

------------------------------------File 1------------------------------------

----------------Case 1:----------------

IN:
让你别别别的别别别的你非得别别的!

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\ANDYRO~1\AppData\Local\Temp\jieba.cache
Loading model cost 0.621 seconds.
Prefix dict has been built successfully.
Partition completed. Time elapsed: 622719 us.

OUT:
让 你 别别 别的 别别 别的 你 非得 别 别的 !


----------------Case 2:----------------

IN:
在乎你的我只在乎我在乎的你是否像在乎你的我在乎我在乎的你一样在乎在乎你的我。

Partition completed. Time elapsed: 997 us.

OUT:
在乎 你 的 我 只在乎 我 在乎 的 你 是否 像 在乎 你 的 我 在乎 我 在乎 的 你 一样 在乎 在乎 你 的 我 。


----------------Case 3:----------------

IN:
我有一点想点一点一点一点喝。

Partition completed. Time elapsed: 998 us.

OUT:
我 有 一点 想点 一点 一点一点 喝 。


----------------Case 4:----------------

IN:
我不喜欢我喜欢的人喜欢我不喜欢的人。

Partition completed. Time elapsed: 996 us.

OUT:
我 不 喜欢 我 喜欢 的 人 喜欢 我 不 喜欢 的 人 。


----------------Case 5:----------------

IN:
老七写道老六想起来老五对老四说老三的老二老大了。

Partition completed. Time elapsed: 999 us.

OUT:
老七 写道 老六想 起来 老五 对 老四 说 老三 的 老二 老大 了 。


----------------Case 6:----------------

IN:
你什么意思?什么什么意思?问你什么意思?没什么意思。没什么意思是什么意思?就是意思意思。

Partition completed. Time elapsed: 996 us.

OUT:
你 什么 意思 ? 什么 什么 意思 ? 问 你 什么 意思 ? 没什么 意思 。 没什么 意思 是 什么 意思 ? 就是 意思 意思 。


----------------Case 7:----------------

IN:
大不一样,不大一样,一样不大,不一样大!

Partition completed. Time elapsed: 0 us.

OUT:
大不一样 , 不大一样 , 一样 不 大 , 不 一样 大 !


----------------Case 8:----------------

IN:
我已经上了动车准备上上海上上她。

Partition completed. Time elapsed: 998 us.

OUT:
我 已经 上 了 动车 准备 上 上海 上 上 她 。


----------------Case 9:----------------

IN:
-客服小姐:小明你是要几等座?
-小明:你们一共有几等?
-客服小姐:特等,一等,二等,等等,二等要多等一等。

Partition completed. Time elapsed: 999 us.

OUT:
- 客服 小姐 : 小明 你 是 要 几等座 ?
 - 小明 : 你们 一共 有 几 等 ?
 - 客服 小姐 : 特等 , 一等 , 二等 , 等等 , 二等 要 多 等一等 。


----------------Case 10:----------------

IN:
你怎么知道我知不知道你知道他知道?

Partition completed. Time elapsed: 995 us.

OUT:
你 怎么 知道 我 知不知道 你 知道 他 知道 ?


----------------Case 11:----------------

IN:
你以为我以为你以为什么?

Partition completed. Time elapsed: 0 us.

OUT:
你 以为 我 以为 你 以 为什么 ?


----------------Case 12:----------------

IN:
今天下雨,我骑车差点摔倒,好在我一把把把把住了!

Partition completed. Time elapsed: 998 us.

OUT:
今天 下雨 , 我 骑车 差点 摔倒 , 好 在 我 一把 把 把 把住 了 !


----------------Case 13:----------------

IN:
多亏跑了两步,差点没上上上上海的车。

Partition completed. Time elapsed: 999 us.

OUT:
多亏 跑 了 两步 , 差点 没上 上 上 上海 的 车 。


----------------Case 14:----------------

IN:
用毒蛇的蛇毒毒毒蛇毒蛇会被毒蛇的蛇毒毒死吗?

Partition completed. Time elapsed: 996 us.

OUT:
用 毒蛇 的 蛇毒 毒 毒蛇 毒蛇 会 被 毒蛇 的 蛇毒 毒死 吗 ?


------------------------------------------------------------------------------

文件2

科幻小说(一)

在这里插入图片描述结果:

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

文件3

林子祥 - 阿Lam日记

一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
今日我就想同大家讲下耶稣
你未必钟意听不过听左好过无
我知道你地好多个念过定煲
不过听左呢只歌你一定无甘风骚
无论你同你个爱人玩左几耐
你地一定会有足够理由继续相爱
以下几段野系我最近既独白
如果你系有心的人唔好走开
你问我个日中午去左边度
我话乜你甘鬼八你想剃我撇须
我本人钟意去边度就去边度
你试下再问我我就发起牢骚
你一日八过一日你一朝懵过一朝
我叫左你去学比较有用的既野
你就日日坐系REGENT由天光八到夜
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
一讲你自己就烂甘神秘
问多你两问你就指天笃地
你最怕被人知道你去边度飞
我服你真系服到你就五体投地
我唔系怕一万只系怕万一
我跟左你甘耐只系得番一个吉
我讲左甘鬼耐你知唔知我UP过乜
我甘系话你丑样只系话你核突
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
寻晚你又知唔知道我去左边度
我一个傻佬自己走去红勘睇SHOW
坐系我隔离系一个单身美女
到我同巨讲多句就知道有路
我DATE左巨几日就觉得巨老土
虐待我十足好似报仇甘报
我多谢天主上帝令我而家知道
世上几千万人都系你最好
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧



结果:


Reading completed. Time elapsed: 0 us.

------------------------------------File 3------------------------------------

----------------Case 17:----------------

IN:
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
今日我就想同大家讲下耶稣
你未必钟意听不过听左好过无
我知道你地好多个念过定煲
不过听左呢只歌你一定无甘风骚
无论你同你个爱人玩左几耐
你地一定会有足够理由继续相爱
以下几段野系我最近既独白
如果你系有心的人唔好走开
你问我个日中午去左边度
我话乜你甘鬼八你想剃我撇须
我本人钟意去边度就去边度
你试下再问我我就发起牢骚
你一日八过一日你一朝懵过一朝
我叫左你去学比较有用的既野
你就日日坐系REGENT由天光八到夜
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
一讲你自己就烂甘神秘
问多你两问你就指天笃地
你最怕被人知道你去边度飞
我服你真系服到你就五体投地
我唔系怕一万只系怕万一
我跟左你甘耐只系得番一个吉
我讲左甘鬼耐你知唔知我UP过乜
我甘系话你丑样只系话你核突
一于努力一于努力换个对象
一于记住一于记住创新方向
一于努力一于努力留下印象
一于记住一于记住每天向前望
寻晚你又知唔知道我去左边度
我一个傻佬自己走去红勘睇SHOW
坐系我隔离系一个单身美女
到我同巨讲多句就知道有路
我DATE左巨几日就觉得巨老土
虐待我十足好似报仇甘报
我多谢天主上帝令我而家知道
世上几千万人都系你最好
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧
一于记住一于记住无谓分手
一于努力一于努力永不退后
一于记住一于记住再不争斗
一于努力一于努力全部照旧

Partition completed. Time elapsed: 21945 us.

OUT:
一于 努力 一于 努力 换个 对象
 一于 记住 一于 记住 创新 方向
 一于 努力 一于 努力 留下 印象
 一于 记住 一于 记住 每天 向前 望
 一于 努力 一于 努力 换个 对象
 一于 记住 一于 记住 创新 方向
 一于 努力 一于 努力 留下 印象
 一于 记住 一于 记住 每天 向前 望
 今日 我 就 想 同 大家 讲下 耶稣
 你 未必 钟意 听 不过 听 左 好 过 无
 我 知道 你 地 好多个 念过 定煲
 不过 听 左 呢 只 歌 你 一定 无甘 风骚
 无论 你 同 你 个 爱人 玩 左 几耐
 你 地 一定 会 有 足够 理由 继续 相爱
 以下 几段 野系 我 最近 既 独白
 如果 你系 有心 的 人 唔 好 走开
 你 问 我 个 日 中午 去 左边 度
 我话 乜 你 甘鬼 八 你 想 剃 我 撇须
 我 本人 钟意 去 边度 就 去 边度
 你 试下 再 问 我 我 就 发起 牢骚
 你 一日 八过 一日 你 一朝 懵过 一朝
 我 叫 左 你 去 学 比较 有用 的 既野
 你 就 日日 坐系 REGENT 由 天光 八到 夜
 一于 努力 一于 努力 换个 对象
 一于 记住 一于 记住 创新 方向
 一于 努力 一于 努力 留下 印象
 一于 记住 一于 记住 每天 向前 望
 一讲 你 自己 就 烂 甘 神秘
 问多 你 两问 你 就 指天 笃 地
 你 最怕 被 人 知道 你 去 边度 飞
 我服 你 真系 服到 你 就 五体投地
 我 唔 系怕 一万只 系怕 万一
 我 跟 左 你 甘耐 只系 得 番 一个 吉
 我 讲 左甘鬼 耐 你 知 唔 知 我 UP 过 乜
 我 甘系 话 你 丑样 只系 话 你 核突
 一于 努力 一于 努力 换个 对象
 一于 记住 一于 记住 创新 方向
 一于 努力 一于 努力 留下 印象
 一于 记住 一于 记住 每天 向前 望
 寻晚 你 又 知 唔 知道 我 去 左边 度
 我 一个 傻佬 自己 走 去 红 勘 睇 SHOW
 坐系 我 隔离 系 一个 单身 美女
 到 我 同 巨讲 多句 就 知道 有路
 我 DATE 左巨 几日 就 觉得 巨 老土
 虐待 我 十足 好似 报仇 甘报
 我 多谢 天主 上帝 令 我 而家 知道
 世上 几千万 人 都 系 你 最好
 一于 努力 一于 努力 全部 照旧
 一于 记住 一于 记住 无谓 分手
 一于 努力 一于 努力 永不 退后
 一于 记住 一于 记住 再 不 争斗
 一于 努力 一于 努力 全部 照旧
 一于 记住 一于 记住 无谓 分手
 一于 努力 一于 努力 永不 退后
 一于 记住 一于 记住 再 不 争斗
 一于 努力 一于 努力 全部 照旧
 一于 记住 一于 记住 无谓 分手
 一于 努力 一于 努力 永不 退后
 一于 记住 一于 记住 再 不 争斗
 一于 努力 一于 努力 全部 照旧


------------------------------------------------------------------------------

输入 EOF 退出

键入 EOF:
Windows:Ctrl+Z
Linux:Ctrl+D
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/COFACTOR/article/details/108903277