Sarah Baran

Sarah Baran Freelancer

Temat: Jak zamienic znaki angielskie na polskie?

Czy wie ktos moze jak zamienic tekst pisany po polsku ale bez polskich znakow takich jak np. ć , ę na tekst, w ktorym te znaki beda wystepowac? Czy jest jakis program dla LINUX? Jestem totalna niemota komputerowa........ Serdecznie dziekuje za pomoc.
Pozdrawiam,
Adrian Czerniak

Adrian Czerniak Administrator
Systemów Uniksowych

Temat: Jak zamienic znaki angielskie na polskie?

Nie sądzę, aby istniało gotowe narzędzie, a jeśli nawet, to pewnie robiłoby dużo błędów. Weźmy przykładowo słowo "droga". Skąd program ma wiedzieć, czy chodzi o "droga" czy "drogą"?. Pewną analizę można by wykonać, ale na pewno bez znacznej ilości poprawek wykonanych ręcznie by się nie obyło.
Irek Słonina

Irek Słonina programowanie, bazy
danych i linuksy

Temat: Jak zamienic znaki angielskie na polskie?

Oczywiście automatyczna "korekta" nie jest możliwa ponieważ nie jest to korekta, a wróżenie z fusów. Zamiana ć -> c wiąże się z bezpowrotną utratą informacji.

Możesz jednak spróbować przepuścić tekst przez automatyczną korektę Google Wave, podobno radzi sobie całkiem nieźle z poprawianiem słów zależnie od kontekstu. Może się nadać.
Ewentualnie pozostaje Ci edytor tekstu z wbudowanym słownikiem jak np. OpenOffice Writer.
Stanisław P.

Stanisław P. Software designer

Temat: Jak zamienic znaki angielskie na polskie?

Taki program nie może istnieć. (ok - może, ale nigdy nie będzie dokładny)

Przykłady:

lad / ład / ląd
laska / łaska / laska

Który wariant jest poprawny?

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

Stanisław Pitucha:
Taki program nie może istnieć. (ok - może, ale nigdy nie będzie dokładny)

Przykłady:

lad / ład / ląd
laska / łaska / laska

Który wariant jest poprawny?

Analiza syntaktyczna to pierwszy etap tego, co robi każdy szanujący się translator - a więc jest możliwa i staje się coraz doskonalsza. Może to trochę oderwane od pytania OP, ale np. w Abiwordzie jest korektor błędów składniowych dla języka angielskiego, działa w oparciu o gramatykę łączeń ( http://www.link.cs.cmu.edu/link/ ).

Ja robię detektor błędów fleksyjnych dla języka polskiego na mojej magisterce, może też będzie działać ;)
Stanisław P.

Stanisław P. Software designer

Temat: Jak zamienic znaki angielskie na polskie?

Aleksander W.:
lad / ład / ląd
laska / łaska / laska

Analiza syntaktyczna to pierwszy etap tego, co robi każdy szanujący się translator - a więc jest możliwa i staje się coraz doskonalsza.

Analiza syntaktyczna nie pomoże (a przynajmniej nie zawsze):

"Zrób mi laske" / "Zrób mi łaskę"
"Widzę tam ład" / "Widzę tam ląd"

Obydwa przykłady są składniowo poprawne i bez analizy kontekstu, tematu i zgadywania raczej niektórych rzeczy nie da się poprawić.
Mateusz Mierzwiński

Mateusz Mierzwiński Programista, grafik,
specjalista ds.
social media,
aplika...

Temat: Jak zamienic znaki angielskie na polskie?

Stanisław Pitucha:
Aleksander W.:
lad / ład / ląd
laska / łaska / laska

Analiza syntaktyczna to pierwszy etap tego, co robi każdy szanujący się translator - a więc jest możliwa i staje się coraz doskonalsza.

Analiza syntaktyczna nie pomoże (a przynajmniej nie zawsze):

