好用的Python中文分词组件——jieba分词

之前有个小伙伴做作家文风分析,大概就是将作家的文章做处理,然后分析作家的写作风格和一些细节上的习惯,显然首先要做的就是将所有文章都分成一个个词然后进行统计,手动分词的话显然是个很复杂的工程,想起来之前看过搜索引擎分词相关的文章,所以就去找了下python分词相关的东西,果然找到了一个非常好用的库——jieba。

照例先上官方文档,里面有详细的安装方法和简单的介绍和演示,下面就以莫言《红高粱》为例看一下jiaba分词的效果。思路就是将文章进行分解,将每一个词都存到数据库中然后进行分析。

# -*- coding:UTF-8 -*-
import pymysql
#导入jieba词性标注
from jieba import  posseg 


db_config ={
    'host': '127.0.0.1',
    'port': 3306,
    'user': 'root',
    'password': 'root',
    'db': 'compword',
    'charset': 'utf8'
}
connection = pymysql.connect(**db_config)

with open(r'G:\testData\red.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        words = posseg.cut(line.strip())
        with connection.cursor() as cursor:
            sql = 'insert into words(word, flag) values(%s, %s)'
            for word in words:
                cursor.execute(sql, (word.word, word.flag))
        connection.commit()

connection.close()

上面的代码就是将存在G盘的文章一行一行地读取并去掉空格进行分词并以词性标注,然后存入数据库,主要语句就是

words = posseg.cut(line.strip())

然后再用上次介绍到的plotly做图形,代码及效果图如下:

import pandas
import plotly as py
import plotly.graph_objs as go
import pymysql

py.tools.set_credentials_file(username='venidi', api_key='***********')

db_config ={
    'host': '127.0.0.1',
    'port': 3306,
    'user': 'root',
    'password': 'root',
    'db': 'compword',
    'charset': 'utf8'
}
connection = pymysql.connect(**db_config)

with connection.cursor() as cursor:
    sql = 'select flag,count(*) from words GROUP BY flag'
    cursor.execute(sql)
    rows = cursor.fetchall()

# 使用Pandas中的DataFrame处理便于plotly的使用,转换成DataFarame的格式,类似二维表
df = pandas.DataFrame([[ij for ij in i] for i in rows])
df.rename(columns={0: 'flag', 1: 'count'}, inplace=True)

trace1 = go.Bar(
    x=df['flag'],
    y=df['count']
)

data = [trace1]
# 离线形式存储形成的图表
py.offline.plot(data, filename='g:/test2.html')

结果如下,各词性使用数量


各词性词的使用量.png

连词使用量

import pandas
import plotly as py
import plotly.graph_objs as go
import pymysql

py.tools.set_credentials_file(username='venidi', api_key='**********')

db_config ={
    'host': '127.0.0.1',
    'port': 3306,
    'user': 'root',
    'password': 'root',
    'db': 'compword',
    'charset': 'utf8'
}
connection = pymysql.connect(**db_config)

with connection.cursor() as cursor:
    sql = 'select word,count(*) from words where flag = "c" GROUP BY word '
    cursor.execute(sql)
    rows = cursor.fetchall()

# 使用Pandas中的DataFrame处理便于plotly的使用,转换成DataFarame的格式,类似二维表
df = pandas.DataFrame([[ij for ij in i] for i in rows])
df.rename(columns={0: 'word', 1: 'count'}, inplace=True)

trace1 = go.Scatter(
    x=df['word'],
    y=df['count'],
    mode = 'markers'
)

data = [trace1]
# 离线形式存储形成的图表
py.offline.plot(data, filename='g:/test.html')

结果:


连词使用量.png

好了,大概就是这样了,另外关于中文信息处理分析啥的我不太懂,就是听小伙伴转述,有不对的地方还请见谅,文章中有错误的话欢迎大家指正O(∩_∩)O。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,167评论 1 25
  • 注:参考文档 一、在线词云图工具# (1)、使用### 在正式使用jieba分词之前,首先尝试用在线分词工具来将自...
    DearIreneLi阅读 6,027评论 1 8
  • 关键词: 中文分词;分词;自然语言处理;中文语料 最近要做中文自然语言处理相关任务,牵涉到使用中文分词工具和相关算...
    generalz阅读 7,322评论 0 15
  • 转载请注明:终小南 » 中文分词算法总结 什么是中文分词众所周知,英文是以 词为单位的,词和词之间是靠空格隔开,而...
    kirai阅读 9,816评论 3 24
  • 宗功祖泽,木本水源。杨氏世德,流长源远。 系出弘农,绍始轩辕。皇祖世胄,姬姓绵延。 杨侯得姓,武王嫡传。汉儒震公,...
    江淮述林阅读 710评论 0 0