前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件中字的统计及创建字典

文件中字的统计及创建字典

作者头像
MachineLP
发布2022-05-09 14:31:09
8040
发布2022-05-09 14:31:09
举报
文章被收录于专栏:小鹏的专栏

在NLP中,很多都要对字或者单词进行预处理,或者是要创建词典;

例如:tf1: nn实现评论分类

例如:15. tf13: 简单聊天机器人

上面两篇都是对单词的操作,下面提供一份python3下对汉字的操作;

代码中有注释:

代码语言:javascript
复制
import sys

fr = open('xyj.txt', 'r', encoding='UTF-8')

characters = []
stat = {}

for line in fr:
    # 去掉每一行两边的空白
    line = line.strip()

    # 如果为空行则跳过该轮循环
    if len(line) == 0:
        continue

    # 将文本转为unicode,便于处理汉字
    line = str(line)
    # print (line)

    # 遍历该行的每一个字
    for x in range(len(line)):
        # 去掉标点符号和空白符
        if line[x] in [' ', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ';', '“', '”', '……']:
            continue

        # 尚未记录在characters中
        if not line[x] in characters:
            characters.append(line[x])

        # 尚未记录在stat中
        if not line[x] in stat:
            stat[line[x]] = 0
        # 汉字出现次数加1
        stat[line[x]] += 1

print (len(characters))
print (len(stat))

def dict2list(dic:dict):
    ''' 将字典转化为列表 '''
    keys = dic.keys()
    vals = dic.values()
    lst = [(key, val) for key, val in zip(keys, vals)]
    return lst
# lambda生成一个临时函数
# d表示字典的每一对键值对,d[0]为key,d[1]为value
# reverse为True表示降序排序
stat = sorted(dict2list(stat), key=lambda d:d[1], reverse=True)

fw = open('result.csv', 'w', encoding='UTF-8')
for item in stat:
    # 进行字符串拼接之前,需要将int转为str
    # 字典的遍历方式: fw.write(item + ',' + str(state[item]) + '\n')
    # 排完序后是列表
    fw.write(item[0] + ',' + str(item[1]) + '\n')

fr.close()
fw.close()

print ("success!")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档