论文部分内容阅读
随着互联网、云计算、移动计算的发展,高质量高效率的自然语言处理应用有力的促进了智能人机交互的发展。然而,大多数的自然语言处理应用需要大规模的统计模型,高质量的算法以时间成本为代价。目前,图形处理器(Graphics Processor Unit,GPU)以其通用的并行计算模型和高度并行化的硬件设备已经得到广泛的应用。GPU通过挖掘算法中细粒度的数据并行性为提高算法的运行效率提供了有效的解决方案。本文主要分析两种自然语言处理算法并行化的可能性,仿射传播聚类算法和布朗聚类算法。在仿射传播算法中,我们采用层次仿射传播聚类算法的思想,通过分层聚类解决处理大规模数据时GPU显存容量限制的问题,采用CPU和GPU相结合的运算架构,利用基于线程映射和基于线程块映射的并行化策略优化算法计算量相对密集的部分。使用统一计算设备架构(Compute Unified Device Architecture,CUDA)编程模型重新实现该算法,在CPU和GPU环境下对比其性能。在中文手写识别应用中,相比于优化过的C实现最高加速比达到226.80倍。在布朗聚类算法中,采用固定窗口优化布朗聚类的思想,采用基于类别的二元语言模型,提出一种特殊的稀疏矩阵存储方式,利用基于线程映射和基于线程块映射的并行化策略结合多种同步策略优化算法各个计算过程。在药物命名实体识别应用中,在保证结果正确性的基础上,加速比达到44.82倍,随着语料和聚类数目的增加加速比成比例的增加。在查询意图检测应用中,该方法解决了C实现的算法无法在有限的时间内在大规模语料上构建布朗特征的瓶颈,优化后的算法可以在几分钟内处理GB级别的语料。实验表明,在其他特征的基础上结合布朗特征,交叉验证的准确率可以提高2个百分点,同时分析了在不同语料规模上、在不同聚类簇数目上构建的布朗特征对系统性能的影响。