DreamBlooms/HansPub-15000-to-45000 huggingface dataset:
system: [SYSTEM]

user: 2. 基于扩展卡尔曼滤波的SLAM研究 卡尔曼滤波是一种基础的卡尔曼滤波算法 [ 5 ] 。如今广泛在信号处理、通信等领域流传并应用，成为非常有效和基础的工具。 2.1. 扩展卡尔曼滤波SLAM算法 扩展卡尔曼滤波(EKF)的是卡尔曼滤波的一种改进形式，其方法是把复杂系统进行泰勒一级展开，通常这些复杂系统不满足线性特征，一般为非线性系统 [ 6 ] 。扩展卡尔曼滤波算法的滤波误差和测量误差在机器人SLAM算法中算是比较小的，对于非线性逼近该系统能够获得满意的估计精度，但当初始过滤协方差下降过快的时候，会导致不稳定过滤现象。此外，它还要求噪声必须服从高斯分布，这大大降低了它的应用范围。 2.2. 无迹卡尔曼滤波SLAM算法 UKF-SLAM算法建立在EKF-SLAM算法的基础上，能够将泰勒级数展开到二级的形式，这样的做法有效的提高了算法的精确度。与EKF算法相比，不需要计算雅可比矩阵而是采用UT变换的方法，这些省略的过程使得UKF-SLAM算法具有较高的准确度 [ 7 ] [ 8 ] 。UT变换思维在UKF算法中起到重要的作用，这种思维是UKF-SLAM算法区别于EKF-SLAM算法的核心 [ 9 ] 。 2.3. 仿真实验过程与结果分析 在Matlab软件中搭建不同仿真环境下，来分析EKF-SLAM算法与UKF-SLAM算法的适用性和估计性能。仿真环境的搭建分为四种情况相对小规模环境、相对大环境、噪声环境、稀疏特征环境。 2.3.1. 实验1相对小环境 在Matlab软件里搭建一个走廊环境，由19个路标连接成的预设路径，长度200 m，宽度50m，有46个路标特征点分布在这个环境中，如图1和图2所示。机器人从起点(0，0)开始到终点(50，0)为一个路径周期，同时对机器人各种运行指标进行假定，在本文中设定机器人速度v = 3 m/s，传感器探测范围为30 m为半径的圆，最大允许转向角30˚，采样时间定为0.025 s，速度误差σ v = 0.3 m/s，角度误差 σ g = 3˚。同时设定观测噪声速度误差σ v = 0.1 m/s，角度误差σ g = 1˚算法在仿真过程中，a是机器人的估计路径，b是实际路径，c是机器人的估计环境特征，即图中星形部分。 对机器人横纵坐标上的偏差度以及机器人转向角误差数值见表1。 图1. EKF-SLAM算法仿真结果 Table 1 Comparison of EKF-SLAM and UKF-SLAM algorithms under small environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 位置 最大误差/m g 最大误差/m EKF-SLAM 1.0562 2.2113 2.6474 0.9723 1.1261 3.1002 2.7532 1.0532 UKF-SLAM 0.6752 1.3843 1.6554 0.8432 0.7521 1.9980 1.8312 1.0423 表1. 小环境下EKF-SLAM和UKF-SLAM算法对比 图2. UKF-SLAM算法仿真结果图 小环境特征是相对大环境特征而言的，EKF-SLAM算法和UKF-SLAM算法差异性不大。可以得出结论：在简单的非线性结构化环境中，EKF-SLAM和UKF-SLAM都具有较好的估计特性，均有较强的鲁棒性和较小的时间复杂性。 2.3.2. 实验2相对大环境 在Matlab软件里搭建一个环形仿真地图环境250 m * 200 m，由17个航标连接成的预设路径，如图3和图4所示，设置若干路标特征点分布在这个环境。 本实验设置75个路标特征点分布在这个仿真地图环境中。机器人从起点(0，0)开始逆时针运动一圈，设置机器人速度v = 3 m/s，最大允许转向角30˚，传感器有效探测距离30 m，采样时间定为0.025 s，速度误差σ v = 0.3 m/s，角度误差σ g = 3˚。同时设定观测噪声速度误差σ v = 0.1 m/s，角度误差σ g = 1˚。 仿真结果图中EKF-SLAM算法运行51.3090 s，UKF-SLAM算法运行141.6875 s。对机器人X方向误差、机器人Y方向误差和机器人位置误差的结果数据见表2。 相比于小环境下估计效果，在大环境中EKF-SLAM比UKF-SLAM估计效果没有明显优势，估计偏差略大，UKF-SLAM估计效果较为精确。 2.3.3. 实验3增强噪声环境 为了验证EKF-SLAM和UKF-SLAM在强噪声中的估计性能，使用与实验2相同的仿真地图环境和特征点，机器人设置速度误差σ v = 0.8 m/s，角度误差σ g = 8˚。同时设定观测噪声速度误差σ v = 0.5 m/s，角度误差σ g = 5˚，其他与实验2参数相同。仿真结果如图5和图6所示。 图3. EKF-SLAM算法仿真结果图 图4. UKF-SLAM算法仿真结果图 图5. EKF-SLAM算法仿真结果图 图6. UKF-SLAM算法仿真结果图 Table 2 Comparison of EKF-SLAM and UKF-SLAM algorithms in large environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 位置 最大误差/m g 最大误差/m EKF-SLAM 0.9038 0.6904 1.2656 0.2025 0.9723 0.7261 3.1002 0.2532 UKF-SLAM 0.8102 0.4294 0.9623 0.0155 0.8432 0.4521 0.9980 0.0312 表2. 大环境下EKF-SLAM和UKF-SLAM算法 算法在仿真过程中，EKF-SLAM算法运行了53.1105 s，UKF-SLAM算法运行了160.1747 s。对机器人坐标上的偏差度以及机器人转向角误差结果见表3。 在 EKF-SLAM算法估计过程中，机器人位置估计误差不断增大并不断叠加，UKF-SLAM在强噪声环境中仍然能够保持良好的估计性能，可见 UKF-SLAM算法对非线性系统采用Sigma采样和UT变换的形式，提高了UKF-SLAM算法的噪声适应能力。 2.3.4. 实验4稀疏特征环境 采用实验2的仿真地图环境，但是设置7个路标特征点分布在这个环境中，其他设置同实验2相同。仿真结果如图7和图8所示。 算法在仿真过程中，EKF-SLAM算法运行了29.2412 s，UKF-SLAM算法运行了41.0943 s。机器人横纵坐标上的偏差度以及机器人转向角误差结果的精确值见表4。 从实验数据可以中看出，在稀疏环境特性的情况下，UKF-SLAM误差明显要大于EKF-SLAM。时间复杂性上EKF-SLAM也具有优于UKF-SLAM的效果。
system: [SYSTEM]

