技术文章

基于java的中文分词工具ANSJ

淺唱寂寞╮ 提交于 2021-02-18 16:00:13
ANSJ 这是一个基于n-Gram+CRF+HMM的中文分词的java实现. 分词速度达到每秒钟大约200万字左右(mac air下测试),准确率能达到96%以上 目前实现了.中文分词. 中文姓名识别 . 用户自定义词典,关键字提取,自动摘要,关键字标记等功能 可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目. 分词的目的是创建一个高稳定可用的中文分词工具,可以利用到各种需要文字处理的场景中下面简单介绍一下Ansj中文分词的主要算法及特点. 数据结构 高度优化Trie树 在用户自定义词典以及各种类似于Map的场景中,大量使用的一个工具,众所周知,Trie具有高速的文本扫描能力,和较低的内存占用率,是最好的AC机之一,弦外之音,在我的认知范围内,貌似没有之一.相比其它结构在性能和构造上做到了很好的平衡,但是在java中,大量构建map尤其是hashmap,是一个非常昂贵的操作,通过对于一个map放入大量的key也注定其在自动拆箱装箱,以及解决冲突,大量hash匹配上做了过多的小消耗,虽然多数人认为,这种消耗属于纳秒级别的,但是对于动不动就上GB的文本来说,这个消耗是不可忽略的,所以作者在这里使用了首字母hash次字二分的方式来避免过多的消耗内存,也正应为有了这个机制.可以保证Ansj加载更多的用户自定义词典,有人问我具体的数字.大约500万词,1Gde 内存

为什么将这两次相减(在1927年)会得出奇怪的结果?

点点圈 提交于 2021-02-18 15:59:48
问题: If I run the following program, which parses two date strings referencing times 1 second apart and compares them: 如果我运行以下程序,该程序将解析两个日期字符串,它们分别引用间隔为1秒的时间并进行比较: public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str3 = "1927-12-31 23:54:07"; String str4 = "1927-12-31 23:54:08"; Date sDt3 = sf.parse(str3); Date sDt4 = sf.parse(str4); long ld3 = sDt3.getTime() /1000; long ld4 = sDt4.getTime() /1000; System.out.println(ld4-ld3); } The output is: 输出为: 353 353 Why is ld4-ld3 not 1 (as I would expect from the one

微软 WinGet 抄袭 AppGet 始末,个人开源的困境该如何破?

邮差的信 提交于 2021-02-18 15:58:37
点击上方蓝色“ 程序猿DD ”,选择“设为星标” 回复“ 资源 ”获取独家整理的学习资料! 开源抄袭、原创洗稿、昨天还在朋友圈疑似某大厂的付费课程抄袭。关于版权问题,似乎一直萦绕在我们周围,对于“抄”,我们好像一直无能为力,因为就个人而言,维权的精力成本和财力成本,注定了我们大多时候都处于弱势群体,所以这个问题在国内一直都没有很好的解决。以前我们总觉得是我们没有这个土壤,国外就好很多,但是真的是这样吗?今天就来八一八微软WinGet项目的抄袭始末! 以下内容来源: 公众号「开源中国」 近日,开源项目 AppGet 作者 Keivan Beigi 与微软 WinGet 项目的“抄袭纠纷”事件迎来了最新进展。微软方面做出回应,坦承“辜负了 Keivan 和 AppGet”,并肯定了 Keivan 与 AppGet 对微软新项目的贡献。 今年 5 月,微软在 Build 2020 大会上发布了新的软件包管理工具 WinGet,并将其开源。而就在 WinGet 发布之后不久,开源软件包管理工具 AppGet 项目作者 Keivan Beigi 发文宣布 AppGet 项目“死亡”,矛头直指微软的 WinGet 抄袭了 AppGet 。 AppGet 是一款开源的 Windows 软件包管理工具,它可以在 Windows PC 上自动安装软件。作者 Keivan Beigi

OpenStack (云计算与openstck简介)

风流意气都作罢 提交于 2021-02-18 15:58:11
#<font color=red>云计算</font > ###什么是云计算 云计算是一种按使用量付费的模式,这种模式提供可用的,便捷的,按需的网络访问,通过互联网进入可配置的计算资源共享池(资源包括,计算,存储,应用软件和服务) ###云计算的特征 易于管理:无需基础设施维护 高灵活度:可伸缩,无地域限制 高资源利用率:负载平衡,资源共享 高可用性:服务质量保证,异地容灾, 低成本:无前期投入,按需购买 安全性:统一集中式数据管理,多种密钥技术保护 ###云计算服务模式 SaaS --( Software as a Service):软件即服务,侧重于服务,通过网络提供软件程序服务 PaaS --(Platform as a Service):平台即服务,侧重于服务,以服务平台或者开发环境提供服务 IaaS --(Infrastructure as a Service):基础设施服务即服务,注重计算资源共享,消费者通过Internet可以从完善的计算机基础设施获得服务 <div align=center><img src="https://img2018.cnblogs.com/blog/1675881/201908/1675881-20190801143831086-623539973.jpg" width="80%" height="80%"></div> ------ #

cookies

夙愿已清 提交于 2021-02-18 15:57:18
0812自我总结 cookies 一.cookies的概述 cookie的概念 :相当于小纸条 作用 :验证登录信息的 相关参数: key:cookie的key值 value:cookie的value值 max_age: 超时时间就是在浏览器缓存中保留多少时间 单位是s 例子:10s expires:作用于max_age类似如果值输入一个数字代表几天,如果输入具体时间格式为2019-9-12代表这天失效 path /代表全部生效 ,/aa/表示只在aa所在的域生效 domain: 域名表示cookie只在某个域名生效 secure: 对于cookies里面数据进行加密,默认为 flase为http协议,加密为ture为https协议 httponly: true 代表不能使用js获取cookie 通过JS获得cookies我们可以在f12里输入document.cookie 获得 二.django中cookies的设置 obj.set_cookie(key, value) set_signed_cookie(key, val, salt) 本文分享 CNBlog - 加载时间中.....。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my

如何在react中处理onKeyPress事件

孤人 提交于 2021-02-18 15:55:10
参考: https://stackoverflow.com/questions/27827234/how-to-handle-the-onkeypress-event-in-reactjs 以前过时的做法:使用keyCode var Test = React.createClass({ add: function(event){ if(event.keyCode == 13){ alert('Adding....'); } }, render: function(){ return( <div> <input type="text" id="one" onKeyPress={this.add} /> </div> ); } }); React.render(<Test />, document.body); 现在建议的做法:使用语义化的key handleKeyPress = (event) => { if(event.key === 'Enter'){ console.log('enter press here! ') } } render: function(){ return( <div> <input type="text" id="one" onKeyPress={this.handleKeyPress} /> </div> ); } 来源: oschina 链接:

【LeetCode】 137 链表求和

醉酒当歌 提交于 2021-02-18 15:54:07
题目: 解题思路: 对两个链表从头到尾遍历,将每个位的数字相加并插入到新建链表上。注意处理两个链表不等长。 https://leetcode-cn.com/problems/sum-lists-lcci/solution/javaji-bai-100-bi-kan-by-wonderzlf-v7dm/ 代码: public class LC145 { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { // 判空输入 if (l1==null) { return l2; } else if (l2==null) { return l1; } // 遍历两个输入链表 ListNode head = null; ListNode first = null; int tmp = 0; while (l1!=null ||l2!=null) { tmp =tmp+(l1!=null?l1.val:0)+(l2!=null?l2.val:0); if (first==null) { first = new ListNode(tmp%10); head = first; } else { first.next = new ListNode(tmp%10); first = first.next; } l1=(l1!=null?l1

微软抄袭 AppGet 始末,开源普法任重道远

一个人想着一个人 提交于 2021-02-18 15:50:50
本文作者:o****0 近日,开源项目 AppGet 作者 Keivan Beigi 与微软 WinGet 项目的“抄袭纠纷”事件迎来了最新进展。微软方面做出回应,坦承“辜负了 Keivan 和 AppGet”,并肯定了 Keivan 与 AppGet 对微软新项目的贡献。 今年 5 月,微软在 Build 2020 大会上发布了新的软件包管理工具 WinGet ,并将其开源。 而就在 WinGet 发布之后不久,开源软件包管理工具 AppGet 项目作者 Keivan Beigi 发文宣布 AppGet 项目“死亡”,矛头直指微软的 WinGet 抄袭了 AppGet 。 AppGet 是一款开源的 Windows 软件包管理工具,它可以在 Windows PC 上自动安装软件。作者 Keivan Beigi 是一名居住在加拿大温哥华的软件工程师。去年 7 月,微软 App 事业部产品经理 Andrew Clinick 开始主动接触 Keivan,表达了微软对于 AppGet 的兴趣,并表示可以给 Keivan 提供在微软的职位,共同开发 Windows 系统的软件包管理项目。期间,Andrew 多次与 Keivan 以交换意见为由进行面试沟通,获取了 AppGet 的开发思路。去年 12 月,Keivan 在微软位于西雅图的总部接受了一整天的采访,事情本来正向着好的方向发展。

传统CPU架构不再是高性能计算唯一选择

三世轮回 提交于 2021-02-18 15:50:27
众核、内存计算是高性能发展未来 CSDN:过去几年,并行计算的技术演变、应用的拓展,以及未来发展分别是什么? 赵开勇: 传统的并行计算机更多的是中型机和大型机,或者专门制造的特需机器,那个时候并行计算离大众还很远。并行计算的算法基本是在上世纪六、七十年代的时候开始,当时有很多研究文章,而且研究得很透彻。但在那时候,并行计算、高性能计算,离大众还比较远。 从2000年左右开始,计算芯片、存储、网络的发展使得之前昂贵的计算机变得 廉价。由于像Google这类公司的算法的演变,使得廉价的PC架构的机器构建出的服务器集群就可以完成高性能计算。当然我们这里讨论的并行计算,其实只 是高性能计算的一种方法而已,并行计算通常是指许多指令一起执行,是针对串行计算而言的。 现在的高性能计算,既有并行计算,也有串行计算,概念更加的广泛,而不局限于 传统的并行计算。从2000年左右开始,有科研者采用GPU作为通用计算。到2006年,Nvidia推出通用计算的GPU,打破了传统基于CPU(或者 专用协处理器)的高性能计算,让民众更接近高性能计算(并行计算),并且可以采用廉价的芯片达到高性能计算的目的。 在传统CPU芯片方面,也通过增加CPU的核心来提高计算性能,从以前的单 核、双核到多核,再到Intel前不久推出的MIC架构的众核芯片,都标明了计算芯片再向多核心方向发展。另一个方面

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken

一个人想着一个人 提交于 2021-02-18 15:50:06
云计算介绍 当用户能够通过互联网方便的获取到计算、存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式。每个运维人员心里都有一个对云计算的理解,而最普遍接受的是NIST(美国国家标准与技术研究院)的定义: 云计算是一种按使用量付费的服务模式,这是一种能够提供可用的、便捷的、按需求的网络访问模式,计算共享池能够快速的为用户提供网络、服务器、存储、应用软件及其他服务,并且只需要花费很少的管理时间。 服务层次 NIST还针对于云计算的服务模式提出了3个服务层次: Iaas:提供给用户的是云计算基础设施,包括CPU、内存、存储、网络等其他的资源服务,用户不需要控制存储与网络等基础设施。 Paas:提供给用户的是云计算中的开发和分发应用的解决方案,用户能够部署应用程序,也可以控制相关的托管环境,比如云服务器及操作系统,但用户不需要接触到云计算中的基础设施。 Saas:提供给用户的是云计算基础设施上的应用程序,用户只需要在客户端界面访问即可使用到所需资源,而接触不到云计算的基础设施。 、 OpenStack项目 OpenStack官方网站:https://www.openstack.org/ Openstack项目的版本按照ABCDEFG……的顺序发布,每6个月更新一次。