Vyhľadávanie podobných záznamov

Sekcia: Aplikácie & Desktop 10.02.2017 | 13:14
Avatar Michal Gregorík Xubuntu 18.04  Používateľ

Zdravím. Chcel by som si trochu uľahčiť život, len neviem, či to bude možné.

Vstup: Mám dva súbory *.ods so záznamami- 4070 a 463 záznamov.

Cieľ: Nájsť rovnaké záznamy (alebo veľmi podobné) vyskytujúce sa v oboch súboroch a z druhého ich vymazať

Komplikácie: Preklepy v jednom alebo druhom súbore- očakávam drobné rozdiely medzi záznamami.

Stav1: Viac-menej som to spravil manuálne, ale potreboval by som skontrolovať, či tam ešte nie sú veľmi podobné záznamy.

Stav2: Oba súbory majú tabuľky s rovankou štruktúrou.

Ak by mi vedel niekto poradiť, budem veľmi vďačný.

ASUS x550vb, Xubuntu 18.04
    • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 15:21
      Avatar bla   Návštevník

      toto by mohlo pomoct na presne rozdiely:

      https://linux.die.net/man/1/comm

      na tie velmi podobne neviem ci existuje genericky nastroj

      • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 15:35
        Avatar Michal Gregorík Xubuntu 18.04  Používateľ

        Vďaka, vyskúšam.

        Problém je v tom, že ide o zoznamy kníh. A napríklad názvy sú robené tak, že v jednom súbore sa za názov považuje viac slov, napríklad: v jednom zozname môže byť "Veľká encyklopédia Zeme" a v druhom, pre tú istú knihu, "Encyklopédia zeme". Tu mi, žiaľ nepomôže ani filtrovanie, ani usporiadanie.

        Stačilo by mi vypísať podobné reťazce v oboch súboroch, tie už by som našiel aj manuálne. Reťazcom ale musí byť obsah viacerých buniek.

        ASUS x550vb, Xubuntu 18.04
    • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 19:10
      Avatar WlaSaTy   Návštevník

      Zaujímalo by ma ako by si definoval pojem "podobné záznamy", od toho by sa odvíjalo možné riešenie. Menovite, do akej miery by si ešte bral záznam za duplikát, a od akej už nie.

      Ak som dobre pochopil, tak sa jedná o záznamy knižnice o počte 500 kníh z katalógu o počte 4000 kníh. Nechceš to radšej riešiť podľa ISBN kódu ktorý je na to určený a v knihovníckom programe? Určite sa nájde niečo aj pre Linux, GPL. Tabuľkový procesor je na katalogizáciu vrcholne nevhodný.

      • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 20:35
        Avatar Michal Gregorík Xubuntu 18.04  Používateľ

        Podobné záznamy: potrebujem iba niečo v štýle "na riadku n je pravdepodobne zhoda". Ja by som sa pozrel na to, a fyzicky porovnal. Ide mi len o to, aby som nemusel porovnávať všetky riadky, navyše by som mohol niečo prehliadnuť.

        Problém je, že tie knihy nemajú ISBN, ak by mali, nebol by žiaden problém.

        ASUS x550vb, Xubuntu 18.04
        • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 21:47
          Avatar bedňa LegacyIce-antiX  Administrátor

          Nájsť podobné vety nieje moc jednoduché a spadá to pod "Locality-sensitive hashing", alebo ešte lepšie "AI", čo si treba poriadne naštudovať. AI sa bez znalosť programovania ani implementovať zatiaľ nedá. Na LSH sa určite nájdu nejaké hotové riešenia.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Vyhľadávanie podobných záznamov 10.02.2017 | 22:02
            Avatar Michal Gregorík Xubuntu 18.04  Používateľ

            Vďaka. Ešte nad tým porozmýšľam.

            ASUS x550vb, Xubuntu 18.04
    • RE: Vyhľadávanie podobných záznamov 12.02.2017 | 00:06
      Avatar samalama.   Návštevník

      vyexportovat subory do txt. z prveho zobrat prvy riadok, z neho zobrat prve slovo a grep nim druhy subor. samozrejme odfiltrovat jeden, dva, mozno aj trojznakove slova (predlozky, spojky...). toto opakovat pre kazde slovo v kazdom riadku...

      cat zoznam1.txt | while read line; do
          for word in $line; do
              test ${#word} -lt 4 && continue
              grep "$word" | zoznam2.txt
          done
      done
      • RE: Vyhľadávanie podobných záznamov 12.02.2017 | 14:14
        Avatar Michal Gregorík Xubuntu 18.04  Používateľ

        Vďaka. Takéto niečo som si predstavoval. Keď si nájdem čas, vyskúšam.

        ASUS x550vb, Xubuntu 18.04