测试日期: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.
--------------------

本文介绍了如何使用Python的jieba库进行中文分词,并结合datetime库、文件读写、异常处理及字符串格式化进行实践。通过编写代码读取含有多个样例的txt文件,对每个样例进行分词并计时,同时处理EOF结束输入的情况。内容涵盖多个Python基础知识,如文件1的'汉语满级',文件2的'科幻小说(一)'和文件3的'林子祥 - 阿Lam日记'的分词结果。
最低0.47元/天 解锁文章
776

被折叠的 条评论
为什么被折叠?



