Métrica de reconocimiento de tablas: kit de herramientas de evaluación de algoritmos de reconocimiento de tablas y conjuntos de datos de referencia de evaluación relacionados

Métrica de reconocimiento de tablas

PyPI SemVer2.0

Instrucciones de uso:

  1. Instalar paquete por pypi.
    pip install table_recognition_metric
    
  2. Ejecutar por línea de comando.
    • Uso:
      $ 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
      
    • Ejemplo:
      $ 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. Ejecutar por secuencia de comandos.
    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)
    

Evaluación en el conjunto de datos

  • Aquí está el código de evaluación en rapid-tableel conjunto de datos tabulares liekkas/table_recognition , y puede usar la misma analogía.
  • Instalar los paquetes necesarios
    pip install modelscope==1.5.2
    pip install rapid_table
    
  • ejecutar prueba
    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
    

Tree-EditDistance-based Similitud (TEDS)

  • TEDS fue propuesto por IBM en el documento " Reconocimiento de tablas basado en imágenes: datos, modelo y evaluación ".

  • El algoritmo de evaluación propuesto anteriormente consiste principalmente en aplanar la suma de una tabla ground truthen recognition resultuna lista de relaciones de adyacencia entre dos celdas no vacías. A continuación, se calculan la precisión, la recuperación y la puntuación F1 comparando las dos listas. Hay dos problemas obvios con esta métrica:

    1. Dado que solo verifica las adyacencias directas entre celdas que no están vacías, no puede detectar errores causados ​​por celdas vacías y desalineación de celdas más allá de los vecinos inmediatos;
    2. Dado que verifica las relaciones mediante coincidencias exactas, no tiene ningún mecanismo para medir el rendimiento del reconocimiento de contenido de celda de grano fino.
  • En vista de los problemas anteriores, TEDS los resuelve a través de los siguientes métodos:

    1. Resuelva el problema 1 anterior verificando los resultados del reconocimiento en el nivel de estructura de árbol global, lo que le permite reconocer todos los tipos de errores estructurales que reconoce;
    2. Cuando la operación de edición de árbol es el reemplazo de nodos, calcule la distancia de edición de cadena correspondiente para resolver el problema anterior 2.
  • Fórmula de cálculo:

    TEDS ( T un , T segundo ) = 1 − E dit D ist ( T un , T segundo ) max ( ∣ T un ∣ , ∣ T segundo ∣ ) TEDS(T_{a}, T_{b}) = 1 - \ frac{EditarDist(T_{a}, T_{b})}{max(|T_{a}|, |T_{b}|)}TE D S ( Tun,Tsegundo)=1máx ( T _un,Tsegundo)E d i t a D i s t ( Tun,Tsegundo)
    Entre ellos, Edit D ist EditDistE d i t D i s t se refiere ala distancia de edición del árbol,∣ T ∣ |T|T se refiere alTTEl número de nodos en T. El efecto de reconocimiento de un algoritmo de restauración de tablas en una serie de conjuntos de prueba se puede definir como: todas las muestras en el conjunto de prueba calculan los TEDS entre surealidad básicaypredicen el resultadouno por uno, y finalmente promedian los TEDS de todas las muestras para obtener el puntuación final.

Supongo que te gusta

Origin blog.csdn.net/shiwanghualuo/article/details/131712676
Recomendado
Clasificación