54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
"""
|
|
Zadanie domowe
|
|
wybrać jedno z poniższych repozytoriów i je sforkować:
|
|
https://git.wmi.amu.edu.pl/kubapok/paranormal-or-skeptic-ISI-public
|
|
https://git.wmi.amu.edu.pl/kubapok/sport-text-classification-ball-ISI-public
|
|
stworzyć klasyfikator bazujący na prostej sieci neuronowej feed forward w pytorchu (można bazować na tym jupyterze).
|
|
Zamiast tfidf proszę skorzystać z jakieś reprezentacji gęstej (np. word2vec).
|
|
stworzyć predykcje w plikach dev-0/out.tsv oraz test-A/out.tsv
|
|
wynik accuracy sprawdzony za pomocą narzędzia geval (patrz poprzednie zadanie) powinien wynosić conajmniej 0.67
|
|
proszę umieścić predykcję oraz skrypty generujące (w postaci tekstowej a nie jupyter) w repo, a w MS TEAMS umieścić link do
|
|
swojego repo termin 25.05, 70 punktów
|
|
|
|
"""
|
|
|
|
import pandas as pd
|
|
import spacy
|
|
from net import FFN
|
|
import numpy as np
|
|
import torch
|
|
from utils import create_embeddings_file, load_embeddings_file
|
|
from nltk.tokenize import word_tokenize
|
|
# sp = spacy.load('en_core_web_sm')
|
|
|
|
# def word2vec(word):
|
|
# return sp(word).vector
|
|
# return np.random.uniform(low=0.0, high=1.0, size=(384,))
|
|
|
|
train_data = pd.read_csv("train/in.tsv", sep='\t')
|
|
train_data.columns = ['PostText', 'Timestamp']
|
|
train_expected = pd.read_csv("train/expected.tsv", sep='\t')
|
|
train_expected.columns = ['Label']
|
|
|
|
# test_data = pd.read_csv("test-A/in.tsv", sep='\t')
|
|
# test_data.columns = ['PostText', 'Timestamp']
|
|
|
|
# dev_data = pd.read_csv('dev-0/in.tsv', sep='\t')
|
|
# dev_data.columns = ['PostText', 'Timestamp']
|
|
# dev_expected = pd.read_csv('dev-0/expected.tsv', sep='\t')
|
|
# dev_expected.columns = ['Label']
|
|
|
|
# create_embeddings_file(dev_data['PostText'], 'dev-0/embeddings.csv', word2vec)
|
|
# create_embeddings_file(test_data['PostText'], 'test-A/embeddings.csv', word2vec)
|
|
# create_embeddings_file(train_data['PostText'], 'train/embeddings.csv', word2vec)
|
|
|
|
# train_data = load_embeddings_file('train/embeddings.csv').to_numpy()
|
|
# dev_data = load_embeddings_file('dev-0/embeddings.csv').to_numpy()
|
|
# test_data = load_embeddings_file('test-A/embeddings.csv').to_numpy()
|
|
|
|
model = FFN(300, 1, 300, 300, 0.01, 4, 100)
|
|
# model.double()
|
|
# model.train([np.asarray(word_tokenize(x)) for x in train_data['PostText']], train_expected['Label'])
|
|
model.load()
|
|
model.double()
|
|
model.test([np.asarray(word_tokenize(x)) for x in train_data['PostText']], train_expected['Label'], "train/out.tsv") |