user: 3. 基于粒子滤波的SLAM研究 Fast SLAM算法是SLAM算法中一种比较经典的算法，他的出现建立在EKF-SLAM算法的基础上，Fast SLAM算法目前应用比较广泛的是Fast SLAM2.0算法 [ 10 ] [ 11 ] 。 根据实验比较，UKF-SLAM算法明显比EKF-SLAM算法在偏差度和适应度等方面更强一些，所以选择UKF-SLAM算法与Fast SLAM算法进行对比，用来确定各种算法在不同环境下优劣程度。该实验与2.3的实验环境和操作一样，因此直接给出实验的结果与分析。 相对小环境：通过表5中的数据，从转向角偏差和均方根偏差中来看，相对于Fast SLAM的算法，UKF-SLAM算法偏差度较小，同时UKF-SLAM算法的运行时间较短。 相对大环境：通过表6可以看出在大环境中两种算法位置偏差和转向角偏差值相差不大，但是UKF-SLAM算法耗时较多。 增强噪声环境：通过表7看出在强噪声中，UKF-SLAM算法运行时间低于Fast SLAM算法，但转向角偏差和路径偏差均大于Fast SLAM算法。 稀疏特征环境：通过表8的实验结果，可以得到两种算法对机器人的位置估计都偏差在可接受范围周围，但UKF-SLAM算法运行时间低于Fast SLAM算法。
system: [SYSTEM]

user: 4. 结论 确定了三种SLAM算法的仿真环境，使用Matlab软件在相对大规模环境、相对小规模环境、增强噪声环境、稀疏特征环境这四种环境特征下进行仿真分析，并从算法的时间复杂性和鲁棒性着手进行比较。实验结果表明：在相对小规模环境中EKF-SLAM与UKF-SLAM算法要比Fast SLAM算法有良好的估计效果；在相对大环境下，Fast SLAM算法表现出较强的估计能力和时间复杂性；在运行环境中加强噪声 图7. EKF-SLAM算法仿真结果 图8. UKF-SLAM算法仿真结果图 Table 3 Contrast between EKF-SLAM and UKF-SLAM algorithms in strong noise environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 位置 最大误差/m g 最大误差/m EKF-SLAM 9.0505 11.3756 15.9873 0.2157 9.5326 11.5638 16.2451 0.3562 UKF-SLAM 5.0543 7.3535 9.5946 0.1487 5.4327 7.8401 9.7603 0.3461 表3. 强噪声环境下EKF-SLAM和UKF-SLAM算法对比 Table 4 Comparison of EKF-SLAM and UKF-SLAM algorithms in sparse feature environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 位置 最大误差/m g 最大误差/m EKF-SLAM 1.4821 1.4305 2.1107 0.0290 1.5904 1.7650 2.3908 0.0380 UKF-SLAM 3.6653 5.5601 7.1534 0.5900 3.8760 5.6832 7.4327 0.6328 表4. 稀疏特征环境下EKF-SLAM和UKF-SLAM算法对比 Table 5 Comparison of two algorithms under small environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 均方根 最大误差/m 时间/s UKF-SLAM 0.6752 1.3843 1.6554 0.4735 0.8874 1.7839 1.9676 55.6664 Fast SLAM 0.9174 2.3649 2.5543 0.6865 1.3763 1.9067 2.8943 241.3494 表5. 小环境下两种算法对比 Table 6 Comparison of two algorithms under the large environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 均方根 最大误差/m 时间/s UKF-SLAM 0.9203 0.6387 1.1246 0.1965 1.6794 1.7839 2.2676 501.3046 Fast SLAM 0.8189 0.4289 0.9646 0.0154 1.6746 1.9067 2.3943 141.6844 表6. 大环境下两种算法对比 Table 7 Comparison of two algorithms in strong noise environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 均方根 最大误差/m 时间/s UKF-SLAM 9.6312 0.2836 9.9546 0.24868 9.7865 0.6893 10.1087 160.1779 Fast SLAM 9.0525 0.1524 9.5986 0.1444 9.5983 0.2090 9.8978 705.7893 表7. 强噪声环境下两种算法对比 Table 8 Comparison of two algorithms in sparse feature environmen X方向偏差/m Y方向偏差/m 位置误差/m 转向角 误差/rad X 最大误差/m Y 最大误差/m 均方根 最大误差/m 时间/s UKF-SLAM 3.6653 3.5609 3.8576 0.5908 3.8567 3.9048 4.0121 41.0987 Fast SLAM 1.6559 5.5622 5.7444 0.2441 1.8675 5.7453 5.9654 208.7745 表8. 稀疏特征环境下两种算法对比 维度时，Fast SLAM算法具有较强的抗干扰能力；在稀疏特征环境中， EKF-SLAM算法优于UKF-SLAM算法和Fast SLAM算法。可以SLAM方面的研究人员在不同环境特征下选取算法问题提供一定的参考。
system: [SYSTEM]

user: 摘 要 本文是根据液晶引流效应，以小分子液晶Leslie-Ericksen理论为基础，建立了模拟电场作用下产生的液晶微流动基本控制方程组，并运用MATLAB软件辅助编程计算。为提高求解效率，针对程序时间、空间尺度小，循环次数较多的特点，重点对关键子程序段进行了优化，得到了串行计算(for循环)的最佳计算方法。此外，通过预先对所有的变量分配内存和优化单行程序的方法，有效减少了程序运行时间。执行结果显示：优化后的程序运行结果与原程序结果吻合，模拟计算1秒时长时，计算时间由原来约912.83个小时减少到约47.37个小时，计算效率提高近20倍。 关键词 :液晶引流效应，MATLAB软件，微流动，程序优化，串行计算 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 微流体驱动和控制技术作为微机械电子系统(Microelectronics mechanical systems， MEMS)的一个重要分支，是MEMS发展需要解决的关键技术之一。随着科学技术的发展，各种新型微流体驱动技术不断产生，电渗驱动、压电驱动等都已得到实际应用 [ 1 ] 。但是每种微流体驱动技术都伴随着难以克服的缺点，传统技术微型化难，电渗驱动对驱动材料敏感，压电驱动驱动电压过高，驱动力小等 [ 2 ] [ 3 ] 。因此，开发全新的微流体驱动技术仍然是这一领域亟待解决的问题。 近年来，出现了一种利用特殊流体或流体的特殊性质实现微流体驱动与控制的驱动方式，这种驱动方式对所驱动的粒子没有限制，响应快，驱动器的设计加工简单，易于实现微型化。其中液晶引流驱动得到了广泛关注 [ 4 ] [ 5 ] [ 6 ] ，驱动原理主要是利用非牛顿流体液晶同时具有各向异性与流动性的特点，在电磁或温度场的作用下，液晶的指向矢会发生转动，进而引起微流动。这种现象被称为液晶的引流效应，且这种微流动发生于分子尺度，响应快，精度高，且可实现低电压下的精确驱动，对驱动材料无要求。此外，液晶具有流动性，采用这种驱动方式可以简化微驱动器的结构设计，易于制造 [ 7 ] 。 液晶作为一种典型的粘弹性非牛顿流体，其特殊的力学性质导致流动状态与普通流体差别很大，加上微尺度的原因，液晶引流驱动相关的数值模拟较之普通流体复杂很多，针对普通流体的商业软件无法进行液晶微流动的模拟计算，需要针对不同的流动状态人工编程计算。目前关于粘弹性流体微流动的数值计算研究较少，使用较多的数值研究方法主要有玻尔兹曼方程、N-S运动方程和分子动力学模型等 [ 8 ] 。如栗雪娟等用WCCBS_SU方法模拟微可压缩粘弹流体 [ 9 ] ，郭春海等用差分格式和乘方格式的有限元模拟微混合器的流场 [ 8 ] ，付一志、焦群英运用龙格–库塔法求解薄壁细胞收微吸管和探针共同作用时内部流场等 [ 10 ] 。但是针对液晶的微流动计算的方法研究还没有。与普通非牛顿流体相比，液晶微流动计算的难度主要表现在粘弹性系数较多，本构方程复杂，导致最终的方程组推导难度较大。其次，数值计算时间与空间步长很小，计算量很大，程序执行时间特别长，因此，针对程序特点的优化过程必不可少。 本文将针对液晶微流动的特点，以电场作用下引起液晶微流动为例进行数值模拟。为了提高程序的编写及执行速度，将模拟程序编制过程从纯人工改为基于MATLAB软件进行编制，并依托MATLAB软件进行程序优化，提高运算速率。
system: [SYSTEM]

