摘要
使用python的jieba切词模块,对文本数据进行分词并统计个数(collections.Counter模块进行统计),这样方便了我们分析数据。要使用jieba模块分词的话,还需要自己建立一个适合自己行业的词性字典,否则切出来的词,很多并不是你想要的。
这次分词的目地就是要查看生产数据库中,发货表中的数据,看看哪些货源发源最多,统计出这些货源的数量
这次切词采用python的jieba切词模块
先把数据从数据库中导到一个txt文本里,然后python打开这文本,用jieba.cut直接切词
再用collections.Counter进行统计,再重新写到文本中保存结果,以便
数据库中导下来的部分数据如下:
棉被
钢板 20-22吨
尼桑阳光事故车
钢构件
地瓜(可免高速费)35吨左右
标识标牌
衣物,家用设备!
空调风机盘管22台共计10个立方
四轮电动车
设备 混凝土搅拌机
果袋 4米2车 大车空车配货也可以 5吨重 7立方 价钱面议
果丹皮
小轿车SUV
猪饲料
酒
食品 现代牧业牛奶
搅拌机
1.2米实木单人床
车
设备 衣服铁架
肥料
设备
肥料
鞋,鞋,鞋
蜜蜂
切词代码:
#!/usr/bin/env python
#coding = utf8
from collections import Counter
import jieba.analyse
import time
bill_path = r'bill.txt'
bill_result_path = r'bill_result.txt'
car_path = 'car.txt'
with open(bill_path,'r') as fr:
data = jieba.cut(fr.read())
data = dict(Counter(data))
with open(bill_result_path,'w') as fw:
for k,v in data.items():
fw.write("%s,%d\n" % (k.encode('utf-8'),v))
切词后的部分数据如下:
机台,137
速腾,30
铅门,1
机及,9
押金,2
以辆,1
遂溪,4
五百个,4
采煤,8
画眉鸟,3
神灯,1
冻肉,499
潮阳,1
体集,1
鹿,3
开封,20
福迪,2
纸张,213
上,242
壁式,7
其实这数据还是有很多问题的,主要是关于词性问题,首先,jieba库的词性标记有点问题,如“西瓜”,它在词性里标的是地名(ns),而不是名词(n),而且我们需要是n词性才对,所以造成很多数据是有问题的,所以,要根据行业特点,制定自己的词性字典,然后再进行切记,就会精准的很多,并在以后使用场景中不停地优化这个字典。关于更多的词性问题,可以查看相关的资料:
jieba相关资料
jieba
"结巴"中文分词:做最好的Python中文分词组件 "Jieba"
Feature
支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
支持繁体分词
支持自定义词典
jieba更多资料:
https://github.com/fxsjy/jieba/tree/jieba3k