257 lines
6.3 KiB
Plaintext
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
|
||
|
}
|