Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [fr][core] découpage des phrases |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | core |
Files: | files | file ages | folders |
SHA3-256: | 119552d3ae74a7df9261dd8f412f178d |
User & Date: | olr 2019-04-11 21:00:34 |
Context
2019-04-12
| ||
05:42 | [fr] écriture épicène: màj avec puce +option idoine check-in: 324ab931ac user: olr tags: fr, trunk | |
2019-04-11
| ||
21:00 | [fr][core] découpage des phrases check-in: 119552d3ae user: olr tags: core, fr, trunk | |
2019-04-09
| ||
13:39 | [fr] màj: métagraphe, màj: dictionnaire check-in: bf49a78851 user: olr tags: fr, trunk | |
Changes
Changes to gc_core/js/lang_core/gc_engine.js.
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
//// Parsing
parse: function (sText, sCountry="${country_default}", bDebug=false, dOptions=null, bContext=false) {
let oText = new TextParser(sText);
return oText.parse(sCountry, bDebug, dOptions, bContext);
},
_zEndOfSentence: new RegExp ('([.?!:;…][ .?!… »”")]+|.$)', "g"),
_zBeginOfParagraph: new RegExp ("^[- –—.,;?!…]*", "ig"),
_zEndOfParagraph: new RegExp ("[- .,;?!…–—]*$", "ig"),
getSentenceBoundaries: function* (sText) {
let mBeginOfSentence = this._zBeginOfParagraph.exec(sText);
let iStart = this._zBeginOfParagraph.lastIndex;
let m;
|
| |
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
//// Parsing
parse: function (sText, sCountry="${country_default}", bDebug=false, dOptions=null, bContext=false) {
let oText = new TextParser(sText);
return oText.parse(sCountry, bDebug, dOptions, bContext);
},
_zEndOfSentence: new RegExp ('([.?!:;…][ .?!…»”")]+(?=[A-ZÉÈÎÔ])|.$)', "g"),
_zBeginOfParagraph: new RegExp ("^[- –—.,;?!…]*", "ig"),
_zEndOfParagraph: new RegExp ("[- .,;?!…–—]*$", "ig"),
getSentenceBoundaries: function* (sText) {
let mBeginOfSentence = this._zBeginOfParagraph.exec(sText);
let iStart = this._zBeginOfParagraph.lastIndex;
let m;
|
Changes to gc_core/py/lang_core/gc_engine.py.
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
"set options to default values"
global _dOptions
_dOptions = dict(gc_options.getOptions(_sAppContext))
#### Parsing
_zEndOfSentence = re.compile(r'([.?!:;…][ .?!… »”")]+|.$)')
_zBeginOfParagraph = re.compile(r"^\W*")
_zEndOfParagraph = re.compile(r"\W*$")
def _getSentenceBoundaries (sText):
iStart = _zBeginOfParagraph.match(sText).end()
for m in _zEndOfSentence.finditer(sText):
yield (iStart, m.end())
|
| |
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
"set options to default values"
global _dOptions
_dOptions = dict(gc_options.getOptions(_sAppContext))
#### Parsing
_zEndOfSentence = re.compile(r'([.?!:;…][ .?!…»”"’)]+(?=[A-ZÉÈÎÔ])|.$)')
_zBeginOfParagraph = re.compile(r"^\W*")
_zEndOfParagraph = re.compile(r"\W*$")
def _getSentenceBoundaries (sText):
iStart = _zBeginOfParagraph.match(sText).end()
for m in _zEndOfSentence.finditer(sText):
yield (iStart, m.end())
|
Changes to gc_lang/fr/rules.grx.
489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 .... 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 .... 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 .... 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 .... 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 ..... 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 ..... 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 |
<<- \0.__len__() == 4 ->> =\0.replace(".", "").upper() + "|" + \0[0:2] + " " + \0[2:4] # Sigle. Il est recommandé d’ôter les points pour les sigles. (S’il s’agit d’un prénom et d’un nom, mettez un espace.)|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- __else__ ->> =\0.replace(".", "").upper() # Sigle. Il est recommandé d’ôter les points pour les sigles.|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- \0 != "b.a." ~>> =\0.replace(".", "_") __[s>(p_sigle3)__ J[.]-[A-Z][.] <<- ~>> =\0.replace(".", "").replace("-","") # Ne pas scinder la phrase si les points de suspension sont suivis d’une minuscule __<s>(p_points_suspension)__ ({w1})(…)(?= [a-zéèêàâîô]) @@0,$ <<- not re.search("(?i)^etc", \1) ~2>> , # Mr et MM __[s>(p_M_point)__ (M[.]) (?:[A-ZÉÈÎ]\w*|l[e'’]) @@0 <<- ~1>> Mr __[s>(p_MM_point)__ MM[.] <<- ~>> "MM " __[s>(p_Mr_Mgr_Mme_point)__ M(?:r|gr|me) [A-ZÉ]([.])(?=\W+[a-zéèêâîïû]) @@$ <<- ~1>> * ................................................................................ <<- not morph(word(1), ";S") and not morph(word(-1), ":R") ->> " !" # Erreur de numérisation ? TEST: __ocr__ Oh{{ I}} c’est pas formidable ? TEST: __ocr__ Vraiment{{ 1}} Paul n’en savait rien. TEST: __ocr__ Ça prendra 1 h. TEST: __ocr__ Valeur : 1 KHz. # virgules __[s>/ocr(ocr_virgules)__ (?:[iI]l|l(?:es?|a)|[dnmtsDNMTS]e|[àÀ]|[cC]e(?:te|t|)|[mM](?:on|a)|[TS]a|[qQ]uelques?|[aA]ux?), <<- not /0.endswith("…") ->> =\0[:-1] # Erreur de numérisation ? Virgule superflue ? TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L TEST: __ocr__ je voudrais faire une question ou deux sur une maison de ce village, la… comment l’appelle-t-on ? # Nombres __[i]/ocr(ocr_nombres)__ [\dOI][\dOI]+ <<- \0 == "II" ->> 11|Il # Erreur de numérisation ? <<- __else__ and not \0.isdigit() ->> =\0.replace("O", "0").replace("I", "1") # Erreur de numérisation ? ................................................................................ !!! # Trait d’union conditionnel (u00AD) __[i](p_trait_union_conditionnel1)__ \w+‑\w+‑\w+ <<- ~>> =\0.replace("‑", "") __[i](p_trait_union_conditionnel2)__ \w+‑\w+ <<- ~>> =\0.replace("‑", "") # empêcher la scission en fin de dialogue __<s>(p_fin_dialogue1)__ ([?!…][?!… ]*)[ "'”» ]*, @@0 <<- ~1>> * __<s>(p_fin_dialogue2)__ ([?!…][?!… ]*)[ "'”» ]*[a-zéèêîô] @@0 <<- ~1>> , TEST: « Je suis donc perdu ? », dit Paul. TEST: “C’est bon !”, croit savoir Marie. TEST: “Parce que… ?” finit par demander Paul. TEST: « Dans quel pays sommes-nous ? » demanda un manifestant. ................................................................................ @@@@ @@@@ @@@@ @@@@ # This graph is parsed only if option <ocr> is activated. # âge / age __ocr_age__ >age <<- ->> =\1.replace("a", "â").replace("A", "Â") # Erreur de numérisation ? TEST: __ocr__ À son {{age}}, on ne sait plus ce qu’on fait. ................................................................................ # bien __sgpl_très_bien__ très biens <<- /sgpl/ -2>> bien # Adverbe ou adjectif, “bien” est invariable.|https://fr.wiktionary.org/wiki/bien TEST: Très {{biens}} connus des services de police, il leur fut difficile de passer entre les mailles du filet. # termes __sgpl_en_termes_de__ en terme [de|d’] <<- /sgpl/ -2>> termes # Dans la locution “en termes de”, mettez “terme” au pluriel. TEST: en {{terme}} de communication, c’est une véritable catastrophe ................................................................................ # !!!! Redondances dans la phrase !! __[i]/redon2(redondances_phrase)__ ({w_4})[ ,].* (\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>même/") -2>> _ # Dans cette phrase, répétition de « \1 » (à gauche). <<- __also__ -1>> _ # Dans cette phrase, répétition de « \1 » (à droite). TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}. TEST: __redon2__ ils sont là côte à côte. TEST: __redon2__ Tu avances petit à petit, et tu réussis. TEST: __redon2__ De loin en loin, elle passe. TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition) ................................................................................ TEST: en tâche de fond TEST: la tâche de la justice TEST: c’est une tâche de grande envergure TEST: déléguer des tâches de sécurité publique à des machines autonomes TEST: tirer bénéfice de nouvelles données en fonction de la tâche de départ qui leur a été assignée TEST: Les « pervenches » fonctionnaires seraient alors affectées à d’autres tâches de surveillance, notamment au sein de la nouvelle brigade anti-insécurité. TEST: une tâche de sélection des données __conf_tâche_tache__ tache [accomplie|dévalorisante|difforme|épuisante|exécutée|exténuante|fatigante|ingrate|menée|valorisante] taches [accomplies|dévalorisantes|difformes|épuisantes|exécutées|exténuantes|fatigantes|ingrates|menées|valorisantes] >tache >insoluble >tache consistant à |
< < < < < < < < < < < < < | < > > > > > > > > > > > > > > > > > > | | > |
489 490 491 492 493 494 495 496 497 498 499 500 501 502 .... 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 .... 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 .... 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 .... 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 ..... 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 ..... 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 |
<<- \0.__len__() == 4 ->> =\0.replace(".", "").upper() + "|" + \0[0:2] + " " + \0[2:4] # Sigle. Il est recommandé d’ôter les points pour les sigles. (S’il s’agit d’un prénom et d’un nom, mettez un espace.)|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- __else__ ->> =\0.replace(".", "").upper() # Sigle. Il est recommandé d’ôter les points pour les sigles.|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- \0 != "b.a." ~>> =\0.replace(".", "_") __[s>(p_sigle3)__ J[.]-[A-Z][.] <<- ~>> =\0.replace(".", "").replace("-","") # Mr et MM __[s>(p_M_point)__ (M[.]) (?:[A-ZÉÈÎ]\w*|l[e'’]) @@0 <<- ~1>> Mr __[s>(p_MM_point)__ MM[.] <<- ~>> "MM " __[s>(p_Mr_Mgr_Mme_point)__ M(?:r|gr|me) [A-ZÉ]([.])(?=\W+[a-zéèêâîïû]) @@$ <<- ~1>> * ................................................................................ <<- not morph(word(1), ";S") and not morph(word(-1), ":R") ->> " !" # Erreur de numérisation ? TEST: __ocr__ Oh{{ I}} c’est pas formidable ? TEST: __ocr__ Vraiment{{ 1}} Paul n’en savait rien. TEST: __ocr__ Ça prendra 1 h. TEST: __ocr__ Valeur : 1 KHz. # Nombres __[i]/ocr(ocr_nombres)__ [\dOI][\dOI]+ <<- \0 == "II" ->> 11|Il # Erreur de numérisation ? <<- __else__ and not \0.isdigit() ->> =\0.replace("O", "0").replace("I", "1") # Erreur de numérisation ? ................................................................................ !!! # Trait d’union conditionnel (u00AD) __[i](p_trait_union_conditionnel1)__ \w+‑\w+‑\w+ <<- ~>> =\0.replace("‑", "") __[i](p_trait_union_conditionnel2)__ \w+‑\w+ <<- ~>> =\0.replace("‑", "") # empêcher la scission en fin de dialogue __<s>(p_fin_dialogue)__ ([?!…][?!… ]*)[ "'”» ]*, @@0 <<- ~1>> * TEST: « Je suis donc perdu ? », dit Paul. TEST: “C’est bon !”, croit savoir Marie. TEST: “Parce que… ?” finit par demander Paul. TEST: « Dans quel pays sommes-nous ? » demanda un manifestant. ................................................................................ @@@@ @@@@ @@@@ @@@@ # This graph is parsed only if option <ocr> is activated. # virgules __ocr_virgules__ [il|le|la|l’|les|de|d’|ne|n’|me|m’|te|t’|se|s’|à|ce|cet|cette|mon|ma|ta|sa|mes|tes|ses|nos|vos|quelque|quelques|au|aux] , <<- /ocr/ space_after(\1, 0, 0) and not \1.isupper() or value(\1, "|à|") ->> \1 # Erreur de numérisation ? Virgule superflue ? TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L TEST: __ocr__ je voudrais faire une question ou deux sur une maison de ce village, la… comment l’appelle-t-on ? # âge / age __ocr_age__ >age <<- ->> =\1.replace("a", "â").replace("A", "Â") # Erreur de numérisation ? TEST: __ocr__ À son {{age}}, on ne sait plus ce qu’on fait. ................................................................................ # bien __sgpl_très_bien__ très biens <<- /sgpl/ -2>> bien # Adverbe ou adjectif, “bien” est invariable.|https://fr.wiktionary.org/wiki/bien TEST: Très {{biens}} connus des services de police, il leur fut difficile de passer entre les mailles du filet. # entre autres __sgpl_entre_autres__ entre autre , entre autre @:(?:[GW]|[NA].*:[pi]) <<- /sgpl/ -2>> autres # La locution “entre autres”, toujours au pluriel.|https://fr.wiktionary.org/wiki/entre_autres TEST: Des raisons ? Entre {{autre}} je n’en savais pas plus que lui. TEST: il y eut, entre {{autre}}, des erreurs commises. # termes __sgpl_en_termes_de__ en terme [de|d’] <<- /sgpl/ -2>> termes # Dans la locution “en termes de”, mettez “terme” au pluriel. TEST: en {{terme}} de communication, c’est une véritable catastrophe ................................................................................ # !!!! Redondances dans la phrase !! __[i]/redon2(redondances_phrase)__ ({w_4})[ ,].* (\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>même/") -2>> _ # Dans cette phrase, répétition de “\1” (à gauche). <<- __also__ -1>> _ # Dans cette phrase, répétition de “\1” (à droite). TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}. TEST: __redon2__ ils sont là côte à côte. TEST: __redon2__ Tu avances petit à petit, et tu réussis. TEST: __redon2__ De loin en loin, elle passe. TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition) ................................................................................ TEST: en tâche de fond TEST: la tâche de la justice TEST: c’est une tâche de grande envergure TEST: déléguer des tâches de sécurité publique à des machines autonomes TEST: tirer bénéfice de nouvelles données en fonction de la tâche de départ qui leur a été assignée TEST: Les « pervenches » fonctionnaires seraient alors affectées à d’autres tâches de surveillance, notamment au sein de la nouvelle brigade anti-insécurité. TEST: une tâche de sélection des données TEST: les agents peu nombreux sont accaparés par le court terme et les tâches de gestion __conf_tâche_tache__ tache [accomplie|dévalorisante|difforme|épuisante|exécutée|exténuante|fatigante|ingrate|menée|valorisante] taches [accomplies|dévalorisantes|difformes|épuisantes|exécutées|exténuantes|fatigantes|ingrates|menées|valorisantes] >tache >insoluble >tache consistant à |