分词

Elasticsearch中文分词器(elasticsearch-analysis-ik)

冷暖自知 提交于 2020-02-26 07:01:53
中文分词器 安装IK分词器(支持中文分词) IK分词器提供了源代码(maven项目), 通过打包生成zip文件 使用Kibana进行测试 Kibana的使用看这个博客: Elasticsearch入门(Kibana) { "analyzer": "ik_max_word", "text": "我是中国人" } 测试结果 { "tokens": [ { "token": "我", "start_offset": 0, "end_offset": 1, "type": "CN_CHAR", "position": 0 }, { "token": "是", "start_offset": 1, "end_offset": 2, "type": "CN_CHAR", "position": 1 }, { "token": "中国人", "start_offset": 2, "end_offset": 5, "type": "CN_WORD", "position": 2 }, { "token": "中国", "start_offset": 2, "end_offset": 4, "type": "CN_WORD", "position": 3 }, { "token": "国人", "start_offset": 3, "end_offset": 5, "type": "CN_WORD"

【数据分析实战】数据分析及可视化实战:豆瓣电影数据分析

坚强是说给别人听的谎言 提交于 2020-02-21 18:39:04
本次数据: 来源豆瓣电影 40万条短评 50条以上评论电影1100多部 数据储存在sqlite数据库里 左侧点开Tables,可以看到有三张表 双击comment 在右侧点击数据标签可以查看 观察每行都有哪些数据 ID: 序号 TIME: 时间 MOVIEID: 豆瓣电影ID RATING: 该评论打分 CONTENT: 评论内容 CREATOR: 评论者 ADD_TIME:添加时间 “结巴”中文分词 https://github.com/fxsjy/jieba • 支持三种分词模式: • 精确模式,试图将句子最精确地切开,适合文本分析; • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常 快,但是不能解决歧义; • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召 回率,适合用于搜索引擎分词。 • 支持繁体分词 • 支持自定义词典 • MIT 授权协议 安装: pip install jieba pip3 install jieba import sqlite3 import pandas as pd import jieba from pyecharts . faker import Faker from pyecharts . charts import WordCloud from pyecharts import options as opts

python pynlpir分词及词频统计

社会主义新天地 提交于 2020-02-18 14:42:38
""" 功能:PyNLPIR文本预处理 过程:文本分词,词频统计 时间:2020年02月16日 作者:Angel import pynlpir pynlpir.open() #文本分词、词频统计 p = open(r'C:\Users\Angel\Desktop\python分词\test.txt', 'r', encoding = 'utf-8') q = open(r'C:\Users\Angel\Desktop\python分词\test_result.txt', 'w', encoding = 'utf-8') counts = {} #定义空字典 #直接打印出结果 for line in p.readlines(): words = pynlpir.segment(line, pos_english=False) # 把词性标注语言变更为汉语 for word,flag in words: q.write(str(word) + str(flag) + " ") if len(word) == 1: continue else: rword = word s = rword+','+flag #将分词和词性进行拼接 counts[s] = counts.get(s,0) + 1 #同时统计分词和词性的词频,存储在字典counts中 q.write('\n')

jieba库常用函数及解析实例

為{幸葍}努か 提交于 2020-02-17 17:39:13
中文文本需要通过分词获得单个的词语 jieba是优秀的中文分词第三方库,需要额外安装 在(cmd命令行)情况下 运行 pip install jieba 进行安装 jieba分词原理 利用一个中文词库,确定汉字之间的关联概率 汉字间概率大的组成词组,形成分词结果 除了分词,用户还可以添加自定义的词组 jieba分词的三种模式:精确模式、全模式、搜索引擎模式 精确模式:把文本精确的切分开,不存在冗余单词 全模式:把文本中所有可能的词语都扫描出来,有冗余 搜索引擎模式:在精确模式基础上,对长词再次切分 jieba库常用函数 函数 描述 jieba.lcut(s) 精确模式,返回一个列表类型的分词结果 jieba.lcut(s,cut_all=True) 全模式,返回一个列表类型的分词结果,存在冗余 jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型的分词结果,存在冗余 jieba.add_word(w) 向分词词典增加新词w 例如: > s = "中国是一个伟大的国家" > jieba . lcut ( s ) [ '中国' , '是' , '一个' , '伟大' , '的' , '国家' ] > jieba . lcut ( s , cut_all = True ) [ '中国' , '国是' , '是' , '一个' , '伟大' , '的' ,

全文检索引擎及工具 Lucene Solr

[亡魂溺海] 提交于 2020-02-16 03:55:22
全文检索引擎及工具 lucence lucence是一个全文检索引擎。 lucence代码级别的使用步骤大致如下: 创建文档(org.apache.lucene.document.Document),并通过Document的add方法为其添加字段(lucence.document.Field) 创建lucence.index.IndexWriter,通过addDocument或addDocuments方法添加构建好的诸多Document 通过close方法关闭IndexWriter 创建索引搜索器lucence.search.IndexSearcher,需要传入索引仓库阅读器(lucenc.index.DirectoryReader)参数 通过search方法在搜索器上执行查询,参数是ucence.search.Query对象,通过查询解析器lucene.queryparser.classic.QueryParser的实例parse(String)方法来构建一个查询,QueryParser实例可以通过new标准解析器lucene.queryparser.flexible.standard.StandardQueryParser得到 中文文本索引构建及查询示例 (以下涉及的是6.4.2版本的lucene) 对中文文本构建索引时,不能使用 StandardAnalyzer

分词并去停用词自定义函数:seg_word(sentence)

南笙酒味 提交于 2020-02-15 10:15:04
分词并去停用词自定义函数:seg_word(sentence)。 import jieba def seg_word ( sentence ) : """使用jieba对文档分词""" seg_list = jieba . cut ( sentence ) # 读取停用词文件 stopword_list = [ k . strip ( ) for k in open ( 'stopwords.txt' , encoding = 'utf8' ) . readlines ( ) if k . strip ( ) != '' ] # 去除停用词 return list ( filter ( lambda x : x not in stopword_list , seg_list ) ) print ( seg_word ( "今天是开心的一天" ) ) 输入一个句子"今天是开心的一天",函数返回值为:[‘今天’, ‘开心’, ‘一天’]。 来源: CSDN 作者: 北青萝、 链接: https://blog.csdn.net/weixin_43919570/article/details/104310685

动手学深度学习之文本预处理

三世轮回 提交于 2020-02-14 23:17:37
文本预处理 文本是一类典型的 序列数据 ,一篇文章可以看作是字符或单词的序列,当使用神经网络处理文本时,是无法直接作用于字符串的,需要对其进行预处理。本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本; 分词; 建立字典将每个词映射到一个唯一的索引(index); 将文本从词的序列转换为索引的序列,方便输入模型; 读入文本 以H. G. Wells的小说 The Time Machine 作为示例,展示文本预处理的具体过程。 import collections import re def read_time_machine ( ) : with open ( r 'C:\Users\25756\Desktop\PythonCode\Pytorch\TheTimeMachinebyWells.txt' , 'r' , encoding = 'UTF-8' ) as f : ''' 将文本每一行全部转化为小写 且将非小写字母的其他字符全部用空格代替 ''' lines = [ re . sub ( '[^a-z]+' , ' ' , line . strip ( ) . lower ( ) ) for line in f ] return lines lines = read_time_machine ( ) print ( '# sentences %d' %

Lucene.net入门学习系列(1)

十年热恋 提交于 2020-02-13 23:57:43
   Lucene.net入门学习系列(1)-分词   Lucene.net入门学习系列(2)-创建索引   Lucene.net入门学习系列(3)-全文检索   这几天在公司实习的时候闲的蛋疼,翻了一下以往的教程和博客,看到了Lucene.net。原本想学着写一个系列的博文,由于本人水平有限,一直找不到适合的内容来写,干脆就写一个简单的Lucene.net系列文章吧。希望和大家一起学习,一起进步,有什么写错了或者有什么建议欢迎提出来。   一.引言     先说一说什么是 Lucene.net。Lucene.net是 Lucene 的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于Lucene.net实现 全文检索 的功能。   说完了Lucene.net,接着来说什么是全文检索。 全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。   二.分词     前面的引言大概说了一下什么是全文检索,介绍了Lucene.net这个全文检索引擎。 要做全文检索,首先要做的就是分词。      分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界

Lucene中文分词实现方法:基于StopWord分割分词

删除回忆录丶 提交于 2020-02-13 23:57:22
Lucene应用越来越多,在对中文对索引过程中,中文分词问题也就越来越重要。 在已有的分词模式中,目前比较常用的也是比较通用的有一元分词、二元分词和基于词库的分词三种。一元分词在Java版本上由yysun实现,并且已经收录到Apache。其实现方式比较简单,即将每一个汉字作为一个Token,例如:“这是中文字”,在经过一元分词模式分词后的结果为五个Token:这、是、中、文、字。而二元分词,则将两个相连的汉字作为一个Token划分,例如:“这是中文字”,运用二元分词模式分词后,得到的结果为:这是、是中、中文、文字。 一元分词和二元分词实现原理比较简单,基本支持所有东方语言。但二者的缺陷也比较明显。一元分词单纯的考虑了中文的文字而没有考虑到中文的词性,例如在上述的例子中,“中文”、“文字”这两个十分明显的中文词语就没有被识别出来。相反,二元分词则分出了太多的冗余的中文词,如上所述,“这是”、“是中”毫无意义的文字组合竟被划分为一个词语,而同样的缺陷,命中的词语也不十分准确,如上:在“这是中文字”中,“中文字”这个词语应该优先考虑的。而二元分词也未能实现。 基于词库的分词实现难度比较大,其模式也有多种,如微软在自己的软件中的汉语分词、海量的中文分词研究版,还有目前在.Net下实现的使用率较高的猎兔,和一些其他人自发实现的分词工具等等。其都有自己的分析体系,虽然分析精度高,但实现难度大