自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 问答 (2)
  • 收藏
  • 关注

原创 hive正则匹配总结

......

2022-11-15 15:39:56 2887 1

原创 多标签分类inference——tensorflow

……

2022-06-05 18:03:14 557

原创 MLP多标签分类实现-tensorflow

#!/usr/bin/env python# -*- coding: utf-8 -*-"""@Time : 2022/3/11 14:33@Author : @File : tf_ml_label.py@ desc:"""import platformimport mathimport tensorflow as tfimport timeimport osimport sysimport numpy as npimport pandas as pdfrom.

2022-06-05 17:51:15 1621 1

原创 Python 连接阿里云图数据库GDB报错:NotImplementedError

用户环境:Windows10、Python3.8一、在本地Python环境下连接阿里云的图数据库GDB步骤如下:(1)在阿里云的控制台创建一个图数据库实例(2)图数据库建立用户,获取用户名和密码(3)在安全性管理中,将default组的白名单网址改为0.0.0.0/0并保存(4)申请外网地址,获取外网地址和端口(5)在cmd中测试地址和端口是否可用ping ip # 测试地址是否可用telnet ip port # 测试地址和端口是否可以访问二...

2021-03-02 21:43:52 473

原创 neo4j 数组属性(属性值有多个)

1、多个属性值的设置语句match (m:公司{名称:["test3","test2"]}) return m2、多个属性的查询以及merge的使用OPTIONAL MATCH (n:公司) where "test3" in n.名称 WITH nwhere n is null merge (m:公司{名称:["test3","test2"]})return m(1)判断属性是否存在:直接用 "属性值 in 节点.属性名"的形式(2)merge和where不可以同时使用,.

2021-01-20 16:21:44 3623

原创 python 读取Elasticsearch数据

elasticsearch 库pip installelasticsearchfrom elasticsearch import ElasticsearchES_CONF = { "host": "192.168.11.22", "port": 9200, "user": "elastic", "passwd": "1234"}index = "test_index"def process_func(): # 从ES读取数据 es .

2021-01-02 16:08:55 3587 1

原创 neo4j 图计算(GDS)的一些问题(相似性计算)

最近在neo4j计算了某个节点与其邻居节点的相似度,这里主要使用的是“Neo4j Graph Data Science”这个插件,记录一下使用过程,以及相关文档。环境:Windows10、neo4j 4.0.1本来在网上看到很多示例都是用的algo这个计算相似度的,但是我的neo4j是4.0的,看官网这个包不支持,所以就用了他们现在更推崇的另一个包,我这里用的是“Graph Data Science 1.4.1”1、插件的下载和安装 这一块可以完全参考官方文档:https:/...

2020-12-27 16:50:23 2256 2

原创 Python 中文词云实践(wordcloud)遇到的问题

词云项目的地址:https://github.com/amueller/word_cloud(里面有很多example可以自己玩一下)这个wordcloud包可以根据自己的需求自定义词云的形状,然后词云其实逻辑比较简单,就是做词汇的词频统计,然后就是可视化的部分,但是如果自己去实现肯定是一个比较麻烦的事,这个包用着还不错,就是偶尔会有一点点的小问题需要解决一下。下面就是我自己用的过程中遇到的一些问题,以及解决办法。由于词云的使用示例比较多,所以这里主要记录遇到的问题,没有给出简单示例。1、中文词云显

2020-12-27 13:59:07 2936

原创 Python MySQL数据批量处理的一些总结

最近一直在做的就是各种读写数据的问题。。。。虽然我也不知道为什么。1、数据的批量处理——executemany 个人觉得这个方法还是蛮好用的,主要的做法就是,把需要insert或者update的数据按需要的格式生成一个list,list的元素对应要写入的数据,用法如下,可以看到,它其实就是之前的单挑执行SQL语句的批量执行版,所以只要把对应的数据构造好就可以了,也就是说,任何单条可执行的语句,只要数据打包好,都可以用这个来执行。 最神奇的是,这个可批量写的数据还蛮大的,...

2020-12-02 22:37:52 1276

原创 Python 定时任务调度

1、方法总结类python定时任务:https://blog.csdn.net/xc_zhou/article/details/809521472、apscheduler的介绍Python定时任务-APScheduler:https://blog.csdn.net/wuyongpeng0912/article/details/88895659APScheduler中两种调度器的区别及使用过程中要注意的问题:https://blog.csdn.net/ybdesire/article/deta

2020-11-29 22:31:18 160

原创 Python log的打印和保存总结

Python打印和保存log的主要作用是,在我们没空盯着程序运行时,可以在程序或者结果出错的时候根据log文件中的日志信息找出问题所在。在Python中一般用logging这个自带库来做log的屏幕打印和文件保存,关于logging中信息等级的设置可以参考这篇文章:https://www.cnblogs.com/nancyzhu/p/8551506.html从自己所用和上面链接可以总结出,logging对log的打印和保存有两种设置方式。1、log的打印和保存只能二选一 这种方式主要...

2020-11-29 15:03:47 12590

原创 Python 通过neo4-driver读写neo4数据库

1、安装库pip install neo4j-driver2、Python写数据库的基本操作 这种方式读写neo4j时,write_transaction主要接受两个参数,一个是操作数据库的函数,一个是要写入的数据的参数。而且可以看到,其实写数据到neo4j的函数create_person_node主要做是,构建Cypher语句,这个语句可以是任何的在neo4j数据库操作的原生语句。 例子中给出的是一个创建节点的Cyber语句,其实,这里也可以是一个创建关系的语句,或者...

2020-11-22 12:31:07 563

原创 Neo4j的一些基本操作

目录1、neo4j的Windows的安装和启动2、neo4j中一些常用的命令(1)添加添加关系双向关系(2)删除删除节点删除连边删除整个数据(3)修改节点(4)查询节点1、neo4j的Windows的安装和启动(1)neo4j是依赖jdk的,所以首先要安装jdk,并配置好Java的环境(就是把jdk里面的\bin路径加到环境变量中去)(2)在官网下载安装包,Windows的安装包下载之后只需要解压就可以用了(3)解压后,最好把目录底下的\bin..

2020-11-16 22:14:40 1805

原创 打印dataframe的时候省略号的处理

主要是动过pandas.setoption()来设置打印的属性1、打印列的宽度的设置pd.set_option('display.max_columns', 500)​pd.set_option('display.width', 1000)如果希望打印所有的列,则设置如下:pd.set_option('display.max_columns', None)​pd.set_option('display.width', None)二者的区别是,当列太多时,使用max_colu.

2020-11-15 13:58:48 1122

原创 Python 读写csv文件总结(pandas、csv库)

1、用pandas读写csv文件,参考:https://blog.csdn.net/u011412768/article/details/1095223492、用Python自带的csv库读写 (1)按行写csv文件 用csv按行写数据时,每一行是按照一个list写入的,所以将每一行的数据做成一个list就可以输出了。 值得注意的是,csv逐行写入数据时,默认的是行之间会空一行,可以通过newline=""来解决这个问题。 import csv...

2020-11-15 11:58:56 1278

原创 SQL语句的一些用法

在关系型数据库中查看数据的一些统计情况时,经常要使用到SQL语句,这篇文章主要记录常用的一些SQL语句1、某一列有重复值的的数据 select * from user where name in (select name from user group by name having count(*) > 1) 这个语句的功能是找出所有记录中,name值出现多次的那些记录。 用例来源:https://blog.csdn.net/huaweitman/article/...

2020-11-15 11:28:25 115

原创 Python正则匹配的应用——替换括号及括号内字符、文本分句

本文是在实际处理文本时遇到的两个应用。1、剔除括号及括号内的数据 用正则匹配的方法,替换掉目标字符串为空,具体示例如下:s = "我是一个人(中国人)aaa[真的]bbbb{确定}"a = re.sub(r"\((.*?)\)|\{(.*?)\}|\[(.*?)\]", "", s)print(a)output:我是一个人aaabbbb 加上剔除文本中的各种标点符号,例子如下:s = "我是一个人(中国人)aaa[真的]bbbb{确定}''""?::”“"a =...

2020-11-08 19:50:00 14916

原创 Python用re正则匹配处理字符

一般在文本处理的时候,会遇到字符处理的问题,Python提供的re模块是一个做文本匹配的基础模块,它主要是通过制定的规则找出文本中符合条件的子字符或者子字符串。1、字符匹配 根据条件,做单个的字符匹配,字符匹配的规则由两部分组成,一个是匹配的字符形式,比如大小写字母、数字等字符,另一部分则是字符重复的次数。 在正则匹配中的元字符有: . ^ $ * +? { [ ] \ | ( )。这些元字符的主要作用是跟其它的标准字符一起组成匹配的规则,所以可以认为它们是带有其它作用的特殊字符。...

2020-11-08 16:48:14 4611

原创 Python 用pandas读写CSV文件的index和columns细节问题

目录1、生成一个dataframe2、写到csv文件3、读取csv文件4、总结1、生成一个dataframe(1)自己不设置index,程序自动生成indexdata = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'], 'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3], .

2020-11-05 23:36:16 33250 1

原创 BERT 面试总结

BERT 1、整个结构的介绍(1)模型输入 输入句子分字符,字符的embedding+position embedding + segement embedding求和作为模型的输入,其中会随机掩盖掉15%的字符,其中80%用[mask]字符代替,这10%的随机替换成其它字符,10%不做改变。(2)模型输出: 预训练模型的输出是输入的各个字符经过模型编码后的embedding,两个任务是预测输入中被掩盖掉的词,以及预测输入的两句是上下两句话还是拼接的。(3)模...

