Chciałem zacząć eksperymentować z siecią neuronową i jako problem z zabawką chciałem wytrenować jedną z czatów, tj. Wdrożyć bota czatującego, takiego jak cleverbot. W każdym razie nie takie sprytne.
Rozejrzałem się za dokumentacją i znalazłem wiele samouczków na temat ogólnych zadań, ale niewiele na ten temat. Ten, który znalazłem, ujawnił wyniki bez wglądu w implementację. Te, które to zrobiły, zrobiły to dość płytkie (na stronie dokumentacji tensorflow na seq2seq brakuje imho).
Teraz czuję, że mogłem mniej więcej zrozumieć tę zasadę, ale nie jestem pewien, a nawet nie jestem pewien, jak zacząć. Wyjaśnię zatem, w jaki sposób poradzę sobie z tym problemem, i chcę uzyskać informację zwrotną na temat tego rozwiązania, mówiąc mi, gdzie się mylę i ewentualnie mam link do szczegółowych wyjaśnień i praktycznej wiedzy na temat tego procesu.
Zestaw danych, którego użyję do tego zadania, to zrzut całej mojej historii czatów na Facebooku i WhatsApp. Nie wiem, jak duży będzie, ale być może wciąż nie jest wystarczająco duży. Językiem docelowym nie jest angielski, dlatego nie wiem, gdzie szybko zebrać znaczące próbki konwersacji.
Z każdego zdania wygeneruję wektor myślowy. Nadal nie wiem jak właściwie; Znalazłem dobry przykład dla word2vec na stronie deeplearning4j, ale nie dla zdań. Zrozumiałem, jak budowane są wektory słów i dlaczego, ale nie mogłem znaleźć wyczerpującego wyjaśnienia dla wektorów zdań.
Używając wektorów myślowych jako danych wejściowych i wyjściowych zamierzam trenować sieć neuronową. Nie wiem, ile warstw powinien mieć, a które muszą to być warstwy pierwsze.
Następnie powinna istnieć inna sieć neuronowa, która jest w stanie przekształcić wektor myślowy w sekwencję znaków tworzących zdanie. Czytam, że powinienem używać dopełnienia, aby nadrobić różne długości zdań, ale brakuje mi sposobu kodowania znaków (czy wystarczą znaki kodowe?).