plint

French poetry validator
git clone https://a3nm.net/git/plint/
Log | Files | Refs | README

commit 446d57781d8d1934f6572fe0c0b66fb475094a8b
parent 2bd9df4ef0eea5b0e62de57eb82ec671872533f1
Author: Antoine Amarilli <a3nm@a3nm.net>
Date:   Sun, 27 Jul 2014 15:18:30 +0200

extract length from littre

Diffstat:
littre/additions_poesie | 14++++++++++++++
littre/additions_vers | 16++++++++++++++++
littre/compare_plint.py | 28++++++++++++++++++++++++++++
littre/littre_syll.sh | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
littre/raw.tpl | 2++
5 files changed, 115 insertions(+), 0 deletions(-)

diff --git a/littre/additions_poesie b/littre/additions_poesie @@ -0,0 +1,14 @@ +ACACIA%a-ka-sia ; de trois OU quatre syllabes en poésie +ADJURATION%dju-ra-sion ; en poésie, de quatre syllabes +APOSTAT%a-po-sta ; en poésie, de trois syllabes +DJURATION%dju-ra-sion ; en poésie, de quatre syllabes +AÉRIEN, ENNE%a-é-riin, riè-n' ; en poésie, de quatre syllabes +AFFECTION%a-fè-ksion ; de quatre syllabes en poésie +ALTÉRATION%al-té-ra-sion ; en poésie, de cinq syllabes +ALTIER, IÈRE%al-tié, tiê-r' ; en poésie, de deux syllabes +CAPTATION%ka-pta-sion ; en poésie, de quatre syllabes +COALITION%ko-a-li-sion ; en poésie, de cinq syllabes +CONDITION%kon-di-sion ; en poésie, de quatre syllabes +CONSCRIPTION%kon-skri-psion ; en poésie, de quatre syllabes +HARNAIS ou HARNOIS%har-nê ; en poésie, de deux syllabes +SANGLIER%san-gli-é ; de deux OU trois syllabes en poésie diff --git a/littre/additions_vers b/littre/additions_vers @@ -0,0 +1,16 @@ +ACADÉMICIEN%a-ka-dé-mi-siin ; de cinq OU six syllabes en vers +AVANT-HIER%a-van-tièr ; de trois syllabes en vers +BROC%bro ; de une syllabes en vers +DIABLE%dia-bl' ; de deux syllabes en vers +EXÉCUTION%è-gzé-ku-sion ; de cinq syllabes en vers +GUÈRE ou GUÈRES%ghê-r'. de une syllabe en vers +JUSQUE et JUSQUES%ju-sk'. de une syllabe en vers +MISSIONNAIRE%mi-sio-nê-r' ; en vers, de quatre syllabes +RÉFUSION%ré-fu-zion ; en vers, de quatre syllabes +RÉMUNÉRATION%ré-mu-né-ra-sion ; en vers, de six syllabes +SOUHAITABLE%souè-ta-bl' ; en vers, de trois syllabes +SOUHAITÉ, ÉE%souè-té, tée ; en vers, de trois syllabes +SOUHAITER%souè-té ; en vers, de trois syllabes +STOÏCIEN, IENNE%sto-i-siin, siè-n' ; en vers, de quatre syllabes +SUPPLICATION%su-pli-ka-sion ; en vers, de cinq syllabes +VIELLE%viè-l' ; en vers, de deux OU trois syllabes diff --git a/littre/compare_plint.py b/littre/compare_plint.py @@ -0,0 +1,28 @@ +#!/usr/bin/python3 + +"""compare file from littre and file from plint for disagreements""" + +import sys + +plint = open(sys.argv[1]) +littre = open(sys.argv[2]) + +while True: + l_plint = plint.readline() + if not l_plint: + break + l_littre = littre.readline() + w_plint, p_plint = l_plint.split('%') + w_littre, p_littre = l_littre.split('%') + p_littre = int(p_littre) + assert(w_plint == w_littre) + w = w_plint + if '-' in p_plint: + lo, hi = p_plint.split('-') + lo = int(lo) + hi = int(hi) + else: + lo = int(p_plint) + hi = lo + if not (lo <= p_littre <= hi): + print ("%s : %d vs %d-%d" % (w, p_littre, lo, hi)) diff --git a/littre/littre_syll.sh b/littre/littre_syll.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# extract prononciation from xmllittre +# https://bitbucket.org/Mytskine/xmlittre-data.git + +xmlstarlet sel -t -m "//entree" -v "@terme" -v "\"%\"" \ + -v "entete/prononciation" -n "$1"/*.xml > prons +cat prons | grep -E "(syllabes en poésie|en poésie,? de)" > prons_poesie +cat prons | grep -E "(en vers,? de|syllabes en vers)" > prons_vers +cat additions_poesie additions_vers prons_poesie prons_vers | + awk 'BEGIN {FS = "%";} !a[$1]++;' | + while read l; do + echo "$l" | cut -d '%' -f 1 | cut -d ' ' -f 1 | tr -d '\n' + echo -n '%' + echo "$l" | cut -d '%' -f 2- | tr ' ' '\n' | + sed ' + s/^une$/1/; + s/^deux$/2/; + s/^trois$/3/; + s/^quatre$/4/; + s/^cinq$/5/; + s/^cinç$/5/; + s/^six$/6/; + s/^sept$/7/; + s/^disylla.*$/2/; + s/^trisylla.*$/3/; + ' | grep '[0-9]' | head -1 + done > prons_special + +pv prons | + grep -v '%$' | + grep -v ' .*%' | + awk 'BEGIN {FS = "%";} !a[$1]++;' | + while read l; do + echo "$l" | cut -d '%' -f 1 | cut -d ' ' -f 1 | tr -d '\n' + echo -n '%' + echo "$l" | cut -d '%' -f 2- | sed 's/ *- */-/g' | cut -d ' ' -f 1 | tr -d ',' | + sed "s/-[^aâàeéêèiîoôuùûäëïöü-]*'//" | tr '-' '\n' | wc -l + done > prons_normal + +pv prons_special prons_normal | + awk 'BEGIN {FS = "%";} !a[$1]++;' | + tr -d ',' | sort | grep -v '^%' | sed 's/.*/\L&/' > prons_num + +pv prons_num | cut -d '%' -f1 | + ../plint.py raw.tpl 2>&1 | + grep 'total:' | cut -d ':' -f4 | + cut -d ')' -f1 > plint_raw_nums + +paste <(cat prons_num| cut -d'%' -f1) plint_raw_nums | + tr '\t' '%' | sed 's/ *% */%/' \ + > plint_num + +./compare_plint.py plint_num prons_num > conflicts + diff --git a/littre/raw.tpl b/littre/raw.tpl @@ -0,0 +1,2 @@ +! +12 A X