Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Bisect i polskie litery

Idź do strony Poprzedni  1, 2, 3, 4  Następny

 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Python
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Wto Paź 18, 2016 11:29 pm      Temat postu: Odpowiedz z cytatem Pisownia

mazur napisał:
(...) To wszystko się "rozleci", gdyż w tym pliku nie tylko słowa są posortowane, ale i numery stron.
Przecież numery stron są tylko informacją przyporządkowaną do słów. Chyba że tego pliku używasz jeszcze do czegoś innego.

mazur napisał:
Co jest lepszego od pythona w tym przypadku?
Nie tyle "lepszego", co nie wymagającego instalacji dodatkowych rzeczy. Np. Groovy korzysta ze standardowej biblioteki Javy, więc ma wbudowaną obsługę tego, do czego w Pythonie trzeba dodawać bibliotekę ICU.
_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
mazur
Gość





PostWysłany: Sro Paź 19, 2016 6:37 am  OP(?)    Temat postu: Odpowiedz z cytatem Pisownia

W tej chwili znalazłem jeszcze jeden sposób na sortowanie wyrazów z polskimi znakami
pt. "Python 3.2 nie sortuje prawidłowo polskich znaków zakodowanych w UTF-8":
https://pl.python.org/forum/index.php?topic=2755.0
Nie wiem, czy to zadziała.

Co prawda używam w tym momencie pythona 2.7, ale jeśli trzeba mógłbym przejść na 3.

Dodane przez moderatora (łączenie postów)

Cytat:
To wszystko się "rozleci"...


miałem na myśli, że jeśli kolejność wyrazów w unicode jest inna niż w języku naturalnym, tj. w słowniku to i wyszukiwana strona będzie błędna.

Pozdrowienia
Robert
Powrót do góry
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Sro Paź 19, 2016 8:24 am      Temat postu: Odpowiedz z cytatem Pisownia

mazur napisał:
W tej chwili znalazłem jeszcze jeden sposób na sortowanie wyrazów z polskimi znakami
pt. "Python 3.2 nie sortuje prawidłowo polskich znaków zakodowanych w UTF-8":
https://pl.python.org/forum/index.php?topic=2755.0
Nie wiem, czy to zadziała.
Cóż... jeśli chcesz wynajdywać od nowa [kwadratowe] koło, to może i zadziała. Powodzenia (zanim poczujesz się urażony lekceważącym tonem - przeczytaj do końca).

mazur napisał:
Co prawda używam w tym momencie pythona 2.7, ale jeśli trzeba mógłbym przejść na 3.
Od samego początku zakładam, że używasz obecnej wersji.

mazur napisał:
miałem na myśli, że jeśli kolejność wyrazów w unicode jest inna niż w języku naturalnym, tj. w słowniku to i wyszukiwana strona będzie błędna.
Jest. W praktycznie każdym kodowaniu jest, bo nie istnieje coś takiego jak "właściwa kolejność" na poziomie ogólnoświatowym. W różnych językach może być różna kolejność. Co więcej: kolejność nie zawsze jest definiowana dla pojedynczego znaku - np. w czeskim wyraz "charakter" jest w słowniku po wyrazie "harfista", we francuskim mamy kolejność "aa", "àb", "ac", a w niemieckim mamy "Ruß", "Russe", "Rußen".

Właśnie dlatego lekko lekceważąco podszedłem do pomysłu z pl.python.org. Niektóre rzeczy są dużo bardziej złożone niż się wydają na pierwszy rzut oka - niektórzy jednak nie chcą tego przyjąć do wiadomości, bo ich horyzont jest ograniczony do własnego podwórka. To tak, jakbyś próbował chłopu na wsi w XV wieku tłumaczyć, że na autostradzie trzeba położyć asfalt i wymalować pasy. Po co, skoro jego osioł radzi sobie z ciągnięciem pługa po błocie do najbliższego pola? Nie bez powodu powstały biblioteki takie jak ICU, nie bez powodu wydano na ich powstanie grube pieniądze. Rzecz nie jest taka prosta, jak wydaje się użytkownikowi blekota.

