prism

Python自然语言处理只需要5行代码

余生颓废 提交于 2020-04-13 08:45:51
Python自然语言处理只需要5行代码 一、前言 人工智能是Python语言的一大应用热门,而自然语言处理又是人工智能的一大方向。 自然语言处理( natural language processing )简称NLP,是研究人同计算机之间用自然语言通信的一种方法。我们都知道,计算机本质上只认识0和1,但是通过编程语言我们可以使用编程语言同计算机交流。这实际上就是程序员同计算机之间的通信,而我们日常生活中使用的是自然语言,是一种带有情感的语言。那么要怎么使计算机理解这种带有情感的语言呢?这就是自然语言处理研究的内容了。 语言的情绪识别是自然语言处理的一种操作,如果要我们从0开始实现情绪识别是比较繁琐的。首先我们需要准备好足够的数据,为了让计算机更好的理解,我们还需要对数据进行预处理,之后需要训练数据,有了训练数据我们才能开始情绪识别。识别的准确率在于数据的相关性和数据量,数据相关性越高,数据量越大,识别的准确率就越高。 然而,我们使用paddlehub可以很快的实现情绪识别,我们先看看如何安装。 二、安装paddlehub paddlehub是百度飞桨PaddlePaddle中的一个模型库,使用paddlepaddle可以很快的实现多种多样的操作,其中就有我们今天要说到的文字情绪识别,而且代码非常简单。首先我们需要安装paddlepaddle,我们进入官网 https://www

Java导出Execl疑难点处理

邮差的信 提交于 2020-04-12 20:09:07
一.背景 最近业务需求需要导出Execl,最终做出的效果如下,中间牵扯到大量的数据计算。 二.疑难问题分析 问题1:跨单元格处理及边框设置 问题2:自定义背景颜色添加 问题3:单元格中部分文字设置颜色 问题4:高度自适应处理 三.问题解决 在处理整个Excel导出中总结了很多。 整个开发过程使用的是Apache POI pom.xml < dependency > < groupId > org.apache.poi </ groupId > < artifactId > poi-ooxml </ artifactId > < version > 3.8 </ version > </ dependency > < dependency > < groupId > org.apache.poi </ groupId > < artifactId > poi-scratchpad </ artifactId > < version > 3.8 </ version > </ dependency > 3.1 HSSFworkbook,XSSFworkbook选哪个 最开始我沿用的是之前开发用的,HSSFworkbook最后发现,HSSFworkbook在处理,自定义单元格背景颜色比较复杂,最后换成了XSSFworkbook。 HSSFWorkbook:是操作Excel2003以前

!大部分程序员只会写3年代码

こ雲淡風輕ζ 提交于 2020-04-12 20:06:18
程序员与别的专业有所不同,其他专业都是越老越香,而程序员却是一个例外,因为计算机技术更新太快,而且工作强度很大,因此大部分程序员只会写 3 年代码。3 年后要不晋升做项目经理,要么转行,个别研究所除外。 上面是我在知乎上看到的一个很奇葩的观点,我个人是不认同的,因此我在标题上加了一个“非”的符号“!”。 就我来说吧,从 19 岁开始敲“Hello World”到现在,不知不觉,十多年过去了。虽然没能成技术专家,却依然战斗在技术一线,属于那种一个人扛起一个公司的类型。 我敢给各位吹牛逼说,公司离了我转不了,这也是我敢给老板硬刚的底气,哈哈。可能有些人不相信,说我盲目自信。老板不是没想过把我换掉,当年我的一个手下离职后偷偷对我说,老板有一次问他:“咱们公司的代码现在也稳定了,要是王经理(对,就这个头衔)离职了,你能顶上去吗?” 这可是上位的好机会啊!但我那兄弟很硬气的顶了回去:“咱们公司的核心代码以及业务逻辑,好像只有王经理最拿手,我恐怕有点难啊。” 在我老板眼里,甚至很多老板眼里,代码稳定了,不就是修修 bug 啥的,随便招个应届生都能对付。但说真的,在小公司,像我这种老油条不仅代码敲得 666,甚至业务上都是驾轻就熟。别说应届生,5 年工作经验的都不一定能拿下来,何况 3 年的。要知道,程序员干的可是手艺活。 有一段时间,我因为家里有事没去公司。而恰好项目上出了一些问题

用 C 语言开发一门编程语言 — 变量元素设计

