jieba

文本数据挖掘 - - python jieba库

痞子三分冷 提交于 2020-01-10 14:04:40
jieba库 jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持四种分词模式:精确模式、全模式和搜索引擎模式和新增的 paddle模式。 精确模式:试图将语句最精确的切分,不存在冗余数据,适合文本分析。 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据,不能消除歧义。 搜索引擎模式:在精确模式的基础上,对长词再次进行切分,提高召回率 paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。 更多详情请查看 : https://github.com/fxsjy/jieba 常用示例 import jieba import jieba.posseg import jieba.analyse '''模式分词''' # cut_all=True:为全模式 # cut_all=FALSE:精准模式(默认) sentence = "我想去拉斯维加斯" words = jieba.cut(sentence, cut_all=False) # words = jieba.lcut(sentence, cut_all=False) # 返回列表类型 for item in words: print(item) print("----------------") '''搜索引擎分词''' sentence

维特比算法 实现中文分词 python实现

半腔热情 提交于 2020-01-06 16:39:11
本文转载自: https://zhuanlan.zhihu.com/p/58163299 最近我在学习自然语言处理,相信大家都知道NLP的第一步就是学分词,但分词≠自然语言处理。现如今 分词工具 及如何使用网上一大堆。我想和大家分享的是结巴分词核心内容,一起探究分词的本质。 (1)、基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 什么是DAG(有向无环图)? 例如,句子“去北京大学玩”对应的DAG为{0:[0], 1:[1,2,4], 2:[2], 3:[3,4], 4:[4], 5:[5]}。DAG中{0:[0]}就表示0位置对应的是词,就是说0~0,即“去”这个词在Dict(词典库,里面记录每个词的频次)中是词条。DAG中{1:[1,2,4]},就是表示从1位置开始,在1,2,4位置都是词,就是说1~1、1~2、1~4即“北”“北京”“北京大学”这三个也是词,出现在Dict中。句子“去北京大学玩”的DAG毕竟比较短可以一眼看出来,现在来了另外一个句子“经常有意见分歧”,如何得到它的DAG呢?这时候就得通过代码来实现了。 Dict= {"经常":0.1,"经":0.05,"有":0.1, "常":0.001,"有意见":0.1, "歧":0.001,"意见":0.2,"分歧":0.2,"见":0.05,"意":0.05,"见分歧":0.05,"分

爬取豆瓣电影影评,生成wordcloud词云,并利用监督学习根据评论自动打星

大憨熊 提交于 2020-01-05 03:31:29
本文的完整源码在git位置:https://github.com/OceanBBBBbb/douban-ml 爬取豆瓣影评 爬豆瓣的影评比较简单,豆瓣没有做限制,甚至你都不用登陆就可以看全部,我这里用的bs4和urllib获取的页面信息: # 获取页面 def get_html(url): head = {} head[ 'User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36' target_req = request.Request(url=url, headers=head) target_response = request.urlopen(target_req) target_html = target_response.read().decode('utf-8', 'ignore') # 创建BeautifulSoup对象 listmain_soup = BeautifulSoup(target_html, 'lxml') return listmain_soup 获取页面后,解析页面上的评论内容,这里我拿了给出的评分、短评和展示的部分详细评价。

用Python分析B站视频弹幕

房东的猫 提交于 2020-01-01 18:18:57
文章目录 采集弹幕数据 导入数据并进行处理 jieba分词 设置词云参数 生成词云并保存到本地 最终效果 完整代码 采集弹幕数据 用Python爬取B站视频弹幕 导入数据并进行处理 jieba分词 设置词云参数 生成词云并保存到本地 最终效果 完整代码 # !/usr/bin/env python # —*— coding: utf-8 —*— # @Time: 2020/1/1 15:53 # @Author: Martin # @File: Barrage_Analysis.py # @Software:PyCharm import pandas as pd import jieba import matplotlib . pyplot as plt from random import randint from wordcloud import WordCloud # 弹幕数据读入 csv_data = pd . read_csv ( './result/Barrage.csv' ) # 数据处理 barrage_str = "" for row in csv_data . itertuples ( ) : barrage_str += getattr ( row , '弹幕内容' ) # jieba分词 words_list = jieba . lcut ( barrage

文本处理方法概述

喜夏-厌秋 提交于 2020-01-01 02:52:34
https://www.cnblogs.com/arachis/p/text_dig.html 说明:本篇以实践为主,理论部分会尽量给出参考链接 摘要:   1.分词   2.关键词提取   3.词的表示形式   4.主题模型(LDA/TWE)     5.几种常用的NLP工具简介   6.文本挖掘(文本分类,文本标签化)     6.1 数据预处理     6.2 关于文本的特征工程     6.3 关于文本的模型   7.NLP任务(词性标注,句法分析)   8.NLP应用(信息检索,情感分析,文章摘要,OCR,语音识别,图文描述,问答系统,知识图谱)     8.1 知识抽取 内容:   1.分词   分词是文本处理的第一步,词是语言的最基本单元,在后面的文本挖掘中无论是词袋表示还是词向量形式都是依赖于分词的,所以一个好的分词工具是非常重要的。 这里以python的jieba分词进行讲解分词的基本流程,在讲解之前还是想说一下jieba分词的整个工作流程: 图1是jieba切词函数的4个可能过程,图2是一个根据DAG图计算最大概率路径,具体的代码走读请参考 jieba cut源码 讲了这么多,我们还是要回归到实践中去,看下jieba的分词接口 1 # encoding=utf-8 2 import jieba 3 4 seg_list = jieba.cut(

jupyter notebook使用技巧

人走茶凉 提交于 2019-12-25 07:27:14
https://www.zhihu.com/tardis/sogou/art/42468945 1. 快捷键 在jupyter notebook菜单栏有Help按钮,可以查看jupyter的快捷键 2. 将多个变量输出 一般jupyter notebook默认只打印最后一个变量的结果。比如 from pydataset import data quakes = data('quakes') quakes.head(10) #前10行数据 quakes.tail(3) #后3行数据 通过设置InteractiveShell.ast node interactivity参数为all,就可以让所有的变量或者声明都能显示出来 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = 'all' from pydataset import data quakes = data('quakes') quakes.head(10) #前10行数据 quakes.tail(3) #后3行数据 3. 问号? 除了Help菜单能让我们快读查看numpy、pandas、scipy和matplotlib库,其实在cell中使用 ? 可以查看库、函数

机器学习-特征工程

☆樱花仙子☆ 提交于 2019-12-24 20:56:48
特征工程是将原始数据转化为更好的代表预测模型的潜在问题的特征的过程,从未提高对未知数据的预测准确性。 scikit-learn库 安装需要numpy,pandas等库 特征抽取对文本数据进行特征值化,方便计算机去理解数据。 字典特征抽取:对字典数据进行特征值化 # Author:song from sklearn.feature_extraction import DictVectorizer def dictvec(): """字典数据抽取""" dict_vec = DictVectorizer(sparse=False) data = dict_vec.fit_transform([{'city':'A市','num':100},{'city':'D市','num':100},{'city':'B市','num':80},{'city':'C市','num':56}]) print(data)#sparse矩阵 print(dict_vec.get_feature_names()) print(dict_vec.inverse_transform(data)) return None if __name__ =="__main__": dictvec() 结果: [[ 1. 0. 0. 0. 100.] [ 0. 0. 0. 1. 100.] [ 0. 1. 0. 0. 80

python之jieba库

流过昼夜 提交于 2019-12-24 02:52:37
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 授权协议 友情链接 https://github.com/baidu/lac 百度中文词法分析(分词+词性+专名)系统 https://github.com/baidu/AnyQ 百度FAQ自动问答系统 https://github.com/baidu/Senta 百度情感识别系统 安装说明 代码对 Python 2/3 均兼容 全自动安装: easy_install jieba 或者 pip install jieba / pip3 install jieba 半自动安装:先下载 http://pypi.python

关于文本处理之结巴分词

旧时模样 提交于 2019-12-24 00:23:57
中文文本最常用的就我而言应该就是结巴分词的分词工具。当然还有其他分词工具Hanlp、THULAC、LTP、NLPIR等。 结巴分词安装:pip install jieba(全自动安装) or 下载结巴,然后解压运行python setup.py install(半自动) or python3.X 下的安装方式: Github 上 jieba 的 Python3.x 版本的路径是: https://github.com/fxsjy/jieba/tree/jieba3k 通过 git clone https://github.com/fxsjy/jieba.git 命令下载到本地,然后解压,再通过命令行进入解压目录,执行 python setup.py install 命令,即可安装成功。 jieba 的分词算法 主要有以下三种: 基于统计词典,构造前缀词典,基于前缀词典对句子进行切分,得到所有切分可能,根据切分位置,构造一个有向无环图(DAG); 基于DAG图,采用动态规划计算最大概率路径(最有可能的分词结果),根据最大概率路径分词; 对于新词(词库中没有的词),采用有汉字成词能力的 HMM 模型进行切分。 jieba 分词 下面我们进行 jieba 分词练习,第一步首先引入 jieba 和语料: import jieba content = "现如今

简单理解TF-IDF算法

孤街醉人 提交于 2019-12-21 23:39:32
前言 在对文本信息处理得过程中,我们会使用分词工具对文本字符串进行分词处理,然后进行频率统计,就会明白文本字符串中关键词的重要性占比。 但是,问题来了,难道,诸如: “所以”、“也许”、“或者”… 这样的词能说明其很重要?答案当然是否! 所以,TF-IDF算法就来解决了这一问题。 原理 Tf,也就是term frequency,它代表了词的频率(“词频”); 可以这样计算 : 词频 = 某词在文章中出现的次数/文章中总词的次数 idf,也就是inverse document frequency,代表了逆文档频率 可以这样计算: 逆文档频率 = log(总文档数/出现该词的文档数) 该词的重要性就是:拿词频*逆文档频率即可。 也就是: 词的重要性 = Tf * idf ps: 关于log,我多介绍一下,请先看这个链接: 对数函数(log) : 根据log函数的单调性(此时e=a>1),它是单调递增的,于是得出, 当一个词在所有文档中出现的次数越多,其越不重要,也就是诸如“所以”、“也许”、“或者”…会在数据分析的权重中被稀释掉。 实际应用 TfidfVectorizer()这个类实现了该算法 没有表现出“重要性”的代码片 # coding: utf-8 import jieba from sklearn . feature_extraction . text import