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 on 2019-04-11 21:00:34 |
| Other Links: | manifest | tags |
Context
|
2019-04-12
| ||
| 05:42 | [fr] écriture épicène: màj avec puce +option idoine check-in: 324ab931ac user: olr tags: trunk, fr | |
|
2019-04-11
| ||
| 21:00 | [fr][core] découpage des phrases check-in: 119552d3ae user: olr tags: trunk, fr, core | |
|
2019-04-09
| ||
| 13:39 | [fr] màj: métagraphe, màj: dictionnaire check-in: bf49a78851 user: olr tags: trunk, fr | |
Changes
Modified gc_core/js/lang_core/gc_engine.js from [827604c5fa] to [577effc815].
| ︙ | ︙ | |||
161 162 163 164 165 166 167 |
//// 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);
},
| | | 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;
|
| ︙ | ︙ |
Modified gc_core/py/lang_core/gc_engine.py from [731ea086d0] to [ca233af37a].
| ︙ | ︙ | |||
187 188 189 190 191 192 193 |
"set options to default values"
global _dOptions
_dOptions = dict(gc_options.getOptions(_sAppContext))
#### Parsing
| | | 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())
|
| ︙ | ︙ |
Modified gc_lang/fr/rules.grx from [266171b6a8] to [67b204300b].
| ︙ | ︙ | |||
489 490 491 492 493 494 495 |
<<- \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("-","")
| < < < < | 489 490 491 492 493 494 495 496 497 498 499 500 501 502 |
<<- \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>> *
|
| ︙ | ︙ | |||
1308 1309 1310 1311 1312 1313 1314 |
<<- 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.
| < < < < < < < < < | 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 |
<<- 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 ?
|
| ︙ | ︙ | |||
1436 1437 1438 1439 1440 1441 1442 |
!!!
# 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
| | < | 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 |
!!!
# 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.
|
| ︙ | ︙ | |||
2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 |
@@@@
@@@@
@@@@
@@@@
# 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.
| > > > > > > > > | 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 |
@@@@
@@@@
@@@@
@@@@
# 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.
|
| ︙ | ︙ | |||
8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 |
# 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
| > > > > > > > > > > | 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 |
# 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
|
| ︙ | ︙ | |||
11780 11781 11782 11783 11784 11785 11786 |
#
!!!! Redondances dans la phrase !!
__[i]/redon2(redondances_phrase)__
({w_4})[ ,].* (\1) @@0,$
| | | | 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 |
#
!!!! 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)
|
| ︙ | ︙ | |||
15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 |
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 à
| > | 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 |
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 à
|
| ︙ | ︙ |