时光毁灭记忆、已成空白 提交于 2020-04-12 19:27:41
目录 文章目录 目录 前文列表 变量 变量语法规则 变量的读取和存储 将变量加入 Lisp Value 体系 变量的计算 变量的定义与赋值 异常处理优化 源代码 前文列表 《 用 C 语言开发一门编程语言 — 交互式解析器 》 《 用 C 语言开发一门编程语言 — 跨平台的可移植性 》 《 用 C 语言开发一门编程语言 — 语法解析器 》 《 用 C 语言开发一门编程语言 — 抽象语法树 》 《 用 C 语言开发一门编程语言 — 异常处理 》 《 用 C 语言开发一门编程语言 — S-表达式 》 《 用 C 语言开发一门编程语言 — Q-表达式 》 变量 我们先前实现的 S-Expression 和 Q-Expression 都是直接为了运算求值,但并没有考虑到变量是什么类型。显然的,一门好的编程语言,需要支持多种类型的变量,让程序员可以灵活的命名变量、声明变量类型。 从代码实现的角度来看,我们需要一个新的数据结构来支撑对变量元素进行设计,这个结构将存储所有的变量名和值,我们将这个数据结构称为 Environment(环境)。每次打开一个新的交互式解析器,就会创建一个新的 Environment,让程序员可以存储和再次调用已经定义好的变量。 变量语法规则 首先,我们需要设计好针对变量的语法规则,使得编程语言可以拥有更多的合法符号(关键字)。区别于 C

Java反射机理简介

不想你离开。 提交于 2020-04-12 17:49:04
反射:框架设计的灵魂 框架:半成品软件,可以在框架的基础上进行软件开发,简化代码 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处: 可以在程序运行过程中操作这些对象 可以解耦,提高程序的可扩展性 ** Java代码在计算机中经历的三个阶段: Source源代码阶段、Class类对象阶段、Runtime 运行时阶段 获取Class对象的方式: Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象 多用于配置文件,将类名定义在配置文件中。读取文件,加载类 类名.class:通过类名的属性class获取 多用于参数的传递 对象.getClass():getClass()方法在Object类中定义着 多用于对象的获取字节码的方式 结论: 同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。 Class对象功能( 获取功能): 获取成员变量 Field[] getFields():获取所有public修饰的成员变量 Field getField(String name):获取指定名称的public修饰的成员变量 Field[] getDeclaredFields():获取所有的成员变量,不考虑修饰符 Field getDeclaredField(String name)

阿里面试题:ConcurrentHashMap为什么是线程安全的?

老子叫甜甜 提交于 2020-04-12 17:25:22
阿里面试题:ConcurrentHashMap为什么是线程安全的? ConcurrentHashMap,其实是线程安全的HashMap,所以阅读ConcurrentHashMap,建议 先阅读一下两篇介绍HashMap的文章 你真的懂大厂面试题:HashMap吗? jdk1.7 HashMap中的致命错误:循环链表 jdk1.7 ConcurrentHashMap jdk1.7 ConcurrentHashMap数据结构 jdk1.7 ConcurrentHashMap是由一个Segment数组和多个HashEntry数组组成 其实就是将HashMap分为多个小HashMap,每个Segment元素维护一个小HashMap,目的是 锁分离 ,本来实现同步,直接可以是对整个HashMap加锁,但是加锁粒度太大,影响并发性能,所以变换成此结构,仅仅对Segment元素加锁,降低锁粒度,提高并发性能。 初始化过程 由于变换成 Segment数组+HashEntry数组 ,所以初始化时,需要依次对Segment数组和小 HashEntry数组初始化 Segment数组初始化 初始化时,使用右移一位,乘以2的计算方式,保证ssize是2的幂次方,小于指定参数 concurrencyLevel 的最大2的幂次方。 int sshift = 0 ; //记录Segment数组大小 int

用Spring Initializr快速构建SpringBoot及整合MVC

