237 lines
5.8 KiB
Plaintext
237 lines
5.8 KiB
Plaintext
{
|
|
"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
|
|
}
|