中文分词

Python3 jieba分词

北城以北 提交于 2019-12-02 17:15:25
参考文章: Github上的项目———jieba 中文分词 对于NLP(自然语言处理)来说,分词是一步重要的工作,市面上也有各种分词库, 11款开放中文分词系统比较 。 1.基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法) 2.基于统计:基于词频度统计的分词方法; 3.基于规则:基于知识理解的分词方法。 第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。 第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。 jieba分词,完全开源,有集成的python库,简单易用。 jieba分词是基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG),动态规划查找最大概率路径, 找出基于词频的最大切分组合 安装jieba 在安装有python3 和 pip 的机子上,安装jieba库很简单,使用pip即可: pip install jieba jieba分词特性 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式

Elasticsearch:IK中文分词器

∥☆過路亽.° 提交于 2019-12-02 14:34:36
Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze { "text": "我爱北京天安门", "analyzer": "standard" } 如果我们使用的是standard的分词器,那么结果就是: { "tokens" : [ { "token" : "我", "start_offset" : 0, "end_offset" : 1, "type" : "<IDEOGRAPHIC>", "position" : 0 }, { "token" : "爱", "start_offset" : 1, "end_offset" : 2, "type" : "<IDEOGRAPHIC>", "position" : 1 }, ... { "token" : "门", "start_offset" : 6, "end_offset" : 7, "type" : "<IDEOGRAPHIC>", "position" : 6 } ] } 显然这对中文来说并不友好,它显示的每一个汉字。好在Elastic的大拿medcl已经为我们做好IK中文分词器。下面我们来详细介绍如何安装并使用中文分词器。具体的安装步骤可以在地址 https://github.com/medcl/elasticsearch-analysis-ik 找到

Python分布式爬虫必学框架scrapy打造搜索引擎✍✍✍

夙愿已清 提交于 2019-12-02 05:57:38
Python分布式爬虫必学框架scrapy打造搜索引擎 Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 1、创建搜索自动补全字段suggest 自动补全需要用到一个字段名称为 suggest类型为Completion类型的一个字段 所以我们需要用将前面的 elasticsearch-dsl操作elasticsearch(搜索引擎)增加suggest类型为Completion 注意:因为 elasticsearch-dsl源码问题,设置字段为Completion类型指定分词器时会报错,所以我们需要重写CustomAnalyzer类 只有 Completion类型才是,其他类型不用,其他类型直接指定分词器即可 #!/usr/bin/env python from datetime import datetime from elasticsearch_dsl import DocType, Date, Nested, Boolean, \ analyzer, InnerObjectWrapper, Completion, Keyword, Text, Integer # 更多字段类型见第三百六十四节 elasticsearch( 搜索引擎 ) 的 mapping 映射管理 from

自然语言处理从小白到大白系列(6)说说中文分词那些事

橙三吉。 提交于 2019-12-02 05:06:24
文章目录 一. 分词常用方法 1.1 基于词表的方法 最大匹配法 全切分路径选择法 1.2 基于统计模型的方法 1. n元语法模型 2. 隐马尔可夫模型(Hidden Markov Model ,HMM) 3. 条件随机场模型(Conditional Random Fields,CRF) 1.3 基于深度学习的方法 二. 分词常用工具 2.1 [jieba](https://github.com/fxsjy/jieba) 2.2 [hanLP](https://github.com/hankcs/pyhanlp) 2.3 [PKUseg](https://github.com/lancopku/pkuseg-python) 2.4 [thulac](https://github.com/thunlp/THULAC-Python) 2.5 [nlpir](https://github.com/NLPIR-team/NLPIR) 2.6 [snowNLP](https://github.com/isnowfy/snownlp) 自然语言处理的中文分词有三个难点: 分词标准 例如“花草”,有的人认为是一个词,有的人认为应该划分开为两个词“花/草”。某种意义上,中文分词可以说是一个没有明确定义的问题。 切分歧义 不同的切分结果会有不同的含义,这个不用举例了,很常见。 未登录词 也叫新词发现

JAVA自然语言处理NLP工具包

好久不见. 提交于 2019-12-02 03:21:16
1. Java自然语言处理 LingPipe LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)、词性标注(Part-of Speech Tagging)、句题检测(Sentence Detection)、查询拼写检查(Query Spell Checking)、兴趣短语检测(Interseting Phrase Detection)、聚类(Clustering)、字符语言建模(Character Language Modeling)、医学文献下载/解析/索引(MEDLINE Download, Parsing and Indexing)、数据库文本挖掘(Database Text Mining)、中文分词(Chinese Word Segmentation)、情感分析(Sentiment Analysis)、语言辨别(Language Identification)等API。 下载链接: http://alias-i.com/lingpipe/web/download.html 2.中文自然语言处理工具包 FudanNLP FudanNLP主要是为中文自然语言处理而开发的工具包

