Table Recognition Metric: 表格识别算法评测工具包及相关评测基准数据集

1|0Table Recognition Metric

PyPI SemVer2.0

1|1使用说明:

  1. Install package by pypi.
    pip install table_recognition_metric
  2. Run by command line.
    • Usage:
      $ table_recognition_metric -h usage: table_recognition_metric [-h] [-gt GT_HTML] [-pred PRED_HTML] optional arguments: -h, --help show this help message and exit -gt GT_HTML, --gt_html GT_HTML -pred PRED_HTML, --pred_html PRED_HTM
    • Example:
      $ table_recognition_metric -gt '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' -pred '' # 0.0
  3. Run by script.
    from table_recognition_metric import TEDS teds = TEDS() gt_html = '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' pred_html = '<html><body><table><tr><td>购买方</td><td colspan="5">纳税人识别号地址、电记开户行及账号</td><td>密码区</td><td colspan="4"></td></tr><tr><td colspan="2">货物或应税劳务、服务名称理肤泉清痘旅行装控油祛痘调节水油平衡理肤泉特安舒缓修护乳40ml合计</td><td>规格型号</td><td>单位</td><td>11</td><td colspan="3"></td><td></td><td>税率17%17%</td><td></td></tr><tr><td colspan="2">价税合计(大写)</td><td colspan="9"></td></tr><tr><td>销售方</td><td colspan="5">纳税人识别号地址、电话开户行及账号</td><td>备注</td><td colspan="4"></td></tr></table></body></html>' score = teds(gt_html, pred_html) print(score)

1|0数据集上评测

  • 这里以rapid-table在表格数据集liekkas/table_recognition上的评测代码,大家可以以此类推。
  • 安装必要的包
    pip install modelscope==1.5.2 pip install rapid_table
  • 运行测试
    from modelscope.msdatasets import MsDataset from rapid_table import RapidTable from table_recognition_metric import TEDS test_data = MsDataset.load( "table_recognition", namespace="liekkas", subset_name="default", split="test", ) table_engine = RapidTable() teds = TEDS() content = [] for one_data in test_data: img_path = one_data.get("image:FILE") gt = one_data.get("label") pred_str, _ = table_engine(img_path) scores = teds(gt, pred_str) content.append(scores) print(f"{img_path}\t{scores:.5f}") avg = sum(content) / len(content) print(avg) # 0.5847187558587787

1|2Tree-EditDistance-based Similarity (TEDS)

  • TEDS是IBM在论文《Image-based table recognition: data, model, and evaluation》中提出的。

  • 之前提出的评测算法,主要是将一个表格的ground truthrecognition result各自展平为非空cell两两之间的邻接关系列表。然后通过比较这两个列表,来计算precision, recall和F1-score。该metric主要存在两个明显问题:

    1. 由于它只检查非空单元格之间的直接邻接关系,因此它无法检测由空单元格和超出直接邻居的单元格未对齐引起的错误;
    2. 由于它通过精准匹配来检查关系,因此它没有衡量fine-grained单元格内容识别性能的机制。
  • 针对以上问题,TEDS通过以下方法予以解决:

    1. 通过在全局树结构级别检查识别结果,使其能够识别它识别所有类型的结构错误,来解决上述问题1;
    2. tree-edit的操作是节点替换时,计算对应的字符串编辑距离,来解决上述问题2。
  • 计算公式:

    TEDS(Ta,Tb)=1EditDist(Ta,Tb)max(|Ta|,|Tb|)

    其中,EditDist指的是tree-edit distance, |T|指的是在T中节点的数量。一个表格还原算法在一系列测试集上识别效果可以定义为:测试集中所有样例逐个计算其ground truthpredict result之间的TEDS,最终对所有样例的TEDS求均值得到最终得分。


__EOF__

本文作者Danno
本文链接https://www.cnblogs.com/shiwanghualuo/p/17552361.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Danno  阅读(310)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示