目录
1.输入输出基础
2.NLP任务的基本步骤
3.json序列化与实战
4.总结
1.输入输出基础
input()函数暂停程序运行,同时等待键盘输入;
print()函数接受字符串、数字、字典,列表甚至一些自定义的输出。
2.NLP任务的基本步骤
2.1 读取文件
2.2 去除所有的标点符号和换行符,并把所有大写变成小写
2.3 合并相同的词,统计每个词出现的频率,并按照词频从大到小排序
2.4 将结果按行输出到文件out.txt
import re
# 你不用太关心这个函数
def parse(text):
# 使用正则表达式去除标点符号和换行符
text = re.sub(r'[^\w ]', ' ', text)
# 转为小写
text = text.lower()
# 生成所有单词的列表
word_list = text.split(' ')
# 去除空白单词
word_list = filter(None, word_list)
# 生成单词和词频的字典
word_cnt = {}
for word in word_list:
if word not in word_cnt:
word_cnt[word] = 0
word_cnt[word] += 1
# 按照词频排序
sorted_word_cnt = sorted(word_cnt.items(), key=lambda kv: kv[1], reverse=True)
return sorted_word_cnt
with open('in.txt', 'r') as fin:
text = fin.read()
word_and_freq = parse(text)
with open('out.txt', 'w') as fout:
for word, freq in word_and_freq:
fout.write('{} {}\n'.format(word, freq))
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9cmTykleaVHbHRGcs5mYox2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzYjM2ITOxcTM4ITNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
3.json序列化与实战
json是一种轻量级的数据交换格式,把它理解为两种黑箱
第一种,输入一些信息,输出一个字符串
第二种,输入这个字符串,可以输出 包含原始信息的python字典
json.dumps()这个函数,接受python的基本数据类型,然后将其序列化为string
面json.load()这个函数,接受一个合法字符串,然后其反序列化为python的基本数据类型。
4.总结
I/O操作需要谨慎,一定要进行充分的错误处理,并细心编码,防止出现编码漏洞
编码时,对内存占用和磁盘占用要有充分的估计,这样在出错时可以更容易找到原因
json序列化是很方便的工具,要结合实战多多练习
代码要简洁。