Solr环境搭建及IK分词的集成及solrJ的调用(二)

随声附和 提交于 2019-12-01 21:41:37
看上一篇请移步到这里: http://my.oschina.net/zimingforever/blog/120732 Solr环境搭建及IK分词的集成及solrJ的调用(一) 这里首先介绍如何做分词,首先solr并没有加入中文分词在里面,所以如果是中文搜索的项目我们要加入分词在里面,常用的中文分词有很多,网上大多数都是和庖丁分词结合的,我这里主要加入了IK analyzer,以下简称IK,使用IK是因为之前没有使用solr的时候我一直在用Ik做搜索,感觉用起来还蛮不错,不过网上关于IK和solr的配置就少了一些。 IK的介绍可以看这里: http://www.oschina.net/p/ikanalyzer 首先把iK的jar放入工程里,这里为了避免找不到jar包,我把IKAnalyzer2012.jar这个包扔到了tomcat下的lib下,同时webapps\solr\WEB-INF\lib这里我也扔了相同的jar包进去 接下来,打开schemal.xml文件(上一节我们就提到过这个文件是用来配置分词的) 在types的标签内加如下的配置: <fieldType name="text" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>

pyltp的安装与简单实用分词

橙三吉。 提交于 2019-12-01 20:11:53
from pyltp import Segmentor segmentor=Segmentor() segmentor.load("cws.model")#你自己的路径 words=segmentor.segment("元芳你怎么看") print("|".join(words)) segmentor.release() 首先要寻找相应python版本的库,在那个虚拟环境下使用:如3.5版本的用我的tensorflow虚拟环境, 这个方法首先要下载pyltp相应的whl安装包,这里提供一个免费可用的下载地址: windows下python3.5 https://link.zhihu.com/?target=http%3A//mlln.cn/2018/01/31/pyltp%E5%9C%A8windows%E4%B8%8B%E7%9A%84%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85/pyltp-0.2.1-cp35-cp35m-win_amd64.whl Windows下python3.6 https://link.zhihu.com/?target=http%3A//mlln.cn/2018/01/31/pyltp%E5%9C%A8windows%E4%B8%8B%E7%9A%84%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85

Python使用jieba分词

妖精的绣舞 提交于 2019-12-01 13:57:29
# -*- coding: utf-8 -*- # Spyder (python 3.7) import pandas as pd import jieba import jieba.analyse as anls if __name__ == '__main__': data = pd.read_excel(r'空气指数评论.xlsx') # content为excel的列名 opinion_content = data['content'].dropna().values all_word = '' for i in opinion_content: #形成整个字符串 all_word = all_word +','+ str(i) all_word = all_word.strip() #去掉字符串的空格 all_word_upper = all_word.upper() #大写   #加载词典 #jieba.load_userdict(r"D:\Python_workspace\aaaa.txt")   #如果有不想被切分开的词,例如王者荣耀,和平精英等,可以进行参数设置:tune=True   # jieba.analyse 是基于tf-idf算法的关键词抽取 segment=['王者荣耀','和平精英'] for ii in segment: jieba.suggest

Python分布式爬虫必学框架Scrapy打造搜索引擎 学习教程

不羁的心 提交于 2019-12-01 11:50:09
Python分布式爬虫必学框架Scrapy打造搜索引擎 学习教程 Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 1、创建搜索自动补全字段 suggest 自动补全需要用到一个字段名称为suggest类型为Completion类型的一个字段 所以我们需要用将前面的 elasticsearch-dsl操作 elasticsearch(搜索引擎)增加 suggest类型为 Completion 注意:因为 elasticsearch-dsl源码问题,设置字段为 Completion类型指定分词器时会报错,所以我们需要重写CustomAnalyzer类 只有 Completion类型才是,其他类型不用,其他类型直接指定分词器即可 #!/usr/bin/env python from datetime import datetime from elasticsearch_dsl import DocType, Date, Nested, Boolean, \ analyzer, InnerObjectWrapper, Completion, Keyword, Text, Integer # 更多字段类型见第三百六十四节elasticsearch(搜索引擎)的mapping映射管理 from

中文分词方法及其实现

こ雲淡風輕ζ 提交于 2019-12-01 09:39:39
中文分词算法:   基于词典     优点:简单、意实现     缺点:慢、歧义切分问题、不同词典对结果的印象较大、缺乏自学习的智能性     包含:       正向最大匹配(MM,Maximum matching)       邻近算法       逆向最大匹配(RMM)       双向最大匹配       最短路径匹配   基于统计     包含:       N-gram模型       隐马尔科夫模型(HMM,Hidden Markov Model)   基于规则     包含:       扩充转移网络法       矩阵约束法   基于字标注   基于人工智能技术(基于理解)     包含:       神经网络分词算法       专家系统分词算法       神经网络专家系统集成算法 来源: https://www.cnblogs.com/zsxm/p/11675520.html