内容简介:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kongxx/article/details/85107871
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kongxx/article/details/85107871
要实现中文分词功能,大家基本上都是在使用 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) return 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 return 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')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 基于 Hadoop 对武侠小说进行词频分析
- 微信小程序数据统计和错误统计的实现
- 机器学习数学基础:数理统计与描述性统计
- Java8中使用stream进行分组统计和普通实现的分组统计的性能对比
- RecyclerView 的曝光统计
- MongoDB 分组统计
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java技术手册(第6版)
Benjamin J Evans、David Flanagan / 安道 / 人民邮电出版社 / 2015-12-1 / 79.00
《Java技术手册 第6版》为《Java 技术手册》的升级版,涵盖全新的Java 7 和Java 8。第1部分介绍Java 编程语言和Java 平台,主要内容有Java 环境、Java 基本句法、Java 面向对象编程、Java 类型系统、Java的面向对象设计、Java 实现内存管理和并发编程的方式。第2部分通过大量示例来阐述如何在Java 环境中完成实际的编程任务,主要内容有编程和文档约定,使......一起来看看 《Java技术手册(第6版)》 这本书的介绍吧!