eKsiążki https://forum.eksiazki.org/ |
|
Słownik w Kindle 3 https://forum.eksiazki.org/amazon-com-kindle-f146/slownik-w-kindle-3-t9030-75.html |
Strona 6 z 12 |
Autor: | ikar [ 16 mar 2011 18:19:45 ] | |||||||||
Tytuł: | Re: Słownik w Kindle 3 | |||||||||
słownik jest obojętny mój ma około 60 tys, Myślę że nie ma problemu by usprawnić kindlowego oxforda. Siła tego skryptu polega na dodaniu form fleksyjnych do obojętnego słownika |
Autor: | gienkollo [ 16 mar 2011 18:22:12 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Nie jest to dla mnie kwestia aż tak ważna, a wiem że może być ciężko u mnie z wykonaniem tego, jako dodatek łatwo dostępny byłby smaczkiem po prostu. Ale opis szerszy na pewno się przyda bardziej uzdolnionym w tej materii |
Autor: | ikar [ 16 mar 2011 18:28:35 ] | |||||||||
Tytuł: | Re: Słownik w Kindle 3 | |||||||||
nie jest to takie trudne postaram się wszystko opisać krok po kroku, gdy tylko skonwertuję coś jeszcze i sprawdzę dzialanie |
Autor: | ikar [ 17 mar 2011 0:54:32 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Po przeanalizowaniu działania skryptu udało mi się rozwiązać problem z jego nieprawidłowym działaniem . W przypadku moich słowników skrypt wykonując się zmieniał jedynie szatę graficzną przerabianego pliku html słownika. Przyglądając się strukturze słowników zauważyłem ,że dane wejściowe skryptu w każdym z nich są inaczej znacznikowane. W każdym słowniku wystąpienie interesującego nas słowa (rzeczownika , czasownika , przymiotnika) oznaczane jest inną powtarzającą się sekwencją znaków. Skrypt napotykając na znacznik określający konkretny rodzaj słowa stosuje odpowiednią regułę fleksyjną i dodaje wpis. Sprawa jest prosta przystosowując skrypt do słownika którym dysponujemy. Musimy znaleźć powtarzalny ciąg znaków występujących przed rzeczownikiem ( w przykładzie jest to <I>n</I>) , czasownikiem i przymiotnikiem. Definiując w ten sposób dane wejściowe możemy użyć skryptu w przypadku każdego słownika. Dla każdego rodzaju słownka trzeba odpowiedni zdefiniować dane wejściowe skryptu. I tak przykładowo dla oxforda: Zmieniamy w edytorze tekstowym fragment skryptu na: #define and compile regular expressions re_idxentry = re.compile( r'<idx:entry name="word"' ) re_idxentry_end = re.compile( r'</idx:entry>' ) re_idxorth = re.compile( r'(^.+<idx:orth>)(.+?)(?P<extra>\^?\d?)(?P<last></idx:orth>.+)$' ) re_noun = re.compile( r'<I>n</I>' ) re_verb = re.compile( r'<I>vt</I>' ) re_adj = re.compile( r'<I>adv</I>' ) generalnie dla każdego słownika modyfikacja skryptu dotyczy danych wejściowych zmianie podlegają linie: re_noun = re.compile( r'tu zmieniamy' ) re_verb = re.compile( r'tu zmieniamy' ) re_adj = re.compile( r'tu zmieniamy' ) za ciąg "tu zmieniamy" wstawiamy znacznik charkterystyczny dla noun , verb , adjective Ciąg ten znajdujemy w pliku html słownika. I tak przykładowo: po otworzeniu pliku html przed zastosowaniem skryptu w edytorze tekstowym widzimy: <idx:entry name="word" scriptable="yes"> <h2> <idx:orth>abandon</idx:orth><idx:key key="abandon"> </h2> /ə'bændən/<br><br>I <I>n</I> <SMALL>fml dat</SMALL> (<SMALL>unbounded enthusiasm</SMALL>) zapamiętanie <I>n</I>, oddanie się <I>n</I>, pasja <I>f</I>;<B> to do sth with gay abandon</B> oddawać się czemuś z radością<br><br>II <I>vt</I><br><br><B>1. </B> porzuc|ić, -ać<I> [hope, land, person, plan]</I>; opu|ścić, -szczać<I> [post, spouse, farm, ship]</I>;<B> man the lifeboats! abandon ship!</B> do łodzi! opuścić statek!;<B> abandon ship!</B> <SMALL>fig</SMALL> ratuj się kto może!;<B> to abandon sth to sb</B> wydawać <SMALL>or</SMALL> rzucać coś na pastwę kogoś;<B> to abandon sb to (their) fate</B> pozostawić kogoś swojemu <SMALL>or</SMALL> własnemu losowi<br><br><B>2. </B> przer|wać, -ywać<I> [game, strike]</I>; zarzuc|ić, -ać<I> [habit]</I>; zaniechać (czegoś)<I> [attempt]</I>;<B> to abandon play</B> <SMALL>Sport</SMALL> przerwać grę<br><br><B>3. </B> zrze|c, -kać się<I> [claim, property]</I>;<B> to abandon sth to sb</B> zrzec się czegoś na rzecz kogoś<br><br>III <I>vr</I><B> to abandon oneself to sth</B> odda|ć, -wać się czemuś </idx:entry> widać jak znakowany jest rzeczownik a jak czasownik. Identycznie znajdujemy znacznik przymiotnika. po zastosowaniu skryptu <idx:entry name="word" scriptable="yes"> <h2> <idx:orth>abandon <idx:infl inflgrp="n"> <idx:iform name="plural" value="abandons"/> </idx:infl> <idx:infl inflgrp="v"> <idx:iform name="past" value="abandoned"/> <idx:iform name="pres" value="abandons"/> <idx:iform name="ing" value="abandoning"/> </idx:infl> </idx:orth><idx:key key="abandon"> </h2> /ə'bændən/<br><br>I <I>n</I> <SMALL>fml dat</SMALL> (<SMALL>unbounded enthusiasm</SMALL>) zapamiętanie <I>n</I>, oddanie się <I>n</I>, pasja <I>f</I>;<B> to do sth with gay abandon</B> oddawać się czemuś z radością<br><br>II <I>vt</I><br><br><B>1. </B> porzuc|ić, -ać<I> [hope, land, person, plan]</I>; opu|ścić, -szczać<I> [post, spouse, farm, ship]</I>;<B> man the lifeboats! abandon ship!</B> do łodzi! opuścić statek!;<B> abandon ship!</B> <SMALL>fig</SMALL> ratuj się kto może!;<B> to abandon sth to sb</B> wydawać <SMALL>or</SMALL> rzucać coś na pastwę kogoś;<B> to abandon sb to (their) fate</B> pozostawić kogoś swojemu <SMALL>or</SMALL> własnemu losowi<br><br><B>2. </B> przer|wać, -ywać<I> [game, strike]</I>; zarzuc|ić, -ać<I> [habit]</I>; zaniechać (czegoś)<I> [attempt]</I>;<B> to abandon play</B> <SMALL>Sport</SMALL> przerwać grę<br><br><B>3. </B> zrze|c, -kać się<I> [claim, property]</I>;<B> to abandon sth to sb</B> zrzec się czegoś na rzecz kogoś<br><br>III <I>vr</I><B> to abandon oneself to sth</B> odda|ć, -wać się czemuś </idx:entry> skrypt dodaje w skonwerowanych html-ach linie z wersjami fleksyjnymi naszych czasowników , rzeczowników i przymiotników W innych słownikach znaczniki są inne i trzeba je odpowiednio zdefiniować. Uruchamiamy skrypt w katalogu z plikiem opf i plikami html słownika oraz plikami irregular.n i irregullar.v Do uruchomienia skryptu w windowsie trzeba zainstalować pythona (mam wersję 2.6)http://www.python.org/getit/ w linuxie wydajemy komendę: python add_inflections_english.py w windowsie : w lini komend w katalogu w którym jest skrypt i pliki wydajemy komendę: add_inflections_english.py otrzymujemy pliki html z dodanym infl w nazwie. Zmieniamy w pliku opf pliki html na infl.html uruchamiamy skrypt w katalogu z plikiem opf i plikami html słownika w linuxie : python add_inflections_english.py w windowsie : w lini komend: add_inflections_english.py otrzymujemy pliki html z dodanym infl w nazwie. Zmieniamy w pliku opf pliki html na infl.html tak by po otwarciu pliku opf przez mobicreatora mieć słownik składający się z nowych przetworzonych i rozbudowanych plików html (*.infl.html) Otwieramy mobicreatora a w nim zmieniony plik *.opf . Sprawdzamy czy w ustawieniach "book settings" mamy zaznaczoną opcję dictionary "This ebook is adictionary" Uruchamiamy generację pliku prc --> build. W katalogu po zakończeniu pojawi się gotowy słownik w formacie prc. Wszystkie kroki poprzedzające opisane są na początku wątku. Sprawdziłem działanie skryptu na innym słowniku i wszystko działa bezproblemowo. Mam nadzieję ,że opisałem wszystko tak ,że nie będziecie mieli problemów z usprawnieniem swoich słowników. Sam dotychczas wspomagałem się hackiem zmieniającym link wikipedii na google translatora, lecz to usprawnienie na tyle poprawia wygodę korzystania ze słownika ,że wydaje się to już zbędne. |
Autor: | rumcajs1 [ 17 mar 2011 8:35:32 ] |
Tytuł: | Re: Słownik w Kindle 3 |
To ja jako laik w kwestii programowania mam pytanie czy będzie wersja tego słownika dla ogółu użytkowników K3 i może ktoś z kolegów doda również instrukcje jak to odpalić na K3? Pozdrawiam ADam |
Autor: | ikar [ 17 mar 2011 11:32:10 ] | |||||||||
Tytuł: | Re: Słownik w Kindle 3 | |||||||||
Temat nie wydaje się kosmicznie skomplikowany jak widać udało mi się zmodyfikować skrypt by obsługiwał podany w przykładzie słownik. Początkowo miałem problem gdyż w wyniku działania skryptu zmianie ulegał jedynie wygląd przerabianego pliku html. Wystarczyło przyjrzeć się skryptowi i danym słownika w plikach html. Słownik po przeróbce jest normalnym słownikiem, który ustawiasz sobie w ustawieniach jako słownik domyślny w zamian za słownik dostarczany przez amazona. Skrypt jest uniwersalny . Sam sprawdziłem go na 3 różnych słownikach i w każdym przypadku wyniki są w pełni zadawalające. |
Autor: | homitzky [ 17 mar 2011 13:03:37 ] |
Tytuł: | Re: Słownik w Kindle 3 |
No to panowie, każdy użytkownik stawia nam po piwie - koledze za wyjaśnienie problemu, a mi za upór, znalezienie wątku na innym forum i wybłaganie autora o skrypt:). |
Autor: | homitzky [ 17 mar 2011 13:08:36 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Swoją drogą, jeżeli ktoś jeszcze ma kłopoty ze słownikiem to proszę o pm;). |
Autor: | ikar [ 17 mar 2011 13:25:37 ] |
Tytuł: | Re: Słownik w Kindle 3 |
autor tego skryptu zrobił kawał dobrej roboty |
Autor: | homitzky [ 17 mar 2011 13:36:00 ] |
Tytuł: | Re: Słownik w Kindle 3 |
autorem jest janvanmaar z forum mobileread.com |
Autor: | ikar [ 17 mar 2011 13:40:51 ] | |||||||||
Tytuł: | Re: Słownik w Kindle 3 | |||||||||
szukałem czegoś na ten temat na mobileread i niewiele znalazłem . |
Autor: | homitzky [ 17 mar 2011 13:41:34 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Się szuka, się znajduje;) |
Autor: | ikar [ 17 mar 2011 14:08:13 ] |
Tytuł: | Re: Słownik w Kindle 3 |
skrypt janvanmaara zdobyty przez homitzkiego jest bardzo ciekawy , a jego adaptacja na szczęście okazała się prosta i nie wymaga zbyt wielkiego wysiłku. Trzeba tylko znaleźć znaczniki charakterystyczne dla n,v,a w przerabianym słowniku. Podkreślę jeszcze raz ,że jaki to słownik jest nieistotne, musi być w formacie opf(html) |
Autor: | DarkStar [ 17 mar 2011 22:17:45 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Nie bardzo liczyłem na to, że coś w tej materii uda się zrobić, a tu proszę... Zaledwie kilka miesięcy po premierze Kindle 3 ktoś "zhakował" słowniki i działa! Niesamowite jest to, co potrafi zrobić społeczność entuzjastów. |
Autor: | homitzky [ 17 mar 2011 22:53:12 ] |
Tytuł: | Re: Słownik w Kindle 3 |
Heh, póki co mamy najlepszy słownik angpol do tej pory, ale myślę, że można by było zrobić więcej:). Jest parę rzeczy do ulepszenia:). |
Strona 6 z 12 | Wszystkie czasy w strefie UTC + 1 [czas letni (DST)] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |