18 Aug

【中文分词系列】 2. 基于切分的新词发现

上一篇文章讲的是基于词典和AC自动机的快速分词。基于词典的分词有一个明显的优点,就是便于维护,容易适应领域。如果迁移到新的领域,那么只需要添加对应的领域新词,就可以实现较好地分词。当然,好的、适应领域的词典是否容易获得,这还得具体情况具体分析。本文要讨论的就是新词发现这一部分的内容。

这部分内容在去年的文章《新词发现的信息熵方法与实现》已经讨论过了,算法是来源于matrix67的文章《互联网时代的社会语言学:基于SNS的文本数据挖掘》。在那篇文章中,主要利用了三个指标——频数、凝固度(取对数之后就是我们所说的互信息熵)、自由度(边界熵)——来判断一个片段是否成词。如果真的动手去实现过这个算法的话,那么会发现有一系列的难度。首先,为了得到$n$字词,就需要找出$1\sim n$字的切片,然后分别做计算,这对于$n$比较大时,是件痛苦的时间;其次,最最痛苦的事情是边界熵的计算,边界熵要对每一个片段就行分组统计,然后再计算,这个工作量的很大的。本文提供了一种方案,可以使得新词发现的计算量大大降低。

点击阅读全文...

19 Oct

【理解黎曼几何】6. 曲率的计数与计算(Python)

曲率的独立分量

黎曼曲率张量是一个非常重要的张量,当且仅当它全部分量为0时,空间才是平直的。它也出现在爱因斯坦的场方程中。总而言之,只要涉及到黎曼几何,黎曼曲率张量就必然是核心内容。

已经看到,黎曼曲率张量有4个指标,这也意味着它有$n^4$个分量,$n$是空间的维数。那么在2、3、4维空间中,它就有16、81、256个分量了,可见,要计算它,是一件相当痛苦的事情。幸好,这个张量有很多的对称性质,使得独立分量的数目大大减少,我们来分析这一点。

首先我们来导出黎曼曲率张量的一些对称性质,这部分内容是跟经典教科书是一致的。定义
$$R_{\mu\alpha\beta\gamma}=g_{\mu\nu}R^{\nu}_{\alpha\beta\gamma} \tag{50} $$
定义这个量的原因,要谈及逆变张量和协变张量的区别,我们这里主要关心几何观,因此略过对张量的详细分析。这个量被称为完全协变的黎曼曲率张量,有时候也直接叫做黎曼曲率张量,只要不至于混淆,一般不做区分。通过略微冗长的代数运算(在一般的微分几何、黎曼几何或者广义相对论教材中都有),可以得到
$$\begin{aligned}&R_{\mu\alpha\beta\gamma}=-R_{\mu\alpha\gamma\beta}\\
&R_{\mu\alpha\beta\gamma}=-R_{\alpha\mu\beta\gamma}\\
&R_{\mu\alpha\beta\gamma}=R_{\beta\gamma\mu\alpha}\\
&R_{\mu\alpha\beta\gamma}+R_{\mu\beta\gamma\alpha}+R_{\mu\gamma\alpha\beta}=0
\end{aligned} \tag{51} $$

点击阅读全文...

4 Nov

【外微分浅谈】1. 绪论与启发

写在前面

在《理解黎曼几何》系列,笔者分享了一些黎曼几何的“几何”心得,同时遗留了一个问题:怎么真正地去算黎曼张量?MTW的《引力论》中提到了一种基于外微分的方法,可是我不熟悉外微分,遂学习了一番。确实,是《引力论》中快捷计算曲率张量的步骤让笔者决定深入了解外微分的。果然,可观的效益是第一推动力。

这系列文章主要分享一些外微分的学习心得,曾经过多次修改和完善,包含的内容很多,比如外积、活动标架、外微分及其在黎曼几何的一些应用等,最后包括一种计算曲率的有效方式

符号说明:在本系列中,用粗体的字母表示向量、矩阵以及基底,用普通字母来表示标量,它有可能是一个标量函数,也有可能是向量的分量,如无说明,则用$n$表示空间(流形)的维度。本文中同样使用了爱因斯坦求和法则,即相同的上下指标表示$1\sim n$遍历求和,即$\alpha_{\mu}\beta^{\mu}=\sum_{\mu=1}^{n} \alpha_{\mu}\beta^{\mu}$,习惯上将下标写在前面,比如$\alpha_{\mu}\beta^{\mu}$事实上跟$\beta^{\mu}\alpha_{\mu}$等价,但习惯写成前者。常用的一些记号是:$\mu,\nu$表示分量指标,$x^{\mu}$表示点的坐标分量,$dx^{\mu}$表示切向量(微元)的分量,$\alpha,\beta,\omega$等希腊字母也常用来表示微分形式。符号的使用有重复的地方,但符号的意义基本都在符号出现的附近有说明,因此应该不至于混淆。

最后,就是笔者其实对外微分还不是特别有感觉,因此文章中可能出现谬误之处,请读者见谅并指出。本系列命名为“外微分浅谈”,不是谦虚,确实是很浅,认识得浅,说的也很浅~

点击阅读全文...

5 Nov

【外微分浅谈】3. 正交标架

众所周知,要掌握黎曼几何,需要强烈的几何直观感。但除此之外,用分量语言描述的黎曼几何,也需要很好的分析能力才能梳理清楚,因为有$N$多的指标在表示着分量和求和,咋看上去处处皆指标。这种繁琐的分量语言并不总讨人喜欢,甚至在不少地方是声名狼籍的。

