1.2.3 • Published 5 months ago
math-formula-classifier v1.2.3
数学公式分类器
一个用于分类 LaTeX 数学公式的 JavaScript 库。
安装
使用 npm 安装:math-formula-classifier
使用方法
导入 classifyFormula 函数,传入 LaTeX 格式的数学公式,即可获得分类结果。
支持的公式类型
算术运算
整数运算
- 基本四则运算
- 带括号的复合运算
- 竖式加减乘除
小数运算
- 小数四则运算
- 小数混合运算
- 小数竖式运算
分数运算
- LaTeX分数形式
- 普通分数形式
- 分数四则运算
- 分数与整数混合运算
- 分数与小数混合运算
根式运算
- 平方根
- n次根
- 根式四则运算
- 根式与分数混合运算
- 根式与小数混合运算
混合运算
- 分数与根式组合
- 小数与分数组合
- 小数与根式组合
- 复合混合运算
竖式运算
- 整数竖式
- 小数竖式
- 加减法竖式
- 乘除法竖式
绝对值运算
- 绝对值四则运算
- 绝对值与分数混合运算
- 绝对值与小数混合运算
方程
- 一元一次方程
- 一元二次方程
- 方程组
- 其他类型方程
其他类型
- 复数运算
- 三角函数
- 函数表达式
- 序列和级数
- 排列组合
API 说明
classifyFormula 函数
输入:LaTeX 格式的数学公式字符串 返回:包含以下信息的对象
- 类别:公式的主要分类
- 子类型:具体的公式类型
- 详细信息:额外的分析信息(如果有)
- 得分:分类的置信度分数
- 耗时:处理时间(毫秒)
更新日志
v1.2.3 - 2025-01-19
修复
- 修复了绝对值运算被错误识别为无效算术的问题
- 移除了 ArithmeticClassifier 中对减号的特殊检查
- 确保 |2| + |-3| 等表达式能被正确识别为绝对值运算
- 保留了对真正中文破折号的检测
v1.2.2 - 2025-01-16
修复
- 修复了数学减号被误识别为中文破折号的问题
- 改进了中文破折号的检测规则
- 现在只匹配连续两个减号(--)或 CJK 破折号(—)
- 单个减号不再被识别为中文文本
- 确保数学减号能被正确识别为算术运算
v1.2.1 - 2025-01-16
改进
- 优化了分类器的中文文本处理
- 将中文文本检测移至 UnsupportedClassifier
- 提高了中文文本的基础分数和权重
- 改进了中文破折号的识别逻辑
- 确保中文文本始终获得足够高的分数
- 优化了分类器的优先级处理
- 调整了 UnsupportedClassifier 对特殊内容的评分机制
- 确保特殊内容不会被错误地归类为其他类型
- 完善了分类器间的权重平衡
v1.2.0 - 2025-01-15
改进
- 增强了 UnsupportedClassifier 的物理化学公式识别能力
- 添加了全面的物理量单位支持:
- 温度 (°C, K, °F)
- 压力 (Pa, atm, bar, mmHg)
- 体积 (m³, L, mL)
- 质量 (kg, g, mg)
- 速度 (m/s, km/h)
- 能量 (J, kJ, cal)
- 功率 (W, kW)
- 电学量 (V, A, Ω)
- 频率 (Hz, kHz)
- 浓度 (mol/L, M, mM)
- 改进了化学表达式识别:
- 化学方程式 (→, ⇌)
- 化学式
- pH值和平衡常数
- 增强了物理表达式识别:
- 向量表达式
- 量子力学表达式
- 热力学表达式
- 优化了单位识别逻辑:
- 优先识别复合单位
- 准确区分相似单位
- 支持标准的 \mathrm{} 格式
- 完善了测试用例覆盖
- 添加了全面的物理量单位支持:
v1.0.19 - 2024-11-30
改进
- 优化了 ExpressionClassifier 的英文文本处理
- 添加了
_isEnglishSentence
方法用于检测英文句子- 支持检测常见英文单词(如 the, a, an 等)
- 支持检测连续的3个或更多字母
- 支持检测典型的英文句子结构
- 在分类过程中优先进行英文句子检查
- 避免将英文文本误识别为数学表达式
- 提高了分类器对非数学内容的鲁棒性
- 添加了
v1.0.17 - 2024-11-30
改进
- 优化了变量分析工具 (VariableAnalyzer)
- 改进了乘号 'x' 的识别逻辑
- 添加了
isMultiplicationX
函数进行精确判断 - 支持检测独立的 x(前后有空格)
- 支持检测数字之间的 x
- 支持检测乘法运算符形式的 x
- 添加了
- 优化了变量过滤机制
- 检查每个 x 的具体位置和上下文
- 更准确地区分变量 x 和乘号 x
- 改进了正则表达式方案
- 使用相同的乘号判断逻辑
- 优化了科学计数法中 e 的处理
- 移除了冗余的字符串预处理步骤
- 提高了变量检测的准确性和可靠性
- 改进了乘号 'x' 的识别逻辑
v1.0.16 - 2024-11-30
改进
- 优化了 ExpressionClassifier 的变量检测逻辑
- 改进了乘号 'x' 的处理,避免将其误识别为变量
- 优化了分数运算的检测逻辑
- 重构了分类器的检查顺序和优先级
- 调整了特征权重系数
- 增强了对混合运算的支持
- 改进了基本算术运算的识别准确性
v1.0.15 - 2024-11-30
改进
- 优化了 ExpressionClassifier 的分类逻辑
- 添加了
-Infinity
评分机制,确保基本运算被正确分类 - 改进了基本算术运算的检测
- 增强了对 LaTeX 运算符的支持
- 优化了分类器的优先级顺序
- 添加了
v1.0.14 - 2024-11-30
- 初始文档创建
- 添加了 Jest 与 ESM 项目的基础配置说明
- 记录了常见问题及解决方案
- 提供了配置文件示例和最佳实践指南
1.0.13 - 2024年11月29日
- 优化了分类器的权重系统:
- 提高了算术分类器的基础权重(3.5)
- 调整了方程分类器的权重(3.0)
- 降低了表达式分类器的权重(2.0)
- 改进了分类器的得分计算:
- 增加了纯数字等式的算术得分
- 降低了纯数字等式的方程得分
- 优化了混合运算的权重分配
- 完善了测试系统:
- 添加了分类器权重比较测试
- 增加了数字等式的测试用例
- 添加了分类器得分调试信息
1.0.12 - 2024年11月29日
- 改进了竖式运算的识别:
- 支持更多除号形式(\div 和 /)
- 添加了小数竖式的识别
- 完善了竖式的详细信息:
- 添加了小数标记
- 添加了横线标记
- 改进了运算符识别
- 优化了测试用例:
- 添加了更多竖式测试用例
- 增加了小数竖式测试
- 完善了运算符检查
1.0.11 - 2024年11月28日
- 改进了根式运算的分类能力:
- 支持根式之间的四则运算
- 支持根式与数字的混合运算
- 支持根式与分数的混合运算
- 优化了分类器的检查顺序:
- 根式运算优先于分数运算
- 混合运算优先于单一类型运算
- 完善了根式运算的详细信息:
- 添加了运算符类型识别
- 添加了多重根式检测
- 添加了分数形式标记
1.0.9 - 2024年11月27日
- 改进了二元二次方程的识别:
- 支持平方项识别
- 支持交叉项(xy)识别
- 添加了更详细的方程特征信息
1.0.8 - 2024年11月27日
- 增强了竖式运算的识别:
- 支持除号的多种形式(/ 和 \div)
- 改进了竖式格式的检测
- 完善了运算符提取
1.0.7 - 2024年11月27日
- 增强了绝对值运算的分类能力
- 添加了新的算术子类型:
- absolute_value_arithmetic:绝对值运算
- 改进了分数运算的识别:
- 支持 / 符号作为分数运算符
- 添加了绝对值分数运算的识别
- 完善了分类器的详细信息:
- 添加了运算符类型识别
- 添加了多重绝对值检测
- 改进了混合运算的判断
1.0.6 - 2024年11月26日
- 增强了算术运算的分类能力
- 添加了更多算术子类型:
- integer_arithmetic:整数运算
- decimal_arithmetic:小数运算
- fraction_arithmetic:分数运算
- radical_arithmetic:根式运算
- mixed_arithmetic:混合运算
- vertical_arithmetic:竖式运算
- absolute_value_arithmetic:绝对值运算
- 为每种子类型添加了详细的特征信息
1.0.5 - 2024年11月26日
- 添加了算术公式的子类型
- 增强了竖式运算的检测
1.0.4 - 2024年11月25日
- 添加了环境变量支持
- 修复了服务器配置问题
1.0.3 - 2024年11月24日
- 添加了导出配置
- 改进了模块兼容性
1.0.2 - 2024年11月23日
- 首次公开发布
- 支持基本的公式分类功能
Test
npm run test:equation npm run test:examples npm run test:integration npm run test:all
开源协议
MIT 协议