Czy to można rozwiązać?

W wyniku różnych operacji w niektórych wyrazach,
ostatnia litera mogła ulec zmianie z „ą” na „a”
np. było wcześniej „abonencką a teraz jest „abonencka”

abonencka
pozazmysłowa
pozaznaczana
pozbawia
pozbawiona


Te litery nie mogły ulec zmianie:
abecadła
celnika
pozaznaczała
pozaznaczania
pozbawiła



Tak wygląda wykaz obecnie.
Jak porozdzielać te wyrazy na: dobre i na te,
które mogły być zmienione, tak jak jest powyżej?

abecadła
abonencka
celnika
pozazmysłowa
pozaznaczała
pozaznaczana
pozaznaczania
pozbawia
pozbawiła
pozbawiona

Tych wyrazów mam bardzo dużo. Znajomi powiedzieli,
że prędzej skończy się „epidemia” niż ja to zakończę.
Zastanawiam się od czego jest rozum?
Myślę, że można to jakoś szybko posegregować.
Od czego są komputery i programiści?
A może łatwiej obliczyć trajektorię lotu rakiety na księżyc?

Oczywiście że można. Rozumiem że chcesz napisać prosty skrypt?
Zmieniasz wszyskim słowom ostanie ‘a’ na ‘ą’ i sprawdzasz czy takie slowo istnieje w slowniku, np tu:
https://sjp.pl/slownik/odmiany/
roboty na 3 minuty

Dobry jesteś. A myślałem, że ta ja wszystkie rozumy pozjadałem. :grinning:
Też na to wpadłem… ale na jeszcze lepszy sposób,
aby nie kopiować nazwy, następnie wklejać
i sprawdzać co zajmie około 10 sekund na wyraz.
700.000 wyrazów razy 10 sekund to zajmie… 81 dni i nocy.

Chciałbym, ale brak algorytmu.

Odpowiedź brzmi:

  1. Linux > instalujesz słownik aspell i język PL, czyli aspell-pl
  2. Jeżeli masz bazę wyrazów po jednym wyrazie na linię tekstu:
    cat baza_z_wyrazami.txt | aspell list -a --dont-suggest >> złe_wyrazy.txt
    W pliku złe_wyrazy.txt masz odsiane niepoprawne wyrazy.

Brzmi zachęcająco.
Mam Windows 7 i słownik aspell.
To jak ma wyglądać polecenie w bat?

Potrzebne odsiane i reszta po odsianiu.

Nie wiem, wejdź do katalogu z aspell.exe i sprawdź: aspell.exe /help, co wyświetli.

Dla zestawu:

zółw
żułw
żółw
żeka
rzeka

Odsiało:

zółw
żułw
żeka

Podobnie będzie z “ą” i wyrazami w których to “ą” nie może być - po prostu wyraz błędny.

Ja nie mam linuxa i polecenie „cat” jest mi nieznane.
W bazie aspel’a jest około 3 mln . wyrazów.

cat wyświetla zawartość pliku, prawie to samo, co type w plikach wsadowych.
Można było zrobić poprzez opcję -c w aspell, ale wtedy program wchodzi w interakcję i pyta dla każdego z osobna słowa, czy poprawić lub zamienić na inne słowo.

cat baza_z_wyrazami.txt przekazuje zawartość pliku poprzez “|” na program aspell, list formatuje wyrazy w formie listy, -a powoduje kompatybilność z przekazywaniem danych za pomocą “|”, --dont-suggest wyłącza podpowiedzi alternatywnych/poprawnych słów na wyjściu, a >> przekazuje wyjście do pliku.

to mam w pliku bat wpisać: Type D:\Notepad++\Aspell\dict\baza.txt | aspell list -a --dont-suggest >> złe_wyrazy.txt

utworzył się plik: „z│e_wyrazy.txt” bez zawartości

Nie, raczej nie przejdzie, bo tam nie ma “rurek”, “|” do przekazywania danych. :slight_smile:
W grę wchodzi PowerShell, musiałbyś go doinstalować i niech ktoś, kto lepiej ogrania składnię w PowerShell Ci podpowie.

1 polubienie

to na linuxie też nie pójdzie?

Pod Linux żywcem przeklej polecenie, zmień nazwę pliku z bazą słów na swój i zadziała bez problemu. (pod warunkiem, że aspell i aspell-pl będzie zainstalowane)

Mam dostęp do bazy… to jest plik tekstowy i nazywa się baza.txt
Aspell mam zainstalowany w Notepad++ i czyta z pliku binarnego:
pl.rws , który tworzę z pliku baza.txt

Help nie działa

Microsoft Windows [Wersja 6.1.7601]
Copyright © 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
D:\Console2>D:\Notepad++\Aspell\bin\aspell.exe /help Error: Unknown Action: /help
D:\Console2>|

a /? lub bez niczego

to otrzymuję:
D:\Notepad++\Aspell\bin\aspell.exe nie jest prawidłowy aplikację systemu Win32.

To aspell, aspellowi nie równy. Pewnie działa tylko z Notepad++.

Aspell for Windows:
ftp.gnu.org/gnu/aspell/w32/Aspell-0-50-3-3-Setup.exe
Język Polski dla aspell:
http://ftp.gnu.org/gnu/aspell/w32/Aspell-pl-0.50-2-3.exe

Tylko nie mam pojęcia jak to Ci zadziała, bo dla Windows jest stara wersja z 2002 roku :stuck_out_tongue:

1 polubienie

Działa mnie również w AkelPad.

Tak tylko tam każdy program używa własnych binarek, a pod Linux masz jedną binarkę na cały system - każda “chętna” aplikacja po prostu sobie go używa, co więcej w trybie CLI można w pełni w interakcję z tym słownikiem wejść.
Rozwiązanie w każdym razie Ci podałem.
W Windows 10 problem byś miał z głowy, bo tam jest Windows Subsystem for Linux (WSL).

Aspell niechce działać z edytorami 64bit.
Skoro u Ciebie idzie to może podrzucę Ci do wyłuskania 2 pliki przerobione;
jeden z ą i drugi z ę na końcu?

Możesz.

Działa z edytorami 64-bit, ale pod Linux, bo tam sam aspell jest 64-bitowy: