Table of Contents
GAČR 2024-2026 -- Frazeologie
Návody a poznámky k řešení GAČRu
Příprava korpusů
Návody na přípravu jednotlivých korpusů: Totalita
, SYN
a ONLINE
Umístění jednotlivých korpusů v ÚČNK
Korpusy dostupné v ÚČNK jsou uloženy ve formátu XML
v adresáři /cnk/common/korpus/xml
. Pro nás jsou relevantní adresáře:
monitora
– nový Onlinenet
– starý Onlineonomos
– Rudé právosynkorp
– všechno možné
Co není k dispozici v XML
, může být dostupné ve vertikále v adresáři /cnk/common/korpus/vertikaly
:
online_old
– starý Onlinemonitora
– nový Online
Dále existují texty na CD ke korpusu Totalita
Zdroje potřebují obvykle nějak upravit, aby měly všechny jednotný formát a stejnou množinu metadat
. Všechny tyto úpravy zdrojů provádím u sebe v adresáři /home/skoumal/PROJEKTY/GACR2426/zdroje
.
Metadata
Metadata jsou uložena v databázi Adminer (krátký návod). Protože máme data z různých zdrojů a různé povahy, budou v některém subkorpusu některé atributy vždy prázdné.
Atributy metadat:
Column Type Comment id char(100) author char(255) title char(255) subtitle char(255) publisher char(200) pubplace char(100) pubyear char(4) issue char(100) first_published char(4) isbnissn char(100) translator char(100) medium char(100) srclang char(20) txtype char(100) genre char(100) audience char(100) date char(100) media_type char(100) resource char(255) subcorpus char(20) t.id char(100) t.author char(255) t.title char(255) t.resource char(255)
Každý dokument má jeden tag <doc>
a nejméně jeden tag <text>
. V případě, že dokument není členěn na texty, zkopírují se do atributů t.author
, t.title
a t.resource
hodnoty z tagu <doc>
. Atribut t.id
se odvodí z id
. Atribut id
je název souboru. Podle něj se identifikují ostatní atributy, které se do souboru dodají.
Pro výrobu finálních XML
souborů se správnými metadaty
potřebujeme export (v CSV
) z databáze v adresáři /home/skoumal/PROJEKTY/GACR2426/zdroje/databaze
, např. totalita.csv
.
Subkorpus Totalita
Korpus je umístěn v adresáři /cnk/work/skoumal/Frazeologie/Totalita
Zdrojáky jsou v adresáři /home/skoumal/PROJEKTY/GACR2426/zdroje/subkorp_totalita
, kde jsou ještě rozděleny podle zdroje:
Totalita_cz
– texty z webu Totalita.czonomos
– texty z ÚČNK, Rudé právo nepoužité v korpususTotalita
synkorp
– beletrie z ÚČNKtotalita
– původní korpusTotalita
totalita_CD
– texty z CD, které nebyly použité v korpusuTotalita
Příprava zdrojových textů
U všech zdrojů je třeba text převést do pseudo-XML, které má následující strukturu:
<doc id="nazev_souboru"> <p>text...</p> ... </doc>
anebo
<doc id="nazev_souboru"> <text id="nazev_souboru.identifikator" author="Author" title="Title"> <p>text...</p> </text> <text id=...> ... </text> </doc>
Tag <doc>
může obsahovat i další atributy, ale k nim se nepřihlíží. Atribut id
musí obsahovat název souboru a slouží pro identifikaci souboru při zpracování.
Zde je popis, co bylo potřeba udělat s texty z korpusus Totalita
, kde navíc názvy souborů neodpovídaly údajům v databázi:
V každém adresáři (Totalita_cz
, onomos
, synkorp
, totalita
a totalita_CD
) je adresář source
a/nebo source-text
. V těchto adresářích jsou umístěny zdrojové texty s pseudo-markupem. (V adresářích source-text
jsou soubory, které obsahují tagy <text>
, jež se mají zachovat.)
Z těchto souborů vyrobíme .xml
soubory příkazem source2xml-tot.pl
:
cd source source2xml-tot.pl ../../../databaze/totalita.csv .
nebo
cd source-text source2xml-tot.pl -t ../../../databaze/totalita.csv .
V adresáři přibudou soubory .xml
, které přesuneme do adresáře orig
:
mv *.xml ../../orig/
Subkorpus SYN2020
Zdrojáky jsou umístěny v adresáři /cnk/work/skoumal/Frazeologie/SYN2020
Anotace se provádí v adresáři /home/skoumal/PROJEKTY/GACR2426/zdroje/subkorp_syn2020
.
Metadata
Metadata jsou vytažena z vertikály: /cnk/common/korpus/vertikaly/syn2020/vertikala
pomocí programu:
cd ~/PROJEKTY/GACR2426/zdroje/subkorp_syn2020/metadata meta-syn2020.pl < /cnk/common/korpus/vertikaly/syn2020/vertikala > vertikala.tsv
Nová tabulka v Admineru
se vyrobí tak, že se exportuje tabulka totalita
, vybere se začátek:
SET NAMES utf8; SET time_zone = '+00:00'; SET foreign_key_checks = 0; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; SET NAMES utf8mb4; DROP TABLE IF EXISTS `totalita`; CREATE TABLE `totalita` ( `id` char(100) NOT NULL, `author` char(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_nopad_ci NOT NULL, `title` char(255) NOT NULL, `subtitle` char(255) NOT NULL, `publisher` char(200) NOT NULL, `pubplace` char(100) NOT NULL, `pubyear` char(4) NOT NULL, `issue` char(100) NOT NULL, `first_published` char(4) NOT NULL, `isbnissn` char(100) NOT NULL, `translator` char(100) NOT NULL, `medium` char(100) NOT NULL, `srclang` char(20) NOT NULL, `txtype` char(100) NOT NULL, `genre` char(100) NOT NULL, `audience` char(100) NOT NULL, `date` char(100) NOT NULL, `media_type` char(100) NOT NULL, `resource` char(255) NOT NULL, `subcorpus` char(20) NOT NULL, `t.id` char(100) NOT NULL, `t.author` char(255) NOT NULL, `t.title` char(255) NOT NULL, `t.resource` char(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
a uloží se do souboru MySQL.txt
. V editoru se přepíše totalita
na nové jméno a SQL příkaz se provede příkazem Import
(v levém menu). Následně se tabulka vybere a provede se import dat ze souboru vertikala.tsv
.
Metadata jsou uložena v databázi Adminer
a byly v nich provedeny drobné opravy:
- chybně uvedený jazyk
Po provedené oprav se metadata exportují příkazem Export ve formátu TSV do souboru syn2020.csv.gz
.
Data
Zdrojové texty pocházejí jednak z kolekce SYN2020
(1621 souborů) a jednak z kolekce NEWTON2019
(2289 souborů)
Soubory jsou rozděleny do adresářů …/subkorp_syn2020/author/
a …/subkorp_syn2020/noauthor/
podle toho, jestli mají texty
různé autory nebo ne. Adresář noauthor
se shoduje se soubory z kolekce SYN2020
– jde o knihy, u kterých je autor uveden v tagu <doc>
a tag <text>
má atribut author
prázdný.
Subkorpus SYN-pub
Jde o 75milionový korpus vytažený ze SYNv13, který obsahuje pouze publicistiku.
Metadata
V adresáři ~/PROJEKTY/GACR2426/zdroje/subkorp_syn-pub
jsou metadata v různých formátech:
hlavicky_opusu_syn_v13
– celý SYNv13, hlavičky z vertikály doplněné o údaje o počtu tokenů a slovhlavicky_opusu_syn_v13-NMG
– výběr obsahující pouzetxtype_group="NMG: publicistika"
hlavicky_opusu_syn_v13.tsv
– celé hlavičky; pouze hodnoty atributů oddělené tabulátorem75mil_SYNv13_non-totalita_news_1989-2023.tsv
– výběr hodnot s tabulátory pro 75mil. korpus SYN-pub75mil_SYNv13_non-totalita_news_1989-2023_id.srt
– seznam názvů souborů (bez koncovky) pro 75mil. korpus
V adresáři ~/PROJEKTY/GACR2426/zdroje/subkorp_syn-pub/metadata
jsou jednotlivé hodnoty pro všechny soubory z 75mil. korpusu. Vznikly tak, že se soubor 75mil_SYNv13_non-totalita_news_1989-2023.tsv
nasekal po sloupcích (zde se berou hlavičky ze souboru db0104.tsv
):
cd metadata cut -f1 ../db0401.tsv > title cut -f2 ../db0401.tsv > subtitle cut -f3 ../db0401.tsv > author cut -f4 ../db0401.tsv > issue cut -f5 ../db0401.tsv > publisher cut -f6 ../db0401.tsv > pubplace cut -f7 ../db0401.tsv > pubyear cut -f8 ../db0401.tsv > first_published cut -f9 ../db0401.tsv > translator cut -f10 ../db0401.tsv > srclang cut -f11 ../db0401.tsv > authsex cut -f12 ../db0401.tsv > transsex cut -f13 ../db0401.tsv > txtype_group cut -f14 ../db0401.tsv > txtype cut -f15 ../db0401.tsv > genre_group cut -f16 ../db0401.tsv > genre cut -f17 ../db0401.tsv > medium cut -f18 ../db0401.tsv > periodicity cut -f19 ../db0401.tsv > audience cut -f20 ../db0401.tsv > isbnissn cut -f21 ../db0401.tsv > biblio cut -f22 ../db0401.tsv > syn cut -f23 ../db0401.tsv > id
Je třeba dodat ještě soubor empty
obsahující jenom tabulátor.
Tyto hodnoty se použijí pro nové hlavičky souborů:
cd metadata paste id author title subtitle publisher pubplace pubyear issue first_published isbnissn translator medium srclang txtype genre audience empty empty empty empty empty empty empty empty > ../syn-pub.meta
Je třeba ještě doplnit záhlaví s atributy:
date media_type resource subcorpus t.id t.author t.title t.resource
a dát prázdné hodnoty do uvozovek:
perl -i.bak -pe 's/\t\t/\t""\t/g' syn-pub.meta perl -i.bak -pe 's/\t\t/\t""\t/g' syn-pub.meta perl -i.bak -pe 's/\t$/\t""/' syn-pub.meta
Opravený soubor zkopírujeme do adresáře ~/cnk-work/Frazeologie/SYN-pub
, kde anotujeme korpus:
cp -p syn-pub.meta ~/cnk-work/Frazeologie/SYN-pub/
Oprava hlaviček ve zdrojových souborech
Pracujeme v adresáři ~/cnk-work/Frazeologie/SYN-pub/
.
Je třeba odstranit první řádku (<?xml version="1.0" encoding="UTF-8"?>
) a opravit řádek <doc ...
a případně <text ...
. Musíme roztřídit soubory na ty, které mají tag <text>
s atributy a na prázdné. Potom opravíme každý druh zvlášť:
- Převod do
quasi-xml
:cd archive for ff in *.xml; do gg=${ff%.xml}; echo $gg; \ grep -v '<?xml' $ff | perl -pe "s/>(<text)/>\n\1/g" | perl -pe 's/><head/>\n<head/g' | perl -pe 's/><p/>\n<p/g' \ | perl -pe "s/^[ ]+</</" | perl -pe "s/<doc .*>/<doc id=\"$gg\">/" > ../quasi-xml/$gg; done
- Oprava tagů
<text>
:- Ve výsledném korpusu mají být atributy
id
,author
,title
aresource
. V SYNu se může vyskytovatauthor
,id
stanovíme podle ID dokumentu. - Opravu provedeme programem
add-textattr.pl
:cd quasi-xml for ff in *; do echo $ff; ~/bin/totalita/add-textattr.pl < $ff > ../source-text/$ff; done
- Převedeme texty do XML formátu se správnými hlavičkami:
~/bin/totalita/source2xml-tot.pl -t syn-pub.meta source-text/ orig/ xml
Subkorpus ONLINE
Aktuální ONLINE
Existuje verze s “našimi” hlavičkami ve vertikále. Ta se zpracovává jako starý ONLINE (viz níže).
Zdroje k aktuálnímu ONLINE
jsou umístěny v adresáři /cnk/common/korpus/zdroje/monitora
a jsou uloženy jako JSON
.
- Na strojích
chomsky
,trnka
alovelace
existují programy na jejich převedení doXML
. - Každý stroj má vlastní adresář s pythonovskými moduly a vlastní nastavení v
.bashrc_profile
nebo.profile
:chomsky
:PATH=/home/skoumal/bin/local_python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/syn2020/bin:/usr/local/syn2020/xml2standoff:/home/skoumal/bin PYTHONPATH=/home/skoumal/bin/local_python/lib/python3.10/site-packages
trnka
:PATH=/home/skoumal/local_python/bin:/home/skoumal/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin PYTHONPATH=/home/skoumal/local_python/lib/python3.8/site-packages
lovelace
:PATH=/home/skoumal/local_python/bin:/cnk/local/ssd/vitovec/lemurizer/target/release:/home/skoumal/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin PYTHONPATH=/home/skoumal/local_python/lib/python3.8/site-packages
- Program
read_json_keys.py
vypíše metainformace:python ~/.local/bin/totalita/read_json_keys.py < 2024-01-21.json
- Program
read_json.py
převedeJSON
naXML
:cd .../Monitora ls *.json | parallel -j100 "json2xml.sh < {} > /cnk/work/skoumal/Frazeologie/Monitora/orig/{.}.xml"
Starý i nový ONLINE ve vertikále
Je uložen pouze v adresáři /cnk/common/korpus/vertikaly/online_old
, resp. /cnk/common/korpus/vertikaly/monitora
.
- Soubory z
monitory
nejdřív zbavíme duplikátů:cd source for ff in *.vrt; do echo $ff; remove-dupl-text.pl ${ff%.vrt} < $ff > ../source-nodupl/${ff%.vrt}
nebo paralelně
ls *.vrt | parallel -j40 "echo {}; remove-dupl-text.pl {.} < {} > ../source-nodupl/{.}"
- Soubory v
/home/skoumal/PROJEKTY/GACR2426/zdroje/subkorp_online/online_old/source[-nodupl]
naporcujeme na jednotlivé docy pomocí programusplitdoc-xml
:cd .../source for ff in vert_2020-*; do splitdoc-xml ${ff%.vrt} < $ff; done
nebo paralelně
ls -S | parallel -j40 "splitdoc-xml {} < {}"
a hotové soubory přesuneme do
source-split
. Je-li souborů moc, uděláme několik adresářů a přesouvíme podle ročníku:cd source-nodupl for ff in 2021*.?????; do mv $ff ../source-split-2021/; done for ff in 2022*.?????; do mv $ff ../source-split-2022/; done for ff in 2023*.?????; do mv $ff ../source-split-2023/; done for ff in 2024*.?????; do mv $ff ../source-split-2024/; done for ff in 2025*.?????; do mv $ff ../source-split-2025/; done
- Vybereme typ textu (např. Antisyst) a vyrobíme si seznamy:
cd .../source-split-2021 ls | xargs grep -l "media_type=\"Antisyst" - > ../2021-Antisyst.txt cd ../source-split-2022 ls | xargs grep -l Antisyst - > ../2022-Antisyst.txt cd ../source-split-2023 ls | xargs grep -l Antisyst - > ../2023-Antisyst.txt cd ../source-split-2024 ls | xargs grep -l Antisyst - > ../2024-Antisyst.txt cd ../source-split-2025 ls | xargs grep -l Antisyst - > ../2025-Antisyst.txt
- Přesuneme vybraný typ do zvláštního adresáře a zároveň do hlaviček připíšeme počet tokenů a slov:
cd .../monitora mkdir Antisyst cat 2021-Antisyst.txt | parallel -j45 'echo {}; tok=$(grep -c -v "^<" source-split-2021/{}); \ wrd=$(grep -v "^<" source-split-2021/{} | grep -cv -P "\tZ[0:]-------"); \ sed "1s/>$/ word_count=\"$wrd\" token_count=\"$tok\">/" < source-split-2021/{} > Antisyst/{}' cat 2022-Antisyst.txt | parallel -j45 'echo {}; tok=$(grep -c -v "^<" source-split-2022/{}); \ wrd=$(grep -v "^<" source-split-2022/{} | grep -cv -P "\tZ[0:]-------"); \ sed "1s/>$/ word_count=\"$wrd\" token_count=\"$tok\">/" < source-split-2022/{} > Antisyst/{}' cat 2023-Antisyst.txt | parallel -j45 'echo {}; tok=$(grep -c -v "^<" source-split-2023/{}); \ wrd=$(grep -v "^<" source-split-2023/{} | grep -cv -P "\tZ[0:]-------"); \ sed "1s/>$/ word_count=\"$wrd\" token_count=\"$tok\">/" < source-split-2023/{} > Antisyst/{}' cat 2024-Antisyst.txt | parallel -j45 'echo {}; tok=$(grep -c -v "^<" source-split-2024/{}); \ wrd=$(grep -v "^<" source-split-2024/{} | grep -cv -P "\tZ[0:]-------"); \ sed "1s/>$/ word_count=\"$wrd\" token_count=\"$tok\">/" < source-split-2024/{} > Antisyst/{}' cat 2025-Antisyst.txt | parallel -j45 'echo {}; tok=$(grep -c -v "^<" source-split-2025/{}); \ wrd=$(grep -v "^<" source-split-2025/{} | grep -cv -P "\tZ[0:]-------"); \ sed "1s/>$/ word_count=\"$wrd\" token_count=\"$tok\">/" < source-split-2025/{} > Antisyst/{}'
- Soubory je třeba ještě přejmenovat a zároveň změnit
doc.id
na nový název souboru. Výsledek bude v adresářisource-rename
. Dále už pracujeme v něm. - Je třeba vytahat z dokumentů metainformace pro databázi. Metainformace z tagu
<doc>
se načtou a<doc>
se přepíše tak, že obsahuje jenid
(tohle není úplně nutné - můžou tam zůstat i ostatní metainformace). Tag<text>
se přepíše tak, aby se mohl použít, tj.- upraví se
id
– před původníid
docu se předřadíonline_
- kromě
id
se ponecháauthor
,resource
asubject
subject
se přejmenuje natitle
(pozor na prázdné subjekty)- metainformace se uloží do databáze
- Zpracované soubory jsou v adresářích
xml-PB
(politický bulvár),xml-anti
,xml-bulvar
axml-nazor
(názorové deníky). - Je třeba odstranit (kde to jde) entitu
&symbol;
:cd .../xml-anti for ff in *.xml; do perl -pe 's/( &symbol;)+([ ,\.\!\?;\)])/$2/g' $ff \ | perl -pe 's/^&symbol; //' > ~/cnk-work/Frazeologie/Online/Antisyst-slovak/orig-mix/$ff; done
- Dále je třeba odpreparovat slovenské texty. K tomu slouží program
remove-slovak.pl
:cd .../orig-mix ls -S | parallel --compress --tmpdir /store/tmp/ -j40 "echo {}; remove-slovak.pl {} ../orig ../orig-slovak < {}"
anebo metoda ŽAVES
cd .../Antisyst grep -v "(Biľak|Ľubo)" * | grep "[ľĺŕô]" | cut -f1 -d':' | sort -u > ../slovak.txt for ff in $(cat ../slovak.txt); do rm $ff; done
- Z xml-vertikál je zapotřebí udělat klasické
XML
, ze kterého budeme dělatin-utf8
:cd .../orig-vrt cut -f1 zvedavec.org_2022-02-26.xml | tr "\n" " " | perl -pe "s: <g/> ::g" | perl -pe "s/ </\n</g" \ | perl -pe "s/> />\n/g" > ../orig/zvedavec.org_2022-02-26.xml
- Obojí se dělalo v adresáři
/home/skoumal/cnk-work/Frazeologie/Online
, je třeba to přesunout zpátky do PROJEKTǓ
Anotace
- Postupuje se jako obvykle:
xmltostandoff.py
,process_text.sh
aprocess_kolok.sh
:process_kolok.sh -s vert-kolok -v -p40
- Chceme-li přidat pro porovnání anotaci LEMURem, provedeme lemurizaci na výsledné vertikále. Musíme ale utrhnout anotaci kolokací (musíme vytvořit adresář
vert-kolok-merged
):mkdir -p mwe-in mkdir -p mwe-out parallel-filter.sh -C "cut -f1-6" -s vert-rules0-frazrl-rules-mdita-kolok-sublm-agr/ -t mwe-in/ -p100 -v mwe_tagger -b -i mwe-in -o mwe-out -c -n 100 -t -m /cnk/work/skoumal/LEMUR/model-250321.msgpack cd vert-rules0-frazrl-rules-mdita-kolok-sublm-agr for ff in *; do echo $ff; paste <(cut -f1-6 $ff) <(cut -f7 $ff) <(cut -f8 $ff) <(cut -f7- ../mwe-out/$ff) \ | perl -pe 's/[\t]+$//' > ../vert-kolok/${ff%.txt}.vrt; done
nebo paralelně:
ls | parallel -j100 "echo {}; paste <(cut -f1-6 {}) <(cut -f7 {}) <(cut -f8 {}) <(cut -f7- ../mwe-out/{}) \ | perl -pe 's/[\t]+$//' > ../vert-kolok/{.}.vrt"
- Dále použijeme Vondřičkovy skripty. Musíme si ale připravit vlastní konfigurační soubor:
cp -p /usr/local/corp/xml2standoff/ann2standoff.ini .
a do něj přidat tyto řádky:
[frantalemur] attributes = sword,lemma,sublemma,tag,verbtag,col_lemma,col_type,mwe_lemma
Pak můžeme použít skripty:
cd vert-kolok for ff in ../orig/*.txt; do ln -s $ff; done for ff in ../orig/*.json; do ln -s $ff; done for ff in ../orig/*.xml; do ln -s $ff; done parallel-mask.sh -C "ann2standoff -c /cnk/work/skoumal/LEMUR/ann2standoff.ini -p frantalemur -P none" -m ".*\.vrt" -v -p45 -d. parallel-mask.sh -C "standoff2xml " -m ".*\.txt$" -v -p100 -d. for ff in *.ann.xml; do xml2vrt -c /cnk/work/skoumal/LEMUR/ann2standoff.ini -p frantalemur -g g $ff; done \ > /cnk/common/korpus/vertikaly/frap-totalita/vertikala
- Anotace Frantou se dělá stejně jako u SYNů.
- Anotace LEMURem je posána na stránce TAČRu.
Kompilace korpusu
- Předpokládáme, že máme anotovaný text a správné hlavičky (s naší sadou metadat).
- Je potřeba nachystat data do jednoho adresáře a potom udělat tyto kroky:
- Slepit sloupce:
cd vert-rules0-frazrl-rules-mdita-kolok-sublm-agr for ff in *; do echo $ff; paste ../mwe-in/$ff <(cut -f 7 $ff) <(cut -f 8 $ff) <(cut -f 7- ../mwe-out/$ff) > ../vert-kolok/${ff%.txt}.vrt; done
nebo paralelně:
ls | parallel -j100 "echo {}; paste ../mwe-in/{} <(cut -f 7 {}) <(cut -f 8 {}) <(cut -f 7- ../mwe-out/{}) > ../vert-kolok/{.}.vrt"
- Udělat linky:
cd .../vert-kolok for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.txt; done for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.json; done for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.xml; done
- Vyrobit
.ann.json
z anotace:cd .../vert-kolok parallel-mask.sh -C "ann2standoff -c /cnk/work/skoumal/LEMUR/ann2standoff.ini -p frantalemur -P none" -m ".*\.vrt" -v -p45 -d.
- Vyrobit
.ann.xml
:parallel-mask.sh -C "standoff2xml" -m ".*\.txt$" -v -p45 -d.
- Vyrobit vertikálu:
mkdir /cnk/common/korpus/vertikaly/frap-synv13-pub (for ff in *.ann.xml; do >&2 echo $ff; xml2vrt -c /cnk/work/skoumal/LEMUR/ann2standoff.ini -p frantalemur -e hi $ff; done \ > /cnk/common/korpus/vertikaly/frap-synv13-pub/vertikala) 2> ../xml2vrt.err
Statistiky
Četnost kolokačních lemmat
Vytvoříme frekvenční seznamy v různých korpusech (viz web projektu). Seznamy uložíme jako CSV
a vytvoříme čisté (bez uvozovek) TSV
.
- Seznamy pro porovnání vytvoříme takto:
join -e0 -a1 -a2 -t " " <(sort kolokace-Totalita-240509.tsv) -o auto <(sort kolokace-SYN2020-240509.tsv) \ | join -e0 -a1 -a2 -t " " - -o auto <(sort kolokace-Antisyst-240509.tsv) > kolokace-join-240509.tsv
- Import do spreadsheetu:
- zaškrtnout oddělovač
TAB
- vybrat češtinu
- záhlaví:
Totalita SYN2020 Antisyst col_lemma freq ipm freq ipm freq ipm
- oddělit záhlaví v LibreOffice: vybrat první buňku s daty a z menu vybrat
View
—>Freeze Rows and Columns
- sloupce s čísly zformátovat česky
- buňky s chybějící hodnotou vyplnit 0 (kvůli sortění)