Fórum Root.cz

Hlavní témata => Software => Téma založeno: Aleš Dvoika 25. 10. 2019, 21:24:57

Název: Porovnání textu
Přispěvatel: Aleš Dvoika 25. 10. 2019, 21:24:57
Ahoj mládeži hledám script/soft který porovná origo text (7000řádků) s druhým textem znatelně "poškozeným" (1řádek)
např:

poškozený
With these hands, and the blessings of the sactedisulthoistls seome tolife. My sweet
original
With these hands, and the blessings of the sacred solenoid, she´s come to life. My sweet

Porovnávalo by se z textu o 7tisíc řádku a podle nejvetsi podobnosti vyhodnotit shodu...
To už chci asi hodně že :D
Název: Re:Porovnání textu
Přispěvatel: Mlocik97 25. 10. 2019, 21:34:06
Do Google stačí zadať "Diff app" a nájdete ich mraky. napr. https://www.diffchecker.com/desktop zadarmo napríklad https://sourceforge.net/projects/diffuse/
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 26. 10. 2019, 23:28:19
tnx za odpoved....jak prosimte dostanu ten řádek do clipboardu nebo lépe do *.txt
(https://i.imgur.com/sKGU4zz.png)
sem hrozná lama
Název: Re:Porovnání textu
Přispěvatel: _Jenda 27. 10. 2019, 03:32:10
do clipboardu
To na Windows v Cygwinu fakt netuším, na Linuxu xclip -in.

nebo lépe do *.txt
grep "^> " | cut -c 3- > soubor.txt

Citace
Porovnávalo by se z textu o 7tisíc řádku a podle nejvetsi podobnosti vyhodnotit shodu...
To mi není jasné co si pod tím přesně představuješ. Pokud ti jde o to zjistit „jak moc se soubory liší“, tak můžeš počítat řádky toho diffu. Další možnost je zkonkatenovat je, zagzipovat a podívat se na velikost výsledku -- pokud jsou téměř stejné, měla by komprese fungovat „dobře“, zatímco pokud se budou hodně lišit, nebude možné zkomprimovat ten druhý pomocí znalosti prvního. No a pak samozřejmě existuje spousta teoreticky podložených algoritmů jako třeba Levenshteinova vzálenost (https://en.wikipedia.org/wiki/Levenshtein_distance), Dynamic time warping (https://en.wikipedia.org/wiki/Dynamic_time_warping) atd., kde ale musíš vědět, co od toho chceš.
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 27. 10. 2019, 11:03:54
Děkuju za rady velmi useful...potřeboval bych z dlouhého textu o tisíce řádku najít daný řádek podle nekompletního/poškozenýho textu o jednom řádku z jiného zdroje...a ten s nejvetsí shodou vypsat do *.txt
blbe se to vysvetluje :D
Název: Re:Porovnání textu
Přispěvatel: FKoudelka 28. 10. 2019, 10:41:31
Děkuju za rady velmi useful...potřeboval bych z dlouhého textu o tisíce řádku najít daný řádek podle nekompletního/poškozenýho textu o jednom řádku z jiného zdroje...a ten s nejvetsí shodou vypsat do *.txt
blbe se to vysvetluje :D
Moc nerozumim, co je cilem ale treba se trefim:
grep -n sactedisulthoistls poskozenysoubor.txt | tee vysledek.txt
vypise radek s tim slovem a jeho cislo a zapise ho do souboru ,
 kdyz nechces cislo nedavej -n vice moznost viz treba
https://www.computerhope.com/unix/ugrep.htm
Název: Re:Porovnání textu
Přispěvatel: Ondrej Nemecek 28. 10. 2019, 22:11:31
Děkuju za rady velmi useful...potřeboval bych z dlouhého textu o tisíce řádku najít daný řádek podle nekompletního/poškozenýho textu o jednom řádku z jiného zdroje...a ten s nejvetsí shodou vypsat do *.txt
blbe se to vysvetluje :D

Pokud potřebujete vyhledat přibližnou shodu textu, bude to chtít něco jako Approximate string matching nebo Fuzzy String Matching. To souvisí s tou již zmíněnou Levenshteinovou vzdáleností a dalšími postupy a určitě na to bude nějaký software. Případně lze ten text naimportovat do databáze, například co řádek textu to řádek databáze, a provést hledání tam. Například pro Postgres https://www.freecodecamp.org/news/fuzzy-string-matching-with-postgresql/
Název: Re:Porovnání textu
Přispěvatel: Ondřej Kolín 29. 10. 2019, 14:05:52
Diffy vizualne pekne zobrazuje meld
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 31. 10. 2019, 20:57:04
ahoj tak "agrep" to vyřešil, dá se nastavit i kolik chyb má přechoupnout ale je celkem pomalej, trvá mu to vteřinu a potřeboval bych max 0.5s

agrep -E 5 "nekompletní text" text.txt

neakej napad? díky všem
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 02. 11. 2019, 15:03:05
ahoj jak dostanu text z clipboardu do dalsiho prikazu mezi uvozovky :/
(https://i.imgur.com/ByaXLWF.png)

nikde sem v agrep nenašel možnost číst ze souboru
Název: Re:Porovnání textu
Přispěvatel: Ondrej Nemecek 02. 11. 2019, 18:05:25
ahoj jak dostanu text z clipboardu do dalsiho prikazu mezi uvozovky :/
(https://i.imgur.com/ByaXLWF.png)

nikde sem v agrep nenašel možnost číst ze souboru

Myslím, že agrep načte ze souboru přeměrováním:

Kód: [Vybrat]
agrep parametry... < soubor.txt
Mezi uvozovky načtete takto:

Kód: [Vybrat]
agrep "$(tesseract parametry...)" gtafull.txt

nebo

Kód: [Vybrat]
agrep `tesseract parametry...` gtafull.txt
Název: Re:Porovnání textu
Přispěvatel: FKoudelka 03. 11. 2019, 09:19:18
ahoj jak dostanu text z clipboardu do dalsiho prikazu mezi uvozovky :/
(https://i.imgur.com/ByaXLWF.png)

nikde sem v agrep nenašel možnost číst ze souboru

Vygoogli si “ windows cmd quick edit mode”
Pak ti pujde v cmd terminalu oznacit mysi, dat enter pro kopirovani a vluzit pomoci praveho tlacitka mysi.
https://www.isunshare.com/windows-8/quick-edit-mode-in-command-prompt-how-to-open-it.html
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 03. 11. 2019, 09:29:20
ahoj dík za odpoved ale potrebuji udelat bash aby to udelalo automaticky, ručně mi je to na prd asi sem to blbe napsal
ahoj jak dostanu text z clipboardu do dalsiho prikazu mezi uvozovky :/
(https://i.imgur.com/ByaXLWF.png)

nikde sem v agrep nenašel možnost číst ze souboru

Vygoogli si “ windows cmd quick edit mode”
Pak ti pujde v cmd terminalu oznacit mysi, dat enter pro kopirovani a vluzit pomoci praveho tlacitka mysi.
https://www.isunshare.com/windows-8/quick-edit-mode-in-command-prompt-how-to-open-it.html
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 03. 11. 2019, 09:36:58
nebo něco ve smyslu
echo prvni_text < input.txt druhy_text > output.txt
to samozrejmne nefunguje :D
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 03. 11. 2019, 09:37:36
ani jedno mi nepřechroustá :/
ahoj jak dostanu text z clipboardu do dalsiho prikazu mezi uvozovky :/
(https://i.imgur.com/ByaXLWF.png)

nikde sem v agrep nenašel možnost číst ze souboru

Myslím, že agrep načte ze souboru přeměrováním:

Kód: [Vybrat]
agrep parametry... < soubor.txt
Mezi uvozovky načtete takto:

Kód: [Vybrat]
agrep "$(tesseract parametry...)" gtafull.txt

nebo

Kód: [Vybrat]
agrep `tesseract parametry...` gtafull.txt
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 03. 11. 2019, 13:02:38
vyřešil sem to celkem elegantně :D na prase
echo agrep -E 5 "$(<apostrov.txt)""$(<text.txt)""$(<apostrov.txt)" outtext.txt > agrepecho.sh
výsledek agrepecho.sh
agrep -E 5 "Vstupní text" outtext.txt
Název: Re:Porovnání textu
Přispěvatel: _Jenda 03. 11. 2019, 22:10:04
"$(<apostrov.txt)"
Ježišikriste. Uvozovky se normálně escapují pomocí \".

Ale vlastně jo, oceňuji kreativitu. Moje programování věcí kterým nerozumím asi občas působí podobně :-)
Název: Re:Porovnání textu
Přispěvatel: FKoudelka 04. 11. 2019, 09:23:29
"$(<apostrov.txt)"
Ježišikriste. Uvozovky se normálně escapují pomocí \".

Ale vlastně jo, oceňuji kreativitu. Moje programování věcí kterým nerozumím asi občas působí podobně :-)

 Vkládá text $(<apostrov.txt) pomocí echa do texťáku, nebo to tam chce vkládat  i s uvozovkami ? Asi s nimi. Asi si to zkusím, jestli budu taky tak kreativní, tohle nemůže fungovat v žádným vesmíru. Jaký shell vlastně používá ?
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 04. 11. 2019, 10:20:18
už neni potřeba, pod linuxem je agreb ve verzi kde neni potreba linkovat ale jen vypsat příkaz -f a daný soubor tak sorry za spam... mam tu ale další věc :) :D potřebují kadou sekundu udělat snapshot z video/streamu ale zaroven aby se mi to video přehrávalo...ffmpeg to umí ale nepřehává se mi video...
jinak ted pouzivat xfce terminal, na wokna už prdim
"$(<apostrov.txt)"
Ježišikriste. Uvozovky se normálně escapují pomocí \".

Ale vlastně jo, oceňuji kreativitu. Moje programování věcí kterým nerozumím asi občas působí podobně :-)

 Vkládá text $(<apostrov.txt) pomocí echa do texťáku, nebo to tam chce vkládat  i s uvozovkami ? Asi s nimi. Asi si to zkusím, jestli budu taky tak kreativní, tohle nemůže fungovat v žádným vesmíru. Jaký shell vlastně používá ?
Název: Re:Porovnání textu
Přispěvatel: FKoudelka 04. 11. 2019, 11:27:15
už neni potřeba, pod linuxem je agreb ve verzi kde neni potreba linkovat ale jen vypsat příkaz -f a daný soubor tak sorry

Ale notak, to by ses nic nenaucil :-)
Nejsou uvozovky jako uvozovky ...
(bash)

# echo 'grep "$(cat text.txt)" outtext.txt' > grepecho.sh

# cat grepecho.sh
grep "$(cat text.txt)" outtext.txt

# cat text.txt
ahoj mami


# cat outtext.txt
ahoj
nazdar
ahoj mami

# sh ./grepecho.sh
ahoj mami
#
Název: Re:Porovnání textu
Přispěvatel: Aleš Dvoika 04. 11. 2019, 13:19:57
Jenda:jo tohle vypada mnohem lip nez ta ptakovina odemne  ::)