Wyczytanie bazy próbek
Systemy Sztucznej Inteligencji Instrukcje do ćwiczeń laboratoryjnych
Zadaniem do zrobienia jest napisanie funkcji w C#, która wczyta plik tekstowy z bazą próbek oraz plik tekstowy z typami atrybutów. Funkcja powinna zgłaszać wyjątek, jeśli nie jest możliwy odczyt pliku z próbkami i/lub pliku z informacjami o atrybutach.
Format funkcji:
void wczytaj_baze_probek_z_tekstem(
string nazwa_pliku_z_wartosciami, string nazwa_pliku_z_opisem_atr,
out List<List<string>> probki, out List<bool> czy_atr_symb, out List<string>
nazwy_atr)
Format bazy z próbkami:
Plik składa się z wielu linii, każda linia reprezentuje pojedynczą próbkę. Każda pojedyncza linia (próbka) zawiera taką samą liczbę wyrazów (wartości kolejnych atrybutów, deskryptorów). Każdy wyraz reprezentuje pojedynczą wartość kolejnego atrybutu. Wyrazy mogą być rozdzielone spacjami i/lub tabulatorami. Ostatnia linijka nie musi się kończyć znakiem końca wiersza Przykład:
6.5 3 5.2 2 C
5.1 2.5 3 1.1 D
4.9 3.1 1.5 0.1 1
Dla takiego pliku zmienna probki powinna zawierać: probki[0][2] = ”5.2”, probki[1][4] = ”D”.
Format bazy z informacjami o atrybutach:
Plik składa się z wielu linii, liczba linii jest równa liczbie atrybutów. Każda linijka zawiera dwie kolumny rozdzielone spacjami, tabulatorami lub innymi białymi znakami. Pierwsza kolumna zawiera nazwę atrybutu, druga pojedynczy znak. Jeśli ów pojedynczy znak to ‘s’, wtedy
odpowiednia wartość w tablicy czy_atr_symb wartość ma wartość true, w innym razie ma mieć wartość false. Przykład:
sepal_length_in_cm r sepal_width_in_cm r petal_length_in_cm r petal_width_in_cm r class s
Dla powyższego czy_atr_symb[0] = false, czy_atr_symb[1] = false … czy_atr_symb[4] = true, nazwy_atr[4] = „class”, nazwy_atr[1] = „sepal_width_in_cm”.
Przydatne informacje:
Klasa io.StreamReader, metoda String.Split(...)