Language Model Note (SLP Ch03)

Ngram

  • Count up the frequency and divide (use maximum likelihood estimation or MLE):

    • PML(xixin+1,...,xi1):=c(xin+1,...,xi)c(xin+1,...,xi1)P_{ML}(x_i | x_{i-n+1} ,..., x_{i-1}) := \frac {c(x_{i-n+1,...,x_i})}{c(x_{i-n+1},...,x_{i-1})}

    • Example: $$P(you | i\ love) := \frac {c(i\ love\ you)}{c(i\ love)}$$
    • More Generally: $$P(w_1^n) = P(w_1)P(w_2 | w_1)P(w_3|w_1^2)…P(w_n|w_1^{n-1}) = \prod_{i=1}^{n} P(w_i|w_1^{i-1})$$
  • For N-gram

    • Next Word: $$P(w_n|w_1^{n-1}) \approx P(w_n|w_{n-N+1}^{n-1}) = \frac {C(w_{n-N+1}^{n-1}w_n)}{C(w_{n-N+1}^{n-1})}$$
    • prob of sentence: $$P(w_1^n) \approx \prod_{i=1}^{n} P(w_i|w_{i-1}…w_{i-N+1})$$
  • For Bigram

    • prob of sentence: $$P(w_1^n) \approx \prod_{i=1}^{n} P(w_i|w_{i-1})$$
    • Next Word: $$P(w_n|w_{n-1}) = \frac {C(w_{n-1}w_n)}{\sum_w C(w_{n-1} w)} = \frac {C(w_{n-1}w_n)}{C(w_{n-1})}$$

More

语言、AI、情感

语言的本质

抽象来看,语言大致可分为描述客观现象和表达主观感受两个方面。
客观的语言广泛存在于世间,从人类到动物,到植物、化学元素都有自己的『语言』,它们通过特定的语言向外传达一种『信息』,而这种信息被人类加工后成为『知识』。
而人类或其他高等动物之所以特殊是因为他们能表达自己的感受,他们有喜怒哀乐,有七情六欲,他们对万事万物有自己的认识。也许可以称之为『情感』,或许是『意识』。
由于语言有多种,个人主观方面又大不相同,所以当人与人沟通时经常会信息不对称,导致沟通障碍。而同样的东西、同一件事物,不同的人看到的也会不尽相同。
所以,有时候与其说是语言的魅力,不如说是人类主观的魅力、意识的魅力。譬如『如果你认识以前的我,也许你就会原谅现在的我』,大多数人可能会觉得这句话和有意境,觉得写的很好。为什么?也许从信息的角度来看,它高度抽象描述了大量的客观现象,但我想更多地是因为它勾起了你心中的一点点涟漪,或者引起了你一点点的共鸣。
再比如 “他死了,她也死了” 和 “他死了,她伤心而死”。从信息论(效率)角度而言第一句更容易记住,因为它短,但人们更能记住第二句,因为它有 “情感”。所以,我们其实关注的并不是信息本身,而是信息所附加的、能引起我们心灵触动的、能带给我们思考的东西。
所以,语言我更倾向于把它当做人类表达自身情感的一种方式。至于记录客观世界,其实完全可以通过其他方式,比如数学公式、物理公式…… 而语言的本质或者核心其实是『情感』,是『意识』的产物。

More

正则表达式笔记

操作

compile

  • compile 常用的表达式更高效:使用编译的表达式能避免高速缓存查找开销,将编译工作转移到应用程序启动时,而不是程序响应用户操作
  • 在字符串前加个 r 反斜杠就不会被任何特殊方式处理
  • re.findall(rf'{t}', s): f 表示 t 可以使用变量
  • re.compile(pattern, re.IGNORECASE): IGNORECASE 忽略大小写
  • re.compile(pattern, re.MULTILINE): 是否按行匹配,带参数按行,不带参数整个字符串为整体(不考虑换行符)
  • re.compile(pattern, re.DOTALL): 默认不匹配换行符,带参数匹配换行符
  • re.compile(pattern, re.Unicode | re.VERBOSE): 让 pattern 看起来更易读。多个标志可以通过按位 OR-ing 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志
  • 嵌入标志(编译表达式无法添加标志时,可以在表达式字符串本身内嵌入标志)
    • 打开不区分大小写匹配项: (?i) 添加到 pattern 的最前面就好
    • i: IGNORECASE; m: MULTILINE; s: DOTALL; u: UNICODE; x: VERBOSE

More

随笔:人生,当有所为有所不为

