中文分词

最近接触了下数据方面的东西,先是爬了大量的数据,进而作数据分析。比如就某一字段,某个关键词在其中出现的频数做个统计。一开始,运用sql like操作符即可实现,但这种匹配查询挺耗费时间的。

在网上搜索了下,了解到中文分词技术,其中有个叫jieba分词的。结巴分词是国内程序员用Python开发的一个中文分词模块,它的源码下载地址:https://github.com/fxsjy/jieba

它的特点:
  • 支持三种分词模式
    • 精确模式,试图将句子最精确地切开,适合文本分析; cut_all=False
    • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; cut_all=True
    • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • 支持繁体分词
  • 支持自定义词典
  • MIT授权协议
安装jieba

推荐使用pip安装jieba组件

pip install jieba
代码示例
# encoding=utf-8
import jieba

sentence  = "大数据分析师,分析数据的时候。"
# 精确模式
words = jieba.cut(sentence, cut_all=False)  
print ("|".join(words))

#全局模式
words = jieba.cut(sentence, cut_all=True)

#搜索引擎模式
words = jieba.cut_for_search(sentence)  
输出结果
全模式:
大数|数据|数据分析|分析|分析师|||分析|数据|的|时候||
精确模式:
大|数据|分析师|,|分析|数据|的|时候|。
搜索引擎模式:
大|数据|分析|分析师|,|分析|数据|的|时候|。
python操作mysql数据库

MySQLdb是Python用以连接Mysql数据库的模块,首先要确定已经安装了MySQLdb 模块。在mac下安装使用pip install mysql-python。创建好数据库users、user表和自定义的词典dict.txt。

词典格式:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。

# encoding=utf-8

import MySQLdb
import jieba

# 打开数据库连接
db = MySQLdb.connect('localhost',"root","123123","users")
cursor = db.cursor()

# SQL查询语句
sql = "select uname from user"

# 载入事先写好的自定义的词典
jieba.load_userdict("dict.txt")

try:
    cursor.execute(sql)   # 执行SQL语句
    results = cursor.fetchall()    # 获取所有记录
    for row in results:
        name = row[1]
        seglist = jieba.cut(name. cut_all=False)
        for seg in seglist:
            print seg
except:
    pass
finally:
    db.close()   # 关闭数据库连接
    原文作者:诺馨
    原文地址: https://www.jianshu.com/p/402ea0d49c36
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