结巴分词

jieba库

倖福魔咒の 提交于 2019-12-01 05:05:11
jieba “结巴”中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module. Scroll down for English documentation. 特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 MIT 授权协议 算法 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法 主要功能 分词 jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型 jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型

Swoole加速结巴分词

老子叫甜甜 提交于 2019-11-30 13:16:08
中文分词 对于英文句子来说,可以通过 空格 来切分单词,如 // 今天天气不错 the weather is nice today 可以很简单的把该句子中的单词区分出来 the/weather/is/nice/today 在中文里面,就没有那么方便的区分方法了。当然,如果你习惯这样说话: 今天 天气 不错 大家也不会打你,只会觉得你像个 “结巴” (点题了!) 为什么需要分词? 在中文里面的 字 和 英文单词 是两个不同的东西。在读书的时候,最痛苦的一件事就是学习文言文,我想了一下,有大于等于三个原因: 不知道在哪里断句 字或词的含义很多 这个字是通假字(它不是这个它,它是那个它),或者说纯粹就是写错了,但是细想一下也能读的通。 我们常说中文博大精深,历史原因就不细究了,简单来说就是,我们的祖先在中文上的造诣非常高,好几层楼那么高,研究非常透彻,一句话能说出几个意思。我们自小在中文环境下成长,经过千锤百炼,读写是没问题的,但是计算机要怎么理解一句话呢?先从分词开始。 计算机学习分词的过程,和人类是很像的(或许这是局限性),目前有几种: 基于字符串匹配。按一定的策略在一个已分好词的大词典中搜寻,若找到则视为一个词。 统计。大量已经分词的文本,利用统计机器学习模型学习词语切分的规律(训练),从而实现对未知文本的切分。 组合。结合1、2点,如 结巴分词 。 我们学习中文的时候

Python 结巴分词 + Word2Vec利用维基百科训练词向量

流过昼夜 提交于 2019-11-28 18:21:43
结巴分词 是一个跨语言的中文分词器,整体效果还算不错,功能也够用,这里直接用Python了,其他主流语言版本均有提供。 Word2Vec,起源于谷歌的一个项目,在我刚开始接触的时候就关注到了他的神奇,大致是通过深度神经网络把词映射到N维空间,处理成向量之后我们终于可以在自然语言处理上方便的使用它进行一些后续处理。 Python的 gensim 库中有 word2vec 包,我们使用这个就可以了,接下来我们就对维基百科进行处理,作为训练集去训练。(包地址: http://radimrehurek.com/gensim/models/word2vec.html ) 本文参考: http://www.52nlp.cn/中英文维基百科语料上的word2vec实验 处理 使用维基百科的数据很方便,一是Wiki给我们提供了现成的语料库(听说是实时更新的),虽然中文体积不大,但比起自己爬来方便了不少。 如果使用英文那就更棒了,非常适合作为语料库。 当然只是说在通用的情况下,在专业词汇上,经过测试效果比较一般(考虑到专业词库有专业wiki,以及中文词条本身也不太多)。 首先,我们把Wiki处理成Text格式待处理的文本,这一步在本文参考中有现成的代码。 process_wiki_data.py #!/usr/bin/env python # -*- coding: utf-8 -*- #

Python中文分词组件 jieba

我与影子孤独终老i 提交于 2019-11-28 05:46:30
jieba "结巴"中文分词:做最好的Python中文分词组件 "Jieba" Feature 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 在线演示 http://jiebademo.ap01.aws.af.cm/ (Powered by Appfog) Python 2.x 下的安装 全自动安装:easy_install jieba 或者 pip install jieba 半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install 手动安装:将jieba目录放置于当前目录或者site-packages目录 通过import jieba 来引用 (第一次import时需要构建Trie树,需要几秒时间) Python 3.x 下的安装 目前master分支是只支持Python2.x 的 Python3.x 版本的分支也已经基本可用: https://github.com/fxsjy/jieba/tree/jieba3k git clone https://github

elasticsearch教程--中文分词器作用和使用

喜你入骨 提交于 2019-11-27 10:59:46
目录 概述 环境准备 认识中文分词器 常用的中文分词器 IK Analyzer hanlp中文分词器 彩蛋 概述 上一篇博文记录了 elasticsearch插件安装和管理 , 在地大物博的祖国使用es,不得不考虑中文分词器,es内置的分词器对中文分词的支持用惨不忍睹来形容不为过,看这篇博文之前,建议先看一下博文 elasticsearch分词器 ,对分词器有个初步理解。本文将记录一下项目中如何使用选用和使用中文分词器的,希望能够帮助到即将来踩坑的小伙伴们,欢迎批评指正 本文都是基于 elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 全新最小化安装的centos 7.5 elasticsearch 6.4.0 认识中文分词器 在博文 elasticsearch分词器 中提到elasticsearch能够快速的通过搜索词检索出对应的文章归功于倒排索引,下面通过中文举例看看倒排索引。 中文分词器作用以及效果 中文分词器是做什么的呢? what? 通过名字就知道了啊,为什么还要问。。。下面通过三个文档示例,看看它是如何分词的 文档1: 我爱伟大的祖国 文档2: 祝福祖国强大繁盛 文档3: 我爱蓝天白云 经过中文分词器,以上文档均会根据分词规则,将文档进行分词后的结果如下:

简单的中文分词和词向量化

霸气de小男生 提交于 2019-11-26 03:36:06
**在做分词前需要做的准备: ** (1):已经预处理过的需要分词的语料(需要分词的语料要符合结巴分词的要求,每句一行,并且以句号做结尾) (2):需要一份相关方面的词典用于更加专业化的分词,单纯的使用结巴分词不能很好的分出你需要的词,会影响到你以后词向量化阶段。 (3):需要一份停用词表,因为结巴分词不能很好的把一些没有实际意义的词去掉,这样此会影响到后面词向量化阶段。停用词表的作用就是去掉一些没有意义的词语,单字,或者特殊符号。主要你需要去掉的东西,你把它写在停用词表中就可以。停用词表可以在网上下载,停用词表一般分为很多种,有专门的中文停用词表。在做分词的时候看需要下载,一般下载一个比较全的停用词表就行(停用词表一般包括特殊符号和中文一些无意义词)。 此处需要注意,在保存停用词表的时候注意保存为编码格式utf-8的格式储存为txt格式. 开始分词: 代码如下 import codecs import jieba infile = 'date_open_yuliao.txt' ##你需要分词的语料的文件名 outfile = 'data_open_yuliaochuli2.txt' ##分词完成后保存的文件名 jieba . load_userdict ( "data_open_dict.txt" ) ##用结巴加载你准备好的专用分词的词典 descsFile = codecs