• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Multi languages translator

Object Storage Arubacloud
0 głosów
289 wizyt
pytanie zadane 15 czerwca 2018 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
zmienione kategorie 15 czerwca 2018 przez DragonCoder
Witam,

na poczatek, jesli dalem zla kategorie to prosze o przeniesienie, bo ciezko zdefiniowac ten temat konkretnie. Mozna by wsadzic do kategorii algorytmy lub offtop, ale mniejsza z tym. Chcialbym sie powiedziec, jak mozna stworzyc multi languages translator. Teraz pewnie ktos sie zapyta po co, skoro jest google tlumacz, no ale nie mozna go umiescic wszedzie (tak mi sie wydaje). A wiec przechodzac do sedna:

Czy znacie jakas strone lub kurs, ktory pokazuje jak stworzyc taki tlumacz?

Czy sa jakies algorytmy, ktorych trzeba uzyc na 100%, zeby bylo to wystarczajaco szybkie i dobre. Wiadomo, zaden z tlumaczy nie bedzie idealny.

Co oprocz dobrego algorytmu bedzie mi potrzebne, oprocz slownika, tzn bazy z wyrazami. Czy cos jeszcze?

 

Pozdrawiam

DC
komentarz 16 czerwca 2018 przez j23 Mędrzec (194,920 p.)
Doprecyzujmy. Chcesz stworzyć tłumacza, który tłumaczy całe zdania, czy zwykły słownik ENG <-> POL?
komentarz 16 czerwca 2018 przez DragonCoder Nałogowiec (36,500 p.)
Chodzi o tlumaczenid calych zdan/tekstow do x maksymalnej liczby znakow
komentarz 16 czerwca 2018 przez j23 Mędrzec (194,920 p.)

Zadanie trywialne nie jest. Możesz spróbować z Google Translate API...

komentarz 16 czerwca 2018 przez DragonCoder Nałogowiec (36,500 p.)
No wlasnie chodzilo mi bez uzywanis api od google, tylko stworzenie od 0
komentarz 16 czerwca 2018 przez j23 Mędrzec (194,920 p.)

Czytałeś to -> link? Tak jak pisałem, to nie jest trywialne zadanie i najprawdopodobniej pisanie tego od zera leży poza Twoimi możliwościami. Dlatego radzę korzystać z gotowych rozwiązań.

1 odpowiedź

+2 głosów
odpowiedź 4 stycznia 2019 przez MikDal Mądrala (5,660 p.)
edycja 4 stycznia 2019 przez MikDal
 
Najlepsza

Stworzenie programu, który będzie rozumiał w jednym języku co jest napisane nie jest zadaniem prostym. Wystarczy spojrzeć na to, jakie problemy mają z tym tacy giganci jak Google, Microsoft, Apple czy Amazon.

Jednak jeśli bardzo chcesz spróbować coś takiego stworzyć (sam próbowałem coś podobnego i była to całkiem niezła zabawa!), to tak:

Na początek:

  1. Znajomość języka obcego – nawet na średnim poziomie będzie nie mało problemów, bo nie przewidzisz wielu wyjątków. Jednak nawet jak masz podstawową wiedzę w tym zakresie to i tak może być z tego dobra zabawa.
  2. Apach OpenNLP – biblioteka (posiadająca wiele portów na najróżniejsze języki programowania) do przetwarzania języka naturalnego (między innymi angielskiego). 
  3. Baza słów/ tłumaczeń pomiędzy językami – nie jest prosto uzyskać taką bazę danych. Są one wartościowe i mało kto chce się nimi dzielić za darmo. Konta z ograniczeniami i dostępem do translacji moża uzyskać na stronach Pons'a oraz Oxford Dictionary.

Myślę, że wraz z tymi trzema podstawowymi punktami można zacząć swoją zabawę z prostymi tłumaczeniami.

Co ode mnie?

Nie znalazłem nic na temat tworzenia translatora w języku polskim

Temat jest bardzo złożony i zazwyczaj opiera się o wykorzystanie sztucznej inteligencji wraz z dużymi zbiorami danych (big data). Rzadko kiedy w polskich odmętach internetu można znaleźć jakiś ambitniejszy materiał czy nawet projekt skierowany do publiki dotyczący programowania i wykraczający po za podstawy – wielka szkoda i mam nadzieję, że będzie się to zmieniać. 

Spróbuj najpierw zrobić prosty translator

Za nim będziesz próbował zrobić translator, który będzie tłumaczył z każdego języka na każdy spróbuj najpierw zrobić coś co będzie tłumaczyło tylko pomiędzy polskim a angielskim. To już będzie sprawiało dużo problemów ale zarazem wiele frajdy i satysfakcji. 

Jakbym widział przepływ działania takiego translatora?

Na przykład mamy zdanie "Jaś idzie do domu". W języku angielskim mamy dwie możliwości "Jaś is going home" lub "Jaś goes home", Chociaż w tym przypadku na pewno możemy się kierować w stronę pierwszego tłumaczenia. I tu pojawia się pierwszy problem: gramatyka. I to mało tego, jedna forma gramatyczna w naszym języku odpowiada dwóm formom gramatycznym w języku obcym! Ale do tego wrócimy.

Rozbicie zdania: 

"Jaś idzie do domu " zamieniamy na formy podstawowe: "Jaś", "iść", "do (gdzie)", "dom". W tym miejscu właśnie działa OpenNLP od Apache, pomaga rozbić słowa na pojedyncze słowa oraz określić ich formy podstawowe.

Tłumaczenie:

Mając pojedyncze słowa (zwane często tokenami) możemy je przetłumaczyć: 

Jaś Jaś Iść go
do (gdzie) to dom home/house

W tym momencie tłumacząc jeden do jeden uzyskujemy następujący efekt:

"Jaś go to home/house"

I tu zaczynają się kolejne schody.

Jak określić, czy autor miał na myśli home (dom rodzinny, w którym mieszkamy) czy house (po prostu jakiś dom w końcu używamy tego słowa do określenia dowolnego budynku mieszkalnego na ulicy, czy mieszkania)

Co do formy gramatycznej zarówno wersji z home jak i house uszłoby (chociażby tutaj przykłady użycia), jednak jak powiedziałem wyżej lepsza, według mnie, byłaby forma present cointinous, wiec potrzebowalibyśmy funkcję zmieniającą formę gramatyczną: "Jaś is going home /to house". Jednak na jakiej podstawie określić, która forma jest poprawna?


To tyle, jeśli coś jeszcze kogoś interesuje bądź ma obiekcje to piszcie w komentarzach – może uda się dopracować tę odpowiedź.

komentarz 4 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
Wiem, ze to ciezkie do napisania i sama baza slow jest ciezka do zdobycia. A troche szkoda, bo to zaniza albo spowalnia mozliwosci, kogos kto chcialby sprobowac swoich sil.
komentarz 4 stycznia 2019 przez MikDal Mądrala (5,660 p.)
Przy ilość pracy jaka jest niezbędna do stworzenia takiej bazy sam bym nie chciał się nią dzielić za darmo. Acz jak pokombinujesz dość dużo uda Ci się wyciągnąć za darmo w celach naukowych z tych dwóch linków, które podałem w odpowiedzi (Pons oraz Oxford Dictionary).

Podobne pytania

0 głosów
0 odpowiedzi 136 wizyt
0 głosów
1 odpowiedź 1,718 wizyt
pytanie zadane 31 sierpnia 2018 w JavaScript przez Mateusz Pijanowski Bywalec (2,130 p.)
0 głosów
2 odpowiedzi 308 wizyt
pytanie zadane 5 sierpnia 2018 w Offtop przez Kuba Jakubowski Gaduła (3,550 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...