jieba初步了解

http://www.gowhich.com/blog/147

jieba自带词典:dict.txt

一个词占一行;每一行分三部分,一部分为词语,另一部分为词频,最后为词性(可省略),用空格隔开

例如:词 频率 词性

一不注意 3 i
一不留神 3 i
一专多能 27 l
一世 770 t
一世之雄 2 i
一世英名 3 m
一世龙门 3 i

这篇文档介绍的比较详细:http://www.cnblogs.com/wangtao_20/p/3647240.html

关于中文分词方法的了解:

一、基于词典分词

机械分词:

按照长度优先级不同,分为最大匹配与最小匹配

按匹配方向不同,分为正向匹配与逆向匹配

缺点:缺乏歧义分析处理,切分精度低

基于规则分词方式:

基于统计分词方式:

以上两者可以依赖库也可以不依赖库,与词典分词结合起来用。难以严格区分

实践中,经常以正向匹配方式为主。

依赖于词典的方法,缺点是:没有在词典中出现的词语,就没法作为关键词进行切分(识别新词一般使用统计法)。

二、基于词频统计分词

将文章中任意两个字同时出现的频率进行统计,次数越高的就可能是一个词。

实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。

三、基于规则分词

即基于理解分词

规则法,目前常见的是CRF(Conditional random field, http://en.wikipedia.org/wiki/Conditional_random_field)。具体的实现可参考http://nlp.stanford.edu/software/segmenter.shtml
基于统计和基于规则的分词法是非词典,也就是可以不需要词典的(实际中是多种方式结合,所以会与词典结合)。
基于词典的和不基于词典的两类分词法,有他们各自的优缺点
基于词典的,部署比较简单,只需要安装词库即可。实现也简单,对比查找词语库的思路。
缺点是,分词精度有限,对于词典里没有的词语识别较差。

非词典分词法,优点是,对于出现过的词语识别效果较好,能够根据使用领域达到较高的分词精度。
缺点:实现比较复杂。前期需要做大量的工作。

现实中,没有一种分词方法能够满足所有需求。所以一般都是多种分词方法结合起来使用,相互弥补。

现实中的使用词典来存储大部分关键词,而识别新词使用统计法。最后就是词典+统计法结合起来使用。

既能达到分词精准,又能分词速度快,往往是比较理想的状态。但要求精准就会存在性能消耗。搜索引擎需要在分词速度与分词准确度方面求得平衡。

中文分词一直要解决的两大技术难点为:歧义识别和新词识别(新的人名、地名等)

时间: 2024-12-20 08:39:44

jieba初步了解的相关文章

jieba分词源码阅读

jieba是一个开源的中文分词库,这几天看了下源码,就做下记录. 下载jieba后,tree得到主要部分的目录树结构如下: ├── jieba │   ├── analyse │   │   ├── analyzer.py │   │   ├── idf.txt │   │   ├── __init__.py │   │   ├── textrank.py │   │   └── tfidf.py │   ├── _compat.py │   ├── dict.txt │   ├── final

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

nodejs,webpack安装以及初步运用

nodejs安装: 1.下载:https://nodejs.org/en/download/ 2.安装node-v6.11.3-x64.msi文件,直接默认安装(next--): 3.验证是否完成安装:cmd 进入后输入命令 node -v  回车能得到nodejs版本号: 输入node 回车再输入console.log('aaaaa') 回车能正常显示输出. 这表示nodejs安装成功. webpack安装: 1.npm安装:在f盘新建文件夹webpack,在webpack文件夹建文件夹dem

Github 的注册教程和初步使用体验

我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在github的注册流程及初步使用体验. 我先搜索github,试了好几次才进去官网,但是在手机客户端注册的话比较好进.这是网页注册的界面.使用名不能设成中文,只能使用数字.字母和特殊符号,不能以短横线开头.如果设置的用户名有重复的话也不能设置 如果设置的用户名已经有人使用的话,也是不能设置的. 然后就是

python jieba分词工具

源码地址:https://github.com/fxsjy/jieba 演示地址:http://jiebademo.ap01.aws.af.cm/ 特点 1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析:     b,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义:     c,搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 2,支持繁体分词 3,支持自定义词典 安装 1,Python 2.x 下的安

Unity3D游戏开发初探—2.初步了解3D模型基础

一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被.机械等等,比如一个大楼的3D模型图.3D模型也包括玩具和电脑模型领域. 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.网络游戏.虚拟社区.电子商务.远程教育等等.甚至对于旅游业,3D互联网也能

.NET Core中文分词组件jieba.NET Core

特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析: 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义.具体来说,分词过程不会借助于词频查找最大概率路径,亦不会使用HMM: 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 支持繁体分词 支持添加自定义词典和自定义词 jieba.NET Core 用法 下载代码使用VS 2017 打开,或者使用VS Code 打开项目. 选择jieba.NET 为起始项目,P

python 读写txt文件并用jieba库进行中文分词

python用来批量处理一些数据的第一步吧. 对于我这样的的萌新.这是第一步. #encoding=utf-8 file='test.txt' fn=open(file,"r") print fn.read() fn.close() 在控制台输出txt文档的内容,注意中文会在这里乱码.因为和脚本文件放在同一个地方,我就没写路径了. 还有一些别的操作. 这是文件open()函数的打开mode,在第二个参数中设置.特别需要注意一下.具体还有一些别的细节操作. http://www.jb51