Oczywiście, jeśli ograniczysz się tylko do języka polskiego, to ten pomysł nawet ma szansę zadziałać. Mnie nie chciałoby się marnować czasu na jego testowanie (dlatego nawet nie próbowałem wykazać jego błędności), skoro mam gotowe i przetestowane narzędzia, ale niech będzie, że zadziała. Kłopot zrobi się, gdy będziesz chciał szukać czegoś w innych językach. Jeśli użyjesz ICU (lub np. w Groovym z wbudowaną obsługą sortowania ciągów znaków) albo plik będziesz sortował wg kodu znaku w Unicode, to zadziała zawsze, bez względu na język, i rozwiązanie będzie krótkie.

Nadal nie wiem, jednak, w czym sortowanie po kodzie znaku miałoby przeszkadzać. Wcześniej zwróciłem na to uwagę, bo sądziłem, że chcesz człowiekowi pokazywać posortowane wyrazy - wtedy zgodność z kolejnością dla danego języka jest wymagana. Ale tutaj korzysta z tego tylko komputer. Jemu jest wszystko jedno - ważne tylko, żeby miał zawsze taki sam porządek (stąd byłaby konieczność posortowania odpowiednio danych w pliku). Jak pisałem wcześniej: możesz mieć nawet liczby posortowane jako (2, 4, 6, 8, 1, 3, 7, 9), jeśli tylko binsearch będzie widział kolejność w ten sam sposób.

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
hurgadion



Dołączył: 06 Kwi 2011
Posty: 853
Skąd: Web :)

PostWysłany: Sro Paź 19, 2016 9:30 am      Temat postu: Odpowiedz z cytatem Pisownia

hmmm,
wydaje mi się mazur, że używasz armaty do muchy... do Twoich potrzeb chyba wystarczyłby sam Excel... co więcej zrobiłbyś to dużo prościej, wystarczy import lemmów do Arkusza (spokojnie, zmieszczą się w jednym), a następnie wystarczy zastosować jedną formułkę, która wynajduje chyba dokładnie to czego potrzebujesz... formułka może mieć postać:
Kod:

=PODAJ.POZYCJĘ(slowo, lista_memmow, 1)


pozdrawiam

_________________
miasto nauki praktycznej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
mazur
Gość





PostWysłany: Sro Paź 19, 2016 10:52 am  OP(?)    Temat postu: Odpowiedz z cytatem Pisownia

Jeszcze raz bardzo dziękuję za pomoc, za podpowiedzi i gotowe rozwiązania, teraz sprobuje to wszystko jakoś posklejać, wypróbować i zastosować.

Odnośnie PyICU i Groovy zacząłem czytać - ale nie za dużo jest materiałów w Internecie.

Excel - spróbowałem - także działa.

Dobrego dnia
Robert
Powrót do góry
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Czw Paź 20, 2016 2:39 am      Temat postu: Odpowiedz z cytatem Pisownia

hurgadion:
MATCH (tudzież PODAJ.POZYCJĘ w polskiej wersji Excela) ma dokładnie ten sam problem, który jest wałkowany przez 2 strony: nie potrafi porównywać kolejności napisów wg zadanego języka. W Calcu porównuje wg używanej lokalizacji, w Excelu nie wiem czy w ogóle potrafi to prawidłowo zrobić (nie mam pod ręką). Jeśli nie masz zamiaru sortować listy przed każdym użyciem, żeby mieć pewność, że jest zgodna z ustawieniami językowymi, nie bardzo ma to sens. Nie uruchomi też niczego - jedynie poda numer komórki.

mazur:
Trudno mi powiedzieć, czemu nie możesz niczego znaleźć. Wszystkie istotne wyszukiwarki (oprócz Microsoftu) dają mi wynik na pierwszej pozycji (patrz: załącznik).

Jeśli chodzi o kod w Groov'ym, to będzie on wyglądał analogicznie do tego pythonowego z ICU, tylko że nie będzie wymagał zewnętrznych bibliotek:
Kod:
#!/usr/bin/env groovy

import java.text.Collator

def mapLemmaToPage(mapFile, encoding, searchedLemma) {
    (mapFile as File).withReader(encoding) {src ->
        def collator = Collator.getInstance(new Locale(src.readLine()))
        def nextLine = src.readLine()
        def lastMatchingPage = 0
        while (nextLine) {
            def (page, currentLemma) = nextLine.split(' ')
            if (collator.compare(searchedLemma, currentLemma) >= 0) {
                lastMatchingPage = page
                nextLine = src.readLine()
            } else {
                nextLine = null
            }
        }
        lastMatchingPage
    }
}

def page = mapLemmaToPage(nazwaPliku, kodowaniePliku, szukanaLemma)
['atril', '-i', page, 'plik.pdf'].execute()

Użyłem Atrila do otwarcia PDFa; u siebie zmień na to, czego używasz - oczywiście razem z przekazaniem odpowiednich opcji.


cc-results.png
 Opis:

Pobierz
 Nazwa pliku:  cc-results.png
 Wielkość pliku:  308.83 KB
 Pobierano:  67 raz(y)


_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
mazur
Gość





PostWysłany: Czw Paź 20, 2016 9:02 pm      Temat postu: Odpowiedz z cytatem Pisownia

Bardzo dziękuję za gotowy skrypt.

Mam jeszcze pytanie - choć to dotyczy innego programu - czy można ten program uruchomić np. z AutoIT i przechwycić numer strony. Niestety nie mogę używać Atrila, ani nic podobnego (zbyt kosztowne). Raczej Microsoft Word + VBA + ew. AutoIT.

Jeśli chodzi o szukanie w internecie materiałów nt. PyICM i Groovy, to nie tyle chodziło mi o to, że nie ma nic w sieci, ale niektóre wypowedzi trochę mnie zniechęciły, gdyż nie jestem specjalistą w tej dziedzinie< np. o trudności w instalacji, czy, że jeszcze język Groov nie został ustandaryzowany.

Bardzo dziekuje za cenną pomoc.
Robert
Powrót do góry
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Pią Paź 21, 2016 4:16 am      Temat postu: Odpowiedz z cytatem Pisownia

mazur napisał:
Mam jeszcze pytanie - choć to dotyczy innego programu - czy można ten program uruchomić np. z AutoIT i przechwycić numer strony.
Nie znam AutoIT, ale podejrzewam, że się da. AutoIT powinien mieć możliwość przekazania opcji do skryptu przy uruchamianiu - skrypty Pythona, jak i Groovy* mogą go potem odebrać. W drugą stronę może być trudniej, bo to już AutoIT musi mieć odpowiednie narzędzia to odebrania. Nie wiem czy ma - AutoIT powstał jako prosta nagrywarka makr dla amatorów, więc może nie posiadać funkcji znanych z innych narzędzi. Niemniej np. wątek o pobieraniu wyniku programu na Stacku sugeruje, że jest to możliwe chociażby drogą taką, że skrypt coś wypisze na wyjście, a AutoIT do odczyta.

mazur napisał:
Niestety nie mogę używać Atrila, ani nic podobnego (zbyt kosztowne).
O tym, że nie możesz użyć Atrila, wiem - stąd komentarz pod skryptem, żeby zamienić na to, czego używasz (zapewne Foxit Reader, Adobe Reader albo coś takiego). Ale podany przez ciebie powód lekko mnie zdziwił.. Atrila nie możesz użyć raczej dlatego, że jest programem na Linuksa, a nie ze względu na koszt - jest on bowiem darmowy.

mazur napisał:
Jeśli chodzi o szukanie w internecie materiałów nt. PyICM i Groovy, to nie tyle chodziło mi o to, że nie ma nic w sieci, ale niektóre wypowedzi trochę mnie zniechęciły, gdyż nie jestem specjalistą w tej dziedzinie< np. o trudności w instalacji, czy, że jeszcze język Groov nie został ustandaryzowany.
O tym, że instalacja PyICU, szczególnie dla osoby niezwiązanej z programowaniem, może stanowić problem** - wiem. Stąd właśnie pytałem, czy będziesz w stanie i tylko dlatego zasugerowałem Groovy'ego***. Ale o co chodzi ze standaryzacją Groovy'ego... nie wiem. Tzn. tak, to prawda - nie jest on ustandaryzowany. Podobnie jak praktycznie wszystkie inne języki, włączając w to wymienione przez ciebie: Python, VBA i AutoIT :D.
____
* I dowolnym innym sensownym języku, który pozwala na uruchamianie swoich skryptów jako normalnych programów bezpośrednio z poziomu systemu.
** Tzn. może nie samego PyICU, co ICU4C, którego PyICU wymaga. Nie istnieją oficjalne, skompilowane wersje ICU4C pod Windowsa, więc musiałbyś sam je kompilować - a to może być droga przez mękę nawet dla doświadczonej osoby.
*** Poza brakiem dodakotywch bibliotek, rozwiązanie w Groovym nie jest w żaden sposób lepse od tego z Pythonem + PyICU.

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
mazur
Gość





PostWysłany: Pią Paź 21, 2016 5:50 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
atril

Ponieważ nie znałem tego programu, zapyałem w Googlach i tam na pierwszym miejscu jest program wspomagający tłumaczy, koszt 420 Euro (to już by wystarczyło), a czytałem gdzieś, że z jakiś powodów trzeba wydać więcej.

A Ty mówiłeś chyba o przeglądarce na Linux.

Cytat:
Groove

Znalazłem gdzieś informację: "Dokumentacja na stronach projektu jest b. bogata –
choć zawiera sporo błędów/zaszłości".

To mnie trochę zniechęciło, ale być może była to stara informacja.

Pozdrowienia
Robert
Powrót do góry
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Pią Paź 21, 2016 6:43 pm      Temat postu: Odpowiedz z cytatem Pisownia

mazur napisał:
Ponieważ nie znałem tego programu, zapyałem w Googlach i tam na pierwszym miejscu jest program wspomagający tłumaczy, koszt 420 Euro (to już by wystarczyło), a czytałem gdzieś, że z jakiś powodów trzeba wydać więcej.
Oj... tutaj faktycznie doszło do jakiegoś strasznego nieporozumienia i zbiegu okoliczności. Chodziło mi o Atrila ze środowiska MATE, dla Linuksa. O ile powtórzenie się nazwy mogło się zdarzyć (atril to powszechne hiszpańskie słowo), o tyle do głowy nie przyszłoby mi, że używa go akurat pakiet do tłumaczeń i na dodatek zobaczysz go jako pierwszy w wynikach :D.

I tak, właśnie z tego powodu, że jest pod Linuksa, przyjąłem, że będziesz musiał użyć czegoś innego. Ale Foxit na pewno miał analogiczną opcję i wątpię, by Adobe Reader jej nie miał.

mazur napisał:
To mnie trochę zniechęciło, ale być może była to stara informacja.
Powiedziałbym, że jest niepełna i niektóre rzeczy mogłyby być zaktualizowane. I tak jest lepsza niż ma większość produktów. W żaden sposób nie świadczy to o samym języku - szczególnie jeśli chcesz tylko użyć skryptu, w którym najważniejsza część używa standardowej biblioteki Javy. A ta ma najlepszą dokumentację jaka kiedykolwiek powstała.

Niemniej, jak pisałem, to nie musi być Groovy. Skrypt w tym języku dałem jako alternatywę dla Python+PyICU, żebyś nie musiał się bawić z PyICU. Inną drogą jest to, o czym wspomniałem wcześniej: że w ogóle pomijamy prawidłowe sortowanie i robi się to bez dodatkowych bibliotek, tylko trzeba pamiętać, żeby pracować na posortowanych w ten sam sposób plikach.

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Python Wszystkie czasy w strefie CET (Europa)
Idź do strony Poprzedni  1, 2, 3, 4  Następny
Strona 3 z 4

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.14124 sekund, zapytan = 13
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |