aitech-eks-pub-22/cw/05_NDA_IE.ipynb
Jakub Pokrywka 81d0d0928a add 05 06
2022-04-20 09:56:20 +02:00

257 lines
6.3 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Ekstrakcja informacji </h1>\n",
"<h2> 5. <i>Ekstrakcja informacji z dokumentów</i> [ćwiczenia]</h2> \n",
"<h3> Jakub Pokrywka (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"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ę pobrać z gonito https://gonito.net/challenge/kleister-nda\n",
"\n",
"### Metryki w klasyfikacji"
]
},
{
"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 03.05 w gonito "
]
},
{
"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 10 maj 2022 na zajęciach (proszę sie zgłosić do prowadzącego)"
]
}
],
"metadata": {
"author": "Jakub Pokrywka",
"email": "kubapok@wmi.amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"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"
},
"subtitle": "5.ekEtrakcja informacji z dokumentCCow[ćwiczenia]",
"title": "Ekstrakcja informacji",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}