如何用机器学习对文本分类
需求 使用监督学习对历史数据训练生成模型,用于预测文本的类别。 样本清洗 主要将重复的数据删除掉,将错误无效的数据纠正或删除,并检查数据的一致性等。比如我认为长度小于少于 13 的数据是无效的遂将之删掉。 def writeFile(text): file_object = ope…
注解的原理又是怎么一回事
Java 内置的注解以及自定义一个注解大家都比较熟悉的了,现在来看看注解实现的原理,看看 Java 的体系下面是如何对注解的支持的。 在讨论前先看一个自定义注解的例子,自定义实现这样一个注解:通过 @Test 向某类注入一个字符串,通过 @TestMethod 向某个方法注入一个字符串。 ①…
机器学习之神经网络
(这里不支持 letex,排版很差) 多层神经网络 前面说到的感知器是一种最基础的神经网络,他只有输入层和输出层,感知器只能处理线性可分问题,而对于非线性问题就需要多层神经网络。一般如下图所示,有多个层,比如左边的包含输入层、隐层和输出层,而右边的则包含了两个隐层。每层的神经元与…
Java 内存模型
在多核时代,如何提高 CPU 的性能成为了一个永恒的话题,而这个话题的讨论主要就是如何定义一个高性能的内存模型,内存模型用于定义处理器的各层缓存与共享内存的同步机制及线程和内存交互的规则。 Java 的世界也有属于它自己的内存模型,Java 内存模型,即 Java Memory Mode…
如何对热词进行提取
热词 简单地理解热词就是某文档中出现频率高的且非无用的词语。 朴素的想法 文档由若干词(term)组成,那么很朴素的想法就可以认为文档中某个 term 出现的次数越多就越可能是高频热词。这样的统计策略就叫 Term Frequency,即 TF。 干扰项 标点符号,一般标点符号没有价值…
从 JDK 源码角度看 java 并发线程的中断
线程的定义给我们提供了并发执行多个任务的方式,大多数情况下我们会让每个任务都自行执行结束,这样能保证事务的一致性,但是有时我们希望在任务执行中取消任务,使线程停止。在 java 中要让线程安全、快速、可靠地停下来并不是一件容易的事,java 也没有提供任何可靠的方法终止线程的执行。 …
分布式系统调用链监控
分布式系统调用链监控 应用架构由集中式向分布式演进后,整个调用关系变得复杂。 分布式架构由复杂且较大规模集群构成,各个应用之间相当独立,可能由不同团队、不同语言实现。 系统一个完整的调用过程可能横跨多个服务及数据中心。 复杂的调用导致系统出问题后难以定位问题。 无法准确知道整体…
从JDK源码角度看并发锁的优化
在CLH锁核心思想的影响下,JDK并发包以CLH锁作为基础而设计,其中主要是考虑到CLH锁更容易实现取消与超时功能。比起原来的CLH锁已经做了很大的改造,主要从两方面进行了改造:节点的结构与节点等待机制。 在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获取锁、入队…
机器学习之 k 近邻
核心思想 KNN 算法假设给定的训练集中的实例都已经分好类了,对于新的实例,根据离它最近的 k 个训练实例的类别来预测它的类别。即这 k 个实例大多数属于某个类别则该实例就属于某个类别。比如 k 为 5,离新实例 a 最近的 5 个样本的情况为,3 个样本属于 A 类,1 个样本属于 B 类,一个样本属于 C 类,那…
从 JDK 源码角度看线程的阻塞和唤醒
目前在 Java 语言层面能实现阻塞唤醒的方式一共有三种:suspend 与 resume 组合、wait 与 notify 组合、park 与 unpark 组合。 其中 suspend 与 resume 因为存在无法解决的竟态问题而被 Java 废弃,同样,wait 与 notify 也存在竟态条件,wait 必须…
TensorFlow训练Logistic回归
Logistic回归 在用线性模型进行回归训练时,有时需要根据这个线性模型进行分类,则要找到一个单调可微的用于分类的函数将线性回归模型的预测值关联起来。这时就要用到逻辑回归,之前看吴军博士的《数学之美》中说腾讯和谷歌广告都有使用logistics回归算法。 如下图,可以清晰看到…
从JDK源码角度看并发竞争的超时
JDK中的并发框架提供的另外一个优秀机制是锁获取超时的支持,当大量线程对某一锁竞争时可能导致某些线程在很长一段时间都获取不了锁,在某些场景下可能希望如果线程在一段时间内不能成功获取锁就取消对该锁的等待以提高性能,这时就需要用到超时机制。在JDK1.5之前并没有对此支持,当时的并…
TensorFlow 训练单特征和多特征的线性回归
线性回归 线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题。相关知识可看 “相关阅读”。 主要思想 在 TensorFlow 中进行线性回归处理重点是将样本和样本特征矩阵化。 单特征线性回归 单特征回归模型为:y = wx + b 构建模型 X = tf.p…
从 JDK 源码角度看 java 并发的公平性
Java 为简化开发者开发提供了很多并发的工具,包括各种同步器,有了 JDK 我们只要学会简单使用类 API 即可。但这并不意味着不需要探索其具体的实现机制,本文从 JDK 源码角度简单讲讲并发时线程竞争的公平性。 所谓公平性指所有线程对临界资源申请访问权限的成功率都一样,不会让某些线程拥有…
机器学习之朴素贝叶斯分类
朴素贝叶斯分类 所有贝叶斯分类都是基于贝叶斯定理,朴素贝叶斯分类是贝叶斯分类中运用广泛简单的一种,另外,它还基于特征条件独立假设。 贝叶斯定理 贝叶斯定理是计算条件概率的公式,条件概率即是事件B发生的前提下事件A发生的概率,记作P(A|B),叫做事件B发生的情况下A的条件概率。…
Tomcat集群实现源码级别剖析
随着互联网快速发展,各种各样供外部访问的系统越来越多且访问量越来越大,以前Web容器可以包揽接收-逻辑处理-响应整个请求生命周期的工作,现在为了构建让更多用户访问更强大的系统,人们通过不断地业务解耦、架构解耦将web容器的逻辑处理抽离交由其他中间件处理,例如缓存中间件、消息队列…
内存数据网格hazelcast的一些机制原理
欢迎关注:
如何设计一个数据库中间件
这里需要一条描述
全文搜索怎么给查询语句与文档相关性打分
朴素想法 用户输入一个查询 query,query 由若干词(term)组成,文档也由若干词(term)组成。那么怎么评判查询和文档的相关性的高低。 很朴素简单的想法就是文档中包含的 term 与查询 query 中包含的 term,两者越多相同的则说明越相关。比如 query 为 "animal…
Tomcat如何实现Comet
Comet模式是一种服务器端推技术,它的核心思想提供一种能让当服务器端往客户端发送数据的方式。Comet模式为什么会出现?刚开始人们在客户端通过不断自动刷新整个页面来更新数据,后来觉得体验不好又使用了AJAX不断从客户端轮询服务器更新数据,然后是使用Comet模式由服务器端通过…