| Comment: | [fr] thesaurus builder (merging synsets) |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk | fr |
| Files: | files | file ages | folders |
| SHA3-256: |
e67b500b7b8adbee2249ac560668cb88 |
| User & Date: | olr on 2019-06-26 18:54:17 |
| Other Links: | manifest | tags |
|
2019-06-26
| ||
| 23:06 | [fr] update thésaurus check-in: 4c57a4f8ce user: olr tags: trunk, fr | |
| 18:54 | [fr] thesaurus builder (merging synsets) check-in: e67b500b7b user: olr tags: trunk, fr | |
| 09:52 | [fr] faux positifs et ajustements check-in: 6d9ee21a54 user: olr tags: trunk, fr | |
Modified gc_lang/fr/dictionnaire/genfrdic.py from [4b330e0ec5] to [05828a16a3].
| ︙ | ︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
from distutils import dir_util
from distutils import file_util
from string import Template
import metagraphe
import metaphone2
# Dictionnaire des caractères pour le tri naturel.
# Ordre souhaitable, mais pose problème pour la recherche, car engendre des égalités de lemmes différents.
# Il faut donc travailler sur un dictionnaire trié *numériquement* et le sauvegarder selon le tri *naturel*
CHARMAP = str.maketrans({ 'à': 'a', 'À': 'A', 'â': 'a', 'Â': 'A', 'ä': 'a', 'Ä': 'A', 'å': 'a', 'Å': 'A', 'ā': 'a', 'Ā': 'A',
'ç': 'c', 'Ç': 'C',
| > | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
from distutils import dir_util
from distutils import file_util
from string import Template
import metagraphe
import metaphone2
import thes_build
# Dictionnaire des caractères pour le tri naturel.
# Ordre souhaitable, mais pose problème pour la recherche, car engendre des égalités de lemmes différents.
# Il faut donc travailler sur un dictionnaire trié *numériquement* et le sauvegarder selon le tri *naturel*
CHARMAP = str.maketrans({ 'à': 'a', 'À': 'A', 'â': 'a', 'Â': 'A', 'ä': 'a', 'Ä': 'A', 'å': 'a', 'Å': 'A', 'ā': 'a', 'Ā': 'A',
'ç': 'c', 'Ç': 'C',
|
| ︙ | ︙ | |||
564 565 566 567 568 569 570 |
#file_util.copy_file('_templates/ooo/dictionaries.xcu.tpl.xml', spExt)
copyTemplate('_templates/ooo', spExt, 'package-description.txt', dTplVars)
for dVars in lDictVars:
dicPath = spBuild + '/' + PREFIX_DICT_PATH + self.sVersion
file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.dic', spExt+'/dictionaries/'+dVars['asciiName']+'.dic')
file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.aff', spExt+'/dictionaries/'+dVars['asciiName']+'.aff')
copyTemplate('orthographe', spExt+'/dictionaries', 'README_dict_fr.txt', dTplVars)
| < < < < | 565 566 567 568 569 570 571 572 573 574 575 576 577 578 |
#file_util.copy_file('_templates/ooo/dictionaries.xcu.tpl.xml', spExt)
copyTemplate('_templates/ooo', spExt, 'package-description.txt', dTplVars)
for dVars in lDictVars:
dicPath = spBuild + '/' + PREFIX_DICT_PATH + self.sVersion
file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.dic', spExt+'/dictionaries/'+dVars['asciiName']+'.dic')
file_util.copy_file(dicPath+'/'+dVars['asciiName']+'.aff', spExt+'/dictionaries/'+dVars['asciiName']+'.aff')
copyTemplate('orthographe', spExt+'/dictionaries', 'README_dict_fr.txt', dTplVars)
# hyphenation
file_util.copy_file('césures/hyph_fr.dic', spExt+'/dictionaries')
file_util.copy_file('césures/hyph_fr.iso8859-1.dic', spExt+'/dictionaries')
file_util.copy_file('césures/frhyph.tex', spExt+'/dictionaries')
file_util.copy_file('césures/hyph-fr.tex', spExt+'/dictionaries')
file_util.copy_file('césures/README_hyph_fr-3.0.txt', spExt+'/dictionaries')
file_util.copy_file('césures/README_hyph_fr-2.9.txt', spExt+'/dictionaries')
|
| ︙ | ︙ | |||
1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 |
with open(sPathFile, 'w', encoding='utf-8', newline="\n") as hDst:
for t in self.lLex:
hDst.write(str(t)+"\n")
for e in self.dFlexions.items():
hDst.write("{} - {}\n".format(e[0], e[1]))
def main ():
xParser = argparse.ArgumentParser()
xParser.add_argument("-v", "--verdic", help="set dictionary version, i.e. 5.4", type=str, default="X.Y.z")
xParser.add_argument("-m", "--mode", help="0: no tags, 1: Hunspell tags (default), 2: All tags", type=int, choices=[0, 1, 2], default=1)
xParser.add_argument("-u", "--uncompress", help="do not use Hunspell compression", action="store_true")
xParser.add_argument("-s", "--simplify", help="no virtual lemmas", action="store_true")
| > > > > > > > > > > > > | 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 |
with open(sPathFile, 'w', encoding='utf-8', newline="\n") as hDst:
for t in self.lLex:
hDst.write(str(t)+"\n")
for e in self.dFlexions.items():
hDst.write("{} - {}\n".format(e[0], e[1]))
def createThesaurusPackage (spBuild, sVersion, spCopy=""):
print("Création du thésaurus")
spThesaurus = spBuild+"/thesaurus-v"+sVersion
dir_util.mkpath(spThesaurus)
thes_build.build("thesaurus/thes_fr.dat", "thesaurus/synsets_fr.dat", spThesaurus)
file_util.copy_file('thesaurus/README_thes_fr.txt', spThesaurus)
if spCopy:
# copy in libreoffice extension package
file_util.copy_file(spThesaurus+'/thes_fr.dat', spCopy)
file_util.copy_file(spThesaurus+'/thes_fr.idx', spCopy)
file_util.copy_file(spThesaurus+'/README_thes_fr.txt', spCopy)
def main ():
xParser = argparse.ArgumentParser()
xParser.add_argument("-v", "--verdic", help="set dictionary version, i.e. 5.4", type=str, default="X.Y.z")
xParser.add_argument("-m", "--mode", help="0: no tags, 1: Hunspell tags (default), 2: All tags", type=int, choices=[0, 1, 2], default=1)
xParser.add_argument("-u", "--uncompress", help="do not use Hunspell compression", action="store_true")
xParser.add_argument("-s", "--simplify", help="no virtual lemmas", action="store_true")
|
| ︙ | ︙ | |||
1554 1555 1556 1557 1558 1559 1560 |
oStatsLex.addLexFromFile('lexique/corpus_data/stats_google_ngram_1.txt', 'G', 'Google 1-grams')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_frwiki.txt', 'W', 'Wikipédia')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_frwikisource.txt', 'S', 'Wikisource')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_litterature.txt', 'L', 'Littérature')
oStatsLex.write(spBuild+'/test_lex.txt')
oFrenchDict.calculateStats(oStatsLex, spfStats)
| | > > < | 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 |
oStatsLex.addLexFromFile('lexique/corpus_data/stats_google_ngram_1.txt', 'G', 'Google 1-grams')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_frwiki.txt', 'W', 'Wikipédia')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_frwikisource.txt', 'S', 'Wikisource')
oStatsLex.addLexFromFile('lexique/corpus_data/stats_litterature.txt', 'L', 'Littérature')
oStatsLex.write(spBuild+'/test_lex.txt')
oFrenchDict.calculateStats(oStatsLex, spfStats)
### Écriture des paquets
echo("Création des paquets...")
spLexiconDestGL = "../../../lexicons" if xArgs.grammalecte else ""
spLibreOfficeExtDestGL = "../oxt/Dictionnaires/dictionaries" if xArgs.grammalecte else ""
spMozillaExtDestGL = "" if xArgs.grammalecte else "" # no more Hunspell dictionaries in Mozilla extensions for now
spDataDestGL = "../data" if xArgs.grammalecte else ""
### dictionnaires
if not xArgs.uncompress:
oFrenchDict.defineAbreviatedTags(xArgs.mode, spfStats)
oFrenchDict.createFiles(spBuild, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], xArgs.mode, xArgs.simplify)
oFrenchDict.createLexiconPackages(spBuild, xArgs.verdic, oStatsLex, spLexiconDestGL)
oFrenchDict.createFileIfqForDB(spBuild)
createThesaurusPackage(spBuild, xArgs.verdic, spLibreOfficeExtDestGL)
oFrenchDict.createLibreOfficeExtension(spBuild, dMOZEXT, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], spLibreOfficeExtDestGL)
oFrenchDict.createMozillaExtensions(spBuild, dMOZEXT, [dTOUTESVAR, dCLASSIQUE, dREFORME1990], spMozillaExtDestGL)
oFrenchDict.createDictConj(spBuild, spDataDestGL)
oFrenchDict.createDictDecl(spBuild, spDataDestGL)
if __name__ == '__main__':
main()
|
Added gc_lang/fr/dictionnaire/thes_build.py version [34ec46a285].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# Thesaurus builder
import os
import re
def readFile (spf):
if os.path.isfile(spf):
with open(spf, "r", encoding="utf-8") as hSrc:
for sLine in hSrc:
yield sLine.strip()
else:
print("# Error. File not found or not loadable: " + spf)
class ThesaurusBuilder ():
def __init__ (self):
# synsets
self.dSynEntry = {} # {sWord: iSynset}
self.dSynset = {} # {iSynset: lSynset}
# thesaurus
self.dThesEntry = {} # {sWord: lWord}
def readSynsets (self, spf):
if not spf:
return
for i, sLine in enumerate(readFile(spf), 1):
sPOS, *lSynset = sLine.split("|")
lSynset = self._removeDuplicatesFrom(lSynset)
self.dSynset[i] = lSynset
for sWord in lSynset:
if not sWord.endswith("*"):
if sWord not in self.dSynEntry:
self.dSynEntry[sWord] = [ (sPOS, i) ]
else:
self.dSynEntry[sWord].append( (sPOS, i) )
def showSynsetEntries (self):
for sWord, lSynset in self.dSynEntry.items():
for sPOS, iSynset in lSynset:
print(sWord, sPOS, "|".join(self.dSynset[iSynset]))
def readThesaurus (self, spf):
if not spf:
return
genRead = readFile(spf)
sLine1 = next(genRead)
sEntry = ""
iEntryLine = 0
nClass = 0
nClassFound = 0
for i, sLine in enumerate(genRead, 2):
sLine = sLine.strip()
if re.search(r"^[^|]+\|[1-9][0-9]*$", sLine):
# new entry
if nClass != nClassFound:
print("Ligne:", iEntryLine, ", nombre de liste incorrect")
iEntryLine = i
sEntry, sNum = sLine.split("|")
self.dThesEntry[sEntry] = []
nClass = int(sNum)
nClassFound = 0
else:
# new list of synonyms
nClassFound += 1
sPOS, *lClass = sLine.split("|")
lClass = self._removeDuplicatesFrom(lClass)
self.dThesEntry[sEntry].append( (sPOS, lClass) )
def showThesaurusEntries (self):
for sWord, lClass in self.dThesEntry.items():
for sPOS, lWord in lClass:
print(sWord, sPOS, "|".join(lWord))
def _removeDuplicatesFrom (self, lWord):
return [ sWord.strip() for sWord in dict.fromkeys(lWord) ] # remove duplicates: use <dict.fromkeys()> instead of <set()> to keep order
def merge (self):
for sWord, lSynset in self.dSynEntry.items():
for sPOS, iSynset in lSynset:
if sWord in self.dThesEntry:
self.dThesEntry[sWord].append( (sPOS, self.dSynset[iSynset]) )
else:
self.dThesEntry[sWord] = [ (sPOS, self.dSynset[iSynset]) ]
def write (self, spDest):
nOffset = 0 # the offset for finding data is the number of bytes (-> encoding("utf-8"))
dOffset = {}
with open(spDest + "/thes_fr.dat", "w", encoding="utf-8", newline="\n") as hThes:
sHeader = "UTF-8\n"
hThes.write(sHeader)
nOffset = len(sHeader.encode("utf-8"))
for sWord, lClass in self.dThesEntry.items():
dOffset[sWord] = nOffset
sWordLine = sWord+"|"+str(len(lClass))+"\n"
hThes.write(sWordLine)
nOffset += len(sWordLine.encode("utf-8"))
for sPOS, lWord in lClass:
sClassLine = sPOS+"|"+"|".join(lWord)+"\n"
hThes.write(sClassLine)
nOffset += len(sClassLine.encode("utf-8"))
with open(spDest + "/thes_fr.idx", "w", encoding="utf-8", newline="\n") as hIndex:
hIndex.write("UTF-8\n")
hIndex.write(str(len(self.dThesEntry))+"\n")
for sWord, nOffset in sorted(dOffset.items()):
hIndex.write(sWord+"|"+str(nOffset)+"\n")
def build (spfThesaurus="", spfSynsets="", spDest="_build"):
oThes = ThesaurusBuilder()
oThes.readSynsets(spfSynsets)
#oThes.showSynsetEntries()
oThes.readThesaurus(spfThesaurus)
#oThes.showThesaurusEntries()
oThes.merge()
oThes.write(spDest)
if __name__ == '__main__':
build("thesaurus/thes_fr.dat", "thesaurus/synsets_fr.dat")
|
Deleted gc_lang/fr/dictionnaire/thesaurus/create_idx.py version [570f17f6e9].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Added gc_lang/fr/dictionnaire/thesaurus/synsets_fr.dat version [d79a3cf0cc].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | (nom)|aigreur|indignation|rancœur|rancune|dépit|ressentiment|amertume|acrimonie|antipathie|colère (nom)|arbre|végétal|baliveau|tige|buisson|feuillu|résineux|arbuste|résinifère|tronc (nom)|assemblée|communauté|confrérie|sororité|collectivité|compagnie|association|corporation|congrégation|clergé|coterie|loge|corps|Église|ordre|groupe|société (nom)|atout|carte-maîtresse|carte-maitresse|as|joker (nom)|âtre|feu|foyer|cheminée|réchaud|fourneau|chaufferette|brasero|chauffe-plat|tison|brasier|fournaise|chauffage|haut-fourneau|four (nom)|axe|pivot|essieu|manivelle|bielle|embiellage|pivot|charnière|balancier|bras|arbre|transmission (nom)|bordel|foutoir|chantier|désordre|galère|merdier|merde|bazar (nom)|cadavre|défunt|mort|trépassé|esprit|spectre|âme|décédé|victime|dépouille|défunt|tué|disparu|martyr|souffre-douleur|corps (verb)|capitulez|rendez-vous|acceptez|abandonnez|renoncez|repliez-vous|agenouillez-vous|soumettez-vous (adj)|certain|indiscutable|indubitable|concret|positif|précis|net|patent|effectif|solide|sûr|sérieux|visible (adj)|charnel|sexuel|physiologique|organique|physique (nom)|chef|maître|maitre|responsable|dirigeant|patron|commandant|directeur|supérieur|leader|meneur|propriétaire|employeur|dictateur|tyran (nom)|chocolatine|pain au chocolat (nom)|clé|clef|rossignol|crochet|sésame|carouble|accès|passe|mot de passe|passe-partout (nom)|colère|courroux|animosité|irritation|humeur|malveillance|inimitié|agressivité|haine|emportement|véhémence|ire|rage|exaspération|impatience|déchaînement|explosion|crise|irritation (adj)|commun|ordinaire|normal|vulgaire|général|quelconque|terne|habituel|insignifiant|universel|global|consensuel|léger|vague (adj)|concret|palpable|réel|matériel|corporel|physique|tangible|visible|solide (nom)|conjonction|coïncidence|jonction|association|entremêlement|réunion|rendez-vous (nom)|créateur|maître|maitre|dieu|divinité|déité|démiurge|verbe|idole|logos|éternel|père|artiste|maestro|virtuose|répétiteur|musicien (nom)|destruction|combustion|calcination|incendie|incinération|oxydation|déflagration|flamboiement|ignition|sinistre|feu (nom)|disparu|mort|décédé|trépassé|défunt|tué|passé|oublié|feu (nom)|douleur|feu|brûlure|aigreur|ampoule|cloque|inflammation|irradiation|irritation|insolation|ulcération|rougeur|enfer|souffrance (nom)|église|temple|mosquée|synagogue|cathédrale|cloître|chapelle|couvent|abbatiale|monastère|oratoire|sanctuaire|asile|basilique|ziggourat|presbytère|monument mégalithique|fanum (nom)|entreprise|société|compagnie|holding|groupe|corporation|SARL|SA (nom)|épée|sabre|katana|lame|rapière|cimeterre|yatagan|kriss|coupe-chou|glaive|poignard|dague|couteau|fleuret (nom)|escrime|épéisme (nom)|excrément|merde|selles|bouse|crottin|crotte|caca (nom)|famille|lignage|foyer|maison|ménage|dynastie|descendance|progéniture|généalogie|souche|parentèle|race|sang|extraction|lignée|parenté|postérité|ascendance|filiation|racine|tronc|tige|branche (nom)|fin|achèvement|extrémité|limite|terme|terminaison|terminus|queue|aboutissement|issue|épilogue|conclusion|dénouement|mort (adj)|flou|vague|incertain|indistinct|indécis|brouillé|nébuleux|équivoque|confus|indéterminé|imprécis|obscur|douteux|ténébreux|ambigu|indéfini|vaporeux|brumeux|clair-obscur|évasif|imperceptible|incompréhensible|indiscernable|lâche|indéfinissable|abstrait|sombre|imparfait|approximatif|fumeux|fuligineux|délayé|inclassable|indéterminable|trouble|voilé|sibyllin|nuageux|estompé|inconsistant|diffus (adj)|fluctuant|ondulant|changeant|fuyant|inconstant|flottant|vague (nom)|force|puissance|énergie|attraction|gravitation|pénétration|portée|effet|ampleur|intensité|amplitude|étendue|immensité|importance|impact|efficacité (adj)|foutu|râpé|terminé|fini|déglingué|mort (adj)|hésitant|irrésolu|indécis|perplexe|inexpressif|atone|froid|négligé|vague (adj)|inanimé|inerte|inactif|crevé|épuisé|immobile|stagnant|dormant|marécageux|stationnaire|mort (nom)|lumière|feu|flamme|lanterne|fanal|flambeau|phare|flammes|flambée|flammèche|éblouissement|éclat|étincelle|embrasement|lueur|lumière|clarté|rayon|scintillement|éclair|illumination|fulgurance|luisance|phosphorescence|falot (nom)|maladie|mal|crève|grippe|mort (interj)|marre|assez|ça suffit|ras le bol|j’en peux plus (nom)|matériel|outilllage|fourbi|attirail|barda|matériau|outil|mobilier|équipement|machine|matos|appareillage|instrument|hardware (nom)|mentor|maître|maitre|enseignant|éducateur|initiateur|expert|savant|précepteur|formateur|professeur|pion|surveillant|éveilleur|instructeur|moniteur|pédagogue|instituteur|entraîneur|gourou (nom)|mort|décès|trépas|agonie|glas|meurtre|anéantissement|disparition|extinction|consommation|suicide|assassinat|fin (nom)|noblesse|excellence|sagesse|expérience|plénitude|profondeur|grandeur|élévation|mérite|valeur|maturité|force (nom)|ordinateur|calculateur|machine|PC|calculatrice|micro-ordinateur|unité centrale|station|terminal|bécane|computer|tour|portable|ordinant|robot|androïde|gynoïde|marionnette|automate (nom)|passion|feu|ardeur|fanatisme|emballement|délire|exaltation|ferveur|fièvre|frénésie|fureur|impétuosité|flamme|élan (nom)|pouvoir|autorité|grâce|grandeur|gloire|domination|présence|charisme|influence|ascendant|stature|assurance|impassibilité|force (nom)|prostituée|pute|catin|putain|péripatéticienne|hétaïre|courtisane|geisha|asphalteuse|belle-de-nuit|demi-mondaine|femme de mauvaise vie|femme publique|fille publique|fille de joie|fille de mauvaise vie|fille des rues|fleur de macadam|michetonneuse|poule|professionnelle|raccrocheuse|racoleuse|ribaude|sirène|tapineuse|traînée|trimardeuse|turfeuse|bagasse|cocotte|sirène (nom)|réalité|réel|matériel|matériau|nature (nom)|religion|confession|culte|croyance|Église (nom)|rendez-vous|rancard|rancart|rencard|tête-à-tête|entretien|entrevue|audience|assignation|convocation|réunion|rencontre|match (nom)|résistance|endurance|dureté|fermeté|invulnérabilité|inflexibilité|solidité|robustesse|patience|force (nom)|sang|hémoglobine|plasma|sérum|cruor|sève|fluide vital (nom)|seigneur|maître|maitre|roi|prince|empereur|monarque|majesté|magister|régent|sieur|sire|suzerain|hobereau|souverain|châtelain|paladin|aristocrate|franc-maçon|juge (nom)|signal|drapeau|balise|déclencheur|déclic|signalement|alarme|feu|alerte (nom)|solution|clé|clef|point-clé|réponse|conclusion|dénouement (nom)|vague|onde|flot|vaguelette|ressac|marée|lame|flux|reflux|afflux|courant|eau|déferlement|torrent|onde de choc|raz-de-marée|houle|roulis|rut|rush|remous|déferlante|rouleau|fluctuation|déluge|pluie|ondée (nom)|vigueur|activité|dynamisme|énergie|force|enthousiasme|sang (nom)|vigueur|fougue|sève|activité|sang|tonicité|tonus|punch|verdeur|jeunesse|élan|ressort|impétuosité|dynamisme|impulsivité|vitalité|ardeur|virulence|véhémence|exaltation|force (nom)|violence|force|tyrannie|despotisme|contrainte|oppression (nom)|volonté|courage|audace|cran|détermination|constance|persévérance|résolution|ténacité|trempe|acharnement|persistance|force |
Modified gc_lang/fr/modules/conj_data.py from [f9502006bf] to [79483966f2].
cannot compute difference between binary files
Modified gc_lang/fr/modules/phonet_data.py from [07fb54d0a8] to [b720d5cd9f].
cannot compute difference between binary files
Modified gc_lang/fr/oxt/Dictionnaires/dictionaries/fr-classique.aff from [d85769e650] to [793d991f9c].
1 2 3 4 5 6 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “CLASSIQUE” v6.4.1 # par Olivier R. -- licence MPL 2.0 | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “CLASSIQUE” v6.4.1 # par Olivier R. -- licence MPL 2.0 # Généré le 26-06-2019 à 20:44 # Pour améliorer le dictionnaire, allez sur https://grammalecte.net/ SET UTF-8 WORDCHARS -’'1234567890. |
| ︙ | ︙ |
Modified gc_lang/fr/oxt/Dictionnaires/dictionaries/fr-reforme1990.aff from [7ec124d4b1] to [91b4b5b4c4].
1 2 3 4 5 6 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “RÉFORME 1990” v6.4.1 # par Olivier R. -- licence MPL 2.0 | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “RÉFORME 1990” v6.4.1 # par Olivier R. -- licence MPL 2.0 # Généré le 26-06-2019 à 20:44 # Pour améliorer le dictionnaire, allez sur https://grammalecte.net/ SET UTF-8 WORDCHARS -’'1234567890. |
| ︙ | ︙ |
Modified gc_lang/fr/oxt/Dictionnaires/dictionaries/fr-toutesvariantes.aff from [d531e86770] to [f217c056cf].
1 2 3 4 5 6 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “TOUTES VARIANTES” v6.4.1 # par Olivier R. -- licence MPL 2.0 | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # AFFIXES DU DICTIONNAIRE ORTHOGRAPHIQUE FRANÇAIS “TOUTES VARIANTES” v6.4.1 # par Olivier R. -- licence MPL 2.0 # Généré le 26-06-2019 à 20:44 # Pour améliorer le dictionnaire, allez sur https://grammalecte.net/ SET UTF-8 WORDCHARS -’'1234567890. |
| ︙ | ︙ |