<jupyter_start><jupyter_text>Wczytanie bazowego datasetu<jupyter_code>df = pd.read_csv("glove_df_dbpedied_p.csv")
df<jupyter_output><empty_output><jupyter_text>W poprzednich skryptach doszło do utworzenia duplikatów w kolumnie text, więc teraz się ich pozbywamy<jupyter_code>df = df.drop_duplicates(subset=["text"]); df<jupyter_output><empty_output><jupyter_text>Zbudowanie listy klas w obrębie których będziemy dokonywać predykcji<jupyter_code>classes = list(df.columns.values[3:-1])
classes<jupyter_output><empty_output><jupyter_text>Sprawdzenie rozkładu klasChodzi o podliczenie ile mamy próbek odpowiadających danej klasie. Jeżeli mamy tylko jedną próbkę danej klasy to dodajemy ID takiego wiersza do tablicy<jupyter_code>rozklad = Counter()

for cc, row in df.iterrows():
    cat = classes[np.array(row[classes]).argmax()]
    rozklad[cat] += 1

theonly = []
rev = reversed(rozklad.most_common())
for item in rev:
    if item[1] == 1:
        theonly.append(item[0])
rozklad.most_common()<jupyter_output><empty_output><jupyter_text>Wypisanie klas, ktore mają tylko jeden przykład<jupyter_code>theonly<jupyter_output><empty_output><jupyter_text>Usuwamy kolumny, które mają tylko pojedyńcze wystąpienia klas<jupyter_code>for item in theonly:
    classes.remove(item)
    
df = df.drop(columns=theonly)
classes<jupyter_output><empty_output><jupyter_text>Do zbioru testowego dodajemy próbki, które odpowiadają każdej z klasyDokładnie to po int(0.2*ilość próbek)+1<jupyter_code>rowtest = []
rowtestcats = Counter()

for cc, row in df.iterrows():
    cat = classes[np.array(row[classes]).argmax()]
    
    if row[cat] == 1:
        if rowtestcats[cat] < int(0.2*rozklad[cat])+1:
#             print(cc, cat)
            rowtestcats[cat] += 1
            rowtest.append(cc)
len(rowtestcats), len(classes), len(rowtest)<jupyter_output><empty_output><jupyter_text>Utworzenie nowego dataframe<jupyter_code>testds = pd.DataFrame()
for row in rowtest:
    testds = testds.append(df.loc[row])<jupyter_output><empty_output><jupyter_text>Usunięcie niepotrzebnej kolumny<jupyter_code>testds = testds.drop(columns=["Unnamed: 0"])
testds[classes] = testds[classes].astype(int)
testds<jupyter_output><empty_output><jupyter_text>Utworzenie zbioru uczącego<jupyter_code>trainds = pd.DataFrame()

for row in range(len(df)):
    if row not in rowtest:
        trainds = trainds.append(df.iloc[row])<jupyter_output><empty_output><jupyter_text>Usunięcie niepotrzebnej kolumny<jupyter_code>trainds = trainds.drop(columns=["Unnamed: 0"])
trainds[classes] = trainds[classes].astype(int)
trainds.head()<jupyter_output><empty_output><jupyter_text>Zapis do pliku<jupyter_code>testds.to_csv("test_p.csv")
trainds.to_csv("train_p.csv")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11906501095690285, 'fraction_numerical': 0.005843681519357195, 'mean_word_length': 7.008771929824562, 'pattern_counts': {'":': 0, '<': 50, '<?xml version=': 0, '>': 49, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '647849', 'license': 'MIT', 'n_tokens_mistral': 1119, 'n_tokens_neox': 1130, 'n_words': 173, 'path': 'notbooks/BuildDataset.ipynb', 'repo_name': 'chradam/PUT_CTA_Round1', 'size': '2738'}