- 博客(148)
- 收藏
- 关注
转载 Python之配置文件处理
在平时的工程中,我们在构建工程时,常常需要用到配置文件,用来配置项目的一些信息,比如数据库,请求网址,文件夹,线程、进程数等信息,这样就可以方便我们通过修改配置文件中的参数来很好地完成整个项目的功能修改或开发。配置文件一般区别于Python代码,会单独存放在一个文件夹中,方便管理,常见的配置文件格式有.conf, .ini, .yaml等。 本文使用Python中的configp...
2019-08-28 16:49:00
243
转载 NLP(十六)轻松上手文本分类
背景介绍 文本分类是NLP中的常见的重要任务之一,它的主要功能就是将输入的文本以及文本的类别训练出一个模型,使之具有一定的泛化能力,能够对新文本进行较好地预测。它的应用很广泛,在很多领域发挥着重要作用,例如垃圾邮件过滤、舆情分析以及新闻分类等。 现阶段的文本分类模型频出,种类繁多,花样百变,既有机器学习中的朴素贝叶斯模型、SVM等,也有深度学习中的各种模型,比如经典的CNN, R...
2019-08-14 01:33:00
499
转载 NLP(十四)自制序列标注平台
背景介绍 在平时的NLP任务中,我们经常用到命名实体识别(NER),常用的识别实体类型为人名、地名、组织机构名,但是我们往往也会有识别其它实体的需求,比如时间、品牌名等。在利用算法做实体识别的时候,我们一般采用序列标注算法,这就对标注的文本格式有一定的要求,因此,一个好的序列标注的平台必不可少,将会大大减少我们标注的工作量,有效提升算法的更新迭代速度。 本文将介绍笔者的一个工作:...
2019-08-09 00:10:00
326
转载 NLP(十三)中文分词工具的使用尝试
本文将对三种中文分词工具进行使用尝试,这三种工具分别为哈工大的LTP,结巴分词以及北大的pkuseg。 首先我们先准备好环境,即需要安装三个模块:pyltp, jieba, pkuseg以及LTP的分词模型文件cws.model。在用户字典中添加以下5个词语:经少安贺凤英F-35战斗机埃达尔·阿勒坎 测试的Python代码如下:# -*- coding: ut...
2019-08-03 17:23:00
205
转载 NLP(十二)依存句法分析的可视化及图分析
依存句法分析的效果虽然没有像分词、NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道。笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析。 我们使用的NLP工具为jieba和LTP,其中jieba用于分词,LTP用于词性标注和句法分析,需要事件下载pos.model和parser.model文件。 本文使用的示例句子...
2019-07-29 23:08:00
1554
转载 NLP入门(十一)从文本中提取时间
在我们的日常生活和工作中,从文本中提取时间是一项非常基础却重要的工作,因此,本文将介绍如何从文本中有效地提取时间。 举个简单的例子,我们需要从下面的文本中提取时间:6月28日,杭州市统计局权威公布《2019年5月月报》,杭州市医保参保人数达到1006万,相比于2月份的989万,三个月暴涨16万人参保,傲视新一线城市。我们可以从文本有提取6月28日,2019年5月, 2月份...
2019-07-14 19:44:00
837
转载 Docker入门(四)——MySQL镜像中的数据库可视化
在详细介绍这篇文章的内容前,需要说明下笔者写这篇文章的意图:笔者在现有的开发中,前后端联调的方式为Docker镜像对接,数据库使用MySQL镜像,开发环境为远程服务器,因此,笔者迫切需要一种能将远程服务器端的MySQL镜像中的数据库进行可视化。如何使用MySQL镜像? 利用docker search mysql命令可以搜索关于MySQL的Docker镜像,利用docker pu...
2019-07-07 22:11:00
94
转载 Python中的测试工具
当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐。在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程,比如:unittest: 一个通用的测试框架;doctest: 一个更简单的模块,是为检查文档而设计的,但也非常适合用来编写单元测试。 下面,笔者将会简单介绍这两个模块在测...
2019-06-09 11:36:00
340
转载 BERT的几个可能的应用
BERT是谷歌公司于2018年11月发布的一款新模型,它一种预训练语言表示的方法,在大量文本语料(维基百科)上训练了一个通用的“语言理解”模型,然后用这个模型去执行想做的NLP任务。一经公布,它便引爆了整个NLP界,其在11个主流NLP任务中都取得优异的结果,因此成为NLP领域最吸引人的一个模型。简单来说,BERT就是在训练了大量的文本语料(无监督)之后,能够在对英语中的单词(或中文...
2019-06-07 11:15:00
343
转载 NLP入门(十)使用LSTM进行文本情感分析
情感分析简介 文本情感分析(Sentiment Analysis)是自然语言处理(NLP)方法中常见的应用,也是一个有趣的基本任务,尤其是以提炼文本情绪内容为目的的分类。它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。 本文将介绍情感分析中的情感极性(倾向)分析。所谓情感极性分析,指的是对文本进行褒义、贬义、中性的判断。在大多应用场景下,只分为两类。例如对于“喜爱...
2019-05-18 15:58:00
605
转载 Python之将Python字符串生成PDF
笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF。比如,需要把Python字符串‘这是测试文件’生成为PDF, 该PDF中含有文字‘这是测试文件’。 经过一番检索,笔者决定采用wkhtmltopdf这个软件,它可以将HTML转化为PDF。wkhtmltopdf的访问网址为:https://wkhtmltopdf.org/downloads.html ,...
2019-05-17 13:32:00
171
转载 SPARQL入门(二)使用Java操作ARQ
在文章SPARQL入门(一)SPARQL简介与简单使用中,我们了解了RDF、SPARQL以及基于Java编写的SPARQL处理器ARQ。在本文中,笔者将会如何使用Java来操作ARQ。 注意到在Jena的官网http://jena.apache.org/download/index.cgi 说明中,有关于Maven的使用方法介绍:因此可以使用Maven,然后再用Java来操作...
2019-05-15 14:05:00
293
转载 SPARQL入门(一)SPARQL简介与简单使用
知识图谱(Knowledge Graph)是当前互联网最炙手可热的技术之一,它的典型应用场景就是搜索引擎,比如Google搜索,百度搜索。我们在百度搜索中输入问题“中国银行的总部在哪”,搜索的结果如下:这便是知识图谱的典型应用,能够直接输出问题的答案。借助知识图谱,能够让搜索引擎更加高效,搜索结果更加精准,给用户带来更好的搜索体验和乐趣。 关于知识图谱的知识点和工具数不胜数,...
2019-05-14 23:36:00
546
转载 NLP入门(九)词义消岐(WSD)的简介与实现
词义消岐简介 词义消岐,英文名称为Word Sense Disambiguation,英语缩写为WSD,是自然语言处理(NLP)中一个非常有趣的基本任务。 那么,什么是词义消岐呢?通常,在我们的自然语言中,不管是英语,还是中文,都有多义词存在。这些多义词的存在,会让人对句子的意思产生混淆,但人通过学习又是可以正确地区分出来的。 以“小米”这个词为例,如果仅仅只是说“小米”这个...
2019-05-12 00:03:00
339
转载 利用百度文字识别API识别图像中的文字
本文将会介绍如何使用百度AI开放平台中的文字识别服务来识别图片中的文字。百度AI开放平台的访问网址为:http://ai.baidu.com/ ,为了能够使用该平台提供的AI服务,你需要事先注册一个百度账号。创建百度AI文字识别应用 在百度AI开放平台中,登录自己的百度账号,点击“文字识别”服务中的“通用场景文字识别”,选择“创建应用”,填好应用名称,选择应用类型,填好应用描述...
2019-05-11 22:04:00
282
转载 NLP入门(八)使用CRF++实现命名实体识别(NER)
CRF与NER简介 CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫(Markov)随机场。 较为简单的条件随机场是定义在线性链上的条件随机场,称为线性链条件随机场(linear chain conditional random fiel...
2019-04-30 12:59:00
1091
转载 Cayley图数据库的可视化(Visualize)
引入 在文章Cayley图数据库的简介及使用中,我们已经了解了Cayley图数据库的安装、数据导入以及进行查询等。 Cayley图数据库是Google开发的开源图数据库,虽然功能还没有Neo4J来得那么强大,但也有很多新的功能等待着我们去探索。本文将继续上篇文章的旅程,给读者介绍如何在Cayley图数据库中实现查询结果的可视化。 下面,让我们一起来探究Cayley的奥秘吧~...
2019-04-09 10:14:00
612
转载 Cayley图数据库的简介及使用
图数据库 在如今数据库群雄逐鹿的时代中,非关系型数据库(NoSQL)已经占据了半壁江山,而图数据库(Graph Database)更是攻城略地,成为其中的佼佼者。 所谓图数据库,它应用图理论(Graph Theory)可以存储实体的相关属性以及它们之间的关系信息。最常见例子就是社会网络中人与人之间的关系。相比于关系型数据库(比如MySQL等),图数据库更能胜任这方面的任务。 ...
2019-04-07 13:51:00
391
转载 文件服务器的两种实现方式
简介 在日常的工作项目中,我们常常会需要用到文件服务器,即在网页端就能访问到本地的电脑中某个文件夹下的所有文件,示例界面如下: 本文将介绍笔者接触到的两种实现文件服务器的方法,它们所使用的工具如下:NginxPython本文以Linux系统(Ubuntu系统)为例,具体介绍如何实现文件服务器。Nginx实现文件服务器Nginx的简介与安装 Nginx是一个高性...
2019-03-29 23:15:00
458
转载 用tornado实现图片标记
背景介绍 在文章Keras入门(四)之利用CNN模型轻松破解网站验证码中,其中的验证码图片标记是采用tornado实现的网页实现的。本文将会讲述如何利用tornado来实现图片标记。 我们的示例图片如下:我们实现用tornado来实现一个网站,能够很好地帮助我们完成图片标记,也就是我们只需要输入图片中的数字,那么保存后的图片名称就是输入的数字。 下面,让我们来一起看一下怎...
2019-03-26 09:31:00
162
转载 Keras入门(四)之利用CNN模型轻松破解网站验证码
项目简介 在之前的文章keras入门(三)搭建CNN模型破解网站验证码中,笔者介绍介绍了如何用Keras来搭建CNN模型来破解网站的验证码,其中验证码含有字母和数字。 让我们一起回顾一下那篇文章的处理思路:利用OpenCV对图像进行单个字符的切割,大概400多张图片;对切割好的单个字符进行人工手动标记;搭建合适的CNN模型,对标记好的数据集进行训练;对于新的验证码,先切...
2019-03-24 15:35:00
187
转载 Elasticsearch简介与实战
什么是Elasticsearch? Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库——无论是开源还是私有,但它也仅仅只是一个库。为了充分发挥其功能,你需要使用 Java 并将 Lucene 直接集成到应用程序中。 更糟糕的是,您可能...
2019-03-06 14:43:00
103
转载 PyTorch入门(一)向量
什么是PyTorch? PyTorch是Facebook人工智能团队开发的一个机器学习和深度学习工具,用于处理大规模图像分析,包括物体检测,分割与分类。但是它的功能不仅限于此。它与其它深度学习框架结合,能够完成复杂的算法。PyTorch用Python和C++编写。 PyTorch属于深度学习框架中的重要一员,与TensorFlow, Keras, Theano等其它深度学习框架...
2019-02-28 15:04:00
289
转载 Neo4j入门之中国电影票房排行浅析
什么是Neo4j? Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。 作为图形数据库,Neo4j最让人惊...
2019-02-24 00:27:00
340
转载 利用tornado实现表格文件预览
项目介绍 本文将介绍笔者的一个项目,主要是利用tornado实现表格文件的预览,能够浏览的表格文件支持CSV以及Excel文件。预览的界面如下: 下面我们将看到这个功能是如何通过tornado来实现的。代码 该项目的代码结构如下图所示: 其中主要分为四个部分:filesstatictemplatespy代码其中,files文件夹为上传的表格文件的存放路...
2019-02-22 10:55:00
85
转载 Docker入门(三)使用Docker Compose
Compose介绍 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。为什么使用Compose 在Docker镜像构成和定制介绍...
2019-02-20 18:46:00
84
转载 Docker入门(二)在docker使用MongoDB
本文将介绍如何在docker中使用MongoDB。 如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还需要自己配置一些服务。这时候,docker就能帮上大忙,它能够让你不需要本地安装MongoDB就能使用MongoDB。下面让我们来看看这是怎么实现的。 首先你的电脑上需要安装docker...
2019-02-20 16:57:00
91
转载 Redis快速入门
Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,如Java, Python, PHP等。 它通常被称为数据结...
2019-02-15 15:22:00
67
转载 自制简单的诗歌搜索系统
项目简介 本文将介绍一个笔者自己的项目:自制简单的诗歌搜索系统。该系统主要的实现功能如下:指定一个关键词,检索出包含这个关键词的诗歌,比如关键词为“白云”,则检索出的诗歌可以为王维的《送别》,内容为“下马饮君酒,问君何所之?君言不得意,归卧南山陲。但去莫复问,白云无尽时。” 该项目使用的Python模块为:requestsBeautifulSouppymongotorn...
2019-02-12 21:09:00
182
转载 Python爬虫之使用celery加速爬虫
celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。关于celery的更多介绍及例子,笔者可以参考文章Python之celery的简介与使用。 本文将介绍如何使用celery来加速爬虫。 本文爬虫的例子来自文章:Python爬虫的N种姿势。这里不再过多介绍,我们的项目结构如下:其中,app_test.py为主程序,其代码如下:fro...
2019-02-02 15:41:00
97
转载 Python之celery的简介与使用
celery的简介 celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程,如Eventlet,gevent等,它们能被并发地执行在单个或多个职程服务器(worker servers)上。任务能异步执行(后台运行)或同步执行(等待任务完成)。 在生产系统中,celery能够一天处理上百万的任务。它的完整...
2019-02-02 13:27:00
93
转载 NLP入门(七)中文预处理之繁简体转换及获取拼音
在日常的中文NLP中,经常会涉及到中文的繁简体转换以及拼音的标注等问题,本文将介绍这两个方面的实现。 首先是中文的繁简体转换,不需要使用额外的Python模块,至需要以下两个Python代码文件即可:langconv.py地址:https://raw.githubusercontent.com/skydark/nstools/master/zhtools/langconv...
2019-02-01 14:06:00
359
转载 NLP入门(六)pyltp的介绍与使用
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台。它提供的功能包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等。 pyltp 是 LTP 的 Python 封装,同时支持Python2和Python3版本。Python3的安装方法为:pip3 install pyl...
2019-01-31 18:01:00
1289
转载 Docker入门(一)用hello world入门docker
初识DockerDocker是什么? Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker与传统虚拟化...
2019-01-31 15:16:00
133
转载 Python之在函数中使用列表作为默认参数
本文将介绍笔者在工作中遇到的Python的一个坑,那就是使用列表作为默认参数。 我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变。另一个需要注意的是,使用列表作为函数的默认参数时,列表的内容变化情况。 首先,我们看以下的代码例子:def add(x, lst=[]): if x not in lst: lst....
2019-01-27 11:12:00
119
转载 为你的Python程序加密
在实际的工作中,有时候我们需要部署自己的Python应用,但这时候我们并不希望别人能够看到自己的Python源程序。因此,我们需要为自己的源代码进行加密,Python已经为我们提供了这样一套工作机制。 第一种加密Python源代码的方式,是将.py文件转化为.pyc文件,但这种加密方式很容易被反编译,因此实用性并不高。 第二种加密Python源代码的方式,是将.py文件转化为...
2019-01-18 21:33:00
126
转载 单词纠错
单词纠错 在我们平时使用Word或者其他文字编辑软件的时候,常常会遇到单词纠错的功能。比如在Word中:单词“Chinab”有红色的下划线,说明该单词拼写有误,在“拼写检查”中,给出了几个可能的单词来帮助用户纠正拼写。那么,我们是否能够自己来实现这个功能呢? Why not? 关于单词纠错的思路,可以参考Peter Norvig的鼎鼎大名的网站:http://norvig...
2018-12-27 15:27:00
121
转载 动态规划法(十一)编辑距离
编辑距离问题 什么是两个字符串的编辑距离(edit distance)?给定字符串s1和s2,以及在s1上的如下操作:插入(Insert)一个字符移除(Remove)一个字符替换(Replace)一个字符试问最小需要多少次这样的操作才能使得s1转换为s2? 比如,单词“cat”和“hat”,这样的操作最少需要一次,只需要把“cat”中的“c”替换为“h”即可。单词“r...
2018-12-27 11:33:00
90
转载 数据结构入门(三)栈的应用
在之前的两篇文章——数据结构入门(一)栈的实现和数据结构入门(二)栈的应用之数学表达式求值中,笔者分别介绍了“栈”这个数据结构在数的进制转换和数学表达式求值方面的应用。在本文中,笔者将会再介绍栈的四个应用,它们分别是:判断字符串是否回文括号匹配行编辑程序二叉树的深度优先遍历 栈的结构实现可以参考数据结构入门(二)栈的应用之数学表达式求值,本文将不再具体给出。判断字符...
2018-12-26 15:08:00
106
转载 数据结构入门(二)栈的应用之数学表达式求值
在文章数据结构入门(一)栈的实现中,我们已经知道了如何去实现“栈”这个数据结构,并且介绍了一个它的应用:数的进制转换。在本文中,将会介绍栈的第二个应用,也就是栈在数学表达式求值中的应用。 我们分以下几步对数学表达式进行求值。栈的实现;中缀表达式转后缀表达式;后缀表达式求值。先不着急明白上述术语,你看下去就会明白了。栈的实现 以下是栈的Python实现(Stack...
2018-12-25 14:20:00
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人