jieba

基于词典的实体识别

十年热恋 提交于 2020-08-17 08:53:21
ner(命名实体识别)一般是词典和模型方式结合,词典负责已有词识别,模型负责未知词识别。 在不需发现未知词的情况下基于词典的实体识别已足够 基于字典的ner也有两种做法:字符串多模匹配 和 切词(词典加入自定义词库) 字符串多模匹配 多模匹配有两种基本算法:trie树 和 记录长度集合的最长匹配 trie树匹配效率更高,但占用内存更多 而记录长度集合的最长匹配,计算时间效率相比trie稍低(但比切词高很多),内存空间比较省,这里重点介绍一下 记录长度集合的最长匹配方式不依赖分词,会存储以字典中每个词开头两个字的长度集合,并对字典中每个字做hashmap。 举个例子,刘德华的歌曲 ,先查 刘德 开头的词的长度有 5 3 两个长度,然后再取5个长度的“刘德华的歌”,字典里没有,则再取3个长度“刘德华”,字典里有,则命中 采用该种方式相比切词更容易出现错误匹配,比如 “研究生命科学“ ,假如“研究生“在字典里,就会错误识别为“{实体}命科学“,因为该方式不考虑上下文,而切词会考虑 实验:采用该最长匹配方式测试700万数据,实体字典占600M 4000问句平均每个耗时16微秒,而切词方式平均每个耗时300微秒; 最长匹配相比之下效率有20倍提升: 一方面是因为切词规则复杂 一方面是最长匹配实际用到字符串匹配的次数很少,我统计了一下4000问句平均每句只用了2.3次字符串匹配 切词匹配

3行!仅3行代码就能抓取B站(弹幕、评论、用户)数据

梦想的初衷 提交于 2020-08-16 12:43:32
今天介绍一个获取B站数据的Python扩展库-bilibili_api 可以获取的数据包括: video-视频模块 user-用户模块 dynamic-动态模块 这次用“Running Man”十周年特辑的视频,来做个获取弹幕的Demo。 我是对比 没有对比,就没有伤害,就像最近的“哈工大”某学生和“浙大”某学生一样。 这是之前获取弹幕的过程: 1、弹幕数据接口 https://comment.bilibili.com/123072475.xml (一个固定的url地址 + 视频的cid + .xml) 2、利用Request模块,获取数据 3、利用Xpath解析数据 接下来,是时候表演真正的技术了。 经过bilibili_api的封装, 弹幕数据 获取的部分仅用了一行代码: danmu = video_info.get_danmaku() 相应的获取 视频的基本信息 和 评论信息 也是一样的便捷。 basic_info = video_info.get_video_info() comments = video_info.get_comments()速开始 快速开始 接下来,本文将用bilibili_api获取“Running Man”十周年特辑的弹幕数据,并绘制词云。 视频的链接: https://www.bilibili.com/video/BV1gC4y1h722

《隐秘的角落》弹幕分析,制作词云,看看观众们对该剧的评价如何

梦想的初衷 提交于 2020-08-16 02:54:34
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 最近有部很火的悬疑推理剧:《隐秘的角落》,豆瓣评分9.0,周末闲来无事,在追剧的同时爬取了下该剧第一集的弹幕,我们通过对弹幕进行分析,制作词云,来看看观众们对该剧的评价如何。 整篇文章分为两部分:1.爬取爱奇艺中该剧第一集的弹幕 2.对爬取出来的弹幕做处理,并制作词云。 1.爬取爱奇艺弹幕 相比于其他视频网站来说,爱奇艺的弹幕难爬一些,为啥呢,因为你爬取出来的文件是乱码的(下边会贴图),需要自己再把该文件二进制编码之后才能用。具体步骤如下: 首先,打开浏览器,进入爱奇艺页面,点开该剧,弹幕打开,然后F12,浏览器下方或者右侧会弹出一些界面,选择Network,在我图上标注的框中输入“bullet”搜索弹幕相关的文件,为啥输入这个搜索呢,因为这个单词的意思就是弹幕,程序员命名东西一般也是有规律的,还有大多视频网站的弹幕相关文件都是这个名字哈哈。如果你F12搜索之后无内容,那直接点击下浏览器刷新按钮即可。下图中箭头指的分别是Network、搜索框、弹幕文件名和弹幕内容(你可以看到,弹幕内容是乱七八糟的乱码)。还有说明一点,弹幕文件一集不止一个,爱奇艺5分钟加载一个弹幕文件(为啥5分钟,下边会解释)。 接下来,观察弹幕文件出现的规律以及弹幕文件地址中的规律