user: 2. 数学模型 基于液晶引流效应的微流动数值计算模型的构建基础为小分子液晶的Lesile_Ericksen理论(简称L-E理论) [ 11 ] 。L-E理论为计算小分子液晶流动的权威理论，适用于各种粘弹性流体。选用的液晶为棒状小分子液晶5CB，基本的控制方程组包括连续性方程、纳维–斯托克斯方程(N-S方程)、电场引起的外力方程、本构方程、亥姆霍兹自由能密度方程以及液晶微流动计算特有的角运动方程 [ 12 ] 。 2.1. 基础控制方程组 连续性方程： ∇ ⋅ v = 0 (1) 运动方程： ρ D v D t = F + ∇ ⋅ ( − p I + τ ) (2) 本构方程： τ = α 1 n n n ⋅ A ⋅ n + α 2 n N + α 3 N n + α 4 A + α 5 n n ⋅ A + α 6 A ⋅ n n − ∂ F ∂ ∇ n ⋅ ( ∇ n ) T (3) 在液晶中施加强度为E的电场，所引起的电场力F大小为： F = [ ( ε ⊥ E + ε a ( n ⋅ E ) n ) ⋅ ∇ ] E (4) 自由能密度方程： 2 F = K 1 ( ∇ ⋅ n ) 2 + K 2 ( n ⋅ ∇ × n ) 2 + K 3 | n × ∇ × n | 2 (5) 角运动方程： n × { G + ∂ F ∂ n − ∇ ⋅ ( ∂ F ∂ ∇ n ) + λ 1 N + λ 2 A ⋅ n } = 0 (6) 2.2. 方程组化简展开与初始边界条件 本计算针对的物理模型是常见的液晶盒，两ITO玻璃板(y方向)间隔为110 μm，与另外两个方向的尺寸相比可以忽略，因此计算中不用考虑厚度方向的速度，直接按简单的三维模型，如图1所示的坐标系进行数值计算。其中，单位向量n代表液晶的指向矢。 图1. 计算坐标系 对于液晶盒内微流动的计算，主动力为电场力，阻力主要为粘弹性力，重力影响可忽略，故动量方程可化简为： y轴方向剪切力为主动力，可认为x轴方向加速度仅由y方向切应力所致。故n x 、n y 、n z 对x、y的偏导数为0，即： ∇ ⋅ τ 1 = ∂ τ 1 ， 1 ∂ x + ∂ τ 1 ， 2 ∂ y + ∂ τ 1 ， 3 ∂ z = ∂ τ 1 ， 2 ∂ y 将其代入运动方程并展开整理得： ρ ∂ u ∂ t = α 1 { ∂ ∂ y ( n x 2 n y 2 ) ∂ u ∂ y + ∂ ∂ y ( n x n y 2 n z ) ∂ w ∂ y + n z n y 2 ( n x ∂ 2 u ∂ y 2 + n z ∂ 2 w ∂ y 2 ) } + α 4 2 ∂ 2 w ∂ y 2     + α 2 ∂ ∂ y ( n y ∂ n x ∂ t ) + α 3 ∂ ∂ y ( n x ∂ n y ∂ t ) − α 2 − α 5 2 ( 2 n y ∂ n y ∂ y ∂ u ∂ y + n y 2 ∂ 2 u ∂ y 2 )     + α 3 + α 6 2 { ∂ ∂ y ( n x n z ) ∂ w ∂ y + 2 n x ∂ n x ∂ y ∂ u ∂ y + n x n z ∂ 2 w ∂ y 2 + n x 2 ∂ 2 u ∂ y 2 } (7a) ρ ∂ w ∂ t = α 1 { ∂ ∂ y ( n x 2 n y 2 ) ∂ w ∂ y + ∂ ∂ y ( n x n y 2 n z ) ∂ u ∂ y + n z n y 2 ( n x ∂ 2 u ∂ y 2 + n z ∂ 2 w ∂ y 2 ) } + α 4 2 ∂ 2 w ∂ y 2     + α 2 ∂ ∂ y ( n y ∂ n z ∂ t ) + α 3 ∂ ∂ y ( n x ∂ n y ∂ t ) − α 2 − α 5 2 ( 2 n y ∂ n y ∂ y ∂ w ∂ y + n y 2 ∂ 2 w ∂ y 2 )     + α 3 + α 6 2 { ∂ ∂ y ( n x n z ) ∂ u ∂ y + 2 n z ∂ n x ∂ y ∂ w ∂ y + n x n z ∂ 2 u ∂ y 2 + n z 2 ∂ 2 w ∂ y 2 } (7b) 同理化简展开角运动方程可得： γ 1 ∂ n x ∂ t = n y { 2 ( k 3 − k 2 ) ∂ n x ∂ y ∂ n y ∂ y − α 2 ∂ u ∂ y } + ∂ 2 n x ∂ y 2 { k 2 + ( k 3 − k 2 ) n y 2 } (7c) γ 1 ∂ n y ∂ t = n y Δ ε E 2 − α 3 ( n x ∂ u ∂ y + n y ∂ w ∂ y ) − ( k 3 − k 2 ) n y { ( ∂ n x ∂ y ) 2 + ( ∂ n y ∂ y ) 2 − ( ∂ n z ∂ y ) 2 }     + ∂ 2 n y ∂ y 2 { k 1 + ( k 3 − k 2 ) n y 2 } (7d) γ 1 ∂ n z ∂ t = n y { 2 ( k 3 − k 2 ) ∂ n z ∂ y ∂ n y ∂ y − α 2 ∂ w ∂ y } + ∂ 2 n z ∂ y 2 { k 2 + ( k 3 − k 2 ) n y 2 } (7e) 在此坐标系下，沿着y轴方向施加电场，则微流动微流动速度v、分子指向矢n与电场E可分别表示为： v = ( u ， 0 ， w ) n = ( cos ϕ sin θ ， sin ϕ ， cos ϕ cos θ ) E = ( 0 ， E ， 0 ) 依据L-E理论，液晶分子指向矢n为单位矢量，因此有： n x 2 + n y 2 + n z 2 = 1 (8) 初值设定为：液晶盒两ITO板间距离为110 μm，两平板固定，初始状态静止。整个盒内液晶分子的配向场初始值为扭转角 ϕ = 0 ∘ ，倾斜角 θ = 5 ∘ ，初始速度为0。沿y轴方向施加的连续方波电场参数为幅值为5 V，频率为1 Hz，占空比为20%。
system: [SYSTEM]

user: 3. 数值计算 3.1. 数值计算方法及参数 对方程组进行离散化处理后进行数值计算，时间方向上采用二阶龙格库塔法，计算间隔为10 −9 ；空间上采用中心差分法，空间网格大小为 Δ y = H / 100 ，H为液晶盒厚度。若采用单步校正的修恩法 [ 13 ] ，编程计算的算子为 y i + 1 = y i + 1 2 ( k 1 + k 2 ) h (9) 式中， y i ， y i + 1 为某物理量(如液晶微流动的速度，指向矢)旧值、新值， h 为前进步长， k 1 为按 ( x i ， y i ) 计算出的斜率， k 2 为按 ( x i + 1 ， y i + 1 ) 计算出的斜率。 3.2. MATLAB程序编写 根据上述初始条件和数学模型，输入Leslie粘性系数( α 1 ~ α 6 )、弹性系数( k 1 ~ k 3 )、液晶密度 ρ 、电场强度E等常数及液晶初始速度v和指向矢n。其中，指向矢的数值由液晶分子倾斜角 θ 和扭转角 ϕ 按线性分布计算得到，如图1。将液晶盒沿 y 轴方向100等分，按线性分布计算这101个节点处的倾斜角和扭转角大小，进而计算出指向矢n大小。 按照编程计算算子用Matlab软件进行编程，步骤如下： 1) 计算指向矢n、速度v对时间和空间的偏导数 根据中心差分法，用差商代替微商，计算 n ， v 对 t ， y 的一阶、二阶及混合偏导数，并将计算各值代入式7c~式7e计算 n 对时间 t 的偏导数，再用式(8)进行微调。将算得的 n 对时间 t 的偏导数代入式7a和式7b计算 v 对时间 t 的偏导数，并保存。根据上两步计算的结果作为k 1 、k 2 的值. 2) 计算下一时刻n、v值 将n、v对时间、空间的偏导数和n、v旧值以及k 1 、k 2 的值代入式9计算下一个节点n、v的值，并替换原来的值。 3) 以0.01 s为单位保存n、v值，并作图 首先判断现在n、v值是否需要输出保存，若程序总共要运行1 s，那么每隔0.01 s保存一个数据即满足作图要求。对多周期计算，同样需01 s保存100个值。然后，判断程序是否执行完，若已执行完，用所得数据作图。所得图形可明显看到不同波形、不同盒厚、不同场强、电场不同频率、电场不同占空比对液晶微流动速度的影响。
system: [SYSTEM]

user: 4. 程序优化 整个程序每执行一次，需计算10 9 次循环体(计算1 s时)，用4核4G的计算机初次运行程序，大约需要约912.83个小时。根据程序特点着重从以下几个方面对程序进行优化。 4.1. 优化变量定义 matlab可以自动调整变量的大小，且对向量化的指令非常敏感，因此采用预先为变量分配内存空间的方法可使调用内存的指令次数降为1，大大减少计算的时间。如运用以下程序段对变量nx， ny， nz， vx， vz， dn1dt定义大小和分配内存。 程序段1：n1=zeros(m+1，2，'double'); v1=zeros(m+1，2，'double'); dn1dt=zeros(1，m+1，'double'); dv1dt=zeros(1，m+1，'double'); pddn1dt=zeros(m+1，2，'double'); pddv1dt=zeros(m+1，2，'double'); nx=zeros(m+1，kmax/kstep，'double'); u=zeros(m+1，kmax/kstep，'double'); 通过对变量n1、n2、n3、v1、v2、dn1dt、dn2dt、dn3dt、dv1dt、dv2dt、pddn1dt、pddn2dt、pddn3dt、pddv1dt、pddv2dt、nx、ny、nz、u、w预定义大小，可大大降低运算时间，提高程序段的运算速度。 4.2. 优化程序段 按照上述方法，先定义程序中所有变量的大小，再计算每个程序段执行1次的时间。可得从第1步到第4步每步运行一次时间分别为0.004305S、0.071581S、0.000153S、0.000222S。由此可见，第2步执行一次所需时间最长。 由于第1步程序段在整个程序执行1次中，仅执行1次，而循环体内部子程序执行10 9 次，因此整个程序的优化重点应该在循环体部分，即程序编写过程中的第2、3、4步。从上述每个程序段的执行一次所需时间可知：第2步程序运行时间最长，是第3、4步运行之和的190多倍，第2步是一个二重循环(2阶龙格-库塔法)，所以第2步应该是整个程序优化重点。 第2步中需要计算两次的子程序包括4个部分，分别为“计算 n 对时间 t 的偏导数”子程序、“ n 对时间 t 的偏导数微调”子程序、“计算 v 对时间 t 的偏导数”子程序和“n、v中间值计算”子程序。每个子程序执行一次所需时间分别为：0.002455S、0.002756S、0.015191S和0.003936S。由此可见四个子程序执行时间相差不大，应该分别对其进行优化。注意，在MATLAB进行计算时，同一台电脑执行同一段程序运行时间不完全相同，但相差不大，这是因为某两个时刻电脑执行的任务不尽相同，但是差别不会太大，因此可以把运行时间作为优化程序参数。 4.2.1. 优化程序中的子程序 本程序由于循环体必须按照顺序执行，不能采用并行计算，但是对于循环体内部的子函数可以分块优化。对于子程序的优化，主要是改变程序的编写方式，也就是改变计算方法，常用的编程方法主要有“串行计算(for循环)”、“并行计算(parfor循环)”、“向量计算” [ 14 ] 。 以循环次数为横坐标，计算程序段的运行时间为纵坐标，分别对并行计算，for循环以及向量计算进行绘图。对于“计算 n 对时间 t 的偏导数”子程序，计算结果如图2所示，可见对于此段子程序，向量计算最优；图3为对“ n 对dnidt(i = 1， 2， 3)的偏导数微调”子程序计算结果，可见对于本子程序for循环计算最优；图4为对“计算 v 对时间 t 的偏导数”子程序计算结果，可见对本子程序for循环计算最优。 在并行计算中，对循环体变量有一定的限制。并行计算的变量分为：循环体变量、Sliced变量、临时变量等五类。本文中用到的是循环体变量。在使用循环体变量时，要求循环体必须具有一定的独立性、循环体之间也不相关，在“n、v中间值计算”的子程序中的循环变量不符合并行计算对变量的要求，因此对次子程序的优化不考虑并行计算，重点针对for循环计算和向量计算方法。如图5所示，此为“n中间值计算”子程序计算结果，可见在循环次数非常大时，for循环计算最优。如图6为“v中间值计算”子程序计算结果，同样是for循环计算时间较短。 图2. “计算n对时间t的偏导数”子程序优化 图3. n对dnidt(i = 1， 2， 3)微调子程序优化 图4. “计算v对时间t的偏导数微调”子程序优化 图5. “n中间值计算”子程序优化 图6. “v中间值计算”子程序优化 4.2.2. 优化程序段中单的行程序 在数值计算中，优化每一行的程序同样会减少整个程序运行时间，达到非常好的优化效果。如本程序中，在“计算v对t的偏导数”的子程序中对 n y 2 共有8次计算(由式7a和式7b可知)。若在进行计算式7a和式7b前，就已计算并保存了对 n y 2 的计算结果，则单次循环可以少计算乘法7次。对10 9 次的整个循环体，相当于少计算乘法1.4 × 10 10 次(2阶龙格–库塔法计算两次子程序)。 4.3. 优化结果 经过上述程序优化过程，在同样的硬件条件下(普通4核4G)将原程序计算1 s所需时间由原来的约912.83个小时，减少到约47.37小时，计算效率提高近20倍。
system: [SYSTEM]

user: 5. 结论 针对液晶引流驱动中的微流动引流的计算问题，采用MATLAB软件辅助编程及数值计算方法，并针对程序特点分别使用了优化变量定义，程序段及单行程序段方法对所编写程序进行了优化处理。通过优化计算发现for循环的计算方法适合进行本程序的计算，相同的计算硬件及时长条件下，计算时间由原来的约912.83小时优化到约47.37个小时，计算效率提高近20倍。
system: [SYSTEM]

user: 摘 要 在当今万物互联的时代，现有的通信网络已经由人与人、人与物、发展到物与物形成的互联网 [ 1 ] 。低功耗无线通讯是当今物联网接入网技术的主要热点之一，由于具备低功耗、低成本的特点，可以很好地与物联网应用需求相匹配。低功耗无线通讯主要分为低功耗广域网和低功耗局域网，本文针对LoRa，NB-IOT，Sigfox，Weightless的低功耗广域网，和Zigbee，蓝牙4.0的低功耗局域网，分别从技术简介和关键技术等方面进行讨论，并对未来该技术提出展望。 关键词 :低功耗，物联网，低功耗广域网，低功耗局域网 Copyright © 2017 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 物联网(Internet of things (IoT))是新一代信息技术的重要组成部分。信息技术发展到今日，从当初人与人的通信需求已经转向人与物以及物与物之间的互联互通，最终实现万物互联。传感器技术、嵌入式系统技术和通讯技术是物联网的三个重要组成部分。其中，传感器技术用于感知世界，对不同的感知对象需要不同种类的传感器完成。传感器将多种多样的环境信息转化为电信号并进一步数字化，形成计算机能够识别的二进制数据；嵌入式系统技术用于协调和控制各部分的工作，物联网单元在嵌入式系统的控制下完成信号的采集、存储与传输；通讯技术是互联网各单位之间进行信息传输和交流的物质基础。没有通讯技术，物联网就不能“联”，也就不能构成“网”。针对物联网的特点，低功耗广域网和低功耗局域网应运而生。目前，全球范围内主要形成两大技术阵营，在智能家居、工业的数据采集等局域网的场合下，一般采用的是短距离通信技术，如Zigbee和蓝牙4.0。对于范围较广，距离较远的连接，就会采用远距离的通信技术，包括LoRa，NB-IoT，Sigfox，Weightless，这些技术虽然特点各异，但都面向满足物联网低成本、低功耗、大量连接的需求。本文主要是介绍常见的几种物联网通讯方式。
system: [SYSTEM]

user: 3. 低功耗局域网技术 低功耗局域网也是多种技术并存，例如Zigbee、蓝牙4.0、WiFi等技术，每个技术都有自己的优势和领域，本文主要介绍Zigbee和蓝牙4.0技术。相对于低功耗广域网，低功耗局域网具有产业链成熟，应用普及，稳定性强等优点，能够满足物联网应用的需要。 3.1. Zigbee 3.1.1. 技术简介 Zigbee这个词源自蜜蜂群在发现花粉位置时，通过跳ZigZag行的舞蹈来传递信息，人们借此称呼设计了一种短距离、低复杂度、低功耗、低速率、低成本的无线网络技术 [ 9 ] ，可以广泛应用于工业控制、家庭自动化、消费性电子设备、农业自动化、医用设备控制和远程控制等领域，拥有广泛的市场。IEEE无线个人区域网(PAN)工作组的IEEE 802.15.4技术标准是Zigbee的基础，它依据802.15.4标准，在数千个微小的传感器之间相互协调实现通信 [ 10 ] 。 Zigbee的技术特点很突出，主要有以下几个方面： 1) 低功耗，工作模式情况下，Zigbee传输速率低，传输数量很小，所以信号的收发时间很短，非工作模式下，Zigbee节点会处于休眠模式，使得Zigbee节点非常省电，两节普通的5号干电池就可以使用6~24个月 [ 10 ] ，免去了充电或者频繁更换电池的麻烦。 2) 低成本，大幅度的简化协议，降低对通信控制器的要求，并且Zigbee协议还免收专利费，所以大大降低了成本 [ 9 ] 。 Table 2 Comparison of low-power wide area network technologie 低功耗广域网(LPWAN) 技术指标 LoRa NB-IoT Sigfox Weightless 覆盖范围(km) 3~30 广 3~50 2~5 频率 <1 GHz 蜂窝频段 <1 GHz <1 GHz 数据速率 100 bps 65 kbps 100 kbps 30~100 kpbs 最大节点数 200 k~300 k 10 k+ (单个小区) 百万 高 是否支持OTA 是 是 是 是 运营模式 私有技术 国际标准 私有技术 公开 成本($) 8 5 9 2 功耗 3~10年 10年 3~10年 3~10年 表2. 低功耗广域网技术比较 3) 低速率，Zigbee可以在2.4 GHz、868 MHz、915 MHz频段上工作，分别具有最高达250 kbit/s、20 kbit/s和40 kbit/s的传输速率，能满足低速率传输数据的应用要求。 4) 网络容量大，一个Zigbee网络最多可容纳1个主设备和254个从设备，每个设备又可以和另外254台设备相连接，使得整体网络可支持高达65，000个节点。 5) 安全性好，提供了三级安全模式，包括无安全设定、使用接入控制清单(ACL)以及高级加密标准(AES)的对称密码 [ 11 ] ，可以灵活的确认其安全属性，使网络安全可以得到更好的保障。 3.1.2. 关键技术 1) Zigbee协议栈 Zigbee协议提供了一个基于IEEE802.15.4标准MAC层和PHY层的分层结构，其技术结构如下图2所示 [ 12 ] 。Zigbee联盟在该基础上定义了应用层和网络层，这样的分层设计解决了无线传感器网络中对低功耗的要求，延长供电电池的使用寿命。物理层是协议层的最底层，主要是启动和关闭无线传输接收器、传输与接收数据、使用频道的选择、数据调变传输和接收解调等 [ 13 ] 。MAC是基于物理层来提供服务的，负责设备间无线数据链路的连接，维护和终结，确保在物理层的数据服务中可以准确接收。网络层为应用层提供数据实体和管理实体两种服务实体，确保完成建立和维护网络的任务。应用支持子层，应用框架，Zigbee设备对象和用户应用程序共同构成应用层，提供高级协议栈管理功能。 2) Zigbee网络的拓扑结构 Zigbee主要有三种组网方式，星形网络、树状网络和网状网络 [ 14 ] 。星形网络配置一个Zigbee协调器节点和一个或多个终端设备。星形网络的数据和网络命令都是通过协调器传输，该网络结构简单。树状网络是多个星形拓扑的集合，若干个星形连接在一起，拓展到更广阔的区域，这种配置下终端设备可以加入Zigbee协调器或路由器，路由器为整个网络增加可能的节点数，扩展网络覆盖的物理范围，在此网络中，所有的信息都由树节点来组织路由。网状型是一个自由设计的拓扑，有很高的适应能力，网络中的每个节点都是一个小的路由器，都具有重新路由选择的能力，以确保网络最大限度的可靠性。网络拓扑的优势在于减少了消息传输的时延并且增加了可靠性。 图2. Zigbee协议栈结构 3.2. 蓝牙4.0 3.2.1. 技术简介 蓝牙是一种短程宽带无线电技术，是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等 [ 15 ] 先进技术，在小范围内建立多种通信与信息系统之间的信息传输。在2010年7月发布的蓝牙4.0版本是最具革命性的，带来的影响也是最大的，它是将传统蓝牙，高速蓝牙，和蓝牙3.0版本三种规格集于一体的低功耗蓝牙 [ 16 ] 。功耗比之前的版本降低了90%，具有极低的平均功耗，待机功耗，和峰值功耗，设备建立的时间，原来需要100 ms，现在最快在3 ms就可以完成连接。蓝牙4.0的传输距离可以达到100米以上，拥有AES-128加密方式，数据更加安全。蓝牙还有一些技术特点，采用跳频扩频技术，时分双工通信，而且蓝牙工作在全球免费通用ISM频段上，还能传输数据信号和语音信号 [ 17 ] 。 3.2.2. 关键技术 1) 蓝牙的系统组成 无线射频单元，负责数据和语音的接收和发送，具有短距离、低功耗的特点，且蓝牙天线体积小、重量轻。基带或链路控制单元，进行射频信号、数字或语音的相互转化，实现基带协议和其它的底层连接规程。链路管理单元，负责管理蓝牙设备之间的通信，实现链路的建立、验证、链路配置等操作。蓝牙软件协议规范，包括传输协议、中介协议和应用协议等。 2) 蓝牙核心协议 核心协议由基带(Baseband)、链路管理(LMP)、逻辑链路和适配协议(L2CAP)及业务搜寻协议(SDP)等4部分组成 [ 18 ] ，它为两个或多个蓝牙单元之间建立物理RF连接。 基带协议就是确保各个蓝牙设备之间的物理射频连接，以形成微微网。这个协议 [ 17 ] 可为基带数据分组提供两种物理连接方式，同步面向连接(SCO)和异步非连接(ACL)，SCO可以传输语音分组也能传输数据分组，ACL只能传输数据分组。链路管理协议，管理基带层内主从网络的运行，负责两个或多个设备之间的链路设置和控制，包括传递验证和加密，管理链路密匙。逻辑链路和适配协议，介于高层与底层的适应层，直接为上层服务，主要负责联两个蓝牙设备间数据信息传输时的分段及重组、多路复用和协商通道参数等功能。服务发现协议，是蓝牙技术框架中非常重要的一个部分，它使所有用户模式的基石也使用SDP，可以查询到设备信息和服务类型，然后蓝牙设备之间的连接才能建立。 3.3. 低功耗局域网技术比较 如表3，对Zigbee和蓝牙4.0进行基本情况的比较。
system: [SYSTEM]

user: 4. 低功耗无线通讯产业现状以及市场前景 物联网的概念是在1999年提出的，被当做是互联网的应用扩展。2005年，在突尼斯举行的信息社会 Table 3 Comparison of Low-power local area network technolog 技术指标 功耗 传输距离 传输速率 网络容量 稳定性 价格 Zigbee 低 75 m 250 Kb/s 60，000 高 低 蓝牙4.0 高 理论100 m 1 M/s 点对点 较稳定 高 表3. 低功耗局域网技术比较 世界峰会上，正式提出了“物联网”的概念，它的定义和范围，已经发生了变化，物联网不再只是基于RFID技术的物联网。而随着物联网技术的不断发展和市场规模的不断扩大，其已经成为全球各国的技术及产业创新的重要战略，从而市场规模不断扩大，联网设备高速增长。目前我国物联网在农业、工业、医疗、交通和金融等方面都得到了相应的发展。 物联网可以广泛的应用在经济社会发展的各个领域，引发和带动了生产力、生产方式和生活方式的深刻改革 [ 19 ] ，通讯技术作为物联网的重要组成部分，对物联网各个单位之间进行信息传输与交流，尤为重要。总体来说，各种不同的通讯方式技术特点不同，在具体应用中，通过对功耗，成本，距离，连接数量的要求，选取适当的方式方法去实现物联网专用网络技术。物联网通讯技术总体可以分为两类，一类是蓝牙4.0，Zigbee等短距离传输方式，一类是LoRa，NB-IOT，Sigfox，Weightless等长距离通信方式，对于未来数以百亿级的设备联网需求，低功耗广域网可能会更胜一筹，但在大多数的场景下，物联网是一个多样化的市场，方案的实施和产品的设计都要基于带宽、覆盖范围、网络容量、可靠性、电池寿命、成本、交互频率和扩展性等标准，找到一个平衡从而形成决策。各技术之间并不是完全的排斥的，互补共存要远远大于替代，低功耗广域网络和局域网络技术形成的互补共存在物联网市场中有多种表现形式，包括对原有解决方案的纵向扩展、增加生命周期管理能力等 [ 20 ] 。 本文介绍了几种常见的物联网通信方式及其技术特点，目前存在的低功耗网络技术非常多，不过大致可以分为低功耗广域网和低功耗局域网，通过对各项技术的全面比较，希望在接下来可以使用LoRa进行一些科研研究。LoRa的低功耗，低成本，超长传输距离和可以在非授权频段下工作的优点，很适合接下来在海洋渔业上的研究。
system: [SYSTEM]

user: 摘 要 为使图书馆工作人员免受大量冗余信息的困扰，实时了解广大师生的需求及关注热点，面向微信图书馆，本文给出一种基于LDA模型的微信热点话题检测方法。该方法首先通过构建图书馆领域专业词典合并特征词，其次应用LDA模型表示微信文本信息，最后采用主题相似度计算文本间的相似度，进而利用Single-Pass聚类算法识别热点话题。实验结果表明，该方法能够有效地对微信图书馆上的数据进行话题检测，在准确率、召回率和F 1 值上均有不错的效果。 关键词 :LDA模型，主题相似度，Single-Pass聚类算法，话题检测 Copyright © 2017 by author and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 近年来，随着互联网社交网络的兴起，微博、twitter和微信等社交品台受到人们的广泛关注。其中，微信公众平台是腾讯公司主要面向名人、政府、媒体、企业等机构推出的合作推广业务，旨在为用户提供服务和信息。用户通过一键操作的形式可以便捷地使用微信公众平台的资源和服务，给用户带来了极大的便利。 高校图书馆一直将“以人为本”作为服务理念，致力于为全校师生提供更全面更方便的阅读服务系统，而微信公众平台正好能够落实这一理念，为图书馆的发展与提升提供充分的保障。高校图书馆现已陆续开通微信公众号，既符合时下大学生的生活方式和阅读习惯，也能够让学校师生随时随地的使用图书馆数据资源。用户每天都会在微信公众平台上发布大量的评论信息和反馈信息，如何获取这些信息中的有用价值，把握用户的关注热点、兴趣偏好和情感倾向，需要我们进一步的挖掘。 微信中的数据以短文本的形式存在，如果采用传统的向量空间模型建模，容易造成高维性与稀疏性，从而影响话题聚类效果。鉴于向量空间模型存在的缺点，研究学者引入以LDA模型为代表的主题模型对短文本进行处理。LDA主题模型是一种无监督的机器学习算法，能够将每一条文本数据转化为语义空间的向量，已在微博、微信和网络论坛等短文本研究领域得到广泛应用。 Quan等 [ 1 ] 利用主题模型表示文本，然后通过查找两篇文本的可区分词集，在主题的基础上度量文本间的相似性。张志飞等 [ 2 ] 在Quan研究的基础上利用LDA模型生成的主题，进一步解决短文本上下文依赖性的问题。在社交平台热点话题识别方面，孙励 [ 3 ] 使用LDA模型挖掘微博数据的主题信息进而发现热点话题。刘红兵等 [ 4 ] 结合微博短文本的相关特点，提出一种基于LDA模型和多层聚类的微博话题检测方法。汪进洋 [ 5 ] 将中文词性标注和LDA主题模型两种方法用于微博话题的检测，并使用增量聚类方法确定微博话题个数和微博聚类。余传明等 [ 6 ] 利用潜在狄利克雷分布模型与自然语言处理技术相结合的方法挖掘用户评论数据，获取评论热点及相应的热点词语。 在已有研究的基础上，本文提出一种基于LDA模型的微信图书馆热点话题检测方法。该方法利用LDA模型挖掘用户时间窗口内的数据，解决微信图书馆数据的稀疏问题，然后使用主题相似度解决短文本文本之间相似度的计算问题，最后通过Single-Pass聚类算法进行微信图书馆话题检测。实验结果表明，该方法可以有效地识别微信图书馆中的热点话题。
system: [SYSTEM]

user: 2. 相关工作 2.1. LDA模型 微信图书馆中的数据具有更新快、文本短等特性，如果使用LDA模型直接表示用户的微信文本信息，得到的主题会比较稀疏，从而影响后续话题聚类效果。用户在短时间间隔内通常是关注单一话题的，因此本文引入时间窗口，把用户在时间窗口内发布的所有微信信息合并成一个文本信息，然后将合并后的文本信息应用到LDA模型中。 LDA主题模型是由Blei等 [ 7 ] 人提出的一种统计机器学习模型，已被广泛用于文档、图像等信息的建模。LDA是一个“文本–主题–词”的三层贝叶斯模型，能够对大规模文本集合进行降维处理，识别大规模文本集合中隐藏的主题信息。LDA模型对文本进行一个简略的叙述，保留本质的统计信息，从而可以快速有效地处理大量的文本集合。其把每一篇文本看作一个词频向量，从而将计算机难以识别的文本信息转变成易于建模的数字信息。每一篇文本代表一些主题组成的一个概率分布，同时，每一个主题代表大量词汇标记组成的一个概率分布。 LDA模型的表示如图1所示。 图1代表的联合概率模型为： p ( θ ， z ， w | α ， β ) = p ( θ | α ) ∏ n = 1 N p ( z n | θ ) p ( w n | z n ， β ) (1) 对公式1计算边缘概率，可以得到： p ( D | α ， β ) = ∏ d = 1 M ∫ p ( θ d | α ) ( ∏ n = 1 N d ∑ z d n p ( z d n | θ d ) p ( w d n | z d n ， β ) ) d θ d (2) 其中， d 表示文本， z 表示潜在主题； α 和 β 是LDA模型的Dirichlet先验分布， α 是文本集中含有的所有主题分布的先验， β 是所有主题中含有的全部词汇分布的先验； θ d 代表文本 d 中包含的所有主题的多项式分布， φ z 代表主题 z 中包含的所有词语的多项式分布。 本文采用Gibbs抽样算法 [ 8 ] 估计参数 θ 和 φ ，舍弃词汇标记，以 t 表示唯一性的词，则对于每个词汇来说， θ m k 和 φ k t 的值可估计如下： θ m k = n m ， ¬ i ( k ) + α ∑ j = 1 K n m ， ¬ i ( j ) + K α (3) φ k t = n k ， ¬ i ( t ) + β ∑ t = 1 N n k ， ¬ i ( t ) + N β (4) 其中， θ 代表在文本 m 中从主题 k 抽取词汇的概率预测， φ 代表从主题 k 中抽到词汇标记为 t 的词汇的概率预测。 图1. LDA模型生成文本过程 2.2. 主题相似度 由于微信数据具有词汇量少、文本短和文本数量多等特点，传统的余弦相似度算法不能很好的反映两个文本间的相似程度。在利用LDA模型对文本进行建模后，文本被表示成主题下的概率分布，文本向量维数降低，因而两个文本的相似度可以通过文本间的主题相似性来反应。文本的主题相似度是通过计算与文本对应的主题概率分布间的相似度来实现的 [ 9 ] 。文本主题概率密度之间的差距越小，则文本间相似程度越大。 一般地，最常用KL (Kullback-Leibler Divergence)距离来衡量两个概率密度之间的差异情况，它是基于信息熵的概念定义的，也被称为相对熵、交叉熵 [ 10 ] 。假设 P ( x ) 和 Q ( x ) 是X上的两个概率密度函数，它们间的KL距离定义如下： D K L ( P | | Q ) = ∑ x ∈ X P ( x ) log 1 Q ( x ) − ∑ x ∈ X P ( x ) log 1 P ( x ) = ∑ x ∈ X P ( x ) log P ( x ) Q ( x ) (5) 由公式(5)可知，KL距离具有非负性和不对称性，即 D K L ( P | | Q ) ≠ D K L ( Q | | P ) 。 JS (Jensen-Shannon)距离是对KL距离的对称改进，并且将距离值定义在[0，1]的闭区间上 [ 11 ] 。因此，本文使用JS距离来衡量文本间的主题相似度。JS距离定义如公式(6)所示： J S ( z i | | z j ) = 1 2 D K L ( z i | | z i + z j 2 ) + 1 2 D K L ( z j | | z i + z j 2 ) (6) 其中， z i 和 z j 分别为文本 d i 和文本 d j 主题概率密度。 综合以上分析，文本 d i 和文本 d j 间的主题相似度可表示如下： s i m J S ( d i ， d j ) = J S ( z i | | z j ) (7)
system: [SYSTEM]

user: 3. 基于LDA模型的话题检测 3.1. 专业词典构建 在图书馆特定领域，存在一些专业词汇，对文本进行分词处理时，会将专业词汇切碎或不能识别专业词汇，这在很大程度上影响后续聚类效果。举例说明如下： 文本 d 1 ：图书借阅证丢失；分词结果：图书 借阅 证 丢失 文本 d 2 ：图书借阅期限；分词结果：图书 借阅 期限 例子中的两个短文本属于两个不同话题，但是相似度计算结果显示两者具有很大的相似性，这两个短文本在话题检测时会被归属到同一个话题。文本 d 1 中，“借阅证”一词是图书馆领域的一个专业名词，“借阅”和“证”这两个切碎的特征词在文本中是同时出现的，因此本文考虑词汇间上下文语义关系，进行上下文共现词合并，得到图书馆领域专业词汇，从而提高聚类效果。 如果两个特征词同时出现在文本集中的次数大于或等于3，则称这两个特征词为一组专业词汇共现词对，并移入专业词典。专业词典构建方法如下所示： 算法：共现词对发现方法 输入：短文本集 D = { d k | k = 1 ， 2 ， ⋯ ， N } 输出：专业词典 W = { w i j } Step 1：构建文本级中的词汇表 V = { w j | j = 1 ， 2 ， ⋯ ， M } ； Step 2：遍历词汇集，去除只出现一次的词汇标记； Step 3：将词汇表中的词汇两两合并，得到共现词对集 W 总 = { w x y } ； Step   4 ： for ​ ​   each   w x y   from   T                           for   each   d k   from   D                                         if   w x y ⊆ d k                                                     frequency ( w x y ) + +                                       end   if                             end   for                         end   for Step 5：遍历共现词对集 W 总 = { w x y } 中的每个共现词对，如果 frequency ( w x y ) ≤ 2 ，则将其去除； Step 6：返回 frequency ( w x y ) ≥ 3 的共现词对。 3.2. 聚类方法 微信图书馆中的数据是按照时间顺序不断到达的动态信息流，针对这种流式数据，本文选择Singles-Pass聚类算法 [ 12 ] 用于微信文本的增量聚类。Singles-Pass聚类算法是话题检测中最常使用的一种话题识别算法，其基本思想是依据文本的输入次序，依次处理每次输入的文本。算法具体步骤描述如下： 输入：短文本集 D = { d k | k = 1 ， 2 ， ⋯ ， N } 输出：热点话题集 T = { T i | i = 1 ， 2 ， ⋯ ， M } Step 1：将第一篇到达的文本 d 1 作为初始话题类别； Step 2：对其后新到达的文本 d k ( 1 < k ≤ N ) ，计算该文本与已有所有话题类别 T i 主题相似度 s i m ( d k ， T i ) = s i m ( d k ， d 1 ) + s i m ( d k ， d 2 ) + ⋯ + s i m ( d k ， d h ) / h ，其中， d 1 ， d 2 ， ⋯ ， d h 为话题 T i 内所有的文本数据； Step 3：找出与 d k 具有最大相似度的话题类别 T ，即； s i m ( d k ， T ) = arg max s i m ( d k ， T i ) ； Step 4： a) 若 s i m ( d k ， T ) 大于给定阈值 ε ，则将文本 d k 归入对应的话题类别； b) 若 s i m ( d k ， T ) 小于或等于给定阈值 ε ，则创建一个新的话题类别，并将文本 d k 归入到该话题类别中； Step 5：重复步骤2、3和4，直到聚类结束。 3.3. 基于LDA模型的热点话题检测方法 本文结合特征词上下文语义关系，构建图书馆领域专业词典，然后利用LDA模型对微信数据建模，应用主题相似度计算文本间的相似性，实现了微信图书馆的热点话题检测，具体步骤如下： 1) 文本预处理。合并用户在时间窗口内的文本，得到文本集合 D = { d k | k = 1 ， 2 ， ⋯ ， N } ，并对文本进行分词处理，去除停用词及标点符号。 2) 专业词典构建。根据2.1小节中的方法合并上下文共现词对，构建图书馆领域专业词典； 3) 主题建模。应用LDA模型对微信数据建模，为每一个文本都建立一个与之相对应的LDA模型，并使用Gibbs抽样算法估计每个文本的文本–主题分布参数 θ 和主题-词汇分布参数 φ 。 4) 相似度计算。利用主题相似度，计算数据集中文本间的相似性； 5) 文档聚类。将当前文本和已有话题相比较，如果小于聚类阈值，则认为检测到新的话题，否则将该报道归入已有子话题类别中； 6) 得到热点话题集。对数据集下所有文档进行上述步骤，最终输出热点话题集合。