Cześć, jestem na etapie hobbistycznego pisania aplikacji, gdzie na podstawie kilku pytań przy pomocy multiclass classification trenuję model, a następnie za pomocą API przesyłam odpowiedzi na pytania i próbuję "odgadnąć" wynik. Sama struktura danych (w uproszczeniu), które służą do trenowania modelu wyglądają w taki sposób:
Kolor oczu | Jaki masz samochód | Gdzie pracujesz | Ile masz lat |
---|---|---|---|
Niebieski | A | C | D |
Zielony | D | A | C |
Same klasy do trenowania nie są jakieś wymyślne i wyglądają raczej w standardowy sposób:
public class ModelData
{
[LoadColumn(0)] public string Odpowiedź { get; set; }
[LoadColumn(1)] public string Pytanie1 { get; set; }
[LoadColumn(2)] public string Pytanie2 { get; set; }
[LoadColumn(3)] public string Pytanie3 { get; set; }
}
public class ModelDataPrediction
{
[ColumnName("PredictedLabel")] public string Odpowiedź { get; set; }
}
Z drugiej strony, chcę zrobić aplikację kliencką w formie Quizu, która wyciągnie wszystkie pytania z bazy i za pomocą jakiegoś foreach
"na froncie" poiteruje po kolekcji wyświetlając pytania i odpowiedzi (każde pytanie ma pole z tekstem pytania, url do zdjęcia i listą odpowiedzi). Powiedzmy coś w tym stylu:
public class Question
{
public int IdQuestion { get; set; }
public string Sufix { get; set; } = default!;
public string Text { get; set; } = default!;
public string VideoSrc { get; set; } = default!;
public List<Answer> Answers { get; set; }
}
public class Answer
{
public int IdAnswer { get; set; }
public string Text { get; set; } = default!;
}
Finalnie, aby przewidzieć wynik na podstawie wytrenowanego modelu, muszę w jakiś sposób przekonwertować odpowiedzi użytkownika na typ ModelData
i szczerze nie mam pojęcia jak to zrobić.
Jedyny pomysł na jaki wpadłem to stworzenie jakiejś tymczasowej klasy:
public class TempClass
{
public string Sufix { get; set; } = default!;
public string Answer { get; set; } = default!;
}
Od użytkownika na backend przekażę Listę typu TempClass
gdzie sufix stanowić będzie nazwa pola z ModelData
i potem jakieś rzeźbienie w stylu:
ModelData.Pytanie1 = _modelData.Select(x=>x.Answer).Where(x=>x.Sufix=="Pytanie1");
Czy ktoś ma może jakiś pomysł, jak można to zrobić inaczej zodnie ze sztuką? Co wydaje mnie się, że idę totalnie w złym kierunku.