本文为A丶Flash的学习笔记,对Exploiting Distributional Semantics to Benefit Machine Learning in Automated Classification of Chinese Clinical Text进行阅读后的总结,对其中部分内容进行了简单概述。如发现表述不当之处,还希望大家多多指点。
摘要:
机器学习技术已经被广泛的应用于针对临床文本的自动分类问题,这有助于进一步使用临床文本信息和临床应用开发。然而,在机器学习算法中,对文本进行向量表示的传统方法没有对近义词之间的关系进行建模,而且,其向量维度较高。本文提出将语义分布和监督学习分类算法相结合来解决这些问题。采用Latent Semantic Analysis,Random Indexing 和 word2vec来进行语义分布表示,使用SVM,Naive Bayes,和k-Nearest Neighbors 来构建分类器。作为初步研究,本文采用中文诊断短语作为临床文本进行分类,使用30digit ICD-10作为类别标签。评估结果表明语义分布表示可以更好的捕捉文本的语义,能够在训练数据和测试数据属于不同的数据源,相同词较少时,提高临床文本的分类精度。因此,语义分布可以提高分类器在临床文本分类问题中的扩展性。
1.INTRODUCTION
临床记录文本具有许多丰富的来源。针对临床文本的自动分类可以将叙述性的文本转换成结构性文本,从而可以进一步的使用临床信息。这样的过程就包括将文本划分到预先定义好的类别中。
在这之前,针对临床文本进行自动分类问题的研究已经有很多了。大部分研究都采用机器学习的方法来解决这一问题。利用人为标记好的文本对分类器进行训练,根据参考标准对分类器进行测试。训练过程中,将文本转换成用数字组成的向量。分类器通过表示文本的向量对文本进行分类。在大多数研究中,词语作为向量的特征,词语的个数作为向量维度。不同的词表示不同特征。然而,这种表示方法没有考虑同义词,将同义词或者意思相近的词作为不同的特征;另一个不足是,这种表示方法将导致向量维数较高。所以,使用传统方法对文本进行向量表示没有对意思相近的词进行建模,而且向量维度较高。语义分布方法可以解决这两个问题。
语义分布模型可以根据上下文中出现的相同的词对某一词的意思进行学习。从文本中学习到的语义可通过语义空间中的向量进行表示。意思相近的词用语义空间表示的向量,二者之间的距离更近。采用语义分布来进行文本表示不仅可以对近义词进行建模,而且向量维度更低。
2 BACKGROUND
A.Distributional Semantic Models
语义分布模型假设具有相同上下文的词具有相近的意思,由此来表示词的语义。在给定的语料库中,构建共生矩阵M,维度为n*n,n是词表中词的个数。矩阵中每个元素表示相对应的两个词在预先定义的窗口中出现的次数。经过编码,M中每一行可作为该词的语义表示。M的维度较高,并且包含有用信息和噪声,可用过降维方法来解决这两个问题。降维和去噪的方法采用了LSA和Random Indexing。
M中可能存在某些词出现频率很高,但表达的信息很少。通过对M中元素设置权重来解决上述问题。本文用到了Positive Pointwise Mutual Information。PPMI计算过程如下:
除了上述两种传统的语义分布方法,本文还采用了word2vec进行测试。
B Machine Learning Techniques for Automated Text Classification
本文分类器采用了SVM,Naive Bayes,k-Nearest Neighbor进行测试。
3.METHODS AND MATERIALS
A.Vector Representations of Text based on Distributional Semantics
这里主要是将bag-of-word和语义分布进行向量表示进行了对比。bag-of-word方法在文字层面上,可以较好的反映原始文本的信息。但这种方法没有考虑近义词,将近义词作为独立的特征。利用语义分布进行表示,文本向量由各个词的语义向量通过线性求和得到。每个词的语义向量训练采用了不同的方法,在PPMI加权后分别使用LSA, RI;使用CBOW模型的word2vec。
B. Data Sources
本文搜集了54136住院病人的出院小结作为语料库来获得语义分布。
使用两个数据集进行分类器性能评估。第一是标准诊断库(standard diagnostic library),由22000标准的诊断短语和相应的ICD-10编码类别。第二个是78523条医院实例,每条实例由诊断词和ICD-10便签构成。
C.Evalueation on Vector Representations of Text
在将语义向量应用于分类前,本文测试了语义向量是否能比bag-of-word能够更好的表达文本的意思。搜集到的79532条实例可以根据ICD-10进行分类。处于同一类中的实例具有较高的相似性。利用向量进行聚类的正确性来评估该向量表示方法能否正确捕捉诊断的意思。
D.Evaluation on Automated Text Classification
本文的分类评估采用两种方式。第一种是采用5-fold的交叉验证。交叉验证中训练集和测试集是一致的;第二是采用SDL用作训练集,采用历史的实例作为测试集进行测试。第二种数据差异较大。
4.Result and discussion
A.Performance of Vector Representations of Text
利用语义向量对bag-of-word向量进行代替,是在假设语义向量能够更好的捕捉文本的意思。利用诊断短语向量进行聚类的正确率可以用于证明该假设成立。聚类结果如Table 1.
B.Performance of Automated Text Classification
从表2可以发现,交叉验证中,三个语义方法不如bag-of-word方法的精度高。原因可能是来自交叉验证。交叉验证中,训练数据和测试数据是来自同一数据集,训练数据和测试数据具有一致性。因此,表达同一个意思的词只有几个,甚至只有一个。这并没有发挥语义向量针对同义词的优势。此外,文字信息可能已经足够用于分类器进行训练,在测试集中进行预测。
表3的结果是使用SDL用于训练,使用历史实例用于预测。从表中可以看到,语义方法获得了更好的分类结果。该测试结果表明语义分布方法在训练数据和测试数据差异较大时,能够使分类精度得到提升。本文采用词在训练集和测试集出现的比例来衡量数据的一致性。SDL和历史实例的平均比例为96.2%,交叉验证的比例为90.97%。
使用语义向量进行分类,错误来源的讨论。
文章最后,作者给出了结论,这里就不在赘述。