当前位置: 首页 >服务端 > python jieba词频统计

python jieba词频统计

要实现中文分词功能,大家基本上都是在使用 jieba 这个库来实现,下面就看看怎样实现一个简单文本分词功能。

安装

python的工具,安装当然是使用pip安装了。

pip install jieba

使用

先看一个小例子,下面的代码是从一个文本文件中分词并统计出现频率最高的10个单词,并打印到控制台。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import jieba

import jieba.analyse

import codecs

import re

from collections import Counter

class WordCounter(object):

def count_from_file(self, file, top_limit=0):

with codecs.open(file, 'r', 'utf-8') as f:

content = f.read()

content = re.sub(r'\s+', r' ', content)

content = re.sub(r'\.+', r' ', content)

retu self.count_from_str(content, top_limit=top_limit)

def count_from_str(self, content, top_limit=0):

if top_limit <= 0:

top_limit = 100

tags = jieba.analyse.extract_tags(content, topK=100)

words = jieba.cut(content)

counter = Counter()

for word in words:

if word in tags:

counter[word] += 1

retu counter.most_common(top_limit)

if __name__ == '__main__':

counter = WordCounter()

result = counter.count_from_file(r'/tmp/abc.txt', top_limit=10)

for k, v in result:

print k, v

代码说明:

代码首先从一个文本文件读入文本,并作了一些简单的替换,比如替换多个空格为单空格等。

使用关键词提取功能,提取权重最高的10个关键词。

使用精确模式对文件内容分词。

根据关键词和分词结果,统计词频。

排序并返回词频最高的单词和出现次数。

多说两句

分词模式

jieba 分词有三种模式:精确模式、全模式和搜索引擎模式,且分词结果返回的是一个生成器。:

精确模式: jieba.cut(str) 默认实现。

全模式: jieba.cut(str, cut_all=True) 全模式是把文本分成尽可能多的词。

搜索引擎模式: jieba.cut_for_search(str, cut_all=True)

关键词提取功能

jieba提供了关键词提取功能,使用方法如下:

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

sentence 为待提取的文本

topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20

withWeight 为是否一并返回关键词权重值,默认值为 False

allowPOS 仅包括指定词性的词,默认值为空,即不筛选

使用并行分词模式

# 开启并行分词模式,参数为并发执行的进程数

jieba.enable_parallel(5)

# 关闭并行分词模式

jieba.disable_parallel()

使用用户字典分词

jieba.load_userdict('user_dict.txt')

作者:weixin_39871378
来源链接:https://blog.csdn.net/weixin_39871378/article/details/110697869

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/69166.html

标签:jieba Python
分享给朋友: