发布日期:2024-04-26 11:45浏览次数:
过长的组合begin{array}混排公式在部分情况下编辑不是很方便修改起来也很麻烦粘连性过高,也是不能使用mathml在word中转换的,当然也不支持mathtype的【切换Tex】【Toggle TeX】转换
例如:
实际上该样本还算比较简单的,我们在处理过程中会遇到更多复杂的组合
在2020年我们想通过传统的办法解决这个问题我们使用latex语法树分析使用正则表达式去匹配拆分验证,但是面临的问题就是算法鲁棒性太差很多时候遇到的公式各种各样的很难去做针对性处理,并且适配所耗费的时间很多,经常会错误处理到很多正常的内容导致整体Latex表达式失效,这个问题一直困扰我们,直到今天我们升级了全新的方案,我们使用了【循环神经网络GRU】来处理这个问题,我们通过将需要拆分的begin组合公式和手动拆分后的目标LaTex给到【GRU模型】使用【序列到序列Sequence-to-Sequence】的网络结构进行大样本的训练后,最后通过【交叉熵损失函数】计算误差,我们训练下来得到的综合准确到达了97%,符合我们的产品的商业预期。
【原始LaTex】:
\begin{array}{l}
\tilde{u}=\left(\begin{array}{llll}
\$ u(t) & \$ u(t+1) & \ldots & \$ u(t+p-d-1)
\end{array}\right)^{\mathrm{T}} \\
\$ u(t+i)=u(t+i)-u(t-1), \quad i=0,1, \cdots \\
G=\left[\begin{array}{cccc}
B_{1,0} & 0 & \ldots & 0 \\
B_{2,0} & B_{1,0} & \ldots & 0 \\
: & : & \mathrm{W} & : \\
B_{p-d_{1}} & B_{p-d-1,0} & \ldots & B_{1}
\end{array}\right] \\
y_{m}(t+k)= \\
\sum_{i=1}^{n} A_{1} y_{m}(t+k-i)+ \\
\sum_{i=0}^{\infty} B_{1} u(t+k-1-d-\lambda t)= \\
\sum_{i=0}^{r} C_{1}, e(t+k-i t), \quad k=1,2, \cdots, p \\
\end{array}
【经过GRU模型优化后的Latex】:
\[\tilde{u}=\]
${\left(\begin{array}{llll}
\$ u(t) & \$ u(t+1) & \ldots & \$ u(t+p-d-1)
\end{array}\right)}$
\[^{\mathrm{T}} \]
\[\$ u(t+i)=u(t+i)-u(t-1), i=0,1, \cdots \]
G=${\left[\begin{array}{cccc}
B_{1,0} & 0 & \ldots & 0 \\
B_{2,0} & B_{1,0} & \ldots & 0 \\
: & : & \mathrm{W} & : \\
B_{p-d_{1}} & B_{p-d-1,0} & \ldots & B_{1}
\end{array}\right]}$
\[y_{m}(t+k)= \]
\[\sum_{i=1}^{n} A_{1} y_{m}(t+k-i)+ \]
\[\sum_{i=0}^{\infty} B_{1} u(t+k-1-d-\lambda t)= \]
\[\sum_{i=0}^{r} C_{1}, e(t+k-i t), k=1,2, \cdots, p \]
【在Word中使用MathType面板一键切换后效果】:
可以看到我们将原始组合公式拆分的很细不仅方便转换,并且编辑效率极高!
我们通过先进的技术帮助客户更简单的解决公式文档编辑过程中的实际问题,并且从2019年起我们就对公式产品进行精进,使用深度学习让产品更易用,操作更简单!