自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山阴少年

微信公众号: Python爬虫与算法(微信号为:easy_web_scrape)

  • 博客(286)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 NLP(三十三)利用CRF实现中文分词

  本文将会讲述如何利用CRF模型来实现中文分词。  所谓中文分词,就是将连续的中文汉字序列按照一定的规范重新组合成词序列的过程。关于CRF模型的介绍以及CRF实现工具CRF++的使用方法,读者可以参考文章NLP入门(八)使用CRF++实现命名实体识别(NER) 。  以下将详细讲述如何使用CRF++来实现中文分词。语料选择  中分分词的语料,这里选择人民日报分词语料和微软中文分词语料,语料的下载方式可以参看文章最后给出的Github地址。  我们将语料加工成CRF++支持的格式,以句子迈向充满希

2020-10-20 14:20:51 128

原创 NLP(三十二)利用doccano进行文档标注

  doccano是一个开源的文本标注工具,适合于机器学习和深度学习的使用者,提供了文档分类、序列标注和sequence to sequence任务的标注,操作简单,上手也快,界面友好,能够让你在几个小时内建立一个可实际训练的数据集。  doccano的Github访问网址为:https://github.com/doccano/doccano 。安装方式  doccano的安装也比较简单,我们可以通过Docker很方便地完成安装。  首先,先从Github上下载该项目,命令如下:$ git cl

2020-07-24 22:02:02 465

原创 NLP(三十一)短语的语序问题

  所谓的短语的语序问题,即给定一个打乱顺序的短语,我们要按照语义信息将其重新组合,新的语序通顺的短语。  举个简单例子,比如我们在识别验证码中的文字的时候,识别出来的文字分别为“哲”,“思”,“学”,“想”,那么重合调整语序后形成的短语应该为“哲学思想”。  这样的问题也会经常出现,除了验证码识别,还有语音识别等。解决这类的语序问题,我们通常会用到统计方面的语言模型(Language Model,LM),常见的有N-gram问题等。  下面将讲述n-gram问题的解决办法。原理篇  N-gram

2020-05-18 21:27:00 349

原创 NLP(三十)利用ALBERT和机器学习来做文本分类

  本文的灵感来自于A Visual Guide to Using BERT for the First Time,其作者为Jay Alammar,访问网址为:http://jalammar.github.io/a-visual-guide-to-using-bert-for-the-first-time 。  在文本分类中,有两个大的思路,一个是机器学习,主要是利用n-gram等特征将文本转化为特征向量,这种方法便于操作和理解,但是忽略了文本本身的语义信息;另一个是深度学习,主要是利用word2vec作

2020-05-17 21:56:15 826 1

原创 NLP(二十九)一步一步,理解Self-Attention

  本文大部分内容翻译自Illustrated Self-Attention, Step-by-step guide to self-attention with illustrations and code,仅用于学习,如有翻译不当之处,敬请谅解!什么是Self-Attention(自注意力机制)?  如果你在想Self-Attention(自注意力机制)是否和Attention(注意力机制...

2020-05-08 00:03:47 311 1

原创 NLP(二十八)多标签文本分类

多标签文本分类之从电影简介预测影片类型

2020-04-10 10:49:43 1153 5

原创 NLP(二十七)开放领域的三元组抽取的一次尝试

  当我写下这篇文章的时候,我的内心是激动的,这是因为,自从去年6月份写了文章利用关系抽取构建知识图谱的一次尝试 后,我就一直在试图寻找一种在开放领域能够进行三元组抽取的办法,也有很多读者问过我这方面的问题,今天,笔者将给出答复,虽然不是正确答案(现在也没有正确答案),但至少,我写下了自己的答案。  离我想出这个抽取系统虽然才过去不久,但我的心情,已经由开始的激动狂喜,转化为后来的平淡,直到现在...

2020-03-21 20:08:57 1856 4

原创 NLP(二十六)限定领域的三元组抽取的一次尝试

  本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试。由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集。但是,这并不耽误我们在这方面做实验。比赛介绍  该比赛的网址为:http://lic2019.ccf.org.cn/kg ,该比赛主要是从给定的句子中提取三元组,给定schema约束集合及句子sent,其中schema定...

2020-03-15 18:39:14 2373 17

原创 NLP(二十五)实现ALBERT+Bi-LSTM+CRF模型

  在文章NLP(二十四)利用ALBERT实现命名实体识别中,笔者介绍了ALBERT+Bi-LSTM模型在命名实体识别方面的应用。  在本文中,笔者将介绍如何实现ALBERT+Bi-LSTM+CRF模型,以及在人民日报NER数据集和CLUENER数据集上的表现。  功能项目方面的介绍里面不再多介绍,笔者只介绍模型训练和模型预测部分的代码。项目方面的代码可以参考文章NLP(二十四)利用ALBER...

2020-03-12 21:49:02 3799 11

原创 NLP(二十四)利用ALBERT实现命名实体识别

  本文将会介绍如何利用ALBERT来实现命名实体识别。如果有对命名实体识别不清楚的读者,请参考笔者的文章NLP入门(四)命名实体识别(NER) 。  本文的项目结构如下:  其中,albert_zh为ALBERT提取文本特征模块,这方面的代码已经由别人开源,我们只需要拿来使用即可。data目录下为我们本次讲解所需要的数据,图中只有example开头的数据集,这是人民日报的标注语料,实体为人...

2020-03-11 22:56:44 3056 25

原创 NLP(二十三)序列标注算法评估模块seqeval的使用

  在NLP中,序列标注算法是常见的深度学习模型,但是,对于序列标注算法的评估,我们真的熟悉吗?  在本文中,笔者将会序列标注算法的模型效果评估方法和seqeval的使用。序列标注算法的模型效果评估  在序列标注算法中,一般我们会形成如下的序列列表,如下:['O', 'O', 'B-MISC', 'I-MISC', 'B-MISC', 'I-MISC', 'O', 'B-PER', 'I-...

2020-03-10 23:32:41 1070 1

原创 知识图谱构建举例

  笔者在去年的时候,给出了利用深度学习来构建知识图谱的一次尝试,文章为:利用关系抽取构建知识图谱的一次尝试 ,本文将会更出更多的例子,也是笔者近一个星期的忙碌结果。  下面为知识图谱构建的例子,由笔者原创,是从新闻或者小说中直接抽取而来,加上大量时间的人工整理而得到,下面的图片是从Neo4J导出并截图。  例子1:《平凡的世界》实体关系图(局部):  例子2:《白鹿原》实体关系图(局部)...

2020-03-05 22:20:04 1213 1

原创 NLP(二十二)利用ALBERT实现文本二分类

  在文章NLP(二十)利用BERT实现文本二分类中,笔者介绍了如何使用BERT来实现文本二分类功能,以判别是否属于出访类事件为例子。但是呢,利用BERT在做模型预测的时候存在预测时间较长的问题。因此,我们考虑用新出来的预训练模型来加快模型预测速度。  本文将介绍如何利用ALBERT来实现文本二分类。关于ALBERT  ALBERT的提出时间大约是在2019年10月,其第一作者为谷歌科学家蓝...

2020-03-05 16:01:31 2085

原创 NLP(二十一)人物关系抽取的一次实战

  去年,笔者写过一篇文章利用关系抽取构建知识图谱的一次尝试,试图用现在的深度学习办法去做开放领域的关系抽取,但是遗憾的是,目前在开放领域的关系抽取,还没有成熟的解决方案和模型。当时的文章仅作为笔者的一次尝试,在实际使用过程中,效果有限。  本文将讲述如何利用深度学习模型来进行人物关系抽取。人物关系抽取可以理解为是关系抽取,这是我们构建知识图谱的重要一步。本文人物关系抽取的主要思想是关系抽取的p...

2020-02-18 21:46:20 8182 6

原创 NLP(二十)利用BERT实现文本二分类

  如您需要阅读该文章,请访问博客园网址:https://www.cnblogs.com/jclian91/p/12301056.html ,或者微信公众号网址: https://mp.weixin.qq.com/s?__biz=MzU2NTYyMDk5MQ==&mid=2247484497&idx=1&sn=14fc94307991a392cabcf7ddf10ea9a1...

2020-02-13 11:36:12 1393

原创 NLP(十九)首次使用BERT的可视化指导

  本文翻译自文章A Visual Guide to Using BERT for the First Time,作者为Jay Alammar,访问网址为:http://jalammar.github.io/a-visual-guide-to-using-bert-for-the-first-time/ ,可以作为那些不熟悉BERT的读者首次阅读。文章中如有翻译不当之处,还请批评指正。  本文...

2020-02-11 18:14:26 1695

原创 利用关系抽取构建知识图谱的一次尝试

关系抽取  信息抽取(Information Extraction, IE)旨在从大规模非结构或半结构的自然语言文本中抽取结构化信息。关系抽取(Relation Extraction, RE)是其中的重要子任务之一,主要目的是从文本中识别实体并抽取实体之间的语义关系,是自然语言处理(NLP)中的一项基本任务。比如,我们可以从下面的一段话中,鸿海集团董事长郭台铭25日表示,阿里巴巴集团董事局主...

2020-01-13 22:59:45 2869 5

原创 NLP(十八)利用ALBERT提升模型预测速度的一次尝试

前沿  在文章NLP(十七)利用tensorflow-serving部署kashgari模型中,笔者介绍了如何利用tensorflow-serving部署来部署深度模型模型,在那篇文章中,笔者利用kashgari模块实现了经典的BERT+Bi-LSTM+CRF模型结构,在标注了时间的文本语料(大约2000多个训练句子)中也达到了很好的识别效果,但是也存在着不足之处,那就是模型的预测时间过长,平均...

2019-10-18 23:45:05 4113 27

原创 NLP(十五)让模型来告诉你文本中的时间

背景介绍  在文章NLP入门(十一)从文本中提取时间 中,笔者演示了如何利用分词、词性标注的方法从文本中获取时间。当时的想法比较简单快捷,只是利用了词性标注这个功能而已,因此,在某些地方,时间的识别效果并不太好。比如以下的两个例子:原文1:苏北大量农村住房建于上世纪80年代之前。去年9月,江苏省决定全面改善苏北农民住房条件,计划3年内改善30万户,作为决胜全面建成小康社会补短板的重要举措。...

2019-10-18 20:43:55 1708

原创 NLP(十七)利用tensorflow-serving部署kashgari模型

  在文章NLP(十五)让模型来告诉你文本中的时间中,我们已经学会了如何利用kashgari模块来完成序列标注模型的训练与预测,在本文中,我们将会了解如何tensorflow-serving来部署模型。  在kashgari的官方文档中,已经有如何利用tensorflow-serving来部署模型的说明了,网址为:https://kashgari.bmio.net/advance-use/ten...

2019-10-18 20:43:19 1843 2

原创 NLP(十六)轻松上手文本分类

背景介绍  文本分类是NLP中的常见的重要任务之一,它的主要功能就是将输入的文本以及文本的类别训练出一个模型,使之具有一定的泛化能力,能够对新文本进行较好地预测。它的应用很广泛,在很多领域发挥着重要作用,例如垃圾邮件过滤、舆情分析以及新闻分类等。  现阶段的文本分类模型频出,种类繁多,花样百变,既有机器学习中的朴素贝叶斯模型、SVM等,也有深度学习中的各种模型,比如经典的CNN, RNN,以及...

2019-08-14 01:31:22 1643 8

原创 NLP(十四)自制序列标注平台

背景介绍  在平时的NLP任务中,我们经常用到命名实体识别(NER),常用的识别实体类型为人名、地名、组织机构名,但是我们往往也会有识别其它实体的需求,比如时间、品牌名等。在利用算法做实体识别的时候,我们一般采用序列标注算法,这就对标注的文本格式有一定的要求,因此,一个好的序列标注的平台必不可少,将会大大减少我们标注的工作量,有效提升算法的更新迭代速度。  本文将介绍笔者的一个工作:自制的序列...

2019-08-09 00:07:08 1209

原创 NLP(十三)中文分词工具的使用尝试

  本文将对三种中文分词工具进行使用尝试,这三种工具分别为哈工大的LTP,结巴分词以及北大的pkuseg。  首先我们先准备好环境,即需要安装三个模块:pyltp, jieba, pkuseg以及LTP的分型模型cws.model。在用户字典中添加以下5个词语:经少安贺凤英F-35战斗机埃达尔·阿勒坎  测试的Python代码如下:# -*- coding: utf-8 -*-...

2019-08-03 17:22:20 993

原创 NLP(十二)依存句法分析的可视化及图分析

  依存句法分析的效果虽然没有像分词、NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道。笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析。  我们使用的NLP工具为jieba和LTP,其中jieba用于分词,LTP用于词性标注和句法分析,需要事件下载pos.model和parser.model文件。  本文使用的示例句子为:2...

2019-07-29 23:05:34 3963 4

原创 NLP入门(十一)从文本中提取时间

  在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间。  举个简单的例子,我们需要从下面的文本中提取时间:6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。我们可以从文本有提取6月28日,2019年5月, 2月份这三个有效...

2019-07-14 19:43:13 3773 3

原创 BERT的几个可能的应用

  BERT是谷歌公司于2018年11月发布的一款新模型,它一种预训练语言表示的方法,在大量文本语料(维基百科)上训练了一个通用的“语言理解”模型,然后用这个模型去执行想做的NLP任务。一经公布,它便引爆了整个NLP界,其在11个主流NLP任务中都取得优异的结果,因此成为NLP领域最吸引人的一个模型。简单来说,BERT就是在训练了大量的文本语料(无监督)之后,能够在对英语中的单词(或中文的汉字)给...

2019-06-07 11:12:40 1700

原创 NLP入门(十)使用LSTM进行文本情感分析

情感分析简介  文本情感分析(Sentiment Analysis)是自然语言处理(NLP)方法中常见的应用,也是一个有趣的基本任务,尤其是以提炼文本情绪内容为目的的分类。它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。  本文将介绍情感分析中的情感极性(倾向)分析。所谓情感极性分析,指的是对文本进行褒义、贬义、中性的判断。在大多应用场景下,只分为两类。例如对于“喜爱”和“厌恶...

2019-05-18 15:55:56 3297 8

原创 NLP入门(九)词义消岐(WSD)的简介与实现

词义消岐简介  词义消岐,英文名称为Word Sense Disambiguation,英语缩写为WSD,是自然语言处理(NLP)中一个非常有趣的基本任务。  那么,什么是词义消岐呢?通常,在我们的自然语言中,不管是英语,还是中文,都有多义词存在。这些多义词的存在,会让人对句子的意思产生混淆,但人通过学习又是可以正确地区分出来的。  以**“小米”**这个词为例,如果仅仅只是说“小米”这个词...

2019-05-12 00:01:15 2754

原创 NLP入门(八)使用CRF++实现命名实体识别(NER)

CRF与NER简介  CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫(Markov)随机场。  较为简单的条件随机场是定义在线性链上的条件随机场,称为线性链条件随机场(linear chain conditional random field). 线...

2019-04-30 12:57:57 2535 1

原创 NLP入门(七)中文预处理之繁简体转换及获取拼音

  在日常的中文NLP中,经常会涉及到中文的繁简体转换以及拼音的标注等问题,本文将介绍这两个方面的实现。  首先是中文的繁简体转换,不需要使用额外的Python模块,至需要以下两个Python代码文件即可:langconv.py 地址: https://raw.githubusercontent.com/skydark/nstools/master/zhtools/la...

2019-02-01 14:04:48 1720 1

原创 NLP入门(六)pyltp的介绍与使用

pyltp的简介  语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台。它提供的功能包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等。  pyltp 是 LTP 的 Python 封装,同时支持Python2和Python3版本。Python3的安装方法为:pip3 install pyltp...

2019-01-31 18:00:05 1325 3

原创 NLP入门(五)用深度学习实现命名实体识别(NER)

前言  在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具——NLTK和Stanford NLP。在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现NER,只要你坚持看完,就一定会很有收获的。  OK,话不多说,让我们进入正题。  几乎所有的NLP都依赖一个强大的语料库,本项目实现NER的语料库如下(文件名为train.txt,一共42000行...

2018-11-16 16:55:50 1688

原创 NLP入门(四)命名实体识别(NER)

  本文将会简单介绍自然语言处理(NLP)中的命名实体识别(NER)。  命名实体识别(Named Entity Recognition,简称NER)是信息提取、问答系统、句法分析、机器翻译等应用领域的重要基础工具,在自然语言处理技术走向实用化的过程中占有重要地位。一般来说,命名实体识别的任务就是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百...

2018-11-14 20:20:36 6495 4

原创 NLP入门(三)词形还原(Lemmatization)

  词形还原(Lemmatization)是文本预处理中的重要部分,与词干提取(stemming)很相似。  简单说来,词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的单词会是字典中的单词,不同于词干提取(stemming),提取后的单词不一定会出现在单词中。比如,单词“cars”词形还原后的单词为“car”,单词“ate”词形还原后的单词为“eat”。  在Python的nltk...

2018-11-02 21:21:33 4069 1

原创 NLP入门(二)探究TF-IDF的原理

TF-IDF介绍  TF-IDF是NLP中一种常用的统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度,通常用于提取文本的特征,即关键词。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。  在NLP中,TF-IDF的计算公式如下:tfidf=tf∗idf.tfidf = tf*idf.tfidf=tf∗idf.其中,...

2018-11-02 11:40:50 1084

原创 NLP入门(一)词袋模型及句子相似度

  本文作为笔者NLP入门系列文章第一篇,以后我们就要步入NLP时代。  本文将会介绍NLP中常见的词袋模型(Bag of Words)以及如何利用词袋模型来计算句子间的相似度(余弦相似度,cosine similarity)。  首先,让我们来看一下,什么是词袋模型。我们以下面两个简单句子为例:sent1 = "I love sky, I love sea."sent2 = "I lik...

2018-11-01 11:41:54 2372

原创 tensorflow(4)使用tensorboard查看ckpt和pb图结构

  在我们使用tensorflow训练和部署模型的时候,我们经常会接触ckpt和pb文件。  本文将会介绍如何使用tensorboard查看ckpt和pb的模型图结构,便于我们加深对模型的理解。查看ckpt图结构  一般tensorflow保存模型格式为ckpt,里面含有data、index、meta文件,其中meta文件为元数据图(meta graph),它保存了tensorflow完整的网络图结构。我们可以通过解析它来查看模型图结构。  Python代码如下:import tensorflow

2020-11-05 11:57:17 271

原创 tensorflow(3)同时加载多个模型的一次尝试

  本文将会介绍如何使用tensorflow来同时加载多个模型,其中生成的模型文件为ckpt格式。  本文以Github上的bertNER项目为模板来介绍。项目结构如下:我们已经生成了三个模型:war,weapon,geo,每个模型都有各自对应的ckpt、config、maps、以及log文件。三个模型的模型参数都一样,最大长度为128。加载一个模型的服务  由于bertNER项目已经为我们提供好了预测脚本predict.py,因此我们很方便地就能将它改成为HTTP服务的方式,代码如下:# -*

2020-10-28 20:59:30 68

原创 Python之离线环境安装第三方模块

  熟悉Python的读者都知道,在Python中安装(在线环境)第三方模块十分方便,只需要输入pip install package_name即可完成第三方模块的完成,因为它会帮助你解决各个模块之间的依赖关系。但是,如果是离线环境,安装第三方模块将是一件十分困难的事情,因为你不清楚他们之间的依赖关系。  本文将介绍如何在离线环境中安装第三方模块。  本文以离线安装Python3.5的tensorflow模块为例,首先我们先找到tensorflow的依赖模块,然后将这些依赖模块下载下来,最后完成安装。

2020-10-28 20:13:52 62

原创 Protobuf学习入门(一)

  笔者最近在学习使用tensorflow/serving,其中有不少涉及Protobuf相关的内容,因此接触学习了Prorobuf,记录于此,希望能对读者有所启发。  本文作为Protobuf入门学习的第一篇文章,将简单介绍Protobuf协议以及如何使用Protobuf来实现序列化与反序列化。Protobuf简介  Protobuf即Protocol Buffers,是Google公司开发的一种跨语言和平台的序列化数据结构的方式,是一个灵活的、高效的用于序列化数据的协议。  与XML和JSON

2020-10-24 13:33:59 72

Python爬虫系列之PhantomJS+Selenium+AutoIt.pptx

该PPT介绍了Python爬虫在爬取动态网页方面会用到的软件PhantomJS, Selenium, 以及AutoIt. 欢迎对爬虫有兴趣的童鞋进行下载哈,本人亲自制作的PPT~~

2018-03-04

Python 数据结构

Python 数据结构

2017-08-21

山阴少年的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除