Vyhledávání v textu a skloňování jmen

Vyhledávání v textu a skloňování jmen
« kdy: 10. 04. 2017, 13:50:42 »
Ahoj, pokusam sa vyhladat v skupine textakov klucove slova na zaklade nejakeho zoznamu a potrebujem zohladnit sklonovanie. Script prechadza za pomoci while kazdy riadok so zoznamom klucovych slov a grep-om vyhladava nad txt subormi klucove slova a wc potom spocita v kolkych txt sa vyskytlo klucove slovo. Zoznam je v tvare "Meno Priezvisko". Ako ale zapisat klusove slovo aby script prehladaval vsetky vysklonovane alternativy?

Priklad:
zakladny tvar - Milos Zeman
ostatne tvary - Milosa Zemana, Milosom Zemanom, Milosovi Zemanovi

Vdaka za radu, R.
« Poslední změna: 10. 04. 2017, 22:11:59 od Petr Krčmář »


beer

  • *****
  • 729
    • Zobrazit profil
Re:vyhladavanie v txt - sklonovanie mien
« Odpověď #1 kdy: 10. 04. 2017, 14:16:50 »
Aha, IT oddělení hradu se chce vyhnout, aby si prezident při googlování svého jména nenainstaloval dětské porno?

Kód: [Vybrat]
grep Milo[s-sa-som-sovi] Zema[n-na-nom-novi]
grep Milos* Zeman*

* Najde všechny varianty. Grep -i nezohledňuje velikost písem.

DK

Re:vyhladavanie v txt - sklonovanie mien
« Odpověď #2 kdy: 10. 04. 2017, 14:17:51 »
Lemmatizace, Stematizace

(kdyby nahodou nemusel byt pouzity bash, pro Python existuje knihovna NLTK)

gll

Re:vyhladavanie v txt - sklonovanie mien
« Odpověď #3 kdy: 10. 04. 2017, 15:11:44 »
Aha, IT oddělení hradu se chce vyhnout, aby si prezident při googlování svého jména nenainstaloval dětské porno?

Kód: [Vybrat]
grep Milo[s-sa-som-sovi] Zema[n-na-nom-novi]
grep Milos* Zeman*

* Najde všechny varianty. Grep -i nezohledňuje velikost písem.

hvězdička bez uvozovek ti bude nahrazovat soubory z adresáře. Zkusil bych raději něco takového:

Kód: [Vybrat]
grep -i -P 'Milos.{0,4}'

Unloged user

Re:vyhladavanie v txt - sklonovanie mien
« Odpověď #4 kdy: 10. 04. 2017, 16:23:24 »
. vam chyti akykolvek znak takze aj whitespace...
Inak neviem ako velke su tie textaky ale urcite ich neprechadzajte while-om ked chcete spocitat len vyskyty uplne vam vystaci grep -c


Re:vyhladavanie v txt - sklonovanie mien
« Odpověď #5 kdy: 11. 04. 2017, 10:09:40 »
. vam chyti akykolvek znak takze aj whitespace...
Inak neviem ako velke su tie textaky ale urcite ich neprechadzajte while-om ked chcete spocitat len vyskyty uplne vam vystaci grep -c

grep -c v tomto pripade je nepouzitelny. Ja potrebujem spocitat len pocet textakov v ktorych sa nachadzaju ludia zo zoznamu (cca 50-100 osob). Pocet textakov moze byt rozny (od 100 do 2000), odhadnut sa to neda. Rovnako velkost txt je rozna, pretoze sa jedna o clanky z webu. Cize vysledok by mal byt taky, ze po zohladneni vsetkych moznych variant vysklonovania mena a priezviska (politika, osobnosti, herca) na konci dostanem len cislo, ze napriklad Robert Fico sa nachadzal v 37 textakoch.

fedorac

Re:Vyhledávání v textu a skloňování jmen
« Odpověď #6 kdy: 11. 04. 2017, 19:35:39 »

       -l, --files-with-matches
              Suppress normal output; instead print the name of each  input  file
              from  which  output would normally have been printed.  The scanning
              will stop on the first match.

..... | wc -l