人智作业展示, 手把手教写拼音输入法

这篇讲义都是五笔打的 laekov 2018.04.12 Overview 作业要求 写一个拼音输入法, 一行一行地读拼音, 输出对应的汉语句子 84: 两小时就能写完 给出的数据 GBK编码的拼音->汉字对应表 新浪新闻一年的文章 评分 基础2字模型 扩展3字模型 四字, 双词, 三词… 需要写什么东西 拼音 2 汉字的 map 快速查找某个字/词词频的 map 估值函数和 infer 的算法 训练数据处理 最常用的16位编码是utf-8, 但是 Python 默认是 ASCII 的 所以在程序第一行写上 # -*- coding:utf-8 -*- Py 内部的 u'一个字符串' 可以用来表示 unicode 格式的字符串. 但是好像用不到. 创建 pinyin to 汉字的 map 读 GBK 文件的最简单的方法 with open('somefile.txt', 'r', encoding = 'gbk') as f: for (lineno, content) in enumerate(f): dealWithALine(content) content 的格式 wo 窝 我 握 渥 (五笔党词穷了) python 自带分割 py2ch_map = {} def dealWithALine(c): d = c....

April 14, 2018 · 2 min · laekov

Lagrange插值, 三次样条插值和最小二乘拟合

看 paper 看烦了来贴点代码玩. Lagrange插值就是一个多项式乘. void genLagrangePoly(int n) { double *x = new double[n + 1]; double *y = new double[n + 1]; double *a = new double[n + 1]; double *tmp = new double[n + 1]; for (int i = 0; i <= n; ++ i) { x[i] = -5. + 10. / n * i; y[i] = f(x[i]); a[i] = 0; } for (int i = 0; i <= n; ++ i) { memset(tmp, 0, sizeof(double) * (n + 1)); tmp[0] = 1....

March 28, 2018 · 5 min · laekov

Strava heatmap and GPS

发现 strava 出了个 sport heatmap 的功能 于是去看了看 发现奥园有如下神奇现象 呵呵一笑 不说话

January 30, 2018 · 1 min · laekov

CST DS2017 PA3-3

PA3-3 题意 一堆字符串判循环相等 做法 最小表示法模板题 也可以直接 hash 不过最小表示了也得 hash. PA <= 常数优化实习. 可能会在这里贴代码.

December 6, 2017 · 1 min · laekov

Encode

Text Key Encode base64 Ceasar (needs key to be a number) Vigenere (needs key to be a string) MD5 SHA1

November 27, 2017 · 1 min · laekov

Logs on setting up Jupyter

最近在尝试搭 python 的数据分析的环境. 总结一下遇到的一些坑. 用的是 14.04 这个有点老的 ubuntu. nginx + jupyter jupyter 这个玩意的 web 写得不是很优美. 所以需要转发的地方蛮麻烦的. 本来想直接在 uri 里搞一下. 然后发现过于难受就放弃了, 重新配置了一个域名转发. nginx 的 server 配置里需要加这么一段. server { location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_pass http://127.0.0.1:8888; } } 其中有个Upgrade是这么定义的. http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } sendfile on; } google 了几个配置文件才弄出这么一个能用的....

November 14, 2017 · 1 min · laekov

Two key MST

laekov naiiiiiiiiive 问题 一个无向图 (G), 每条边 (e) 有两个边权 (a_e, b_e). 求一个生成树 (T) 使得 ( (\sum_{e \in T} a_e) * ( \sum_{e \in T} b_e) ) 最小. 多项式算法就是胜利w. 原题 搜 bzoj2395. 这网站里搜可以找到代码. 一个未成形的算法 正确性和时间复杂度都待证 qwq. 感觉是对的. 但是严格证明 qaq. 已经脱离理论计算机科学界太久了. 假设我们有一个生成树的序列 ( Q ) 和一个生成树池 ( P ). 算法如下 对 ( a ) 这一个权值跑出一个最小生成树 ( T_0 ). 把 ( T_0 ) 作为 ( Q ) 里的第一个元素. 取出 ( Q ) 里的最后一棵生成树 ( T )....

October 6, 2017 · 1 min · laekov

CST DS2017 PA1

1 使用数论快速傅立叶变换进行多项式乘法. 要压三位才能过. 2 先把两维坐标分别快速排序 然后每个问题二分 然后建立两个向量, 看它们的夹角是劣的还是优的, 从而判断这个点在线段和坐标轴围成的三角形的内外 3 维护一个栈 如果右边所有数里的最大值都没有栈顶大, 就弹栈, 否则一直压栈到右边最大的数, 输出最大的数, 然后重复执行此操作. 4 在普通的队列里再维护一个单调队列, 对价格单调. 每次从单调队列里选择当前持有的股票, 用普通队列维护添加 / 删除. 5 替罪羊树维护序列. 至今 90 的数据有一个点 wa 掉不知为何. 可能满跑速度有点悬. 6 利用双向链表进行操作. 链表并不记录前后, 而是只记录两个端. 每个光标记录左右. 然而还是被卡常了.

September 19, 2017 · 1 min · laekov

Web 爬虫二三事

最近 get 了一个技能叫爬虫. (可能早就 get 了只是没有实践过?) 然而我是用 js 写的. 毕竟自带异步而且瓶颈是延迟. 任务大概是说抓 wiki 的 list of people 上的人的 info. 然后发现可能它是一个不规则的索引结构. 每个二级索引都长得不太一样. 没事我们直接当作它就是二级索引结构. 然后发现有的企业也有 infobox. 这就很无语了? 没事我们判断一下它是不是有 occupation, born 这样的关键字吧. 然后大概就比较能看了? (才怪) 另外在看资料的时候才发现一种把 html plain 化的方式. 直接把所有的标签去了. 之前沉迷剥标签的我突然觉得自己真是蠢哭了. 嗯就是这么愉快.

September 15, 2017 · 1 min · laekov

docker-compose DHCP and DNS

docker-compose 的网络 会自动加一些解析 把服务名和 ip 给绑起来 所以根本不用去搞 static ip 好像被这事坑了一万年了

August 8, 2017 · 1 min · laekov