CSDN
文章平均质量分 71
ccat
Python Tutorial 2.3,2.4,2.5, 2.6, 2.7, 3.1 译者,《微型LISP解释器的构造与实现》作者。Jaskell系列Java/Scala组合子算法库作者。
展开
-
CSDN 个性化推荐系统的设计和演进
CSDN 的个性化推荐系统,是从既有的推荐项目中剥离出来的一个子项目,这个项目随后移交到了我们AI组。在近一年的时间内,我们对这个项目进行了多次改进和重构。原创 2023-06-24 18:00:31 · 2318 阅读 · 3 评论 -
2022 年回顾
赶在春节来临前,对2022年做一个回顾。原创 2023-01-20 22:36:12 · 1250 阅读 · 0 评论 -
博客质量分计算(三)——发布 version 4
新算法的重点是使归一化后的分数曲线不那么陡峭。我们在归一化算法中,引入了加权求和的指标数目,使其先约束在一个有限范围内,使得未来加入的新因子,也可以自动的产生平滑的分布。原创 2022-11-16 19:20:53 · 5675 阅读 · 36 评论 -
Apache Commons Bridge For Scala
通过一些 Scala 的高级技巧,我们得到了一个非常完美的 Apache Commons Lang3 StringUilts 封装,它足够健壮,完全基于 Options,同时又将对 null 值的支持完整的暴露给原始的 String 类型。在获得与原版 Java 库一致的功能的前提下,提供更符合 Scala 风格的实现。...原创 2022-08-29 00:56:54 · 520 阅读 · 0 评论 -
PostgreSQL 问对
关于 PostgreSQL 的一些讨论原创 2022-06-03 12:32:23 · 247 阅读 · 1 评论 -
MySQL 问对
关于MySQL的一些讨论原创 2022-06-03 12:26:18 · 17952 阅读 · 7 评论 -
Double Not Exists——SQL语言的一个经典问题
关系型数据库中,有一个经常出现的模式,就是集合A和集合B,通过一个关系集R,组成多对多的关系。举个例子,我们有学生表create table student( id serial primary key, name text)课程表create table course( id serial primary key, name text);可以建立一个选课表create table take_course ( id serial p原创 2022-05-27 00:38:43 · 1159 阅读 · 3 评论 -
JSON Schema 支持复合规则一例
我经历过 XML+SOAP 的时代,曾经写过很多 xml document + xslt 的代码,也为自己的 emacs 写过一些 xml 的扩展。对于大部分模型简单,变化快速的业务来说,json 的出现是一种进步,json 更简单,更适合阅读,可以很自然的适配常用编程语言的内置机制。相对于各种json 库的性能优化之争,json 的结构校验就比较少被关注了。但是对于应用业务,其实校验是非常重要的。我过去经历过的几个项目,基于不同的技术栈和演进路线,采用的 json schema 校验工具也各不相.原创 2022-04-05 12:01:27 · 917 阅读 · 0 评论 -
博客质量分计算(二)
前一篇文章(博客质量分计算(一)_ccat的博客-CSDN博客),我们重点讨论了标题质量分,标题质量分的计算相对来说更简单,也更容易深入,但是标题的质量显然不能决定一篇文章的质量,对于文章内容的质量平局,我们也做了一些尝试。博文质量评估博文内容评估仍然是一个比较难定量的问题,一篇博文,可能可以命中很多“高阶”的词汇,但仍然是一篇很差的文章,甚至可能是不符合自然语言的词语堆砌,仅仅是符合词法语法的机器判定。而一篇好的入门文章,可能仅仅包含某个领域的一些基本概念。但是我们仍然可以通过一些手段,评估一..原创 2022-04-02 01:02:10 · 6239 阅读 · 22 评论 -
JDK 选择
我接触Java很早,读大学的时候,那时候互联网还很不发达,整个产业甚至整个世界都和现在大不一样。大概是在1999年,我的朋友给我寄来了一套 visual age 个人版。这个个人版 IDE限制很多,例如不能创建超过98个类。我当时是个 Delphi 爱好者,这个开发工具给我带来了很多非常新鲜的体验,例如它的交互设计和事件绑定,和我习惯的 Delphi、VB完全不一样,和当年基于 MFC 的VC也非常不一样。但是毕业之后,我先是成为了一个 Delphi 程序员,后来在 2003年开始转向 c sharp,p原创 2022-02-20 23:32:31 · 627 阅读 · 6 评论 -
工作随笔一则
对于一个需要较长时间持续工作的计算程序,可再入的能力应该排在非常优先的地位。可再入,也就是如果中断程序,可以从上一次的位置开始继续工作。如果能做到这一点,说明你的程序有持久化保存状态的能力。 可以打断,处理必要的问题后继续 梳理出了一个可以描述工作进度的信息模型 在中断再入的基础上,往往可以很容易升级为安全健壮的并行机制 可再入往往代表这个工作可以分解成多个同构的子任务,那么对子任务程序单元的优化,可以获得几何级数的回报 有可能从中抽象出对一类工作都有效的程序机制,从而整体的提升工作效率.原创 2022-01-05 21:13:51 · 824 阅读 · 0 评论 -
PyParsec 的 Result 类型
如何获知函数执行是否成功,以及它的返回值?不同的语言和技术体系,给出的策略是不同的。Java 的方案比较简单,抛异常表示错误,执行成功的话 return。很多 C 技术栈,比如 windows api,采用的是以整数返回值表示是否发生错误,和错误代码的方式,函数执行结果则放在一个函数参数中,这个参数通常定义为某一个struct的二阶指针。Go 语言推荐的方式是让函数返回两个参数,即总是 `err, result` 形式,调用函数的代码通过判断 err 是否为 nil 来判断是否发生了错误。在函数式编原创 2021-11-03 15:49:04 · 194 阅读 · 0 评论 -
Jaskell 的一次大升级
最近的工作经常要写 parser,也就有了改进的目标,这几天对 Jaskell Core 做了一个大版本升级,主要是将内置组合子作为扩展,一次打包封装为 typeclasses 。例如,以前这样定义的 parser: "Brackets" should "test brackets pairs" in { val state = State("[hello]"); val parser = Between( ch('['), ch(']'),原创 2021-10-16 13:54:57 · 277 阅读 · 0 评论 -
不等连接的小应用
不等连接的小应用有时候我面试程序员,会问一个问题:一个关系型数据库中的表,它的主键是自增id,我删掉了一行,这一行不在开头和末尾。其它信息未知的情况下,能否用一条查询找到被删掉的id?这里其实有一个很简单的解法:select l.id+1 from data as l left join data as r on l.id+1 = r.id where r.id is null;它的思路是利用自增数列的特性,用简单的数值计算构造出两个错位的数列,然后找出缺失的位置。当然,这里面还包含了末尾原创 2021-09-13 15:16:59 · 263 阅读 · 2 评论 -
PostgreSQL JSONB的匹配和交集
PostgreSQL 自从支持 JSONB 到现在,已经有十余年,这十多年来,社区为 JSONB 提供了很多强大的功能。就我个人而言,其实最常用的还是匹配操作@>。把JSON数据看作一个抽象语法树(AST)的话,这个操作符判断右参数是不是左参数的子图。这里本来应该有个图示, 但是周末的时候临时有个数据集在处理,所以没有时间去找合适的工具了。简单举几个例子,下面这个例子得到true,这应该很好理解:select '{"a": 1, "b": 2, "c": 3}'::jsonb @...原创 2021-09-11 23:11:14 · 3796 阅读 · 1 评论 -
博客反抄袭工作的一些思考和尝试
近日开始着手反抄袭工作,做了一些思考和尝试。现状与动机目前看,比较明显,容易判定的抄袭行为,主要包括: 直接完整复制,虽然容易被识破,但是因为成本低,甚至有些抄袭者使用 爬虫进行大量搬运。 洗稿,主要是打乱句子和段落顺序,使其看起来是另一篇正常的文章,但 是其实是比较简单的改头换面,句子仍然都是抄袭而来。 洗稿,但是更为深入,对句子也做了大量修改,这种洗稿较难识别,甚至 与一些正常的讨论、笔记等文章有一定的模糊地带,但是这种方式工作量 大,多⻅于社会新闻、时评热稿等高价原创 2021-09-03 11:34:33 · 1031 阅读 · 5 评论 -
博客质量分计算(一)
新的启程上周我正式加入了 CSDN 的 NLP 团队。感谢组织给了这样一个机会,可以和志同道合的同事一起做喜欢的事情。在数理统计专业毕业21年后 ,开始进入 AI 方向,大概也可以算是人生的一种螺旋上升吧。博客标题质量评估我的第一个开发任务,是内容质量分。这里的质量,并不是严格遵循主观上的内容质量,而仅仅是一个排序依据,可以说是推荐系统的一部分,我们旨在于基于统计算法而非人工干涉,尽可能在统计上将更优质的内容推荐给用户。这个结果通常并不能保证对每个读者都是最好的,只能尽可能的向这个目标去接原创 2021-08-19 15:12:35 · 4845 阅读 · 25 评论