python词云图与中文分词

烈酒焚心 提交于 2020-08-14 22:44:55
2019-12-12中文文本分词和词云图具体功能介绍与学习代码: import jieba a="由于中文文本的单词不是通过空格或者标点符号来进行分割" #jieba.lcut() s是最常用的中文分词函数,用于精准模式,即将字符串分割为等量的中文词组,返回结果是列表类型 print(jieba.lcut(a)) #jieba.lcut(s,cut_all=True): 用于全模式,即将字符串所有分词可能均列出来,返回结果是列表类型,冗余性较大,速度很快,但是不能解决歧义的问题 print(jieba.lcut(a,cut_all=True)) #jieba.lcut_for_search函数 主要是返回搜索引擎模式,该模式首先精准执行精确模式,然后再对其中的长词进行进一步的切片获得最终结果 print(jieba.lcut_for_search(a)) #jieba.add_word()函数主要用来增加jieba库中的内容新的单词 jieba.add_word("燕江依") #词云图的绘制 import wordcloud import jieba #英文的词云图生成比较简单 ,直接可以使用Wordcloud。generate()函数来进行,因为它是按照空格或者标点符号来进行划分 t="i like Python,i am studying python" wd

写给程序员的机器学习入门 (六)

半腔热情 提交于 2020-08-13 13:37:28
这一篇将会举两个例子说明怎么应用递归模型,包括文本情感分类和预测股价走势。与前几篇不同,这一篇使用的数据是现实存在的数据,我们将可以看到更高级的模型和手法🤠。 例子① - 文本感情分类 文本感情分类是一个典型的例子,简单的来说就是给出一段话,判断这段话是正面还是负面的,例如淘宝或者京东上对商品的评价,豆瓣上对电影的评价,更高级的情感分类还能对文本中的感情进行细分。因为涉及到自然语言,文本感情分类也属于自然语言处理 (NLP, Nature Langure Processing),我们接下来将会使用 ami66 在 github 上 公开的数据 ,来实现根据商品评论内容识别是正面评论还是负面评论。 在处理文本之前我们需要对文本进行切分,切分方法可以分为按字切分和按单词切分,按单词切分的精度更高但要求使用分词类库。处理中文时我们可以使用开源的 jieba 类库来按单词切分,执行 pip3 install jieba --user 即可安装,使用例子如下: # 按字切分 >>> words = [c for c in "我来到北京清华大学"] >>> words ['我', '来', '到', '北', '京', '清', '华', '大', '学'] # 按单词切分 >>> import jieba >>> words = list(jieba.cut("我来到北京清华大学")) >>

手把手教你使用Python抓取QQ音乐数据(第四弹)

风格不统一 提交于 2020-08-12 11:07:09
【一、项目目标】 通过 手把手教你使用Python抓取QQ音乐数据(第一弹) 我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 通过 手把手教你使用Python抓取QQ音乐数据(第二弹) 我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评。 通过 手把手教你使用Python抓取QQ音乐数据(第三弹) 我们实现了获取更多评论并生成词云图。 此次我们将将三个项目封装在一起,通过菜单控制爬取不同数据。 【二、需要的库】 主要涉及的库有:requests、openpyxl、html、json、wordcloud、jieba 如需更换词云图背景图片还需要numpy库和PIL库(pipinstall pillow) 如需生成.exe需要pyinstaller -F 【三、项目实现】 1.首先确定菜单,要实现哪些功能: ①获取指定歌手的歌曲信息(歌名、专辑、链接) ②获取指定歌曲歌词 ③获取指定歌曲评论 ④生成词云图 ⑤退出系统 代码如下: class QQ(): def menu(self): print('欢迎使用QQ音乐爬虫系统,以下是功能菜单,请选择。\n') while True: try: print('功能菜单\n1.获取指定歌手的歌曲信息\n2.获取指定歌曲歌词\n3.获取指定歌曲评论\n4.生成词云图\n5.退出系统\n')

朴素贝叶斯文本分类-在《红楼梦》作者鉴别的应用上(python实现)

北城以北 提交于 2020-08-12 05:07:03
朴素贝叶斯算法简单、高效。接下来我们来介绍其如何应用在《红楼梦》作者的鉴别上。 第一步,当然是先得有文本数据,我在网上随便下载了一个txt(当时急着交初稿。。。)。分类肯定是要一个回合一个回合的分,所以我们拿到文本数据后,先进行回合划分。然后就是去标点符号、分词,做词频统计。 1 # -*- coding: utf- 8 -*- 2 import re 3 import jieba 4 import string 5 import collections as coll 6 jieba.load_userdict( ' E:\\forpython\\红楼梦词汇大全.txt ' ) # 导入搜狗的红楼梦词库 7 8 9 class textprocesser: 10 def __init__(self): 11 pass 12 13 # 将小说分成120个章节并单独保存到txt文件中 14 def divide_into_chapter(self): 15 red=open( ' E:\\forpython\\红楼梦.txt ' ,encoding= ' utf-8 ' ) 16 each_line = red.readline() 17 chapter_count = 0 18 chapter_text = '' 19 complied_rule = re.compile( ' 第

python爬取拉勾网数据并进行数据可视化

懵懂的女人 提交于 2020-08-12 00:04:36
爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示、直方图展示、词云展示等并根据可视化的数据做进一步的分析,其余分析和展示读者可自行发挥和扩展包括各种分析和不同的存储方式等。。。。。 一、爬取和分析相关依赖包 Python版本: Python3.6 requests: 下载网页 math: 向上取整 time: 暂停进程 pandas:数据分析并保存为csv文件 matplotlib:绘图 pyecharts:绘图 statsmodels:统计建模 wordcloud、scipy、jieba:生成中文词云 pylab:设置画图能显示中文 在以上安装或使用过程中可能读者会遇到安装或导入失败等问题自行百度,选择依赖包的合适版本 二、分析网页结构 通过Chrome搜索'python工程师',然后右键点击检查或者F12,,使用检查功能查看网页源代码, 当我们点击下一页观察浏览器的搜索栏的url并没有改变 ,这是因为拉勾网做了反爬虫机制, 职位信息并不在源代码里,而是保存在JSON的文件里,因此我们直接下载JSON,并使用字典方法直接读取数据.即可拿到我们想要的python职位相关的信息, 待爬取的python工程师职位信息如下: 为了能爬到我们想要的数据

简单微博爬取以及分析

匆匆过客 提交于 2020-08-11 13:14:40
对微博评论进行简单爬取并进行分析 任务: 1.爬取评论和时间(request和re) 2.词频统计(jieba) 3.词云展示(wordcloud) 4.时间分布(matplotlib) 代码如下: #heheyang import requests import re import jieba import wordcloud import time as ti import pandas as pd import numpy as np import matplotlib . pyplot as plt #数据爬取 start_url = 'weibo_path&&page=' header = { 'cookie' : 'your cookie' , 'user-agent' : 'your agent' } f = open ( 'path' , 'w' , encoding = 'utf-8' ) #f.write('time\tcomment\n') all_comment = '' all_time = [ ] for i in range ( 1 , 51 ) : #print('正在爬取第%d页....' %i) url = start_url + str ( i ) r = requests . get ( url , timeout = 30 ,

《隐秘的角落》弹幕分析,制作词云,看看观众们对该剧的评价如何

不打扰是莪最后的温柔 提交于 2020-08-11 06:27:30
最近有部很火的悬疑推理剧:《隐秘的角落》,豆瓣评分9.0,周末闲来无事,在追剧的同时爬取了下该剧第一集的弹幕,我们通过对弹幕进行分析,制作词云,来看看观众们对该剧的评价如何。 整篇文章分为两部分:1.爬取爱奇艺中该剧第一集的弹幕 2.对爬取出来的弹幕做处理,并制作词云。 爬取爱奇艺弹幕 相比于其他视频网站来说,爱奇艺的弹幕难爬一些,为啥呢,因为你爬取出来的文件是乱码的(下边会贴图),需要自己再把该文件二进制编码之后才能用。具体步骤如下: 首先,打开浏览器,进入爱奇艺页面,点开该剧,弹幕打开,然后F12,浏览器下方或者右侧会弹出一些界面,选择Network,在我图上标注的框中输入“bullet”搜索弹幕相关的文件。 为啥输入这个搜索呢,因为这个单词的意思就是弹幕,程序员命名东西一般也是有规律的,还有大多视频网站的弹幕相关文件都是这个名字哈哈。如果你F12搜索之后无内容,那直接点击下浏览器刷新按钮即可。下图中箭头指的分别是Network、搜索框、弹幕文件名和弹幕内容(你可以看到,弹幕内容是乱七八糟的乱码)。还有说明一点,弹幕文件一集不止一个,爱奇艺5分钟加载一个弹幕文件(为啥5分钟,下边会解释)。 接下来,观察弹幕文件出现的规律以及弹幕文件地址中的规律,总结为以下: 弹幕文件链接规律为 https://cmts.iqiyi.com/bullet/tvid倒数4位的前两位