jieba

Python jieba库的使用

匿名 (未验证) 提交于 2019-12-02 22:51:30
1、jieba库基本介绍 jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 jieba是优秀的中文分词第三方库,需要额外安装 jieba库提供三种分词模式,最简单只需掌握一个函数 Jieba分词依靠中文词库 - 利用一个中文词库,确定汉字之间的关联概率 汉字间概率大的组成词组,形成分词结果 除了分词,用户还可以添加自定义的词组 2、jieba库使用说明 jieba分词的三种模式 精确模式、全模式、搜索引擎模式 - 精确模式:把文本精确的切分开,不存在冗余单词 全模式:把文本中所有可能的词语都扫描出来,有冗余 搜索引擎模式:在精确模式基础上,对长词再次切分 函数 描述 jieba.lcut(s) 精确模式,返回一个列表类型的分词结果 >>> jieba.lcut( " 中国是一个伟大的国家 " ) [' 中国 ', ' 是 ', ' 一个 ', ' 伟大 ', ' 的 ', ' 国家 '] jieba.lcut(s, cut_all=True) 全模式,返回一个列表类型的分词结果,存在冗余 >>> jieba.lcut( " 中国是一个伟大的国家 " ,cut_all=True) [' 中国 ', ' 国是 ', ' 一个 ', ' 伟大 ', ' 的 ', ' 国家 '] 函数 描述 jieba.lcut_for_sear ch(s)

python读取txt, jieba分词并统计词频后输出结果到Excel和txt文档