是夜,阴沉天空,淅淅沥沥的小雨,落到了地上,没入了尘埃。
空旷的房间,通明的白织灯下,桌上一罐哈啤,一罐纯净水,耳边响着最爱的史诗乐。
回想近日之事,一时竟感慨万千,内心色彩斑斓。

人的一生会遇到许许多多的事,会交到许许多多的朋友,你永远无法预测明天会发生什么,下一秒将会认识谁。但是,总有些事、总有些人,会让你的人生泛起涟漪、波澜。
有些事,能让你认清一个人;有些人,能让你知道一件事。

我们生活在这个世界,物欲横流、欲壑难填。
每个人都想任性地活,想要想尽一切办法满足自己不断膨胀的私欲。
我们以为这是自由,这是活出自己,这是人生的精彩。
但却忘记了什么是责任,什么是担当,什么是本分。
忘记了克己修身,忘记了每日三省,忘记了拷问良心。也许从未有过。

任性过后,还剩下什么?还能剩下什么?
人生在世,当有所为有所不为,大丈夫立于天地间更应如此。
忍让不是天生懦弱,关心不是精力过剩,
然而我们总是看不到这些或者习惯了如此,一次次用所谓的个性去刺向那呵护着自己的外壳。
人性本如此。

感受周边人群,与日俱增的寂寞和空虚,让人不得不想方设法去寻找释放的窗口。
同样寂寞空虚的人遇到了一起,生产出更多的寂寞空虚,以及一些私欲,泛滥成灾。
然后,终日活在这样的世界,通过感官上的各种刺激才知道自己还,活着。

谈使命,说使命太虚;谈梦想,说梦想太空。
浑浑噩噩度过一天一天,一年一年,接着是一生。

做人,该当知轻重,明对错。
然后,去做一个有品性、有道德的人。
这样的你也会是一个三观正、人品赞的人。
扪心自问,你是吗?

后记:发现自己慢慢喜欢上在这种环境下用键盘缓缓抒发自己内心的情感,就好像一篇娓娓道来的故事,好像一副徐徐展开的画卷,好像一首缓缓奏起的乐章。随着文章终了,内心的情感渐渐平复,由内而外不再充满戾气,不再焦躁不安,不再五味陈杂。

Pandas 入门

目录

Pandas 建造在 NumPy 之上,它使得以 NumPy 为中心的应用很容易使用。

由于 Hexo 对 Pandas 输出的表格支持不好,详细内容可点击:http://nbviewer.jupyter.org/github/hscspring/DataScience/blob/master/DataClearing/Pandas.ipynb

参考网站

Python 编码笔记整理

目录

Python 中文编码

Python 中文编码是新人常见的一个问题,其实这是一个涉及到 Python 字符串、编码、IO 读写等方面的问题。

More

Numpy 入门

NumPy 笔记目录

  • [Array Creation](#Array Creation)
  • [Basic Operations](#Basic Operations)
  • [Indexing, Slicing and Iterating](#Indexing, Slicing and Iterating)
  • [Shape Manipulation](#Shape Manipulation)
    • [Changing the shape](#Changing the shape)
    • [Stacking together](#Stacking together)
    • Splitting
    • [Copy and Views](#Copy and Views)

More

Ubuntu16.04 安装 VirtualBox & Vagrant 管理 VirtualBox 各种问题总结

Ubuntu 下安装 VirtualBox

注意:

  • 务必要仔细查看用户手册上对系统和必要环境的依赖。
  • 如果 kernel header 不一致,需要更新 kernel:
    • sudo apt-get install linux-headers-generic 或者
    • sudo apt-get install linux-headers-$(uname -r)
      uname -r 等于你的版本内核,比如我的:4.4.0-21-generic
  • 如果不能重装VBox,需要修改BIOS设置:
    • Security 中的 Secure Boot 设置为“Disabled" (一般设置这个就可以了吧)
    • Startup中的 UEFI/Legacy Boot 选 Both
    • Priority 选 Legacy First,CSM Support 选 Yes
      包括类似 Surface Pro,都可以这样操作。
      另外,由于现在的主板很多都带有 UEFI Secure Boot 功能,可能导致使用USB设备启动不了系统。用此方法也可以搞定。
      参考至: 电脑无法从USB启动可能是 UEFI Secure Boot 在捣鬼!

使用 Vagrant 管理 VirtualBox

注意:

1
2
3
4
5
6
$ vagrant package
No usable default provider could be found for your system.

$ vagrant package --base vagrant-ubuntu64
Vagrant has detected that you have a version of VirtualBox installed that is not supported by this version of Vagrant.
Please install one of the supported versions listed below to use Vagrant: 4.0, 4.1, 4.2, 4.3, 5.0

可参考这两个地方: