Temat: Jak zamienic znaki angielskie na polskie?
Mateusz Mierzwiński:
Zdefiniuj abstrakcyjność? Czy nie jest to przypadkiem możliwość wykorzystania posiadanych zasobów w celu rozwiązania problemu w dowolny możliwy sposób, dzięki któremu osiągniemy upragniony efekt?
Nie bardzo... chodziło mi o to, że ilość wymiarów NN jest ograniczona. Jeśli nie dojdziesz do poziomu przechowywania wyników na później i używania ich, jesteś ograniczony do tego co zaprojektujesz. Czyli w efekcie obsłużysz X idei / tematów gdzie możesz dopasować pisownie, a potem nowe fragmenty tekstu zaczną psuć poprzednie wyniki, bo brakuje Ci zmiennych na wyrażenie różnic pomiędzy wyrażeniami. To trochę tak jak rysowanie na kartce - nagle ktoś mówi że to nie koło tylko kula, ale nie masz już więcej wymiarów żeby to wyrazić, więc zaczynasz wszystkie poprzednie koła nazywać kulami.
Jak rozbijesz zdanie, które posiada X wyrazów i zbadasz odległość między słowami?
Żeby nie napisać epopei, rzucam jakąś pseudo-notacją gdzie [...] to lista:
[słowo] -> [{temat1: P(przynależność), temat2: ...}] -> (suma / uśrednienie / splot / cokolwiek) -> {temat1: P(), temat2: ...} -> (odcięcie danych mało prawdopodobnych) -> [temat1, temat2, ...]
I nawet nie potrzebujemy odległości między słowami. Tematy mogą być wygenerowane z n-gramów i nawet nie muszą mieć nazw, więc nie problemu. Jeśli zamiast listy słów dostaniesz przetworzone drzewo, możesz olać mało znaczące słowa i analizować całe związki - to da jeszcze lepsze wyniki.
A w jaki sposób postąpisz,jeśli ktoś standardowo nie używa przecinka ani znaków rozdzielających zdania. Wówczas w jednym zdaniu złożonym można opisać kilka rzeczy na raz - jak w przypadku niechlujnej mowy - 10 tematów w jednym zdaniu.
Jeśli da się przeanalizować, zgadując strukturę, jest ok. Jak nie, to przetwarzamy ngramy.
Chyba, że masz na myśli inne mapowanie w sieci neuronowej? Co konkretnie chcesz mieć na wejściu / wyjściu?
Tworzymy tablice wyrazów i uczymy sieć za pomocą wektorów od elementów tej tablicy. Poprzez poprawne porównania z wyjściem wyostrzymy odpowiednio wyniki, jeśli zaznaczymy odrzucenia i przyjęcia. Może to być dość ciekawy projekt na pracę licencjacką :).
Po kolei - wejście:
- Wektor indeksów (jeśli dobrze rozumiem)... Jak to ma działać z siecią? Wszelkie typowe węzły mają zdefiniowany jakiś próg - jak chciałbyś taką tablicę wyrazów zbudować żeby mogła być kompatybilna? Tzn. co konkretnie ten indeks ma reprezentować, jeśli zostanie zamieniony na wartość analogową od razu? Chcesz użyć czegoś innego niż zwykłe warstwy węzłów podobnych do progu / sigmy / czegokolwiek?
- Ile tych elementów ma być? Jeśli robisz okno na N elementów, to wychodzi na to samo co mapa n-gram'ów, tylko 100 razy wolniej. Jeśli chcesz przetwarzać zdania... jak to miałoby wyglądać ze zmienną długością? Jak łączysz wynik z poprzednimi / następnymi zdaniami, bądź też kontekstem tekstu?
Wyjścia:
- Co one mają reprezentować? Tematy? Pisownie? Nie widzę co miałbyś z czym porównywać tutaj. Chyba, że chcesz zrobić unsupervised learning, porównywać tylko podobieństwa wyników i... zobaczyć co wyjdzie ;)
Nie we wszystko da się rzucić siecią i znaleźć wynik...
Stanisław Pitucha edytował(a) ten post dnia 12.08.10 o godzinie 03:14