匿名 (未验证) 提交于 2019-12-02 22:51:30
1 2 3 4 5 open ( '1.txt' 'r' ) as fp: = fp.readlines() = [line.split()[ 1 ][ 9 for in lines] open ( 'out.txt' 'w+' ) as out: out.write( '\n' .join(res)) #encoding=utf-8 import jieba import jieba.posseg as pseg import re filename='result.txt' fileneedCut='test.txt' fn=open(fileneedCut,"r") f=open(filename,"w+") for line in fn.readlines(): f.close() fn.close() import sys.setdefaultencoding( 'utf-8' import import import #写入Excel表的库 if "__main__" 'ascii' "wordCount" ) #Excel单元格名字 for in '1.txt' ): #1.txt是需要分词统计的文档 '\n\r' ).split( '\t' #制表格切分 0 #jieba分词 for in "wordCount.txt" , 'w' #打开文件 for in if

jieba分词原理-DAG(NO HMM)

匿名 (未验证) 提交于 2019-12-02 22:51:30
最近公司在做一个推荐系统,让我给论坛上的帖子找关键字,当时给我说让我用jieba分词,我周末回去看了看,感觉不错,还学习了一下具体的原理 首先,通过正则表达式,将文章内容切分,形成一个句子数组,这个比较好理解 然后构造出句子的有向无环图(DAG) def get_DAG(self, sentence): self.check_initialized() DAG = {} N = len(sentence) for k in xrange(N): tmplist = [] i = k frag = sentence[k] while i < N and frag in self.FREQ:#对每一个字从这个字开始搜索成词位置 if self.FREQ[frag]: tmplist.append(i)#如果可以成词就加入到DAG中 i += 1 frag = sentence[k:i + 1] if not tmplist: tmplist.append(k)#如果找不到词语,就将自己加入DAG DAG[k] = tmplist return DAG 对句子中的每个字进行分析,从右边一位开始,看sentence[k:i+1]这个词语是否在预设的字典中,这个字典保存了常用的词语(和词语的一部分,但权重为0)和其权重.如果有,并且如果字典中的这个词的权值不等于0

jieba库对中文文本进行切割 python

匿名 (未验证) 提交于 2019-12-02 22:51:30
jieba是中文文本用于分词的库,有3种模式:精确模式、全模式(所有可能的分割)、搜索引擎模式(在精确模式基础上再进行分割) 具体参考 PYPI # coding=utf-8 import jieba #txt = open(u"D:\data\ebook\红楼梦.txt","r").read() #,encoding='utf-8' txt = open("D:\\data\\ebook\\1.txt","r",encoding='utf-8').read() words = jieba.lcut_for_search(txt) # 使用搜索引擎模式对文本进行分词 counts = {} # 通过键值对的形式存储词语及其出现的次数 for word in words: print(word) if len(word) == 1: # 长度为1的词语不计算在内 continue else: counts[word] = counts.get(word, 0) + 1 # 遍历所有词语,每出现一次其对应的值加 1 items = list(counts.items())#将键值对转换成列表 items.sort(key=lambda x: x[1], reverse=True) # 根据词语出现的次数进行从大到小排序 for i in range(5): word, count =

CountVectorizer方法对中文进行特征提取

匿名 (未验证) 提交于 2019-12-02 22:51:30
from sklearn.feature.extraction.text import CountVectorizer 这个方法根据分词进行数量统计继续文本分类 作用:对文本进行特征值化 sklearn.feature_extraction.text.CountVectorizer(stop_words = []) 返回:词频矩阵 CountVectorizer.fit_transform(X) X:文本或者包含文本字符串的可迭代对象 返回:sparse矩阵 在后面加上 .toarray() 可以转换为二维数组 CountVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回:转换之前数据格 CountVectorizer.get_feature_names() 返回:单词列表,也可以说是返回特征名字 from sklearn.feature_extraction.text import CountVectorizer #中文 需要分词,否则是以整句作为一个词。英文则不需要,因为英文单词本来就有空格 def chinese_text_count_demo(): data = ["我 爱 北京 天安门", "天安门 上 太阳 升"] # 1、实例化一个转换器类(为什么叫转化器,因为是将 文本 转化为 数值) transfer =

python中的实例方法、静态方法、类方法、类变量和实例变量浅析

匿名 (未验证) 提交于 2019-12-02 22:51:30
用VScode代码调试Python python路径引用r的含义 Python类中的self到底是干啥的 【Python】使用codecs模块进行文件操作及消除文件中的BOM python之decode、encode及codecs模块 python使用jieba实现中文文档分词和去停用词 VS Code中python代码自动格式化方法 解决jieba分词 load_userdict 加载自定义词库太慢的问题 python 中os模块os.path.exists()含义 Python自然语言处理学习――jieba分词 sklearn+gensim|jieba分词、词袋doc2bow、TfidfVectorizer python中的实例方法、静态方法、类方法、类变量和实例变量浅析 Python的构造函数和默认值是是什么? python中字典的定义和操作 SiameseSentenceSimilarity,个人实现的基于Siamese bilstm模型的相似句子判定模型 来源:博客园 作者: 面包师 链接:https://www.cnblogs.com/cheng2015/p/11555644.html

python 生成词云

匿名 (未验证) 提交于 2019-12-02 22:51:30
1、知识点 """ WordCloud参数讲解: font_path表示用到字体的路径 width和height表示画布的宽和高 prefer_horizontal可以调整词云中字体水平和垂直的多少 mask即掩膜,产生词云背景的区域 scale:计算和绘图之间的缩放 min_font_size设置最小的字体大小 max_words设置字体的多少 stopwords设置禁用词 background_color设置词云的背景颜色 max_font_size设置字体的最大尺寸 mode设置字体的颜色 但设置为RGBA时背景透明 relative_scaling设置有关字体大小的相对字频率的重要性 regexp设置正则表达式 collocations 是否包含两个词的搭配 """ 2、代码 # coding = utf-8 import matplotlib.pyplot as plt from wordcloud import WordCloud import jieba import os import numpy import PIL.Image as Image cur_path = os.path.dirname(__file__) #当前文件的路径 print(cur_path) text_from_file_with_apath = open(os.path.join

运用python制作词云(1)

匿名 (未验证) 提交于 2019-12-02 22:11:45
我们在浏览网页时,常常会看见数据统计以词云的方式呈现。 以词云的方式呈现数据比传统的统计图更直观且更有艺术感。 制作词云的方式有许多种,最简单的是通过专门的词云软件进行词云的生成,大家自行百度,这里就不再赘述了。本文则运用python语言制作词云,因此需要一定的python基础。 jieba库的引入 词云多运用于统计文章或网页中特定词语出现的频率并用字符的大小来表现, 因此需要一种工具对文章中段落文字拆分成一个个独立的词语以便我们可以使用在词云中, 并且拆分出来的词语是符合语义的。 例如语句:程序设计语言是一种交互体系。 此语句可以拆分成以下词语:程序设计语言、是、一种、交互体系。 而jieba库可以进行拆分操作,其原理是 利用一个中文词库。将待拆分的内容与分词库进行比对,找到最大概率的词组。 遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料 jieba库的安装 在命令提示符里面输入命令来安装jieba库 pip3 install jieba 完成jieba库的安装 jieba库的运用 以下为jieba库常用的分词函数 jieba.lcut(s) jieba.lcut(s)是 最常用 的中文分词函数,用于精确模式,即将字符串分割成等量的中文词组。 首先import jieba

第一次python词云尝试

匿名 (未验证) 提交于 2019-12-02 22:11:45
1 from wordcloud import WordCloud 2 import os 3 4 cur_path = os.path.dirname(__file__) 5 6 with open(os.path.join(cur_path, 'love_en.txt')) as fp: 7 txt = fp.read() 8 # print(txt) 9 wordcloud = WordCloud().generate(txt) 10 image = wordcloud.to_image() 11 image.show() 发生错误,错误类型:OSError: cannot open resource 解决方案:添加字体 改正后代码: 1 from wordcloud import WordCloud 2 import os 3 4 cur_path = os.path.dirname(__file__) 5 6 with open(os.path.join(cur_path, 'love_en.txt')) as fp: 7 txt = fp.read() 8 # print(txt) 9 wordcloud = WordCloud(font_path = 'FZLTXIHK.TTF').generate(txt) 10 image = wordcloud.to_image

jieba分词基础知识

北战南征 提交于 2019-12-02 19:52:09
安装: pip install jieba 导包: import jieba 精确模式 :试图将句子最精确地切开,适合文本分析(很像人类一样去分词)    jieba.cut(字符串) --> 返回 生成器 str = '小明硕士毕业于中国科学院计算所,后在日本京都大学深造' ret = jieba.cut(str) print(list(ret))    jieba.lcut(字符串) --> 返回 列表 str = '小明硕士毕业于中国科学院计算所,后在日本京都大学深造' ret = jieba.lcut(str) print(ret) 全模式 :把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义(凡是词语全分)    jieba.cut(字符串, cut_all=True)   jieba.lcut(字符串, cut_all=True) str = '小明硕士毕业于中国科学院计算所,后在日本京都大学深造' ret = jieba.lcut(str, cut_all=True) print(ret) 搜索引擎模式: 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词    jieba.cut_for_search(字符串)   jieba.lcut_for_search(字符串 ) str = '小明硕士毕业于中国科学院计算所