You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#自定义Form Recognizer模型中获取指定训练表格的方法

问题

在Form Recognizer Studio中创建了自定义模型,可分析Blob容器中的表单,字段结果能按预期输出至控制台,但无法正确输出表格结果。该表单包含6个表格,仅针对关注的WageTable表格训练了模型。当前使用DocumentTable table = (DocumentTable)result.Tables[1];按索引(0-5)获取识别到的6个表格之一,希望修改此代码以仅输出训练的目标表格。

解决方案

不需要通过result.Tables按索引定位目标表格,因为你在自定义模型中标记的WageTable字段已经直接关联了对应的表格数据。直接从当前字段的Value属性中提取表格即可,这样既不需要依赖表格的位置索引,也能精准获取训练的目标表格。

修改加粗部分的代码为:

DocumentTable table = field.Value.AsTable();

或者在确定类型的情况下使用强转:

DocumentTable table = (DocumentTable)field.Value;

修改后的完整代码片段

foreach (KeyValuePair<string, DocumentField> fieldKvp in document.Fields)
{
    string fieldName = fieldKvp.Key;
    DocumentField field = fieldKvp.Value;

    Console.WriteLine($"Field '{fieldName}': ");

    Console.WriteLine($"  Content: '{field.Content}'");
    Console.WriteLine($"  Confidence: '{field.Confidence}'");
    Console.WriteLine($"  FieldType: '{field.FieldType}'"); // 修正原代码重复输出Confidence的问题

    if (fieldName == "WageTable")
    {
        // 从当前字段的Value中直接获取目标表格
        DocumentTable table = field.Value.AsTable();

        Console.WriteLine($"  Table {fieldName} has {table.RowCount} rows and {table.ColumnCount} columns.");

        foreach (DocumentTableCell cell in table.Cells)
        {
            Console.WriteLine($"    Cell ({cell.RowIndex}, {cell.ColumnIndex}) has kind '{cell.Kind}' and content: '{cell.Content}'.");
        }
    }
}

说明

自定义模型训练完成后,你标记的WageTable字段会将识别到的对应表格数据存储在field.Value中,类型为DocumentTable。通过这种方式获取表格,完全不受其他表格的位置影响,能精准拿到你训练的目标表格数据。

内容的提问来源于stack exchange,提问作者EcentricTeaFarmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:45:23