Hej,
Mam taki problem, mam arkusz, w którym znajduje się ponad 500k wierszy. Każdy wiersz to w zasadzie jedna komórka z jednym wyrazem. Jednak nie wszystkie wyrazy są poprawne ~ 10% to źle napisane wyrazy. Czy da się jakoś zautomatyzować ich usuwanie, bo 10% to przy jest około 50k. Najlepiej jakby usuwało cały wiersz. Ale może wystarczy, że zamieni na pusty tekst.
usuwanie wyrazów/komórek/wierszy z błędami ortograficznymi
usuwanie wyrazów/komórek/wierszy z błędami ortograficznymi
Ostatnio zmieniony sob gru 18, 2010 12:32 pm przez Jan_J, łącznie zmieniany 1 raz.
Powód: ortografia
Powód: ortografia
Re: usuwanie wyrazów/komurek/wierszy z błędami ortograficzny
Jeżeli arkusz zawiera tylko jedną kolumnę (tę ze słowami), to rozwiązałbym sprawę za pomocą wsadowego sprawdzania pisowni.
Zrobiłbym to bez OpenOffice, na poziomie poleceń systemu operacyjnego. Potrzebne byłoby przeniesienie danych do pliku tekstowego (dajmy na to plik.txt).
Dalej, używając aspell (da się go zainstalować w każdym systemie) z polskim słownikiem:
w uniksachw Windowsach
Następnie wybrać te wiersze z plik.txt, których nie ma w zle_slowa.txt. Tu będzie dobry program comm (standard uniksowy, w Windowsach jako część cygwina). Oba pliki muszą być posortowane (plik zle_zlowa.txt już jest)
Wysiłek potrzebny do przeprowadzenia pracy w ten sposób zdaje mi się nieporównanie mniejszy od napisania i przetestowania odpowiedniego makra. Chyba że rzecz będzie wykonywana regularnie co pewien czas z różnymi ciągami słów otrzymywanymi właśnie w postaci arkuszy.
Zrobiłbym to bez OpenOffice, na poziomie poleceń systemu operacyjnego. Potrzebne byłoby przeniesienie danych do pliku tekstowego (dajmy na to plik.txt).
Dalej, używając aspell (da się go zainstalować w każdym systemie) z polskim słownikiem:
w uniksach
Kod: Zaznacz cały
cat plik.txt | aspell list -l pl | sort -i > zle_slowa.txt
Kod: Zaznacz cały
type plik.txt | aspell list -l pl | sort > zle_zlowa.txt
Kod: Zaznacz cały
comm -3 plik.txt zle_slowa.txt > dobre_slowa.txt
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: usuwanie wyrazów/komurek/wierszy z błędami ortograficzny
Poprzedni post, pisany w porywie "jakby to zrobić od ręki" mógł zostać odebrany jako wyraz okrucieństwa
Żeby złagodzić: weźmy AndrewMacro, listing 5.51 ze stron 78/79. Przygotowana na jego podstawie poniższa procedura pozwala stwierdzić, czy słowa z kolumny A występują w słowniku.Do usuwania wpisów z listy jest już tylko mały krok.
Żeby złagodzić: weźmy AndrewMacro, listing 5.51 ze stron 78/79. Przygotowana na jego podstawie poniższa procedura pozwala stwierdzić, czy słowa z kolumny A występują w słowniku.
Kod: Zaznacz cały
Sub Sprawdzanie()
d = thisComponent
s = d.Sheets.getByIndex(0)
spell = createUnoService("com.sun.star.linguistic2.SpellChecker")
Dim aLocale As New com.sun.star.lang.Locale
aLocale.Language = "pl"
aLocale.Country = "PL"
Dim emptyArgs(0) As New com.sun.star.beans.PropertyValue
c = 0
r = 0
slowo = s.getCellByPosition(c,r).getString()
while (slowo <> "")
spr = spell.isValid(slowo, aLocale, emptyArgs())
s.getCellByPosition(c+1,r).setString(spr)
r = r+1
slowo = s.getCellByPosition(c,r).getString()
wend
End Sub
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: usuwanie wyrazów/komurek/wierszy z błędami ortograficzny
Dzięki wielkie za jedną i drugą podpowiedź jak to zrobić. Przyda się mi na pewno. W prawdzie nie chodziło mi o sprawdzanie w j. polskim (tylko w esperanto) ale taką małą przeróbkę to sobie już zrobię. Także wielkie dzięki.
Czy OO.org korzysta z aspella?
Czy OO.org korzysta z aspella?
Re: usuwanie wyrazów/komurek/wierszy z błędami ortograficzny
Nie. Z hunspella. Jest to narzędzie podobne do aspell, przeznaczone głównie dla języków z rozwiniętą fleksją.arek pisze:Czy OO.org korzysta z aspella?
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)