"Zrób mi laske" / "Zrób mi łaskę"
"Widzę tam ład" / "Widzę tam ląd"

Obydwa przykłady są składniowo poprawne i bez analizy kontekstu, tematu i zgadywania raczej niektórych rzeczy nie da się poprawić.

Sieć neuronowa - dlaczego? Jest bardziej "kreatywna" niż analiza liniowa. Wystarczy nauczyć sieć odpowiednio podając wzorce. Przy odpowiedniej ilości wzorców sieć będzie miała odpowiednio wiele hitów aby przewyższyć analizę semantyczną. Tutaj nie pomogą zwykłe metody liniowe oraz semantyka - potrzeba tego pierwiastka kreatywizmu :) - chociaż by najprostszego.
Stanisław P.

Stanisław P. Software designer

Temat: Jak zamienic znaki angielskie na polskie?

Mateusz Mierzwiński:
Sieć neuronowa - dlaczego? Jest bardziej "kreatywna" niż analiza liniowa. Wystarczy nauczyć sieć odpowiednio podając wzorce. Przy odpowiedniej ilości wzorców sieć będzie miała odpowiednio wiele hitów aby przewyższyć analizę semantyczną. Tutaj nie pomogą zwykłe metody liniowe oraz semantyka - potrzeba tego pierwiastka kreatywizmu :) - chociaż by najprostszego.

Skoro już i tak offtopic robimy, to pozwolę sobie nie zgodzić się. Jeśli sieć neuronowa, to ilość wymiarów nie może przwyższyć ilości węzłów (w takim wielkim uproszczeniu oczywiście, żeby tu całej teorii nie wywalać). Jeśli masz określoną ilość tematów / idei / contekstów wypowiedzi, to oczywiście, można takiej sieci użyć. Jeśli chcesz czegoś uniwersalnego, to nie jest to możliwe głównie ze względu na ilość samych możliwości które nie są liniowo zależne. Chyba, że chcesz mieć sieć która mapuje pojęcia abstrakcyjne - ale to nie jest realistyczne.

Jeśli już się bawić, to mapowanie {(n-gram słowny, n-gram tematu okolicy) -> temat} i {słowo -> (pisownia, temat)} byłoby bardziej wydajne IMHO. Ale dalej masz zgadywankę, bo "Stojąc na statku, widziałem ład." tematyczne przeształcenie zrobiłoby z tego "ładu" "ląd" na przykład jeśli masz odpowiednio dużo tekstu gdzie grupa {statek, morze, ląd} ma jakiekolwiek połączenie.

Chyba, że masz na myśli inne mapowanie w sieci neuronowej? Co konkretnie chcesz mieć na wejściu / wyjściu?
Mateusz Mierzwiński

Mateusz Mierzwiński Programista, grafik,
specjalista ds.
social media,
aplika...

Temat: Jak zamienic znaki angielskie na polskie?

Stanisław Pitucha:
Mateusz Mierzwiński:
Sieć neuronowa - dlaczego? Jest bardziej "kreatywna" niż analiza liniowa. Wystarczy nauczyć sieć odpowiednio podając wzorce. Przy odpowiedniej ilości wzorców sieć będzie miała odpowiednio wiele hitów aby przewyższyć analizę semantyczną. Tutaj nie pomogą zwykłe metody liniowe oraz semantyka - potrzeba tego pierwiastka kreatywizmu :) - chociaż by najprostszego.

Skoro już i tak offtopic robimy, to pozwolę sobie nie zgodzić się. Jeśli sieć neuronowa, to ilość wymiarów nie może przwyższyć ilości węzłów (w takim wielkim uproszczeniu oczywiście, żeby tu całej teorii nie wywalać). Jeśli masz określoną ilość tematów / idei / contekstów wypowiedzi, to oczywiście, można takiej sieci użyć. Jeśli chcesz czegoś uniwersalnego, to nie jest to możliwe głównie ze względu na ilość samych możliwości które nie są liniowo zależne. Chyba, że chcesz mieć sieć która mapuje pojęcia abstrakcyjne - ale to nie jest realistyczne.
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? Przetwarzanie liniowe tekstu musiało by być obsługiwane liniowo. Jak rozbijesz zdanie, które posiada X wyrazów i zbadasz odległość między słowami? 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.

Wątpię aby semantyka pomogła w rozwiązaniu tego problemu. Zależność liniowa w sieci neuronowej? Bardziej bym się kierował w kierunku wielowarstwowej sieci z propagacją wsteczną w celu wytropienia błędów rozpoznawania. Wszystko zależy od odpowiedniego wyszkolenia i ustawienia wag neuronów.

Jeśli już się bawić, to mapowanie {(n-gram słowny, n-gram tematu okolicy) -> temat} i {słowo -> (pisownia, temat)} byłoby bardziej wydajne IMHO. Ale dalej masz zgadywankę, bo "Stojąc na statku, widziałem ład." tematyczne przeształcenie zrobiłoby z tego "ładu" "ląd" na przykład jeśli masz odpowiednio dużo tekstu gdzie grupa {statek, morze, ląd} ma jakiekolwiek połączenie.

Tutaj problem z teorią zbiorów. A w przypadku gdy kilka zbiorów tematycznych mieści się jeden w drugim lub zawiera pewne wyrazy we wspólnych częściach? Wówczas może wyjść albo natka albo pietruszka.

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ą :).
Stanisław P.

Stanisław P. Software designer

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
Mateusz Mierzwiński

Mateusz Mierzwiński Programista, grafik,
specjalista ds.
social media,
aplika...

Temat: Jak zamienic znaki angielskie na polskie?

Stanisław Pitucha:
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 ;)
Proponuję badać kontekst oczywiście za pomocą sieci neuronowej. Jeśli można za pomocą sieci neuronowej badać obrazy medyczne i rozpoznawać konkretne szczegóły, to można to zrobić w przypadku zdań tekstowych - myślę że to prostsze nawet w implementacji niż np. skaner medycznych do automatycznej diagnozy.

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

Owszem, może nie wszystko, ale ja zdecydowanie bym w tym kierunku poszedł i bym to sprawdził. Jestem człowiekiem z natury otwartym na eksperymenty związane z technologią i IT. Kiedyś mówiono, że ziemia jest płaska a słońce krąży wokół niej :).

Schemat nauki:

wejście - n-ciągów bez polskich znaków
wyjście - n-ciągów z polskimi znakami interpretowanych pozytywnie lub negatywnie

W trakcie nauki wagi powinny dostosować się do konkretnych zagadnień - możliwa by była wówczas analiza semantyczna w "trochę bardziej abstrakcyjny" sposób ;). Im więcej wejść i wyjść tym lepsza nauka.

Zdecydowanie propagacja wsteczna do wykrywania błędów rozpoznania. Ile neuronów w ukrytych warstwach nie wiem, ale można to przemyśleć. Wówczas program był by podatny na szyk przestawny i reagował by prawidłowo :).

Myślę że dało by się to zrobić :). Tylko teraz ile neuronów? :> WTM, ADALINE, Neurony Hebba?
Mariusz Pękala

Mariusz Pękala Programista.
Skromny.

Temat: Jak zamienic znaki angielskie na polskie?

Mateusz Mierzwiński:
Myślę że dało by się to zrobić :). Tylko teraz ile neuronów? :> WTM, ADALINE, Neurony Hebba?

Hmm.. Czy człowiek jest w stanie wykonać takie zadanie?
Jeśli nie jest, to potrzebne będzie zapewne więcej neuronów niż u człowieka, nie? ;)

A z podanych przykładów widać, że w wielu przypadkach, bez zasięgnięcia dodatkowych informacji, człowiek nie będzie w stanie zadania wykonać.
Mateusz Mierzwiński

Mateusz Mierzwiński Programista, grafik,
specjalista ds.
social media,
aplika...

Temat: Jak zamienic znaki angielskie na polskie?

Mariusz Pękala:
Mateusz Mierzwiński:
Myślę że dało by się to zrobić :). Tylko teraz ile neuronów? :> WTM, ADALINE, Neurony Hebba?

Hmm.. Czy człowiek jest w stanie wykonać takie zadanie?
Jeśli nie jest, to potrzebne będzie zapewne więcej neuronów niż u człowieka, nie? ;)

A z podanych przykładów widać, że w wielu przypadkach, bez zasięgnięcia dodatkowych informacji, człowiek nie będzie w stanie zadania wykonać.

Owszem, ale tego typu opcję omijamy, gdy nie można dobrać odpowiednich wyników bez dodatkowych informacji.
Sarah Baran

Sarah Baran Freelancer

Temat: Jak zamienic znaki angielskie na polskie?

Bardzo serdecznie dziekuje :) Finalnie zainstalowalam poslki slownik i po trzech godzinach mrowczej pracy tekst mial ogonki i kropki....................

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

Może można coś podziałać z analizą składni w OpenOffice, jak piszą koledzy.

Ja spróbowałem taki trik:
Wejść na translate.google.pl

I bezogonkowy tekst przemielić polski-->angielski

A potem skopiować, co przetłumaczy i w drugą stronę ang--> pol.
Ale na pewno tekst się znacznie zmieni.
Chociaż Google szokująco dobrze tłumaczy, to już nie są te "e-tłumacze" piszące komiczne brednie.

Pozdrawiam

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

Aleksander Sienko:
Chociaż Google szokująco dobrze tłumaczy, to już nie są te "e-tłumacze" piszące komiczne brednie.

Although Google's shockingly good translators, it is no longer the "e-translators" who write comic nonsense.

Chociaż Google szokująco dobry tłumaczy, nie jest już "e-tłumaczy" komiksu, którzy piszą bzdury.

Although Google's shockingly good translators, it is no longer "explains e-comics who write nonsense.

Chociaż Google szokująco dobry tłumaczy, nie jest już "tłumaczy e-komiks, którzy piszą bzdury.

Although Google's shockingly good translators, it is no longer, "explains E-comic who write nonsense.

Chociaż Google szokująco dobry tłumaczy, nie jest już ", wyjaśnia E-komiks, którzy piszą bzdury.

Hmm, nawet nie wygląda to tak źle, ale jak ktoś chce się pośmiać to da się to zrobić ;)

EDIT: polski -> irlandzki -> polski już wystarczy, żeby się złapać za głowę ;)Aleksander W. edytował(a) ten post dnia 14.08.10 o godzinie 22:07

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

No dobra, szokująco dobrze, ale nie jak człowiek. :D

Zresztą tłumaczyliśmy mój tekst, a ja mówię własnym zmutowanym slangiem.

Odkryłem to, jak zauważyłem, że w serwisie jakilinux.org szukają kogoś do tłumaczenia strony o dyskach SSD. Zmęczyłem 10%, po czym pierwszy raz w życiu kliknąłem "tłumacz z gugle". I było prawie tak samo, tylko tak raz na 2 zdania mu się noga poślizgnie i pisze bzdury.

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

Aleksander Sienko:
Odkryłem to, jak zauważyłem, że w serwisie jakilinux.org szukają kogoś do tłumaczenia strony o dyskach SSD. Zmęczyłem 10%, po czym pierwszy raz w życiu kliknąłem "tłumacz z gugle". I było prawie tak samo, tylko tak raz na 2 zdania mu się noga poślizgnie i pisze bzdury.

Mam złe wiadomości: podejrzewam, że to nie Google tak dobrze tłumaczy...

konto usunięte

Temat: Jak zamienic znaki angielskie na polskie?

Jestem na poziomie pre-CAE.
Google dobrze tłumaczy, sprawdź.

Następna dyskusja:

Jak zarabiacie na Linuksie?




Wyślij zaproszenie do