2020-10-25 23:01:08 1270

原创 算法面试题

1、LeetCode 78.子集:https://leetcode-cn.com/problems/subsets/2、

2020-10-24 23:02:12 52

原创 多标签分类方法总结——实现方法、评价指标、损失函数

分类一般分为三种情况:二分类、多分类和多标签分类。多标签分类比较直观的理解是,一个样本可以同时拥有几个类别标签,比如一首歌的标签可以是流行、轻快,一部电影的标签可以是动作、喜剧、搞笑,一本书的标签可以是经典、文学等,这都是多标签分类的情况。多标签分类的一个重要特点是样本的所有标签是不具有排他性的。 在阅读了一篇类似综述总结的博客后,做了以下总结,主要是实现多标签分类的几种思想,以及在深度网络的背景下实现多标签分类的几种方法。 实现多标签分类主要有两种思想,一种是...

2020-10-14 20:52:15 23277 11

原创 分类问题中的各种评价指标——precision,recall,F1-score,macro-F1,micro-F1

目录一、二分类评价指标1、真实标签-预测标签的混淆矩阵2、accuracy3、precision、recall和F1-score4、指标的选择问题二、多分类评价指标1、macro-F12、weight-F13、micro-F14、指标的选择问题注:这篇文章只是对常用的分类问题中的评价指标的总结。一、二分类评价指标1、真实标签-预测标签的混淆矩阵 样本被预测为正 样本被预测为负 实际样本为正 TP(true positive) .

2020-10-13 17:33:09 9855

原创 LeetCode 84. 柱状图中最大的矩形——Python实现(栈)

# -*- coding: utf-8 -*-"""@File : largest_rectangle_area.py@Author: zhang_san@Time : 2020/9/13 10:31@des : 题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。 思路:使用栈的方式。因为柱状图的下边界是固定的,所以求柱状图中的矩形面积,其实是求以每一个柱高为上边界,可以形成的矩形的面.

2020-09-13 16:28:34 290

原创 LeetCode 300.最长上升子序列——Python实现(动态规划、二分查找)

# -*- coding: utf-8 -*-"""@File : longest_increasing_subsequence_dp.py@Author: zhang_san@Time : 2020/9/5 16:04@des : 题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。 输入: [10,9,2,5,3,7,101,18],输出: 4 。解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 method 2:对动态.

2020-09-06 13:53:15 362

原创 LeetCode 215. 数组中的第K个最大元素——Python实现(堆排序、快速排序)

1、用堆排序的方法# -*- coding: utf-8 -*-"""@File : heap_find_kth_largest.py@Author: zhang_san@Time : 2020/8/28 19:54@des : 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 即:在数组进行降序排列之后,取 第 k 个位置上的值。这里不考虑重复的情况,比如排序后为[6, 5, 5, 4,

2020-08-30 16:41:09 1009

原创 LeetCode 704.二分查找——Python实现

# -*- coding: utf-8 -*-"""@File : binary_search.py@Author: zhang_san@Time : 2020/8/28 17:59@des : 二分查找。"""class Solution: def search(self, nums, target) -> int: start, end = 0, len(nums) - 1 # 递归查找目标值 while star.

2020-08-28 19:49:13 431

原创 LeetCode 142.环形链表II——Python实现(hash、快慢指针)

1、使用哈希查找的方法class Solution: def detectCycle(self, head: ListNode) -> ListNode: if head is None or head.next is None: return None # 用hashmap的方式存储 node_index_dict = {} i = 0 while head:

2020-08-28 11:33:18 273

原创 LeetCode 141.环形链表——Python实现

1、用哈希查找的方法# -*- coding: utf-8 -*-"""@File : hash_has_cycle.py@Author: zhang_san@Time : 2020/8/27 22:19@des : 题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链 表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 方法一:利用哈希查找的方法,遍历节点,存入ha

2020-08-27 22:55:18 234

原创 LeetCode 160.相交链表——Python实现

感觉LeetCode的简单、中等、困难这三个等级是按照代码的复杂程度,以及好记程度来的。。。。# -*- coding: utf-8 -*-"""@File : intersection_node.py@Author: Qiu_Nian@Time : 2020/8/27 20:43@des : 一种比较巧妙的方式是,分别为链表A和链表B设置指针A和指针B,然后开始遍历链表,如果遍历完当前链表,则将指针 指向另外一个链表的头部继续遍历,直至两个指针相遇。

2020-08-27 22:15:36 205

原创 LeetCode 25.k个一组翻转链表——Python实现

1、官方给的一种解法,很直观,就是指针太多,很容易绕晕class Solution: def reverseKGroup(self, head: ListNode, k: int) -> ListNode: def reverseList(head_node, tail_node): new_tail_node = head_node visited_head = None while head_

2020-08-27 19:37:11 249

原创 LeetCode 206.反转链表——Python实现

1、比较直观的方法,遍历链表,每一个节点做反转class Solution: def reverseList(self, head: ListNode) -> ListNode: visited_head = None # visited_head 是已经翻转过的链表的头节点 while head: current_head = head # 由于head连接着后面还没有翻转过的节点,所以不可以直接使用,则得使用

2020-08-27 19:30:33 294

原创 LeetCode 21.合并两个有序链表——Python实现

1、比较直观的方式 用两个分别指向两个链表的指针,一起滑动. (1)用一个指针head始终跟踪当前最新的节点,也就是最终的有序链表list的最后一个元素 (2)另外l1和l2分别向后滑动进行值得比较,每一轮的比较都会将比较中的更小的那个值加入到结果链表中(结果链表通过head串联起来) (3)因为每一轮比较只加入一个值,所以最终只有最后一轮比较的其中一个节点没有添加进来class Solution: def mergeTwoLists(self, l1:...

2020-08-26 23:33:47 309

原创 LeetCode 958.二叉树的完全性检验——Python实现(BFS)

题目:给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边, 这就是完全二叉树。(注:第 h 层可能包含 1~2h个节点。)1、解题思路:(1)从完全二叉树的定义来看,除了最后一层以外,其它层的元素个数应该是达到最大的。(2)对于最后一层的元素,所有的元素必须全部靠左(3)按以上所述,如果可以获取每一层的元素,那么就可以获取每一层大大..

2020-08-26 17:04:58 308

原创 LeetCode 226.翻转二叉树——Python实现(递归、迭代)

1、题目:翻转二叉树。就是一颗二叉树的所有子树都会发生左右翻转,所以这种情况用递归就可以实现class Solution(object): def invertTree(self, root: TreeNode) -> int: if root is None: return root left_node = self.invertTree(root.left) right_node = self.invertTr

2020-08-26 13:58:04 278

原创 LeetCode 110.平衡二叉树——Python实现(递归)

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。思路:平衡二叉树的子树也是一颗平衡二叉树。所以,可以用递归的方法,从叶子节点开始,逐层向上检验子树。在每一次的 节点计算力,需要计算的是以当前节点为root,其左右子树是否平衡,如果平衡就是true,否则就是false。那么如何判断 左右子树是否平衡,就要计算左右子树的高度,也就是层数。同时,为了便于当前 root节点的上一级节点进行判断,需要返 回当前子树.

2020-08-26 11:35:03 323

原创 LeetCode 543.二叉树的直径——Python实现

题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。思路:基于二叉树的结构,对于一条路径上的点,要么是做向上传递信息的,要么是向两个子树传递信息。在求最大路径和的时候, 需要传递的是节点的 value,在求最长路径时,求的是这条路径的长度,每增加一个节点就增加 1,所以这里比最大路径和相对简 单,每个节点只需要向上返回自己的最大路径即可。class Solution(object): def diameterOfBinar.

2020-08-26 10:37:46 295

原创 LeetCode 124.二叉树中的最大路劲和——Python实现(递归、广度优先)

1、这题真的难得要把人送走了。。。 题目:求解二叉树中的任意一条路径的最大和,不一定是要从根节点开始,思路如下: 对于二叉树的深度遍历,本质是从叶子结点计算,然后将叶子节点相关的计算的相关值向上传递。而对于一条和最大的路径,它上面的所有点只可能担任两种角色,一种在这条路径里连接左右两颗子树,那么这个时候 left+root+right就是和最大的路径,还有一种 就是这个节点只是路径上的向上传递的节点,它的任务是连接自己的最大子树和自己的父级节点。class Soluti...

2020-08-25 20:34:17 263

原创 LeetCode 200.岛屿数量——Python实现(递归、广度优先)

1、通过递归的方式实现岛屿数量的计算 (1)寻找某一个 1 为入口,迭代将与它相连的 1 都标记为0,这样直到相连的一整块周围都没有 1 ,只有0的时候,迭代结束 (2)完成(1)中的 一个完整的迭代一次,就代表找到了一块岛屿 (3)在整个网格上循环找为 1 的入口,然后计算岛屿的数量class Solution: def numIslands(self, grid): def mark_zeros(grid, i, j, num_row, num_c...

2020-08-25 16:53:18 1204

原创 LeetCode 199.二叉树的右视图——Python实现(广度优先搜索、深度优先搜索)

1、广度优先搜索class Solution(object): def rightSideView(self, root: TreeNode): if root is None: return [] # 通过队列来存储BFS的节点,然后获得每一层的最后一个节点 queue = [root] view_list = [] while queue: view_list

2020-08-25 14:58:57 222

空空如也

空空如也

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

TA关注的人

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