commit 9fcc31862718ffc0225f742167b6055fdd9b279b
parent 7e705b5c19e761cd860a5ae5a2a51240c62753f3
Author: Antoine Amarilli <a3nm@a3nm.net>
Date: Wed, 14 Aug 2019 17:14:02 +0200
cleanup
Diffstat:
15 files changed, 177 insertions(+), 168 deletions(-)
diff --git a/lexique_comparison/count_syllables_lexique.py b/lexique_comparison/count_syllables_lexique.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python3
+
+# count the number of syllables of words according to lexique
+
+import sys
+
+vowels = "ae$E2@#u)9ioO(y"
+consonants = "dpgmtRwszlbkZjknfvSNJx8"
+
+for l in sys.stdin.readlines():
+ f = l.strip().split("\t")
+ nsyl = 0
+ for a in f[1]:
+ if a in vowels:
+ nsyl += 1
+ elif a in consonants:
+ pass
+ else:
+ print("unknown phoneme %s" % a, file=sys.stderr)
+ sys.exit(1)
+ # workaround bug in lexique
+ if f[1].endswith("@") and f[0] != "afin de":
+ nsyl -= 1
+ print("%s\t%d" % (f[0], nsyl))
+
diff --git a/lexique_comparison/count_syllables_plint.py b/lexique_comparison/count_syllables_plint.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python3
+
+import os
+import sys
+
+# modules are in the parent folder
+sys.path.insert(1, os.path.join(sys.path[0], '..'))
+
+from plint import template, verse, rhyme
+
+templateobj = template.Template()
+patternobj = template.Pattern("12")
+
+for l in sys.stdin.readlines():
+ w = (l.strip().split("\t"))[0]
+ v = verse.Verse(w, templateobj, patternobj)
+ rhymeobj = rhyme.Rhyme(v.normalized,
+ patternobj.constraint, templateobj.mergers, templateobj.options)
+ v.phon = rhymeobj.phon
+ v.annotate()
+ mx = 0
+ mn = 0
+ for c in v.chunks:
+ if 'weights' in c.keys():
+ mn += min(c['weights'])
+ mx += max(c['weights'])
+ print("%s\t%d\t%d" % (w, mn, mx))
+
diff --git a/littre/.gitignore b/littre/.gitignore
@@ -0,0 +1,9 @@
+conflicts
+plint_num
+plint_raw_nums
+prons
+prons_normal
+prons_num
+prons_poesie
+prons_special
+prons_vers
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
diff --git a/plint/lexique_comparison/count_syllables_lexique.py b/plint/lexique_comparison/count_syllables_lexique.py
@@ -1,25 +0,0 @@
-#!/usr/bin/python3
-
-# count the number of syllables of words according to lexique
-
-import sys
-
-vowels = "ae$E2@#u)9ioO(y"
-consonants = "dpgmtRwszlbkZjknfvSNJx8"
-
-for l in sys.stdin.readlines():
- f = l.strip().split("\t")
- nsyl = 0
- for a in f[1]:
- if a in vowels:
- nsyl += 1
- elif a in consonants:
- pass
- else:
- print("unknown phoneme %s" % a, file=sys.stderr)
- sys.exit(1)
- # workaround bug in lexique
- if f[1].endswith("@") and f[0] != "afin de":
- nsyl -= 1
- print("%s\t%d" % (f[0], nsyl))
-
diff --git a/plint/lexique_comparison/count_syllables_plint.py b/plint/lexique_comparison/count_syllables_plint.py
@@ -1,28 +0,0 @@
-#!/usr/bin/python3
-
-import os
-import sys
-
-# modules are in the parent folder
-sys.path.insert(1, os.path.join(sys.path[0], '..'))
-
-from plint import template, verse, rhyme
-
-templateobj = template.Template()
-patternobj = template.Pattern("12")
-
-for l in sys.stdin.readlines():
- w = (l.strip().split("\t"))[0]
- v = verse.Verse(w, templateobj, patternobj)
- rhymeobj = rhyme.Rhyme(v.normalized,
- patternobj.constraint, templateobj.mergers, templateobj.options)
- v.phon = rhymeobj.phon
- v.annotate()
- mx = 0
- mn = 0
- for c in v.chunks:
- if 'weights' in c.keys():
- mn += min(c['weights'])
- mx += max(c['weights'])
- print("%s\t%d\t%d" % (w, mn, mx))
-
diff --git a/plint/littre/additions_poesie b/plint/littre/additions_poesie
@@ -1,14 +0,0 @@
-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/plint/littre/additions_vers b/plint/littre/additions_vers
@@ -1,16 +0,0 @@
-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/plint/littre/compare_plint.py b/plint/littre/compare_plint.py
@@ -1,28 +0,0 @@
-#!/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/plint/littre/littre_syll.sh b/plint/littre/littre_syll.sh
@@ -1,55 +0,0 @@
-#!/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/plint/littre/raw.tpl b/plint/littre/raw.tpl
@@ -1,2 +0,0 @@
-!
-12 A X