在分量的语言中,我们本质上可以在局部建立任意形式的坐标系,也就是采用任意形式的基底$\{\boldsymbol{e}_{\mu}\}$,或者说自然标架。但不可否认,在正交标架(标准正交基)之下,很多方程会简单不少,并且得益于我们对欧氏空间的熟练,我们对正交标架下的研究可能会更有感觉。因此,如果条件允许的话,我们应当使用正交标架$\{\hat{\boldsymbol{e}}_{\mu}\}$,哪怕是活动的,这里我们用$\hat{}$标记正交标架。

比如,我们有微元
$$d\boldsymbol{r} = \boldsymbol{e}_{\mu}dx^{\mu} \tag{12} $$
是在一般标架下测量的,那么就可以得到黎曼度量

点击阅读全文...

5 Nov

【外微分浅谈】4. 微分不微

外微分

向量的外积一般只定义于不超过3维的空间。为了在更高维空间中使用反对称运算,我们需要下面描述的微分形式与外微分。

我们知道,任意$x$的函数的微分都可以写成$dx^{\mu}$的线性组合,在这里,各$dx^{\mu}$实则上扮演了一个基的角色,因此,我们不妨把$dx^{\mu}$看成是一组基,并且把任意函数称为微分0形式,而诸如$\omega_{\mu}dx^{\mu}$的式子,称为微分1形式。

在$dx^{\mu}$这组基之上,我们定义外积$\land$,即有反对称的运算$dx^{\mu}\land dx^{\nu}$,并且把诸如$\omega_{\mu\nu}dx^{\mu}\land dx^{\nu}$的式子,称为微分2形式。注意到这是$n$维空间中的外积,$dx^{\mu}\land dx^{\nu}$事实上是一个新空间的基,而不能用$dx^{\mu}$的线性组合来表示。

点击阅读全文...

16 Nov

为什么勒贝格积分比黎曼积分强?

学过实变函数的朋友,总会知道有个叫勒贝格积分的东西,号称是黎曼积分的改进版。虽然“实变函数学十遍,泛函分析心泛寒”,在学习实变函数的时候,我们通常都是云里雾里的,不过到最后,在老师的“灌溉”之下,也就耳濡目染了知道了一些结论,比如“黎曼可积的函数(在有限区间),也是勒贝格可积的”,说白了,就是“勒贝格积分比黎曼积分强”。那么,问题来了,究竟强在哪儿?为什么会强?

黎曼

黎曼

勒贝格

勒贝格

这个问题,笔者在学习实变函数的时候并没有弄懂,后来也一直搁着,直到最近认真看了《重温微积分》之后,才有了些感觉。顺便说,齐民友老师的《重温微积分》真的很赞,值得一看。

本是同根生,相煎何太急?

点击阅读全文...

11 Nov

【外微分浅谈】7. 有力的计算

这里我们将展示上面一节的方法对于计算黎曼曲率张量的计算是多少的有力!我们再次列出我们得到的所有公式。首先是概念式的
$$\begin{aligned}&\omega^{\mu}=h_{\alpha}^{\mu}dx^{\alpha}\\
&d\boldsymbol{r}=\hat{\boldsymbol{e}}_{\mu} \omega^{\mu}\\
&ds^2 = \eta_{\mu\nu} \omega^{\mu}\omega^{\nu}\\
&\langle \hat{\boldsymbol{e}}_{\mu}, \hat{\boldsymbol{e}}_{\nu}\rangle = \eta_{\mu\nu}\end{aligned} \tag{65} $$
然后是
$$\begin{aligned}&d\eta_{\mu\nu}=\omega_{\nu\mu}+\omega_{\mu\nu}=\eta_{\nu\alpha}\omega_{\mu}^{\alpha}+\eta_{\mu \alpha}\omega_{\nu}^{\alpha}\\
&d\omega^{\mu}+\omega_{\nu}^{\mu}\land \omega^{\nu}=0\end{aligned} \tag{66} $$
这两个可以帮助我们确定$\omega_{\nu}^{\mu}$;接着就是
$$\mathscr{R}_{\nu}^{\mu} = d\omega_{\nu}^{\mu}+\omega_{\alpha}^{\mu} \land \omega_{\nu}^{\alpha} \tag{67} $$
最后你要正交标架下的$\hat{R}^{\mu}_{\nu\beta\gamma}$,就要写出:
$$\mathscr{R}_{\nu}^{\mu}=\sum_{\beta < \gamma} \hat{R}^{\mu}_{\nu\beta\gamma}\omega^{\beta}\land \omega^{\gamma} \tag{68} $$
如果你要原始标架下的$R^{\mu}_{\nu\beta\gamma}$,就要写出
$$(h^{-1})_{\mu'}^{\mu}\mathscr{R}^{\mu'}_{\nu'}h_{\nu}^{\nu'} = \sum_{\beta < \gamma} R^{\mu}_{\nu\beta\gamma}dx^{\beta}\land dx^{\gamma} \tag{69} $$
然后依次读出$R^{\mu}_{\nu\beta\gamma}$,就像制表一样。

点击阅读全文...

24 Nov

科学空间“微信群|聊天机器人”上线测试

花了点时间,完成了一个微信的聊天机器人,并建立了微信群。

目前实现的功能如下:

1、搜索微信号spaces_ac_cn,添加为好友后,会自动给你发送加群邀请,你通过之后就可以加入到群聊中;
2、进群后自动发送欢迎信息;
3、记录群的聊天记录,定时分享给大家,以后大家就不担心有价值的群信息丢失了;
4、如果哪天群满了,则另开新群,一个群的信息,会自动同步到另外一个群,这样不至于冷落了某一个群;
5、如果你向微信号spaces_ac_cn发送消息,则自动在知乎搜索答案并返回,这还是一个简单的知乎搜索机器人。

还有一些管理员用到的功能,就不详细列出了。

欢迎大家加入!有问题请及时反馈,代码可能会有问题,因此希望大家多多测试。