纵饮孤独 提交于 2020-04-12 17:24:58
给岁月以文明,而不是给文明以岁月。 目录 前言 二步搭建 项目结构 构建Web @Import注解 @SpringBootApplication注解 找到Tomcat 前言 用Spring Initializr创建SpringBoot工程虽然方便,但是得 有网 , 耗时耗流量 ,而且 默认下载最新版本 (强迫症可能会不舒服),网络不佳时还可能 下载半天然后失败 ,如: 不想这样的话,可以参考我的这篇博客,用maven工程构建包括 如何同时启动多个SpringBoot工程实例 : 如何用Maven搭建一个SpringBoot工程 二步搭建 1.打开"IDEA",选择"Create New Project" -> “Next”,填写组织名,如"com.guqueyue"; 项目名,如"hello_guqueyue",再点击"Next",下一步。 2.此处我们勾选"Spring MVC"的核心依赖,开启web功能:点击 “Web” -> “Spring Web”,再点击"Next",确认项目放置位置,再点击"Finish",等待IDEA右下方的进度条显示下载完成,即可。 项目结构 选中 application.properties 文件,右键 -> “Refactor” -> “Rename…” ,再点击"Refactor"后,重命名为 application.yml 后,项目结构图如下

30天搞定Java--day20

匆匆过客 提交于 2020-04-12 17:23:49
文章目录 每日一考和复习 Java常用类 字符串相关的类 String类 String的特性 String陷阱 String常用方法 String和其他类型转换 StringBuffer类、StringBuilder类 StringBuffer的常用方法 效率对比 JDK 8之前的日期时间API 每日一考和复习 每日一考 画图说明线程的生命周期,以及各状态切换使用到的方法等 2. 同步代码块中涉及到同步监视器和共享数据,谈谈你对同步监视器和共享数据的理解,以及注意点 同步监视器:可以是任意一个对象,但必须唯一,即多个线程共用同一把锁 共享数据:多个线程共用的数据 sleep()和wait()的区别 1. sleep是thread类里面的,wait是object类里面的 2. wait只能被同步监视器调用,只能声明在同步代码块或同步方法中 3. sleep时间到了结束阻塞,wait需要被notify 4. sleep不释放锁、wait释放锁 写一个线程安全的懒汉式 public class SingleTest { private SingleTest ( ) { } private static SingleTest single = null ; private static SingleTest getSingle ( ) { if ( single == null ) {

程序员面试金典

女生的网名这么多〃 提交于 2020-04-12 17:10:01
1. 题目 假设你有两个数组,一个长一个短, 短的元素均不相同 。 找到长数组中包含短数组 所有的元素 的 最短 子数组,其出现顺序无关紧要。 返回最短子数组的左端点和右端点,如有多个满足条件的子数组,返回左端点最小的一个。 若不存在,返回空数组。 示例 1 : 输入 : big = [ 7 , 5 , 9 , 0 , 2 , 1 , 3 , 5 , 7 , 9 , 1 , 1 , 5 , 8 , 8 , 9 , 7 ] small = [ 1 , 5 , 9 ] 输出 : [ 7 , 10 ] 示例 2 : 输入 : big = [ 1 , 2 , 3 ] small = [ 4 ] 输出 : [ ] 提示: big . length <= 100000 1 <= small . length <= 100000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shortest-supersequence-lcci 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 2. 解题 双指针,small 插入哈希 set 哈希map记录区间 [i,j] 内存在于 set 内的元素的个数,当map计数为0是,将其删除 维持 map.size == set.size ,map的size不够,j++,够了,i++

【目标分类_长尾分布问题】BBN:Bilateral-Branch Network _ CVPR2020

六眼飞鱼酱① 提交于 2020-04-12 17:03:43
文章目录 一、视觉任务数据的特征 二、现有文献是怎么解决这类问题的 二、本文做法 三、方法 四、实验结果 论文路径: http://www.weixiushen.com/publication/cvpr20_BBN.pdf 代码路径: https://github.com/Megvii-Nanjing/BBN 一、视觉任务数据的特征 机器视觉的代表数据集有很多,如 ImageNet ILSVRC 2012, MS COCO, Places Database等。这些数据集中的数据量是大致均匀分布的,但实际中,存在大量的长尾分布数据,也就是少数类别有大部分数据,而多数类别只有小部分数据,如图1所示。 这样的数据分布会使得网络嫩姨获得良好的识别效果,原因有两个: 其一是 data-hungry limitation of models 其二是长尾分布数据的极端不平衡问题。 二、现有文献是怎么解决这类问题的 现有的文献中,常用的解决这种极度不平衡的方法是: class re-balancing 策略,比如 re-weighting 或 re-sampling。 正面作用: 能够调整网络的训练,通过在小批量内对样本重新取样或对样本损失重新加权,期望更接近于测试的分布,因此,类别的 re-balancing 可以直接影响深层网络分类器权重的更新,从而促进分类器的学习。 负面作用: re