eKsiążki
https://forum.eksiazki.org/

Dzielenie wyrazów - raz jeszcze...
https://forum.eksiazki.org/epub-f157/dzielenie-wyrazow-raz-jeszcze-t13940.html
Strona 1 z 2

Autor:  SwFr [ 08 lis 2013 20:37:14 ]
Tytuł:  Dzielenie wyrazów - raz jeszcze...

Do dzielenia wyrazów w epub - używam oczywiście wtyczkę Hyphenate This! + language tool.pl.
Calibre robi to szybko, sprawnie i zgodnie z zasadami PL - wstawiając miękki łącznik tam gdzie trzeba.

Do czytania używam AdobeViewer (ADE 2.0) - który niestety - części wyrazów nie dzieli. Dlaczego ? Nie wiem...
Nie wiem, ale chcę wiedzieć...

Podłubałem w katalogu systemowym ADE i znalazłem pliki z algorytmami dzielenia wyrazów w wielu językach - oczywiście poza polskim.
Algorytm (a raczej baza danych wyrazów) ma taką postać...
wyrywkowo z angielskiego dic:

.a2
.ab1al
.ab1it
.ac3eta
.ac1ey
.a4ch
.ach2e
.ac2h2m
.ac1on
.ac3ron
.acr2
.a1cy4

W sieci wydłubałem plik "hyph_pl_pl.dic" który jako żywo przypomina ten z systemu ADE.

Przekonwertowałem z ISO8859-2 do UTF-8, zmieniłem nazwę na hyph_pl.dic i wpakowałem do katalogu.

Od razu sukces - bo AdobeViewer dzieli wyrazy w epub (bez konieczności wcześniejszego przepuszczania go przez Calibre).
Tyle, że robi to beznadziejnie. Potrafi wstawić takie farmazony jak: k-oń, A-gata wi-lk itp.

Poszperałem dalej i znalazłem parametry, które problem rozwiązują - czyli
LEFTHYPHENMIN 2
RIGHTHYPHENMIN 3

Jest dużo lepiej, ale to jeszcze nie to...
Niektóre wyrazy nadal są niepodzielone np. prowincjonalne, pozostawałem, pojawił itp (to, że akurat na "p" to przypadek :))
oraz większość (jeżeli nie wszystkie) poprzedzone twardą spacją np. "w rodzaju" (prawdopodobnie program traktuje to jako jeden wyraz niewystępujący w słowniku).
Co ciekawe, Calibre do wszystkich tych wyrazów wstawia softhyph prawidłowo....

Rozpisałem się, ale czas przejść do pytań

1. Czy ktoś z szanownych Koleżanek lub Kolegów próbował zrozumieć / już rozumie - powyższy algorytm?
Chciałbym dopisać kilka wyrazów i przekonać się czy to jest dobra droga do poszerzenia bazy.

2. Czy ma ktoś większą (w znaczeniu ilości wyrazów) bazę danych i zechciałby ją udostepnić?
Tu małe spostrzeżenie: angielski słownik hyph w ADE ma 26 543 wyrazy, polski 4 832

3. Czy ktoś wie jak wydłubać słownik dzielenia z languagetool.oxt? (to open source więc nie ma obaw, że kogoś skrzywdzimy)
Calibre dzieli wszystko - a też musi z niego korzystać - więc on gdzieś tam jest i czeka na odkrycie...


Pozdrawiam

Autor:  butcher [ 17 gru 2013 16:37:03 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Z tym plikiem działa lepiej?

Autor:  SwFr [ 17 gru 2013 21:05:13 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Niestety gorzej

Ale dzięki

Jestem w trakcie prób (dość obiecujących) i za parę dni (mam nadzieję) będę wiedział jak rozwiązać ten problem w AV.

Autor:  butcher [ 17 gru 2013 23:09:38 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

U mnie działa lepiej, ale to jeszcze nie to.

Po świętach będę testował bardziej. Chyba, że wcześniej podzielisz się swoimi osiągnięciami ;)

Autor:  butcher [ 20 gru 2013 13:40:13 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Nie wiem czy dobrze rozumiem, ale wydaje mi się, że ADE traktuje spację niełamiącą jako twardą spację i stąd to dziwne dzielenie wyrazów.

Autor:  SwFr [ 20 gru 2013 14:56:26 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

To to samo. Tylko różnie ludziska na nią mówią.
W htlml to   albo  
Owszem sprawia lekkie problemy AV ale nie przeceniałbym jej znaczenia.
Z grubsza: kłopoty z dzieleniem wyrazów biorą się ze sposobu renderowania tekstu przez AV. I co ciekawe nie całego tekstu.
Początkowo myślałem, że niektórych wyrazów AV w ogóle nie dzieli.
Próbowałem dodawać je do hyph.dic - bez efektów. Stosowałem (dla zmyłki) tak dziwaczne podziały na sylaby, że dzisiaj sam nie mogę w to uwierzyć, a ten (AV) - nic - jakby się na nie obraził.
Zrobiłem sobie e-booka z dużą ilością wyrazów - do tej pory "niepodzielnych" - i co się okazało?
Te same wyrazy np. "pozostawałem", "bezpieczeństwo" itp. (długie słowo, dużo sylab) czasem się dzielą!
Bingo!
Wniosek: to nie biblioteka Hyph.dic jest winna tylko AV.

Spróbuj zaobserwować w swoich książkach wyrazy "niepodzielne" w różnych miejscach tekstu.


Ups. muszę kończyć i wracać do pracy.
Może wieczorem, napiszę więcej.

Autor:  butcher [ 20 gru 2013 15:34:08 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Nie wiem na ile wiarygodna jest Wikipedia, ale niby te spacje się różnią.
Akurat w html jest to to samo.
Cytuj:
Twarda spacja ma stałą szerokość równą nominalnej wielkości zwykłej spacji, przez co nie bierze udziału w procesie dopasowania odstępów, aby poprawnie wyjustować tekst do obu marginesów łamu, gdy znajdzie się w obrębie wiersza wyjustowanego[3]. Właściwości justujące ma natomiast spacja niełamiąca.

W ADE ta spacja tak się właśnie zachowuje.

Hyphenate This! może korzystać z tego samego słownika i wtedy działa poprawnie.
Więc to oczywiście wina samego ADE.

Autor:  SwFr [ 27 gru 2013 21:27:09 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Hm...
Po co cytujesz Wikipedię? - Myślisz, że nie mamy do niej dostępu?
Czy znajdziesz tam informację, które programy potrafią rozróżnić te spacje?
Czy aby na pewno jest wśród nich ADE?
Czy rozumiesz inne zagadnienia i terminy z typografii czy DTP?
Daj spokój - bo możesz wyjść na ignoranta, a na dodatek nie wszystko znajdziesz w Wikipedii...

Podaję linki do zrzutów z ADE - ebooka, którego zlepiłem z najgorszych (pod względem dzielenia) kawałków innych książek

1.
- Dzielenie wyrazów za pomocą pliku Hyph_pl.dic
- Zielonym markerem zaznaczyłem podziały ekstremalnie złe
http://swfr.wrzuta.pl/obraz/4ZO2ocH5U8T/1_hyph_pl

2.
- Dzielenie wyrazów za pomocą wtyczki Hyphenate It! w Calibre
- Hyph_pl.dic obecny w katalogu ADE
- Złych podziałów nie ma, ale i tak nie jest dobrze
http://swfr.wrzuta.pl/obraz/8p7Y91Jvofl/2_hyphenate_it

3.
- Dzielenie wyrazów za pomocą wtyczki Hyphenate It! w Calibre
- Plik Hyph_pl.dic wyrzucony z katalogu ADE
- Pozmieniałem kod w ebooku
http://swfr.wrzuta.pl/obraz/9TqjrVOaxn9 ... _it_i_swfr

Wnioski:
a. Nie warto używać pliku Hyph_pl.dic. To tylko baza danych sylab. Jest niestety ograniczona i aby ją powiększać należałoby ciągle dopisywać nowe słowa. A i tak nie da rady przy nazwach własnych, choćby nazwiskach obcojęzycznych w plikach kodowanych PL.
b. Hyphenate It! kładzie na łopatki Hyph_pl, bo:
- to jest multilangual i obce (nie polskie) słowa nie stanowią dla niej problemu,
- ma o wiele sprawniejszy algorytm dzielenia,
- łączniki wstawia do ebooka na stałe.
c. To ADE ma problem z dzieleniem (przypuszczam, że to wina mechanizmu renderowania tekstu) i do czasu, kiedy programiści Adobe tego nie poprawią - trzeba się męczyć albo używać innych programów.

Znalazłem sposób jak obejść ograniczenia ADE (plik z pkt 3), ale jest to rodzaj protezy założonej książce a nie ADE (niestety) - tutaj trzeba by zdolnego programisty - hackera - crackera (niepotrzebne skreślić), który napisałby skrypt, łatę czy jak się tam ta cholera nazywa.

Co do protezy:
- nie jest to proste - polega na grzebaniu i zmianach w kodzie książki w której chcemy podzielić wyrazy,
- każdy ebook jest inny (inaczej przygotowany) i każdy trzeba przeanalizować i zmienić indywidualnie - nie można tego zautomatyzować,
- bardzo łatwo popełnić błąd i popsuć książkę, a nie naprawić,
- jeżeli kiedyś wypuszczą nową wersję ADE z poprawnym dzieleniem PL - nie wiem czy nie trzeba będzie wracać do pierwotnego kodu (wiem, wiem... też pracuję na kopii, ale zamieszanie niewątpliwie powstanie).

Pzdr

Autor:  zajeBEASTY [ 12 lut 2014 15:40:36 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Czy ktos moze zapodac plik ze slownikiem do wtyczki hyphenate this?? Probouje dodac dzielenie wyrazow, ale wyskakuje mi brak słownika do j.polskiego.

edit:

butcher napisał(a):
Z tym plikiem działa lepiej?


pobralem ten - calkiem dobrze dzieli wyrazy, nie zauwazylem bledu, dzieki za niego, ma ktos jeszcze jakis? czy sa one tworzone samodzielnie przez uzytkownikow forum?

Autor:  butcher [ 12 lut 2014 16:33:06 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Pochodzą z projektu hyphen.
Stąd można pobrać:
http://www.openoffice.org/pl/pliki/hyph_pl_PL.zip
Z tym, że trzeba przekonwertować do utf-8.

PS Korzystanie z Hyphenate This (czyli wstawiania znaków podziału) ma tez wady. Są problemy z wyszukiwaniem wyrazów. Ja korzystam ze zwykłego podziału w ADE.

Autor:  zajeBEASTY [ 12 lut 2014 17:26:47 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

butcher napisał(a):
Pochodzą z projektu hyphen.
Stąd można pobrać:
http://www.openoffice.org/pl/pliki/hyph_pl_PL.zip
Z tym, że trzeba przekonwertować do utf-8.

PS Korzystanie z Hyphenate This (czyli wstawiania znaków podziału) ma tez wady. Są problemy z wyszukiwaniem wyrazów. Ja korzystam ze zwykłego podziału w ADE.


dzieki za linka, podział w ade czyli...? jakis alternatywny program do calibre? cos adobe?

Autor:  butcher [ 12 lut 2014 17:51:09 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Nie. Ty masz chyba Kindle. Inne czytniki potrafią sobie same w locie dzielić wyrazy.
ADE to jeden z programów, w którym są otwierane ebooki (epub) na czytnikach i w nim są już wyrazy dzielone automatycznie.

Autor:  Artii [ 28 mar 2014 15:40:36 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Sprawa dzielenia wyrazów w ADE jest trochę problematyczna. I to na wielu płaszczyznach.

Na początek zajrzał bym najpierw do epub-a bo ADE dość restrykcyjnie reaguje na wszelkie znaczniki lang.
Tak, tak, można przecież mieć na jednej stronie kilka języków z różnym przenoszeniem, niestety parę ebooków (kupnych) widziałem, owszem, z poprawnym wpisem"pl" w content.opf ale w samych plikach z tekstem (x)html błędnie zdefiniowane były xml:lang="en" albo lang="en" dla taga html bądź body.
Wtedy ADE przyjmuje język angielski i nie ma przebacz, podziały będą bardzo złe. Jedyne rozwiązanie to poprawa takiego epuba (sugeruje zgłosić problem do księgarni).

Drugi problem to ewidentny błąd w interpretowaniu   przez ADE.

Częste zlepki wyrazów np i(nbsp)zagrodach, w(nbsp)każdym itd które mają wymusić nie zostawianie jednoliterowych wyrazów na końcu wiersza są traktowane przez ADE jako jeden(!) wyraz.
I tu zaczyna się spory problem bo plik hyph jest na to bardzo czuły. Duża część definicji jest dla początku wyrazu.
Teoretycznie wpisy (left|right)HYPHENMIN są zbędne bo definicje nie pozwalają na podział na początku i na końcu wyrazu.

Niedoskonałym rozwiązaniem jest zamienienie   na zwykłą spacje, ale ma to też swoje wady.

Na zachętę przygotowałem specjalnie plik hyph dla ADE z obsługą zlepków.
Niestety nie gwarantuje on idealnego przenoszenia ale jest co nieco lepiej.
https://copy.com/nBrIlAGOi27XfVZp

Edyta:
dostałem w końcu eInk-owy czytnik z ade2 :) i wcześniej przygotowane przeze mnie definicje wywalały go (wyjście z książki) zrobiłem wiec nowe poprawione.

Jeszcze jedna uwaga w książkach kupnych z powodu watermarku może być tak że &nbsp; będzie zapisany jako &#160; albo w kodzie utf-8 o tu > < (i to wygląda w większości edytorów tekstowych jak zwykła spacja)

Autor:  quiris [ 05 paź 2016 9:40:26 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

Artii napisał(a):
Niestety nie gwarantuje on idealnego przenoszenia ale jest co nieco lepiej.
https://copy.com/nBrIlAGOi27XfVZp

Odnośnik nie działa. Ma ktoś ten plik?

Autor:  Artii [ 05 paź 2016 15:14:13 ]
Tytuł:  Re: Dzielenie wyrazów - raz jeszcze...

ma :) niestety zapomniałem poprawić link po zaoraniu copy.

ale ale poszedłem dalej, zamiast kisić po jakiś chmurkach :)

https://github.com/ArtiiP/hyph_pl

i bezpośredni link:
https://github.com/ArtiiP/hyph_pl/raw/m ... yph_pl.dic

Strona 1 z 2 Wszystkie czasy w strefie UTC + 1 [czas letni (DST)]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/