aitech-eks-pub/cw/05_NDA_IE.ipynb

237 lines
5.8 KiB
Plaintext
Raw Normal View History

2021-04-14 15:20:47 +02:00
{
"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.3 wg metryki F1 dla zbioru dev-0\n",
"- punkty za zadanie: 40, a dla 5 osób które osiągną najwyższy wyniki dostaną 60 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
}