{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Zajecia: ekstrakcja informacji z dokumentów " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Przedstawianie zadania z wyszukiwarek\n", "\n", "Osoby, które zrobiły zadanie- proszę o krótką prezentację na początku zajęć oraz wklikanie hand-in w zadaniu na MS TEAMS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Wyzwanie Kleister NDA\n", "Proszę sforkować repozytorium https://git.wmi.amu.edu.pl/kubapok/kleister-nda-clone i pobrać na komputer\n", "\n", "### Metryki w klasyfikacji binarnej" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$TP$ = TRUE POSITIVE\n", "\n", "$TN$ = TRUE NEGATIVE\n", "\n", "$FP$ = FALSE POSITIVE\n", "\n", "$FN$ = FALSE POSITIVE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ACCURACY = $\\frac{TP + TN}{TP + TN + FP + FN}$\n", "\n", "PRECISION = $\\frac{TP}{TP + FP}$\n", "\n", "RECALL = $\\frac{TP}{TP + FN}$\n", "\n", "F1 = $2 \\times \\frac{PRECISION \\times RECALL}{PRECISION + RECALL}$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import *" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "true = [0] * 30 + [1] * 70" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "predicted = [0] * 30 + [1] * 70" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "accuracy_score(true, predicted)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "precision_score(true, predicted)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recall_score(true, predicted)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f1_score(true, predicted)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Automatyczna ocena kleister NDA\n", "\n", "W katalogu głównym projektu: \n", "\n", "`wget https://gonito.net/get/bin/geval`\n", "\n", "`chmod u+x geval`\n", "\n", "`./geval -t dev-0` (dla zbioru deweloperskiego)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ZADANIE DOMOWE KLEISTER NDA\n", "- stworzyć regułowy ekstraktor informacji (np. na podstawie wyrażeń regularnych)\n", "- wygenerować pliki `train/out.tsv`, `dev-0/out.tsv`, `test-A/out.tsv`\n", "- dodać do commita w swoim forku powyższe pliki wraz z ze skryptem (skryptami), który pomógł je wygenerować. Skrypty powinny byc w formie tekstowej (jeżeli to jupyter to proszę przekonwertować do zwykłego pliku .py, np jupyter nbconvert --to script a.ipynb)\n", "- wynik zaliczający zadanie to więcej niż 0.1 wg metryki F1 dla zbioru test-A\n", "- punkty za zadanie: 40, a dla 5 osób które osiągną najwyższy wyniki dostaną 70 punktów zamiast 40\n", "- zadanie oddajemy do 27 kwietnia w MS TEAMS podając link do repozytorium. Proszę albo nadać użytkownikowi kubapok uprawnienia do przeglądania repozytorium, albo zrobić je publiczne" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ZADANIE DOMOWE Przygotuj wyzwanie dotyczące tekstu zgodne ze standardami Gonito\n", "\n", "Warunki konieczne:\n", "- wyzwanie musi spełniać standardy Gonito\n", "- w szczególności musi przechodzić walidację (`geval --validate --expected-directory .`)\n", "- wyzwanie musi być dostarczone jako repozytorium git\n", "- leży również dostarczyć osobne repozytorium ze skryptami tworzącymi wyzwanie\n", "- leży także dostarczyć jedno przykładowe rozwiązanie - baseline (może być prosty/\"głupi\")\n", "- cały zbiór danych musi mieć co najmniej 5 tys. elementów \n", "Punktacja:\n", "- bazowa liczba punktów za spełnienie - 80 punktów\n", "- +30 - interesujący zbiór danych\n", "- +30 - rozmiar zbioru\n", "- +10 - zbiór z ekstrakcji informacji (podobny do Kleister Charity/NDA)\n", "- maksimum: 150 punktów\n", "Uwaga: nie jest to wymaganie, ale zachęcamy do opracowywanie zbiorów danych potrzebnych do pracy magisterskiej.\n", "\n", "Termin 5 maj 2021 (proszę w MS TEAMS podać link do repozytorium albo publicznego albo z dostępem dla kubapok i filipg na git.wmi)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }