命名实体识别(named entity recognition,NER)是指识别出非结构化文本中出现的包括人名、地名、组织机构名等实体的指称。命名实体识别是信息抽取的核心任务之一,它在知识库自动构建、问答系统等很多应用场景中都有着广泛的应用。相比英文,中文的单元词汇边界模糊、实体结构复杂、表现形式多样、缺乏显式的单词边界和其他提示命名实体的线索,这些都使得中文命名实体识别的难度更高。
目前,为了减少对语言学知识的依赖和避免繁琐的特征工程,命名实体识别逐渐由使用传统的统计学习方法转移到应用深度学习的方法,借助搭建多层神经网络结构来学习文本中潜在的相关信息。
近年来,针对社交媒体的中文命名实体研究成为一个热点。社交媒体的中文命名实体识别主要有3个难点:1)相比英文,中文缺乏显式的词汇边界和固有的定冠词,专有词汇也没有拼写变化等提示信息;2)社交媒体上发布的往往是不规范的短文本,新词、错词的出现更为频繁,网络用语、表情等噪声更多;3)语料规模较小,例如本文所使用的Weibo NER语料的训练集规模是MSRA语料训练集的1/30。因此,如何在规模较小、混杂很多噪声的语料上,尽可能地获取更多有效特征来提升中文社交媒体命名实体识别的性能具有很重要的研究价值。
本文提出在双向长短时记忆网络-条件随机场(long short-term memory-conditional random filed,LSTM-CRF)序列标注模型的基础上,加上多头自注意力机制,在多个不同子空间捕获上下文相关信息,能够更好地理解句子结构,并最终提升不规范文本的实体识别标注的性能。后文将统一使用LSTM-Self_Att-CRF代表本文提出的方法。在Weibo NER语料库上的实验证明,在不依赖外部资源和联合学习的实验配置下,LSTM-Self_Att-CRF方法取得了58.76%的F1值。进一步的错误分析发现,本文提出的方法能识别出更多训练集中未出现的实体。
1 相关研究中文社交媒体命名实体识别的相关工作专注于面向规模较小的标注语料进行有效的监督学习。现有的中文社交媒体的命名实体识别方法大都基于传统的命名实体识别展开,主要方向有3个:1)通过引入外部资源(字典、知识库、维基百科等)提升性能;2)通过将相关任务(分词、词性标注)联合学习来减小文本短语切分性能下降对命名实体识别的影响;3)使用迁移学习将训练完成的传统领域的命名实体识别模型扩展到社交媒体领域中。代表性的相关研究有:Peng等[1]在2015年首先发布了一个中文社交媒体语料库——Weibo NER corpora,用于命名实体识别的相关研究。随后他们提出了将基于“字+位置”的篏入(embedding)与NER任务联合训练的模型。在此基础上,Peng等[2]将外部资源和联合训练相结合,在2016年提出了将中文分词表征作为特征的方法来提高命名实体识别的性能。
He等[3]在2016年提出把句子级别的得分(F-score)放入损失函数中提升社交媒体中命名实体识别的性能,实验结果也表明在不使用外部资源的情况下,该方法可以取得较高的准确率(precision),但召回率(recall)偏低。之后,He等[4]在2017年又提出了使用跨领域数据集的半监督联合模型。
本文从文本自身出发,在不使用外部资源、不进行多任务联合训练的情况下,在Bi-LSTM+CRF模型中加入自注意力(self-attention)机制来进一步捕获文本的特征,进而提高社交媒体的中文命名实体识别的性能。
2 命名实体识别框架与大多数实体识别方法相同,本文也将实体识别任务转化为一个序列标注问题,实体开头的单元标注为B,实体内的单元标注为I,其他的标注为O。为了避免汉语分词工具在不规范文本上的性能下降对实体识别任务的错误传播,本文效仿He等[5]的工作,以字的粒度进行命名实体识别。图 1给出了LSTM-Self_Att-CRF模型,该模型包含3个部分:1)字粒度的表示层;2)基于BiLSTM的上下文的序列编码层;3)融入自注意力机制的CRF解码层。
2.1 字粒度的表示层
在编码阶段,原始数据通过查找字向量表转化为字向量序列。其中,本文所使用的字向量表包括3 103个常用汉字和一些特殊字符(如数字、标点等)以及它们的分布式向量表示。该字向量表使用了word2vec[6]工具,将无标签中文Gigaword数据集训练成相应的数值向量表。
使用word2vec训练字向量的过程中,本文选用的是Skip-gram模型,字的频数(min_count)设置为100,字向量训练时上下文扫描窗口(window)设置为5,负采样(negative)的值设为10,每个字的向量维度(size)设置为200。
字向量表查找的过程是让原始文本中每一个字符在表上查找相对应的字向量,如果某个字在表中不存在,则被赋予一个随机值。
2.2 基于Bi-LSTM的上下文的序列编码层长短时记忆(long short-term memory,LSTM)很好地解决了传统循环神经网络(RNN)在训练过程中存在的梯度消失和梯度爆炸的问题,同时可以更好地对长距离依赖关系进行建模[7]。图 2是一个典型的LSTM单元结构。
LSTM的隐藏层由特殊构建的记忆单元(cell)构成。每个cell由以下4个部分组成:1)循环连接的cell;2)用于控制输入信号流量的输入控制门i;3)用于控制流向下一个单元的信号强度的输出门o;4)用于控制遗忘之前cell状态的遗忘门f。每个时刻t各个单元的计算如下:
$ {i_{t}=\sigma\left(\boldsymbol{W}_{\mathrm{i}}\left[h_{t-1} ; x_{t}\right]+b_{\mathrm{i}}\right)} , $ | (1) |
$ {f_{t}=\sigma\left(\boldsymbol{W}_{\mathrm{f}}\left[h_{t-1} ; x_{t}\right]+b_{\mathrm{f}}\right)} , $ | (2) |
$ {o_{t}=\sigma\left(\boldsymbol{W}_{\mathrm{o}}\left[h_{t-1} ; x_{t}\right]+b_{\mathrm{o}}\right)} , $ | (3) |
$ {\sigma_{t}=\tanh \left(\boldsymbol{W}_{\mathrm{c}}\left[h_{t-1} ; x_{t}\right]+b_{\mathrm{c}}\right)} , $ | (4) |
$ {c_{t}=f_{t} \odot c_{t-1}+i_{t} \odot g_{t}} , $ | (5) |
$ {h_{t}=o_{\mathrm{t}} \tanh \odot c_{t}}. $ | (6) |
其中:⊙表示元素级乘法计算,σ表示sigmod函数,Wi、Wf、Wo、bi、bf、bo分别表示输入门、遗忘门、输出门的权值矩阵和偏置项。
在字向量经过Bi-LSTM提取特征后,需要使用Self-Attention机制来进一步获取文本的特征。本文使用multi-head attention(该attention的详细内容会在下一个章节介绍)从多角度、多层次获取文本自身的相关特征,通过输入3组相同的Bi-LSTM的隐藏层输出hi,便得到经attention处理后的信息向量yi。在解码之前,将hi和yi按照一定的权重进行相加,从而得到结合上下文特征与自身特征的信息向量zi。计算如下:
$ \boldsymbol{h}_{\mathrm{i}}=\overrightarrow{\boldsymbol{h}}_{{\rm l}} \| \mathit{\boldsymbol{\mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\leftarrow$}} \over h} }}_{{\rm l}}, $ | (7) |
$ \boldsymbol{y}_{\mathrm{i}}=\mathrm{multi}_{-} \operatorname{head}\left(h_{\mathrm{i}}, h_{\mathrm{i}}, h_{\mathrm{i}}\right), $ | (8) |
$ {\rm Gate} _{1}=\operatorname{sigmoid}\left(\boldsymbol{W} \cdot \boldsymbol{h}_{\mathrm{i}}+b\right), $ | (9) |
$ {\mathit{\boldsymbol{z}}_{\rm{i}}} = {\rm{ Gat}}{{\rm{e}}_1} \cdot {\mathit{\boldsymbol{h}}_{\rm{i}}} + {\rm{ Gat}}{{\rm{e}}_{\rm{2}}} \cdot {\mathit{\boldsymbol{y}}_{\rm{i}}}. $ | (10) |
考虑到句子中每个位置的标注对于上下文的依赖程度不同,本文引入门控机制来学习句子中每个位置所占权重,该门控机制由sigmoid单元组成。其中,W和b分别表示权重矩阵与偏置项,Gate1、Gate2分别表示hi、yi所占的权重向量。为了得到的信息向量能进行正则化处理,设置Gate1+Gate2=1。
2.3 融入自注意力机制的CRF解码层注意力机制是一种用来分配有限地信息处理能力的选择机制,其特点为选择性地关注某些重要的信息,相应的忽略同一时刻接收到的其他信息[8]。相对应于文本处理的表现为将较高的权重分配给重要的文字,而将较小的权重赋给其他的文字。attention函数attention(Q, K, V)的本质可以被描述为一个查询(query)到一系列键值(key-value)对的映射。自注意力(self-attention)机制就是在序列内部做attention,寻找序列内部的联系,即attention(X, X, X),X就是输入序列。
注意力机制广泛地运用于神经机器翻译上,Google机器翻译团队在2017年发表的论文[9]中提出了transform结构,并且该结构在机器翻译领域取得了最佳的效果。考虑到中文微博NER语料规模较小,且语料中存在大量的不规范文本,需要从多角度、多层级的视角提取更多的文本自身的特征,所以使用transform结构中的多头注意力机制应该有助于微博文本的命名实体识别。
首先介绍放缩点积注意力(scaled dot-product attention)机制,其本质上是使用点积进行相似度计算的注意力机制。图 3给出了放缩点积注意力的计算方式:
$ {\mathop{\rm attention}\nolimits} (\mathit{\boldsymbol{Q}}, \mathit{\boldsymbol{K}}, \mathit{\boldsymbol{V}}) = {\mathop{\rm softmax}\nolimits} \left( {\frac{{Q{\mathit{\boldsymbol{K}}^{\rm{T}}}}}{{\sqrt {{d_K}} }}} \right)\mathit{\boldsymbol{V}}. $ | (11) |
其中:Q、K、V均为向量形式,且
在此基础上,考虑到一个attention机制无法从多角度、多层面捕获到重要的特征,所以需要使用多头注意力(multi-head attention)机制。
多头注意力机制在参数不共享的前提下将Q、K、V通过参数矩阵映射后再做放缩点积注意力,并将这个过程重复做h次,最后将结果进行拼接,从而获得较全面的特征信息。
图 4给出了多头注意力的计算方式,该attention的计算如下:
$ {\rm{hea}}{{\rm{d}}_{\rm{i}}} = {\mathop{\rm attention}\nolimits} \left( {\mathit{\boldsymbol{QW}}_{\rm{i}}^Q, \mathit{\boldsymbol{KW}}_{\rm{i}}^k, \mathit{\boldsymbol{VW}}_{\rm{i}}^v} \right), $ | (12) |
$ {\rm{multi - head}}(\mathit{\boldsymbol{Q}}, \mathit{\boldsymbol{K}}, \mathit{\boldsymbol{V}}) = {\rm{concat}}\left( {{\rm{hea}}{{\rm{d}}_1}, \cdots , {\rm{ hea}}{{\rm{d}}_h}} \right). $ | (13) |
其中:
条件随机场(conditional random filed,CRF)模型是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成Markov随机场[11]。本文使用链式条件随机场对Bi-LSTM和self-attention生成的信息向量进行解码,该模型广泛应用于序列标注问题中,计算给定输入序列下标记序列的分布[12]。对应观察序列x,对应的标注序列y的链式条件随机场模型的概率计算公式如下:
$ \begin{array}{c} p(y | x)=\frac{1}{Z(x)} \exp \left(\sum\limits_{n, k} \lambda_{k} f_{k}\left(y_{n-1}, y_{n}, x\right)\right.&+\\ \sum\limits_{n, k} u_{k} g_{k}\left(y_{n}, x\right) ) , \end{array} $ | (14) |
$ \begin{aligned} Z(y | x)=& \sum\limits_{y} \exp \left(\sum\limits_{n, k} \lambda_{k} f_{k}\left(y_{n-1}, y_{n}, x\right)+\right.\\ & \sum\limits_{n, k} u_{k} g_{k}\left(y_{n}, x\right) ). \end{aligned} $ | (15) |
其中:Z(x)是归一化因子,fk(yn-1, yn, x)表示观察序列x中位置n和n-1的输出节点的特征,gk(yn, x)表示位置n的输入节点和输出节点的特征,λ和u分别表示这2个特征函数的权重。
最终的解码阶段通过CRF中的标准Viterbi算法[13]预测全局最优标注序列,
$ s_{\mathrm{char}}=f\left(\boldsymbol{W}_{\mathrm{out}} \boldsymbol{h}_{\mathrm{i}}, b_{\mathrm{out}}\right) $ | (16) |
$ s\left( {X, {Y^\prime }, \theta } \right) = \sum\limits_{n = 1}^k {\left( {\mathit{\boldsymbol{A}}_{{y_{n - 1}}}^\prime , y_n^\prime + {s_{{\rm{ clar }}}}(n)} \right)} . $ | (17) |
其中:schar(n)表示输入字符xn经过双向LSTM网络得到的标注的概率分布,Wout和bout为全连接层的映射矩阵及偏置向量,f为softmax函数; A表示标注状态的转移矩阵,例如Ayn-1′,yn′表示从标注状态yn-1′到yn′的转移概率; s(X, Y′, θ)表示所有候选标注路径的得分值,最终取其中的最大值作为最后的输出标签序列。
3 实验设置与结果分析前文介绍了基于深度神经网络的命名实体识别框架,并引入了self-attention机制进一步获取文本自身的特征、理解句子结构,从而丰富文本的表征。本节将使用Peng等[1]公开发布的Weibo NER数据集,通过不同的设置对模型进行实验,并对实验结果进行讨论分析。
3.1 实验数据集本文采用了Peng等[1]公开的已经划分好的Weibo NER语料,其中包含训练集、开发集和测试集共1 890句。表 1详细地给出了该语料的结构,可以看出该语料整体规模不大,从带标记比例值可以看出待识别的实体数目也存在相对较少的问题。
项目 | 训练集 | 开发集 | 测试集 |
句子数 | 1 350 | 270 | 270 |
字符数 | 73 378 | 14 509 | 14 842 |
带标记字符数 | 4 951 | 971 | 1 078 |
标记比例/% | 6.71 | 6.69 | 7.26 |
Weibo NER语料标注的实体类型包括GPE、LOC、ORG和PER,且每个类型分别都有特定实体(named entity,NE)和指代实体(nominal mention,NM),表 2给出了语料中各个类别的分布情况。特定实体即为传统领域中的要进行识别的实体,例如人名的特定实体有马化腾、李开复等。而指代实体是将名词性的指代词作为实体,例如人名的指代实体有妈妈、女朋友等。特定实体与指代实体混合出现在语料中,这又增加了实体识别的难度。
类别 | 训练集 | 开发集 | 测试集 | 总计 |
GPE.NAM | 205 | 26 | 47 | 278 |
GPE.NOM | 8 | 1 | 2 | 11 |
LOC.NAM | 56 | 6 | 19 | 81 |
LOC.NOM | 51 | 6 | 9 | 66 |
ORG.NAM | 183 | 47 | 39 | 269 |
ORG.NOM | 42 | 5 | 17 | 64 |
PER.NAM | 574 | 90 | 111 | 775 |
PER.NOM | 766 | 208 | 170 | 1 144 |
3.2 实验设置
本文实验采用Pytorch 0.3.0框架,并用NVIDIA的1080GPU进行了加速。具体的模型参数配置为生成预训练字向量的参数已在节2.3阐述;模型的查询表使用预训练得到的字向量进行初始化,其他参数均采用均匀分布的随机函数初始化成较小的实数。Bi-LSTM的输入是100×max_sen_len×200的张量,其中第一维度表示batch size,第二维度表示在batch size句子中最大的句子长度,是一个变量,第三维度表示隐藏层的维度。LSTM网络输出一个100×max_sen_len×400张量,其中400是前向和后向2个LSTM的Cell拼接而成的向量大小。优化函数选择随机梯度下降(stochastic gradient decent,SGD)算法[14],学习率lr设置为0.015,学习率减少步长lr_decay设置为0.05,LSTM的层数lstm_layer设置为1,dropout设置为0.5,self-attention中的dK设置为4。
3.3 实验结果与分析实验采用准确率P、召回率R和F1值对识别结果进行评价[15]。其中,F1值能够综合评价模型的性能。3种评价指标的计算如下:
$ P = \frac{{正确识别的实体数}}{{识别的实体数}} \times 100\% , $ | (18) |
$ R = \frac{{正确识别的实体数}}{{样本的实体数}} \times 100\% , $ | (19) |
$ F_{1}=\frac{2 \times P \times R}{P+R}. $ | (20) |
本文以Bi-LSTM+CRF为基本模型,第2个模型即Bi-LSTM+pos+CRF,是在基本模型的基础上加入位置特征(position-embedding),第3个模型即LSTM-Self_Att-CRF模型是在第2个模型基础上再加入self-attention。另外,本文模型与已有模型的实验设置情况对比如表 3所示。
表 4给出了各个模型的实验结果。从表中可以看出,除了比使用了外部知识、将分词联合训练的Peng和Dredze [2]模型降低了0.23%,本文提出的LSTM-Self_Att-CRF模型在综合性能F1值上达到了58.76%,均高于其他现有模型。实验结果也证明了引入多头注意力机制能在多个不同子空间捕获上下文相关信息,从而理解句子结构,能够提升不规范文本的实体识别标注性能。
表 5和6列出了本文提出的模型和目前性能最高的Peng和Dredze[2]模型的详细对比结果,分别从特定实体(NE)与指代实体(NM)的P、R和F1值进行比较。从表 5和6可以看出,本文模型在特定实体的识别性能上略高于Peng和Dredze[2]模型,但是在指代实体识别的性能上比他们的模型降低了约1.35%。
具体地说,本文模型因为引入了self-attention,模型在文本自身上充分捕获有用信息,从而在召回率R值上的表现都优于Peng和Dredze[2]模型,尤其在特定实体识别上,R值比他们的模型高了约2.78%。但是,因为Peng和Dredze[2]模型使用了外部资源和联合训练,所以他们的模型在准确率P值上表现均优于本文模型,尤其在指代实体识别上P值高出了本文模型约5.3%。
自注意力机制的引入提升了系统的性能,但具体的贡献度如何呢?本文进一步分析了self-attention的效用。将未加入self-attention的第2组实验和加入self-attention的第3组实验进行了详细地比较,具体的实验结果如表 7和8所示。
实验结果显示,在特定实体识别任务中加入self-attention后,模型学习到了更多的上下文本特征,从而召回率R值得到了明显提升。在指代实体识别任务中加入self-attention后,准确率P值与召回率R值均得到了明显提升,原因是指代实体相较于特定实体更加缺乏显式的实体边界,而self-attention能在句子中直接连接2个任意的元素,因此,远距离的元素可以通过更短的路径相互作用,这使得文本信息在网络中广泛地传播,从而提升识别性能。
通过进一步对比未加self-attention和添加self-attention的实验结果,本文统计了以下3种识别情况:1)前者错误识别,后者正确识别,且边界正确;2)前者错误识别,后者正确识别,但边界错误;3)前者正确识别,但存在边界错误,后者正确识别,且边界正确。统计结果如表 9所示。
从统计结果可以看到,self-attention机制的引入,可以从多个不同子空间捕获上下文相关信息,更好地理解句子结构,从而使得不规范文本中原本未能识别的一些实体可以被正确识别出来。例如测试集中有这样一个例句“你这个不孝子哈哈哈”,其中,“不孝子”是人名指代实体,在未引入self-attention机制时未能正确识别,但self-attention机制引入后,经过从不同角度多层次捕获上下文信息,前文中“你这个”提升了“不孝子”在文本中的权重,从而使得该实体被正确地识别出来。
4 结论本文提出了一个融入自注意力机制的中文社交媒体命名实体识别方法,该方法在不使用外部资源、不进行多任务联合训练的情况下,能充分捕获文本自身的特征,在Weibo NER语料库上的实验结果也表明了该方法的有效性,最终获得了58.76%的系统值。
未来将考虑使用迁移学习进行社交媒体的中文命名实体识别,利用传统领域规模较大的数据集以及传统领域已经取得的较高的值来提高社交媒体中命名实体识别的性能。
[1] |
PENG N Y, DREDZE M. Named entity recognition for Chinese social media with jointly trained embeddings[C]//Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon, Portugal: Association for Computational Linguistics, 2015: 548-554.
|
[2] |
PENG N Y, DREDZE M. Improving named entity recognition for Chinese social media with word segmentation representation learning[J]. arXiv preprint arXiv: 1603.00786, 2016. https://arxiv.org/abs/1603.00786
|
[3] |
HE H F, SUN X. F-score driven max margin neural network for named entity recognition in Chinese social media[J]. arXiv preprint arXiv: 1611.04234, 2016. https://www.researchgate.net/publication/310235413_F-Score_Driven_Max_Margin_Neural_Network_for_Named_Entity_Recognition_in_Chinese_Social_Media
|
[4] |
HE H F, SUN X. A unified model for cross-domain and semi-supervised named entity recognition in Chinese social media[C]//Proceedings of the 31st AAAI Conference on Artificial Intelligence. San Francisco, USA: AAAI, 2017: 3216-3222. https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14484
|
[5] |
HE J Z, WANG H F. Chinese named entity recognition and wordsegmentation based oncharacter[C]//Proceedings of the Sixth SIGHAN Workshop on Chinese Language Processing. Hyderabad, India, 2008.(未找到本条文献出版者信息, 请补充)
|
[6] |
GOLDBERG Y, LEVY O. Word2vec explained: Deriving Mikolov et al.'s negative-sampling word-embedding method[J]. arXiv preprint arXiv: 1402.3722, 2014. https://www.researchgate.net/publication/260231515_word2vec_Explained_deriving_Mikolov_et_al's_negative-sampling_word-embedding_method
|
[7] |
HOCHREITER S, SCHMIDHUBER J. LSTM can solve hard long time lag problems[C]//Proceedings of the 9th International Conference on Neural Information Processing Systems. Denver, Colorado, USA: MIT Press, 1996: 473-479. https://www.researchgate.net/publication/2640631_LSTM_Can_Solve_Hard_Long_Time_Lag_Problems
|
[8] |
冯辉.视觉注意力机制及其应用研究[D].北京: 华北电力大学(北京), 2011. FENG H. Research on visual attention mechanism and its application[D]. Beijing: North China Electric Power University (Beijing), 2011. (in Chinese) http://cdmd.cnki.com.cn/Article/CDMD-11412-1011089190.htm |
[9] |
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[C]//Advances in Neural Information Processing Systems. Long Beach: NIPS, 2017: 6000-6010.
|
[10] |
YAO L, TORABI A, CHO K, et al. Video description generation incorporating spatio-temporal features and a soft-attention mechanism[J]. arXiv preprint arXiv: 1502.08029, 2015. https://www.researchgate.net/publication/273005574_Describing_Videos_by_Exploiting_Temporal_Structure
|
[11] |
HUANG Z H, XU W, YU K. Bidirectional LSTM-CRF models for sequence tagging[J]. arXiv preprint arXiv: 1508.01991, 2015. http://www.oalib.com/paper/4050151
|
[12] |
洪铭材, 张阔, 唐杰, 等. 基于条件随机场(CRFs)的中文词性标注方法[J]. 计算机科学, 2006, 33(10): 148-151, 155. HONG M C, ZHANG K, TANG J, et al. A Chinese part-of-speech tagging approach using conditional random fields[J]. Computer Science, 2006, 33(10): 148-151, 155. DOI:10.3969/j.issn.1002-137X.2006.10.040 (in Chinese) |
[13] |
FORNEY G D. The viterbi algorithm[J]. Proceedings of the IEEE, 1973, 61(3): 268-278. |
[14] |
BOTTOU L. Stochastic gradient descent tricks[M]//MONTAVON G, ORR G B, MÜLLER K R. Neural networks: Tricks of the trade. Berlin, Heidelberg, Germany: Springer, 2012: 421-436.
|
[15] |
陈治纲, 何丕廉, 孙越恒, 等. 基于向量空间模型的文本分类系统的研究与实现[J]. 中文信息学报, 2005, 19(1): 37-41. CHEN Z G, HE P L, SUN Y H, et al. Research and implementation of text classification system based on VSP[J]. Journal of Chinese Information Processing, 2005, 19(1): 37-41. (in Chinese) |