1.2.3 • Published 5 months ago

math-formula-classifier v1.2.3

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

数学公式分类器

一个用于分类 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 的处理
    • 移除了冗余的字符串预处理步骤
    • 提高了变量检测的准确性和可靠性

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 协议