# Notule - v.1.1.0710 - Catégoriseur grammatical
# Copyright (C) 2003-2007 par Vincent Comiti, vincent@saynete.net
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Fonctionne avec Python 2.2a2 Aug 22 2001
# Ajout et adaptation de Regular expression test console, Brent Burley, 2001, placé dans le domaine public, erburley@ix.netcom.com .
# Bibliothèque
# Editeur de texte
from Tkinter import *
from Dialog import Dialog
import os
import fnmatch
import FileDialog
import webbrowser
from time import gmtime, strftime
# Traitement de chaîne de caractère
import string # indispensable
import re # utile, rare
import types # rare
# Accélération de l'exécution du programme
try:import psyco;psyco.profile();psyco.full()
except:pass
# I. Fonction de base pour le traitement de mot (indépendantes).
# Format :
# Chaîne = ''
# Liste = ['','']
# Texte = [[[''], ['','']],[[''], ['','']]] (variable corp)
def ConcatEti(corp):
# Supprime toute étiquette redondante dans un texte
liste=""
for l in range(len(corp)):
lis=corp[l][1]
for m in range(1,len(lis),2):
for n in range(m+2,len(lis),2):
if lis[n]==lis[m]:
if lis[m-1]==lis[n-1]:
corp[l][1][n]="#vide#"
corp[l][1][n-1]="#vide#"
return corp
def Corp_espace(corp):
# Supprime les espaces vide type #vide# dans le corpus
for e_a in range(0,len(corp)):
e_l=len(corp[e_a][1])-1
e_b=-1
while e_b!=30:
e_b=e_b+1
try:
if corp[e_a][1][e_b]=="#vide#":
del corp[e_a][1][e_b]
e_b=-1
except:pass
return corp
def Accent(let):
# Pour la recherche par entrée dans la base, modifie la forme du corpus de base en supprimant l'accent.
eAcc1='é';eAcc2='è';eAcc3='ê';oAcc='ô';aAcc1='à';aAcc2='â';cAcc='ç';iAcc1='î';iAcc2='ï'
if let==eAcc1 or let==eAcc2 or let==eAcc3:lt='e'
elif let==oAcc:lt='o'
elif let==aAcc1 or let==aAcc2:lt='a'
elif let==cAcc:lt="c"
elif let==iAcc1 or let==iAcc2:lt="i"
else:lt=''
return lt
def MajAccent(mot):
# Transforme l'accent minuscule en accent majuscule.
for j in range(192,222):
mot=string.replace(mot,chr(j),chr(j+32))
return mot
def Concat_list(corp):
# Concaténation de liste (en cas de redondance).
corp=string.join(corp)
corp=string.lower(corp)
corp=string.split(corp)
corp.sort()
corp.append('')
mot = -1
list=''
for mot in range(0,len(corp)):
if corp[mot-1]!=corp[mot]:
list=list+' '+corp[mot]
list=string.strip(list)
return list
def Concat_chai(text):
# Concaténation d'une chaîne.
text=text.split()
sort=''
for mot in text:
sort=sort+" "+mot
for efa in text:
if efa==mot:
ci=text.index(efa)
text[ci]=""
sort=sort.split()
sort=string.join(sort)
return sort
def OuvCorp(quelcorpus):
# Petite procédure résumant l'ouverture d'un fichier.
quel="G:\Mes documents\_A_Notule\\"+"\\"+quelcorpus
corp = open(quel,'r')
corp = corp.read()
return corp
def Corp_Copi(ecri):
# Copie dure du corpus, évitant une copie de la variable qui continue à être modifiée.
text=[[['<>'], ['*', '/']]]
for a_t in range(0,len(ecri)-1):
text[a_t:a_t]=[[['<>'],['hgh']]]
for m_t in range(0,len(ecri)):
text[m_t][0]=ecri[m_t][0]
text[m_t][1]=ecri[m_t][1]
return text
def Lis_Copi(ecri):
# Copie de liste
text=['']
for a_t in range(0,len(ecri)-1):
text[a_t:a_t]=['']
for m_t in range(0,len(ecri)):
text[m_t]=ecri[m_t]
return text
# II. Fonction de découpage de corpus
# Le premier découpage est celui des verbes et des pronoms relié en cas d'interrogative "est-il là ?" d'insistance "eux-mêmes" ou de désignation "celle-ci"
# Le pertinence de tel ou tel découpage restant à apprécier. Les désignations ou les insistances, contrairement aux stuctures verbe plus pronom sont en nombre limités.
# Le programme reste encore à tester afin de tenir compte et noter les nombreuses exceptions.
# Le programme de découpage lexical pour le français est une partie du logiciel Notule, sous licence GNU GPL et peut être utilisé de façon autonome, comme les programmes du I.
# En conséquence les parties I et II sont laissées au domaine public.
# 14.11.2004/30.10.2007, par Vincent Comiti, http://cadrat.saynete.net , vincent@saynete.net
def DecoupPonc(corp,lis):
# Découpage de forme, par Liste, Boucle et Remplacement.
# Chaque élément d'une liste est remplacé par celui immédiatement à droite, progressant de deux en deux.
# Le principe de la liste binome est pratique, donc réutilisable. Elle va essentiellement servir à la ponctuation.
for m in range(0,len(lis),2): # Boucle
corp=corp.replace(lis[m],lis[m+1]) # Remplacement d'un élément du premier élément.
return corp # Renvoie la valeur corp modifiée (le corpus textuel).
def DecoupPonc_maj(corp,lis):
# Découpage de la ponctuation majuscule, par Liste, Boucle et Remplacement.
# Procédure semblable à DecoupPonc mais tenant compte d'une majusculee n début du mot.
for m in range(0,len(lis),2): # Boucle où chaque élément d'une liste est remplacé par celui immédiatement à droite, progressant de deux en deux.
lis_u=string.upper(lis[m][0])+lis[m][1:len(lis[m])] # Pour la première forme, le premier caractère de la chaîne est changé en majuscule, et le reste recopié tel quel.
lis_up=string.upper(lis[m+1][0])+lis[m+1][1:len(lis[m+1])] # Idem que le précédent, pour la seconde forme.
corp=corp.replace(lis_u,lis_up) # Remplacement d'un élément par un autre.
return corp # Renvoie la valeur corp.
def DecoupComp(corp):
# Découpage des verbes et pronoms, par Liste, Boucle et Remplacement.
# La méthode consiste à remplacer chaque forme à trait d'union part des espaces, et entourer le trait d'union : <->
lis_com = ["nous","vous","les","la","là","leurs","je","tu","ils","elles","ci","mêmes","eux","lui","moi","toi","en","y","t","ce","on","-","il","elle","même","le","leur"] # Tableaux des formes susceptibles d'être découpées
for n in range(len(lis_com)): # Boucle de parcours de la liste précédente,
un="-"+lis_com[n]+"-" # Chaîne où une forme se trouve prise entre deux traits d'union.
deux=" <-> "+lis_com[n]+ " <-> " # Chaîne avec les blancs et le trait d'union entouré.
corp=corp.replace(un,deux) # Remplacement de la première chaîne par la deuxième.
un_fin="-"+lis_com[n]+" " # Chaîne où une forme se trouve prise entre un trait d'union et un blanc
deux_fin=" <-> "+lis_com[n]+" "
corp=corp.replace(un_fin,deux_fin)
return corp # Renvoie la valeur corp (pour corpus) modifiée.
def DecoupAcro(corp):
# Découpage des acronymes et mots abrégés, par Expressions régulières.
# La méthode consiste à répérer les combinaisons majuscule + point + majuscule.
# Il s'agit de remplacer tout point qui n'est pas une ponctuation forte par le dièse.
# En cas de cumul de ponctuation accolée, les points de suspension sont changés #. (De nombreuses combinaisons sont possibles)
corp=corp.replace("...,","###,")
# Mot abrégé, S.N.C.M.
# \w signifie n'importe quel caractère alphanumérique, \. signifie un point
# Les expressions entre paranthèses comme (\w) peuvent être conservées, afin d'être remplacée par elle-même. Elles deviennent \\1 dans l'instruction suivante (puis \\2 puis \\3...)
# Initiale du mot abrégé. Type prénom M. Falcone, et monsieur M. Dupont
mod=re.compile(" ([A-Z])\. ") # Toute lettre majuscule suivie d'un point, et isolée, et considérée comme abréviation
corp=mod.sub(" \\1# ",corp) # Elle est reportée et le point changé en dièse. Ce qui pose l'ambiguïté, « multiplié par I. »
mod=re.compile(" ([a-z])\. ([a-z])") # Exception à l'ambiguité une abréviation minuscule du type « J'ai donné à m. le paquet. »
corp=mod.sub(" \\1# \\2",corp) # l'indice étant la minuscule, de « le »
# Initiale et suite du mot abrégé, S.N
for a in range(2): # Répétition de l'instruction afin de compléter entièrement l'abréviation.
mod=re.compile("(\w)\.(\w)") # La variable mod devient un (/w) suivi d'un point \. et d'un autre (\w)
corp=mod.sub("\\1#\\2",corp) # mod est remplacé par le caractère entre paranthèse (\w) conservé, puis le second caractère le point permute avec le dièse, enfin le troisème (\w) est aussi conservé.
# Fin du mot abrégé, M.
mod=re.compile("#(\w)\.")
corp=mod.sub("#\\1#",corp)
# Abréviations G...
# Une majuscule plus point de suspension suivi d'un blanc et d'une minuscule est une abréviation.
# Ce découpage entraîne une erreur d'aiguillage si une phrase commence sans majuscule (pour le point)
mod=re.compile("([A-Z]|[À-Ý])\.\.\. ([a-z]|[à-ý]|[!-@])")
corp=mod.sub("\\1### \\2",corp)
# Abréviations 18... (pour une date intentionnellement floue)
# Deux chiffres plus un point de suspension suivi d'un blanc et d'une minuscule est une abréviation.
mod=re.compile("( [0-9][0-9])\.\.\. ([a-z]|[à-ý]|[!-@])")
corp=mod.sub("\\1### \\2",corp)
# Abréviations G.
mod=re.compile("([A-Z]|[À-Ý])\. ([a-z]|[à-ý])")
corp=mod.sub("\\1# \\2",corp)
return corp # Renvoie la valeur corp
def Format(corp):
# Découpage du texte corp, par appel des Procédures.
corp=corp.replace("\n"," ")
# Procédure principale usant de la découpe des mots-composés et de la ponctuation.
corp=DecoupAcro(corp)
# La méthode utilise le principe binome, c'est à dire une ponctuation remplacée par un blanc + elle-même.
# La progression est importante, afin d'éviter le chevauchement du point et des points de suspension (pachopacho).
mot_ponc=['"',' " ',"...","pachopacho","."," .","pachopacho"," ...",","," ,","(","( ",")"," )","'","' "]
corp=DecoupPonc(corp,mot_ponc)
# Première série d'exception. Le principe binome est appliqué pour recoller les mots composés à apostrophe.
mot_fus=["aujourd' hui","aujourd'hui","pin' s","pin's","présqu' île","présqu'île","m' as-tu-vu","m'as-tu-vu","prud' ","prud'","entr' ","entr'","jusqu' au-bout","jusqu'au-bout","je-m' en-","je-m'en-","-l' ","-l'","-d' ","-d'","d' abord","d'abord","quelqu' un","quelqu'un","mm .","mm.","MM .","MM.", "M .","M.","[ ...]","[...]"]
corp=DecoupPonc(corp,mot_fus)
corp=DecoupPonc_maj(corp,mot_fus)
# Découpage des verbes et pronoms.
corp=DecoupComp(corp)
# Date essai
mois=["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]
mois.append("en")
for dts in range(0,10):
for dtspre in mois:
corp=corp.replace(dtspre+" 18"+str(dts)+" ...",dtspre+" 18"+str(dts)+"...")
corp=corp.replace(dtspre+" 17"+str(dts)+" ...",dtspre+" 17"+str(dts)+"...")
corp=corp.replace(dtspre+" 16"+str(dts)+" ...",dtspre+" 16"+str(dts)+"...")
# Rétablissement des points de suspension par le point.
corp=corp.replace("#",".")
corp=DecoupPonc(corp,[" <-> le <-> ","-le-"])
corp=corp.replace("'","#") # Remplacement des apostrophes par le dièse, à supprimer pour un usage autonome
corp = corp.split()
return corp # Renvoie la valeur corp (le corpus textuel) modifiée
def LemmVerbMult_PosiInfo(corp): # Insert dans la position de l'étiquette en troisième position (en2)
mot_s=-1 # l'information sur des lemmes différents pour un même verbe.
while mot_s!=len(corp)-1:
mot_s=mot_s+1
leto=len(corp[mot_s][1])
te=0;to=0;arret=0
leto2=leto
for eto in range(0,leto,2):
if arret==1:break
for eto2 in range(0,leto,2):
##print "VerSect",corp[mot_s][1][eto2],eto2,leto
try:
if corp[mot_s][1][eto]!=corp[mot_s][1][eto2] and corp[mot_s][1][eto+1][0:3]=="Ver" and corp[mot_s][1][eto2+1][0:3]=="Ver":
corp[mot_s][3]=["LemmVerbMult"]
##print corp[mot_s]
arret=1
break
except:pass ##print corp[mot_s]
return corp
# III. Recherche dans le corpus.
def OuvBase(mot):
# Pour la procédure Parcours, extrait l'initial du mot qui va correspondre à l'entrée du dictionnaire.
mot_deb=mot[0]
mot_deb=string.lower(mot_deb)
mot_deb=MajAccent(mot_deb)
if 64 < ord(mot_deb) < 89 or 224 < ord(mot_deb) < 255 or 96 < ord(mot_deb) < 123:
accent_res=Accent(mot_deb)
if accent_res != "":
mot_deb=accent_res
if mot_deb=="*":
mot_deb=mot[1]
dictio="base="+mot_deb
exec(dictio)
else:
base=S
return base
def IncoAbre(mot,debu,fini,bal1,bal2,bal3):
# Test des début de mot pour balise "inconnu", "majuscule"
## mot_etiqu=IncoAbre(mot,64,91," Nom:Inco/Maju"," Nom:Inco/Capi"," Nom:Inco/Abré")
dictio=A
deb=mot[0]
if ord(deb)>debu and ord(deb)debu and ord(deb1)64 and ord(deb)<91 or ord(deb)>191 and ord(deb)<222:
deb1="#"
try:deb1=mot[1]
except:pass
mot_etiqu="*"+mot_min+" Nom:Inco/Maju"
marqueur="/inc"
if ord(deb1)>64 and ord(deb1)<90 or ord(deb)>191 and ord(deb)<222:
mot_etiqu="*"+mot_min+" Nom:Inco/Capi"
if deb1==".":
mot_min=string.replace(mot_min,".","") # modifie l'abréviation
mot_min=string.split(mot_min);mot_min=string.join(mot_min)
mot_etiqu=Cherch(mot_min,dictio,m,n)
if mot_etiqu==" " or mot_etiqu==" " or mot_etiqu=="": # Test des début de mot pour balise "inconnu", "majuscule", "abréviation"
mot_etiqu="*"+mot_min+" Nom:Inco/Abré/Capi"
if ord(deb)>96 and ord(deb)<123 or ord(deb)>223 and ord(deb)<254:
marqueur="/inc"
deb1="#"
try:deb1=mot[1]
except:pass
if deb1==".":
mot_min=string.replace(mot_min,".","") # modifie l'abréviation
mot_min=string.split(mot_min);mot_min=string.join(mot_min)
mot_etiqu=Cherch(mot_min,dictio,m,n)
if mot_etiqu=="": # Test des début de mot pour balise "inconnu", "majuscule", "abréviation"
mot_etiqu="*"+mot+" Nom:Inco/Abré"
if mot_etiqu==" " or mot_etiqu==" " or mot_etiqu=="": # Test des début de mot pour balise "numéral"
deb=mot[0]
if ord(deb)>48 and ord(deb)<58:
mot_etiqu="*"+mot_min+" Adj:Numé/Ordi"
if mot_etiqu==" " or mot_etiqu==" " or mot_etiqu=="": # Test final des débuts de mot pour balise "inconnu"
mot_etiqu="*"+mot_min+" Nom:Inco"
marqueur="/inc"
# Modification de la forme des catégories verbales de base
mot_etiqu=mot_etiqu.replace("Ver:Infi","Vii:Infi")
mot_etiqu=mot_etiqu.replace("Ver:PPas","Vpp:PPas")
mot_etiqu=mot_etiqu.replace("Ver:PPre","Vrr:PPré")
mot_etiqu=mot_etiqu.replace("Ver:PPré","Vrr:PPré")
mot_etiqu=mot_etiqu.replace("+InvPL","+IN")
mot_etiqu=mot_etiqu.replace("+Inv","+Ing")
mot_etiqu=mot_etiqu.replace(":Inv",":Ing")
mot_etiqu=mot_etiqu.replace("Adj:Mas","Adj:Qual+Mas")
mot_etiqu=mot_etiqu.replace("Adj:Fem","Adj:Qual+Fem")
mot_etiqu=mot_etiqu.replace("Adj:Ing","Adj:Qual+Ing")
mot_etiqu=mot_etiqu.replace(":Inde",":Indé")
mot_etiqu=mot_etiqu.replace("/Inde","/Indé")
mot_etiqu=mot_etiqu.replace(" Pre\n"," Pré\n")
mot_etiqu=mot_etiqu.replace(" Pre:"," Pré:")
mot_etiqu=mot_etiqu.replace("Fem+","Fém+")
mot_etiqu=mot_etiqu.replace("Ver:IPre+","Ver:IPré+")
mot_etiqu=mot_etiqu.replace("Ver:SPre+","Ver:SPré+")
mot_etiqu=mot_etiqu.replace("Ver:CPre+","Ver:CPré+")
mot_etiqu=mot_etiqu.replace("Ver:PPré+","Adj:")
mot_etiqu=mot_etiqu.replace("Ver:Impe","Ver:Impé")
mot_etiqu=mot_etiqu.replace("Det:","Dét:")
mot_etiqu=mot_etiqu.replace(":Nume",":Numé")
mot_etiqu=mot_etiqu.replace(":Abre",":Abré")
return mot_etiqu,marqueur
def Cherch(mot,dictio,m,n):
# Cherche la forme dans le dictionnaire et transforme la balise en étiquette(s).
test=0;test2=0;cpt=0;etiqu=0;mot_etiqu=""
mot="\n"+mot+"\t"
try:
etiqu=dictio.index(mot,etiqu)+len(mot)
aCher=etiqu;bCher=aCher
while test==0:
aCher=aCher+1
if dictio[aCher]=="\t" or dictio[aCher]=="\n":
mot_etiqu=mot_etiqu+dictio[bCher:aCher]
bCher=aCher
cpt=cpt+1
if cpt==2:
mot_etiqu=mot_etiqu+" "
etiqu=dictio.index(mot,aCher)+len(mot)
aCher=etiqu
bCher=aCher
cpt=0
if aCher==len(dictio):
test=1
except:pass
return mot_etiqu
def RajoutCompo(corp,dictio):
# Rajoute un mot composé
dictio=string.split(dictio)
# Forme non verbale
for aEt in range(0,len(dictio),3):
mot_cc=dictio[aEt]
mot_ccc=string.replace(mot_cc,"_"," ")
mot_cp=string.split(mot_ccc)
ambc=-1
len_motcp=len(mot_cp)
for mt_c in range(17,len(corp)-17): # corpus
tes=0
for l_motcp in range(0,len_motcp): # longueur mot composé
try:corp_mt_c=corp[mt_c+l_motcp][0][0]
except:pass
corp_mt_c=string.lower(corp_mt_c)
if mot_cp[l_motcp]==corp_mt_c:
#pass
tes=tes+1
##print mot_cp[l_motcp]
if tes>=len_motcp:
##print mot_cc+" "+dictio[aEt+1]
for l_motcp in range(0,len_motcp): # longueur mot composé
corp[mt_c+l_motcp][1][0:0]=[dictio[aEt+2]]
corp[mt_c+l_motcp][1][0:0]=[dictio[aEt+1]]
# Forme verbale
for aEt in range(0,len(dictio),3):
if dictio[aEt][0]=="&":
mot_cc=dictio[aEt+1][1:]
##print mot_cc
mot_ccc=string.replace(mot_cc,"_"," ")
mot_cp=string.split(mot_ccc)
ambc=-1
len_motcp=len(mot_cp)
for mt_c in range(19,len(corp)-19): # corpus
tes=0
for l_motcp in range(0,len_motcp): # longueur mot composé
mot_cpp="*"+mot_cp[l_motcp]
##print mot_cpp
for mt_cl in range(0,len(corp[mt_c+l_motcp][1])): # parcours de la nature pour *
if corp[mt_c+l_motcp][1][mt_cl][0]=="*":
if mot_cpp==corp[mt_c+l_motcp][1][mt_cl]:
##print "*",corp[mt_c+l_motcp][1][mt_cl]
tes=tes+1
break
if tes>=len_motcp:
##print dictio[aEt+1]+" "+dictio[aEt+2]
for l_motcp in range(0,len_motcp): # longueur mot composé
corp[mt_c+l_motcp][1][0:0]=[dictio[aEt+2]]
corp[mt_c+l_motcp][1][0:0]=[dictio[aEt+1]]
return corp
def EtiquBase(corpus,eticat=""):
# Procédure principale pour l'étiquetage.
for e in range(30):
corpus[0:0]=[""]
for e in range(30):
corpus.append("")
corp=[];aEti=-1;avant="";fini=len(corpus)-2;fin=str(fini-41)
corp_eti=""
for mot in corpus:
aEti=aEti+1
aEt=aEti-20
sEti=str(aEt)
mot_min=string.lower(mot)
mot_min=MajAccent(mot_min)
etiqu=Parcour(mot_min,0,2,mot)
marqueur=etiqu[1]
etiqu=string.split(etiqu[0])
corp=corp+[[[mot],etiqu,[marqueur],["info"]]]
try:deb_1=mot[0];deb_2=mot[1];avant=corp[aEti-1][1][1][0:3]#;apres=corp[aEti][0];deb_1_ap=apres[0]
except:pass
# Rajoute l'étiquette Nom:Maju pour tout mot commençant par une majuscule non précédée d'une ponctuation forte.
if ord(deb_1)>64 and ord(deb_1)<91 or 192 < ord(deb_1) <221:
mot_min=string.lower(mot)
if avant!="Pof":
etiqu_add=string.join(etiqu)
if etiqu_add=="*"+mot_min+" Nom:Maju":
corp[aEti][1]=["*"+mot_min+" Nom:Maju"]
else:
corp[aEti][1]=string.split("*"+mot_min+" Nom:Maju "+etiqu_add)
# Rajoute l'étiquette Nom:Capi pour tout mot commençant par deux majuscules non précédées d'une ponctuation forte.
if ord(deb_2)>64 and ord(deb_2)<91 or 192 < ord(deb_2) <221:
etiqu_add=string.join(etiqu)
mot_min=string.lower(mot)
if etiqu_add=="*"+mot_min+" Nom:Capi":
corp[aEti][1]=["*"+mot_min+" Nom:Capi"]
else:
corp[aEti][1]=string.split("*"+mot_min+" Nom:Capi "+etiqu_add)
# Rajoute l'étiquette Nom:Minu à Pof si suivi d'une minuscule.
if ord(deb_1)>96 and ord(deb_1)<123 or ord(deb_1)>223 and ord(deb_1)<254:
mot_min=string.lower(mot)
if avant=="Pof":
etiqu_add=string.join(etiqu)
if etiqu_add=="*"+mot_min+" Nom:Minu":
corp[aEti][1]=["*"+mot_min+" Nom:Minu"]
else:
corp[aEti][1]=string.split("*"+mot_min+" Nom:Minu "+etiqu_add)
# Rajoute mot composé
corp=RajoutCompo(corp,M)
# Conténation des redondances
corp=ConcatEti(corp)
corp=Corp_espace(corp)
# Insert en position 2, l'info sur le lemme verbal différent (suis...)
corp=LemmVerbMult_PosiInfo(corp)
# Si la variable est etique alors il s'agit d'un étiquetage.
if eticat=="etique":
AffEtiBrut(corp)
return corp
# IV. Manipulation des formes, spécifique Notule.
def Proc(cont,vir=""):
# Affichage ou non des données du tableau de bord, pour différencier l'éditeur et le bureau
# (c'est à dire la catégorisation par l'éditeur de texte ou par un fichier)
if processus==1:
exec("print cont"+vir)
else:
pass
def RajoutEtiqu(corp,dictio):
# Rajoute série d'étiquettes d'un fichier en début de liste.
aEt=-1;m=0;n=0
for mot in corp:
aEt=aEt+1
mot=string.join(corp[aEt][0])
mot=MajAccent(mot)
mot=string.lower(mot)
mot_eti=Cherch(mot,dictio,m,n)
try:corp[aEt][1][0:0]=string.split(mot_eti)
except:pass
return corp
def Sui_espace(sui):
# Efface dans une suite
for a in range(len(sui)):
for b in range(len(sui[a])):
try:
if sui[a][b]=="":
del sui[a][b]
except:pass
return sui
def ChangEtiqu(corp,eti1,eti2):
# Changement d'étiquette
af=-1
for mot in corp: # Premier balaie
af=af+1
aff=-1
for et in mot[1]: # Balaie, dans l'étiquette
aff=aff+1
if corp[af][1][aff]==eti1:
corp[af][1][aff]=eti2
if corp[af][0]==[eti1]:
corp[af][0]=[eti2]
return corp
def FusionEtiqu(corp,eti1,eti2,fus,pos="fin"):
# Fusion d'une catégorie avec une autre.
# Corpus, Etiquette 1, Etiquette 2, Détail à fusionner, Position à fin par défaut (Pro:Pers/Comp/Maju+P3)
af=-1
for mot in corp: # Premier balaie
af=af+1
for et in mot[1]: # Balaie, dans l'étiquette
if et==eti1:
for eti in mot[1]:
if eti==eti2:
aff=-1
for etiq in mot[1]:
aff=aff+1
if etiq==eti1:
if pos=="fin": # Position par défaut
test_det=0 # test du détail
for pos_trv in range(len(corp[af][1][aff])): # détecte s'il n'existe pas de détail,
if corp[af][1][aff][pos_trv]=="/":
test_det=1
if test_det==1:
for pos_trv in range(len(corp[af][1][aff])):
if corp[af][1][aff][pos_trv]=="+":
pos=pos_trv
fus="/"+fus
break
else:
try:
if eti1[7]=="+": # s'il n'y a pas de détail
pos=4
fus=fus+"+"
else: # si "Ver:IPré+SG+P3" cad un détail
pos=8
fus="/"+fus
except:
fus=":"+fus;pos=4
afff=corp[af][1][aff][0:pos]+fus+corp[af][1][aff][pos:len(corp[af][1][aff])]
corp[af][1][aff]=afff
# Rajoute lemme composé si Cmps
cmp=0
try:cmp=corp[af][1][aff].index("Cmps")
except:pass
if cmp>0:
for cm_cc in range(len(corp[af][1])):
try:cmp_c=corp[af][1][cm_cc].index("_")
except:pass
try:
if cmp_c>0:
corp[af][1][aff-1]=corp[af][1][cm_cc]
except:pass
break
return corp
# V. Base des règles grammaticales
def CasSeman(corp):
# Cas sémantiques
Proc("CAS SEMANTIQUE")
#
# - Correctifs de la base -
#
# PPRE
amb="[ver:ppre+"
amb_r="-ver:ppre+"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ça
amb="@ca" # Et oui. Ca se comprend.
amb_r="pro"
sui=[["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="([nom:prop([nom:maju([nom:inco/maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom:inco"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Rajoute Cpa au chiffre
for cpa in range(100):
cpa=str(cpa)
amb="*"+cpa
amb_r="+Cpa"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# ABREGES
#
# Article
amb="@art"
amb_r="+*article Nom:Abré/arti/Cmps+Mas+SG"
sui=[["?","@.","[adj:numé/ordi"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@."
sui=[["@art","?","[adj:numé/ordi"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="*article"
sui=[["?","@.","[adj:numé/ordi"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*article")
corp=Effac_forme(corp)
amb="*article"
amb_r="[nom:abré/arti/cmps+mas+sg"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=ChangEtiqu(corp,"art_.","art.")
corp=ChangEtiqu(corp,"Art_.","Art.")
corp=ChangEtiqu(corp,"Nom:Abré/arti/Cmps+Mas+SG","Nom:Abré+Mas+SG")
#
# MOTS COMPOSES
#
# Le pour et le contre
amb="@contre"
amb_r="nom"
sui=[["@pour","@et","@le","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Ne va point
amb="*point"
amb_r="adv"
sui=[["*ne","ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Aile marchante
amb="*marchant" # Aile marchante d'une armée
amb_r="adj"
sui=[["*aile","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["*aile","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom:mas+sg"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# En outre
amb="@outre"
amb_r="nom"
sui=[["@outre","@en","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Veine porte (anatomie)
amb="@porte"
amb_r="adj"
sui=[["*veine","?"]]
corp=Regle(corp,amb,amb_r,sui)
# N'importe quel
amb="@importe"
amb_r="dét"
sui=[["@n#","?","*quel"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@n#"
amb_r="dét"
sui=[["?","@importe","*quel"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-dét"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# reste : du reste il croyait que
amb="@reste"
amb_r="adv"
sui=[["{po","@du","?"],["{pro:rela","@du","?"],["coj","@du","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui) #
# Frais
amb="*frais"
amb_r="adj"
sui=[["pob","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
# Puis
amb="@puis"
amb_r="ver"
sui=[["@je","((_","((_","?"],["?","pcd"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Feu (décédé)
amb="@feu"
amb_r="adj"
sui=[["?","((_","*père"],["?","((_","*frère"],["?","((_","*mère"],["?","((_","*fils"],["?","((_","*soeur"],["?","((_","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
# Mathématique (ou dialogue)
Proc("mathématique /",",")
for mat in range(97,123):
# Dialogue entre A et B
amb="@"+chr(mat)
amb_r="+*"+chr(mat)+". Nom:Abré/Cmps"
sui=[["@a.","{coj:coor","?","@."],["{po","?","@."]]
corp=Regle(corp,amb,amb_r,sui)
amb="@."
sui=[["@a.","{coj:coor","@"+chr(mat),"?"],["{po","@"+chr(mat),"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*"+chr(mat)+"."
amb_r="[nom:abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*"+chr(mat)+".")
corp=Effac_forme(corp)
# Calcul
amb="@"+chr(mat)
amb_r="nom"
sui=[["pré","?","pré"],["[pré","?",operateur]] # A plus B
corp=Regle(corp,amb,amb_r,sui)
for mat in range(97,123):
amb="@"+chr(mat)+"_."
amb_r="+*"+chr(mat)+". Nom:Abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*"+chr(mat)+"."
amb_r="]nom:abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=ChangEtiqu(corp,chr(mat)+"_.",chr(mat)+".")
for mat in range(65,96):
amb="@"+chr(mat)+"_."
amb_r="+*"+chr(mat)+". Nom:Abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*"+chr(mat)+"."
amb_r="]nom:abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=ChangEtiqu(corp,chr(mat)+"_.",chr(mat)+".")
Proc("lettre a /",",")
# lettre A
amb="@a"
amb_r="pré"
sui=[["pof","?"]] # A compter d'aujourd'hui,
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom"
sui=[["dét","?"],["@par","?","@plus"],["@de","?","@vers"],["?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*a."
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Lettre C
amb="@c" # C'est aujourd'hui dimanche
amb_r="pro"
sui=[["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Lettre I
amb="@i" # Numéro de chapitre
amb_r="[adj:numé/card"
sui=[[poc_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# Adieu
amb="@adieu"
amb_r="[adv:itrj"
sui=[["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Dieu
amb="@dieu"
amb_r="([nom:prop([nom:maju([nom:inco/maju"
sui=[["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adv:itrj"
sui=[["pof","?","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv:itrj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Hélas
amb="@hélas"
amb_r="[adv:itrj"
sui=[["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Te
amb="@te"
amb_r="[nom:maju"
sui=[["?","@deum"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# le Tasse
amb="@tasse"
amb_r="([nom:prop([nom:maju([nom:inco/maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Rue
amb="*rue"
amb_r="[nom:prop/prén"
sui=[["*nommer(*appeler","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:prop/prén"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# France
amb="@france"
amb_r="-nom:prop/prén"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# vue
amb="*vue"
amb_r="nom"
sui=[["[pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
# plein de
amb="*plein"
amb_r="adj"
sui=[[poc_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# politique
amb="@politique"
amb_r="adj"
sui=[["@ruine","?"]]
corp=Regle(corp,amb,amb_r,sui)
# vit
amb="@vit"
amb_r="nom"
sui=[["(@un(@ce(@mon","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# PAYS
amb="[nom:prop/pays"
sui=[["*en","?"]]
#corp=Regle(corp,amb,amb_r,sui)
amb_r_nom=["-nom:mas","-nom:fém","-nom:ing","-nom:cmps","-nom:prop/prén"]
amb="[nom:maju"
for amb_r in amb_r_nom:
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
amb=["[nom:mas","[nom:fém","[nom:ing","[nom:cmps"]
#
# TOPONYME
#
amb=["[nom:inco/maju","[nom:maju"]
amb_r="+Nom:Prop/Topo"
sui=[["(*rue(*faubourg(*boulevard(*cours(*avenue","?"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
amb="[nom:prop/topo"
amb_r="[nom:prop/topo"
sui=[["nom","?"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
return corp
def Dire(corp):
# - Dire -
Proc("DIRE")
#
amb="*dire"
amb_r="[ver:ipré"
sui=[["?","pcd","({pro:pers/disj(@je"]] # dis-toi
corp=Regle(corp,amb,amb_r,sui)
amb_r="vpp"
sui=[["[vrr","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:ipsi"
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"],["?","dét"],["?","pcd"],["[pro:pers/disj","?"],["{po","?"]] # dit le
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:ipsi"
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"],["?","dét"],["?","pcd"],["[pro:pers/disj","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:impé+pl+p2"
sui=[["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Interj(corp):
# Interjection
Proc("INTERJECTION")
amb="[adv:itrj"
#
# ITRJ
amb_r="adv:itrj"
for i in range(3):
sui=[["?","@!"],["?","_","@!"],["?","{adv:itrj"],["?","*de","{adv:itrj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adv:itrj"
for i in range(3):
sui=[["?","@!"],["?","@!"],["?","*de","{adv:itrj"]]
corp=Regle(corp,amb,amb_r,sui)
# "Ô"
amb="@ô"
amb_r="[adv:itrj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# "nom"
amb="@nom"
amb_r="[adv:itrj"
sui=[["{po","[adv:itrj","?","*de","*un","*pipe"],["{po","?","*de","*un","*pipe"]]
corp=Regle(corp,amb,amb_r,sui)
# "quel"
amb="*quel"
sui_int=[["?","@!"]]
sui_nul=[["?","{po"]]
for a in range(10):
sui_int[0][-1:-1]=["_"]
sui=sui_int
amb_r="[adv:itrj"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"]
sui=sui_nul
amb_r="-adv:itrj"
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ponctu(corp):
# Ponctuation faible
Proc("PONCTUATION")
amb="pof"
amb_r="+Pob:Ponc/Faib"
sui=[["?","[nom:minu"]]
corp=Regle(corp,amb,amb_r,sui)
amb="pob pof"
amb_r="pob"
sui=[["?","[nom:minu"]]
corp=Regle(corp,amb,amb_r,sui)
amb="]nom:inco"
amb_r="-nom:minu"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
amb="[nom:minu"
amb_r="-nom:minu"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Compose(corp):
# Compose
Proc("COMPOSÉ")
# Fusion des interjecions ou mots composés prises entre ponctuation,
Proc("Fusion")
# ma foi
amb="@ma"
amb_r="+*ma_foi Adv:Itrj/Cmps"
sui=[["{po","?","@foi","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@foi"
sui=[["{po","@ma","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*ma_foi")
corp=Effac_forme(corp)
amb="*ma_foi"
amb_r="[adv:itrj/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# d'ailleurs
amb="@ailleurs"
amb_r="+*d#_ailleurs Adv:Liai/Cmps"
sui=[["([v([n([a([p([c([p","@d#","?","([v([n([a([p([c([pré"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@d#"
sui=[["([v([n([a([p([c([p","?","@ailleurs","([v([n([a([p([c([pré"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*d#_ailleurs")
corp=Effac_forme(corp)
amb="*d#_ailleurs"
amb_r="[adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# en somme
amb="@en"
amb_r="+*en_somme Adv:Liai/Cmps"
sui=[[poc_l,"?","@somme"],["?","@somme",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb="@somme"
amb_r="+*en_somme Adv:Liai/Cmps"
sui=[[poc_l,"@en","?"],["@en","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*en_somme")
corp=Effac_forme(corp)
amb="*en_somme"
amb_r="[adv:liai/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# quand même
amb="@quand"
amb_r="+*quand_même Adv:Affi/Cmps"
sui=[["ver",adv_l,"?","@même"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@même"
amb_r="+*quand_même Adv:Affi/Cmps"
sui=[["ver",adv_l,"@quand","?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*quand_même")
corp=Effac_forme(corp)
amb="*quand_même"
amb_r="[adv:affi/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Interj_II(corp):
# Interjection
Proc("INTERJECTION suite")
amb="[adv:itrj"
# - Interjection -
amb="[nom:inco"
amb_r="[adv:itrj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[adv:itrj"
amb_r="-adv:itrj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def LangInco(corp):
# Mot dans une langue inconnue
Proc("LANGUE INCONNUE")
amb=["{nom:prop","{nom:inco"]
amb_r="+Nom:Lang/Inco"
sui=[["pof","?","([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco"],["([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco","?","pof"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
sui=[["pof","([nom:lang/inco({nom:inco","?","([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco"],["([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco","?","([nom:lang/inco({nom:inco","pof"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
sui=[["([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco","?","([nom:lang/inco({nom:inco","([nom:lang/inco({nom:inco"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
amb="[nom:lang/inco"
amb_r="[nom:lang/inco"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
return corp
def NomProp_final(corp):
# Nom Propre ou Majuscule inconnus
Proc("NOM PROPRE FINAL")
#
# Prénom
#
amb="[nom:maju"
# -PROP
amb_r="-nom:prop"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -MAJU
amb="[nom:maju"
amb_r="-nom:maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -MAJU
amb="{nom:maju"
amb_r="[nom:maju/"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom:maju+"
corp=Regle(corp,amb,amb_r,sui)
#
amb="[nom:prop/vill"
amb_r="[nom:prop/pays"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def NomProp_inco(corp):
# Nom Propre ou Majuscule inconnus
Proc("NOM PROPRE INCONNU")
#
# Prénom
#
amb="[nom:prop/prén"
# PROP
amb_r="[nom:prop/prén"
sui=[["*monsieur","?"],["*mademoiselle","?"],["*madame","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r_lis=["-nom:prop/vill","-nom:prop/pays"]
for amb_r in amb_r_lis:
sui=[["?","([nom:prop([nom:maju"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Pays
#
amb="[nom:prop/pays"
# - PREN
amb_r="-nom:prop/prén"
sui=[["@en","?"],["dét","?"],["@dans","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PAYS
amb_r="[nom:prop/pays"
sui=[["?",contree],[contree,"?"]]
for i in range(18):
sui[0][1:1]=["_"];sui[1][1:1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:maju"
amb_r="[nom:prop/pays"
sui=[["*en","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Maju
#
amb="[nom:maju"
# -VILL
amb_r="-nom:prop/vill"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver"
amb_r="-nom:prop/vill"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# PROP
amb="[nom:maju"
amb_r="[nom:prop"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Nom
#
# -PROP
amb=["[nom:mas","[nom:fém","[nom:ing","[nom:lang"]
amb_r="-nom:prop"
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
#
# Habi
#
amb="[nom:prop/habi"
# HABI
amb_r="[nom:prop/habi"
sui=[[etat,"?"],["*habiller","@en","?"],["[dét","((adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# HABI
amb_r="-nom:prop/habi"
sui=[["@en","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Abréviation
#
amb="[nom:inco/abré"
# ABRE
amb_r="[nom:inco/abré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Maju
#
amb="[nom:inco/maju"
# INCO MAJU
amb_r="[nom:inco/maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui,"/inc")
#
# Capitale
#
amb="[nom:inco/capi"
# CAPI
amb_r="[nom:inco/capi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Propre
#
amb="[nom:inco/prop"
# PROP
amb_r="[nom:inco/prop"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:inco"
amb_r="[adv:itrj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def NomProp_prepa(corp):
# Nom propre préparation
Proc("NOM PROPRE PREPARATION")
# NOM PROP
Proc("Nom propre /",",")
amb=["[nom:prop/patr/cmps","[nom:prop/topo/cmps","[nom:prop/prén/cmps"]
amb_r="]cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@candide"
amb_r="([nom:prop([nom:maju([nom:inco/maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[dét:arti" # . La haie
amb_r="-nom:prop"
sui=[["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:prop"
amb_r="[nom:prop"
sui=[["?","adj:numé/card+inv+sg"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]nom:prop"
sui=[["*monsieur","?"],["*mademoiselle","?"],["*madame","?"],["*pape","?"]]
corp=Regle(corp,amb,amb_r,sui)
# - Prénom -
amb="[nom:maju"
Proc("Prénom /",",")
# PRÉN
amb_r="[nom:prop/prén"
sui=[["?","([nom:prop/patr([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
# - Nom maju -
amb="[nom:maju"
# VILL
amb_r="[nom:prop/vill"
sui=[["@à","?"],["@vers","?"]]
corp=Regle(corp,amb,amb_r,sui)
# - MAJU
amb_r="-nom:maju"
sui=[["[nom:inco/abré","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion des catégories avec Capi et Maju
Proc("Fusion /",",")
penul_p=["P1","P2","P3"]
for pen in penul:
corp=FusionEtiqu(corp,"Dét:Arti/Défi+"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Dét:Arti/Défi+"+pen,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Adj:Qual+"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Adj:Qual+"+pen,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Adj:Numé/Ordi+"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Adj:Numé/Ordi+"+pen,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Adj:Numé/Card+"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Adj:Numé/Card+"+pen,"Nom:Capi","Capi")
#corp=FusionEtiqu(corp,"Pré","Nom:Maju","Maju")Adj:Numé/Ordi
#corp=FusionEtiqu(corp,"Pré","Nom:Capi","Capi") supprimé à cause de De
for pen_p in penul_p:
corp=FusionEtiqu(corp,"Dét:Pose/Sing+"+pen+"+"+pen_p,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Dét:Pose/Sing+"+pen+"+"+pen_p,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Dét:Pose/Plur+"+pen+"+"+pen_p,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Dét:Pose/Plur+"+pen+"+"+pen_p,"Nom:Capi","Capi")
for pen in penul:
corp=FusionEtiqu(corp,"Nom:"+pen,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Nom:"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Nom:Cmps+"+pen,"Nom:Capi","Capi")
corp=FusionEtiqu(corp,"Nom:Cmps+"+pen,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Adj:Numé/Card","Nom:Maju","/Maju",13)
corp=FusionEtiqu(corp,"Adj:Numé/Card","Nom:Capi","/Capi",13)
corp=FusionEtiqu(corp,"Adj:Numé/Ordi","Nom:Maju","/Maju",13)
corp=FusionEtiqu(corp,"Adj:Numé/Ordi","Nom:Capi","/Capi",13)
# Fusion des noms propres et majuscules
prop_p=["Prén","Patr","Topo","Vill","Prtc"]
for p_p in prop_p:
corp=FusionEtiqu(corp,"Nom:Prop/"+p_p,"Nom:Capi","/Capi",13)
# De prénom PRTC
corp=FusionEtiqu(corp,"Nom:Prop/Prtc","Nom:Maju","/Maju",13)
amb="@de"
amb_r="[nom:prop/prén/capi"
sui=[["?","[nom:prop"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[nom:prop/prén/maju"
sui=[["?","[nom:prop"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:prop/prtc"
sui=[["[nom:capi","?","[nom:capi"]] # SUPPLÉMENT AU VOYAGE DE BOUGAINVILLE
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Regle(corp,amb,amb_r,sui)
for p_p in prop_p:
p_p=string.lower(p_p)
amb="[nom:capi"
amb_r="[nom:prop/"+p_p+"/capi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui) # à supprimer à cause de De ?
# Particule
Proc("PARTICULE")
#
amb=["@de","@y"]
amb_r="[nom:prop/prtc"
sui=[["([nom:prop([nom:maju([nom:inco/maju","?","([nom:prop([nom:maju([nom:inco/maju"],["([nom:prop([nom:maju([nom:inco/maju","pob","?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:prop/prtc"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@don"
amb_r="[nom:prop/prtc"
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:prop/prtc"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion des noms majuscules et abréviation
corp=FusionEtiqu(corp,"Nom:Abré","Nom:Maju","Capi")
# Déterminant
Proc("Determinant /",",")
amb="[nom:dét"
amb_r="[nom:dét"
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"],["?","[adj","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[dét"
det_maju_sui=["]maju+SG+P2","]maju+SG+P3","]maju+PL+P3"]
for amb_r in det_maju_sui:
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"]] # La Haye
corp=Regle(corp,amb,amb_r,sui)
amb="[adj:maju" # Voilà Pompée
amb_r="[nom:prop"
sui=[["{po","[adv","?","{po"],["{po","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_sui=["[dét","[pro","[pré","[adv","[coj","[adv:itrj"] # [ver
for amb in amb_sui:
amb_r="-nom:prop"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:maju/inco"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -VER
Proc("- Ver /",",")
amb="[nom:maju"
amb_r="-v"
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
#
# Prénom
#
Proc("Prénom /",",")
amb="[nom:maju"
amb_r="[nom:prop/prén"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:prop/prén"
amb_r="[nom:prop/patr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:prop/prén" # Il en tira une lettre et la donna au préfet.
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Patro
#
Proc("Patro /",",")
amb="[nom:maju"
amb_r="[nom:prop/patr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Elimine Maju et Capi")
amb="[pré"
amb_r="-nom:maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:capi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdjNomi(corp):
# Adjectif employé comme nominal.
Proc("ADJECTIF NOMINAL")
# NOM NOMI
amb=["adj","adj vpp","adj vrr"]
amb_r="+Adj:Qual/Nomi"
sui=[[poc_l,"[dét","?",poc_l],[poc_l,"[dét","?","[pro:pers/suje"],["[nom","*de","?"],["[nom","*de","[adj:nomi","{coj:c","?"]]
corp=Regle(corp,amb,amb_r,sui)
for pen in penul:
corp=FusionEtiqu(corp,"Adj:Qual+"+pen,"Adj:Qual/Nomi","/Nomi",8)
return corp
def AdjNomi_fin(corp):
# Adjectif employé comme nominal.
Proc("ADJECTIF NOMINAL FIN")
# NOM NOMI
corp=ChangEtiqu(corp,"Adj:Qual/Nomi","Adj:Qual/Nomi/Test")
amb="[adj:qual/nomi/test"
amb_r="-adj:qual/nomi/test"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Que_prepa(corp):
# Que préparation
Proc("QUE PREPARATION")
# Les petits cas sémantiques
amb="*que"
amb_r="-sui_nul"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# RELA
Proc("Pro:Rela /",",")
amb_r="[pro:rela"
sui=[["*que",etre,"pcd","@ce","?"],["@que","@c#",etre,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# CPLT
Proc("Coj:Cplt /",",")
amb_r="[coj:cplt"
sui=[["ver","?","@oui"],["ver","?","@non"],["ver","?","@si"],["ver","?","{pro:adve"],["*savoir","?"],["?","@importe"],["@sans","@doute","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@c#",etre,"[pré","[dét","[nom","?"],["@c#",etre,"[adv","?"],["@c#",etre,"[pré","[pro","?"]] #2: C'est ainsi que, C'est entre mes mains que, C'est de cette façon que 3: C'est à moi que
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"pcd","@ce","?"]] # : Est-ce que
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","@voilà","[dét"],["?","@voici","[dét"],["@en","@cela","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Coj:Circ /",",")
# CIRC
amb_r="[coj:circ" # Subordonnée conjonctive circonstancielle
sui=[["@jusqu#","@à","@ce","?"]]
corp=Regle(corp,amb,amb_r,sui)
# RELA
amb_r="[pro:rela"
sui=[["@ce","?"],["?","@voilà","{po"],["?","@voici","{po"],["*que",etre,"pcd","@ce","[adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Adv /",",")
# ADV
amb_r="[adv"
sui=[["@ainsi","?","{pro:pers/disj"],["@ainsi","?","_","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# INTE
amb_r="[pro:inte"
sui=[["?",etre,"pcd","[pro"]]
corp=Regle(corp,amb,amb_r,sui)
# NEGA
amb_r="[adv:néga"
sui=[["{adv:néga","?"],["*ne","ver",adv_l,"(@plus(@moins","?"]] # 2 : Cet omnibus n'était plus qu'une chrysalide dont l'homme sortirait transfigué.
corp=Regle(corp,amb,amb_r,sui)
Proc("Coj:Cplt bis /",",")
# Complétive : canonique du que
amb_r="[coj:cplt"
sui=[["{pro:pers/suje","{pro:pers",modal,"?"],["{pro:pers/suje",modal,"?"],["{pro:pers+pl",modal,"?"]]# si vous trouvez que
corp=Regle(corp,amb,amb_r,sui)
sui=[["{pro:pers/suje","{pro:pers","*dire","?"],["{pro:pers/suje","*dire","?"],["{pro:pers+pl","*dire","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[modal,"pcd","[pro:pers","?"]] # voulez-vous que
corp=Regle(corp,amb,amb_r,sui)
sui=[["pob","{coj:coor",modal,"?"]] # Et attendit que
corp=Regle(corp,amb,amb_r,sui)
for cmp in sui_cmp_prn: # je me suis souvent aperçu que
sui=[["{pro:pers/suje","{pro:pers/comp",etre,"adv",cmp,"?"],["{pro:pers/suje","{pro:pers/comp",etre,cmp,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:cplt" # CoMPlétive LIMitée, verbe + adv + que, type : je vois maintenant que. Evite : je vois maintenant le garçon que...
sui=[[cmp_lim,"((adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Ambiguité entre Complétive et négative
Proc("Coj:Cplt Adv:Néga /",",")
sui_coj=[["@ne",ver_dial,"@pas",adv_l,"?","ver"],["ne","[v","@pas",ver_dial,"?","ver"]] # Je ne dis pas que des chocolats noirs soient meilleurs.
sui_adv=[["@ne",ver_dial,"@pas",adv_l,"?","{po"],["ne","[v","@pas",ver_dial,"?","{po"]] # Je ne dis pas que des paroles obscures, je dis des choses claires.
for a in range(8):
amb_r="[coj:cplt"
corp=Regle(corp,amb,amb_r,sui_coj)
sui_coj[0][-1:-1]=["_"];sui_coj[1][-1:-1]=["_"]
amb_r="[adv:néga"
corp=Regle(corp,amb,amb_r,sui_adv)
sui_adv[0][-1:-1]=["_"];sui_adv[1][-1:-1]=["_"]
# Conjonction averbale de comparaison début, avec insertion
amb_r="[coj:circ/corr/aver"
sui=[["[coj:circ/corr","?","[dét","[adj","[nom","pob","{coj:c"],["?","[dét","[nom","[adj","pob","{coj:c"]]
#corp=Regle(corp,amb,amb_r,sui)
# Négation adverbe début
Proc("-Adv:Néga /",",")
amb_r="-adv:néga"
sui=[["{coj:coor","?"],["*ne","[ver",adv_l,adv_nega,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui_nul=[["({po(*que([coj:circ","?"],[adv_nega,"?"]] # Pour la pof : Il se rassit et n'en fit rien, en entendant... dire qu'il était venu.
sui_adv=[["*ne","?"]]
for a in range(3):
amb_r="-adv:néga"
sui=sui_nul
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][1:1]=["_"]
amb_r="[adv:néga"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
# Adverbe exclamatif
amb_r="[adv:itrj"
sui=[["[pof","?","[pro:pers/comp"]]
corp=Regle(corp,amb,amb_r,sui)
sui_int=[["[pof","?","@!"],["[pof","_","?","@!"]]
sui_nul=[["[pof","?","[pof"]]
for i in range(20):
sui_int[0][-1:-1]=["_"];sui=sui_int
amb_r="[adv:itrj"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"];sui=sui_nul
amb_r="-adv:itrj"
corp=Regle(corp,amb,amb_r,sui)
# Négation adverbe fin
amb_r="[adv:néga"
#sui=[["?","@en"]] Non car je jure qu'en mon âme et conscience
corp=Regle(corp,amb,amb_r,sui)
sui_nul=[["({po(*que([coj:circ","?"],[adv_nega,"?"]] # Pour la pof : Il se rassit et n'en fit rien, en entendan... dire qu'il était venu.
sui_adv=[["*ne","?"]]
for a in range(20):
amb_r="-adv:néga"
sui=sui_nul
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][1:1]=["_"]
amb_r="[adv:néga"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
return corp
def Que_interm(corp):
# Que intermediaire
Proc("QUE INTERMEDIAIRE")
amb="*que"
#
# CORRELATION 2/4 -
#
# Distinction d'une comparative immmédiate, 1 : mieux que...
sui_coj_cmpr=["mieux","si","plus","moins","même","tel","tant","aussi","ailleurs","à_peine","autre","meilleur"]
amb_r="[coj:circ/corr"
for coj in sui_coj_cmpr:
sui=[["*"+coj,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# 1/2
# Distinction d'une corrélative,
# Distinction entre subordonnée averbale et subordonnée selon que l'ambiguïté précède une subordonnée ou un groupe de mot,
sui_nul=[["(*que(*trai_phra(pof","?"]] #,["pob","_","?"]] # 1 : La grande erreur consiste à supposer que les vérités qu'on nomme purement algébriques sont des vérités abstraites. 2 : À peine eus-je jeté un coup d'oeil sur cette lettre, que je conclus que c'était celle dont j'étais en quête.
sui_coj=[["{coj:circ/corr","?"]] # Je compose son visage d'après le sien, aussi exactement que possible, et j'attends la pluie. & Pour le pro:rela : un homme, aussi bien que ce qui est digne de lui.
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul" # AjoutEtiqu_nul
for a in range(14):
amb_r="-sui_nul"
sui_nul[0][1:1]=["_"]#;sui_nul[1][1:1]=["_"]
corp=Regle(corp,amb,amb_r,sui_nul)
amb_r="[coj:circ/corr"
sui_coj[0][1:1]=["_"]
corp=Regle(corp,amb,amb_r,sui_coj)
# Supprime la corrélation de que si aucune corrélation n'a été trouvée, et le sui_nul dès fois qu'il n'ait pas été repéré.
amb="*que"
amb_r="-sui_nul"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*que"
amb_r="-coj:circ/corr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Cherche entre Aver et Verb si la corrélation a été trouvée.
amb="[coj:circ/corr/aver/locu/aver"
sui_coj=[["?","ver"]]
sui_adv=[["?","(pof(*que(@:"],["?","pob","@et"]]
#corp=AjoutEtiquNul(corp,amb);amb="[sui_nul" # AjoutEtiqu_nul
for a in range(15):
amb_r="]verb"
corp=Regle(corp,amb,amb_r,sui_coj)
sui_coj[0][1:1]=["_"]
amb_r="]aver"
corp=Regle(corp,amb,amb_r,sui_adv)
sui_adv[0][1:1]=["_"];sui_adv[1][1:1]=["_"];
#
# 2/2
# Trouve la sub. Non nécessairement corrélative.
Proc("2/2 /",",")
amb="*que"
sui_coj=[["?","ver"]]
sui_adv=[["?","(pof(*que(@:"]]
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul" # AjoutEtiqu_nul
for a in range(15):
amb_r="]verb"
corp=Regle(corp,amb,amb_r,sui_coj)
sui_coj[0][-1:-1]=["_"]
amb_r="-sui_nul"
corp=Regle(corp,amb,amb_r,sui_adv)
sui_adv[0][1:1]=["_"]
#
# Pronom interrogatif début
Proc("interro /",",")
amb="*que"
sui_int=[["pof","?","@?"],["{po","?","([ver(@en([pro:pers/comp","@?"]]
sui_nul=[["pof","?","pof"],["{coj:coor","?","{pro:pers","pof"]]
for i in range(20):
sui_int[0][-1:-1]=["_"];sui_int[1][-1:-1]=["_"];sui=sui_int
amb_r="[pro:inte"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"];sui_nul[1][-1:-1]=["_"];sui=sui_nul
amb_r="-pro:inte"
corp=Regle(corp,amb,amb_r,sui)
return corp
def Que(corp):
# Résolution du Que
Proc("QUE ESSENTIEL")
amb="*que"
#
# - Circonstancielle -
#
# Subordonnée conjonctive circonstancielle, forme + que
Proc("Circonstancielle /",",")
amb_r="]coj:circ/verb/locu/verb"
sui=[[conj_circ,adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# Circonstancielle adversative ou concessive
sui=[["@quelque","adj","?"],["@quelque","adj","{coj:coor","adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
for rel in nom_abs_concept: # manière, avis, façon... pour la circonstancielle de but
sui=[["*de",rel,"?"],["*de","adv",rel,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# Circonstancielle causale
sui=[["@c#",etre,"@d#","@après","dét","((adj","nom","((adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Conjonction de comparaison & # comme il ... et qu'il ... , si __ que
Proc("Comparative, comme il ... et qu'il ... /",",")
sui_coj=[["{coj:circ/corr/verb/locu","?"],["@plus","@de","nom","?"],["@plus","adv","@de","nom","?"],["@tant","*de","?"],["*tel","nom","?"],["@tellement","adj","?"],["@tellement","@de","?"],["pré","@peine","?"],["@autant","?"]]# ,["*faire","?"]
for a in range(4):
amb_r="[coj:circ/corr"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[a][-1:-1]=["_"]
# Conjonction de comparaison, aussi ... si ... que [Propositionnelle]
Proc("Conjonction de comparaison, aussi ... si ... que [Propositionnelle] /",",")
sui_coj=[["@comme","_","pob","{coj:coor","?"],["{coj:circ/corr/verb/locu","?"],["@plus","@de","nom","?"],["@plus","adv","@de","nom","?"],["@tant","*de","?"],["*tel","nom","?"],["@tellement","adj","?"],["@tellement","@de","?"],["pré","@peine","?"],["@autant","?"]]# ,["*faire","?"]
sui_nul=[["pof","?"],["{coj:cplt","{coj:coor","?"],["{pro:rela/verb","{coj:coor","?"],["*que","?"]]
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul" # AjoutEtiqu_nul
for a in range(18):
amb_r="-sui_nul"
sui=sui_nul
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"];sui_nul[1][-2:-2]=["_"];sui_nul[2][-2:-2]=["_"];sui_nul[3][-1:-1]=["_"]#;sui_nul[4][-1:-1]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
for a in range(10):
sui_coj[a][-1:-1]=["_"]
amb="*que"
#
# - Complétive -
#
# Subordonnée conjonctive complétive
Proc("Subordonnée conjonctive complétive /",",")
amb_r="[coj:cplt"
sui=[["[ver:imp","adv","?"],[etre,"adv","((adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pcd","{pro:pers",adv_l,"?"],["pob","?","*il","*dire"],["@ou","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["nom","?","_","{ver:spr"],["adj","?","_","{ver:sim"],["ver","adj","?"],["ver","adj","?"],["ver","pcd","pro","adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","adj","pob","_","_","pob","?"],["ver","adj","pob","_","pob","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Complétive coupée par une incise, AjoutEtiqu_nul
Proc("Complétive coupée par une incise /",",")
amb="*que"
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul"
sui_ter=[["pof","?"]]
sui_cpl=[[modal,"pré","?"],[modal,"pob","?"],[modal,"adv","pob","?"],[modal,"pcd","pro","pob","?"],[modal,"pcd","pro","adv","pob","?"]]
for a in range(7):
for b in range(5):sui_cpl[b][-1:-1]=["_"]
sui=sui_cpl
amb_r="[coj:cplt"
corp=Regle(corp,amb,amb_r,sui)
sui_ter[0][-1:-1]=["_"];sui=sui_ter
amb_r="-sui_nul"
corp=Regle(corp,amb,amb_r,sui)
amb="*que"
# Complétive coupée par une incise, variante
Proc("Complétive par incise, variante /",",")
amb_r="[coj:cplt"
sui=[[modal,"pob","?"],[modal,"adv","pob","?"],[modal,"pcd","pro","pob","?"],[modal,"pcd","pro","adv","pob","?"]]
for a in range(12):
sui[0][1:1]=["_"];sui[1][2:2]=["_"];sui[2][3:3]=["_"];sui[3][4:4]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# Complétive coupée par une incise, relié par l'adjectif
Proc("Complétive coupée par une incise, relié par l'adjectif /",",")
sui=[["ver","adj","pob","?"],["ver","adj","adv","pob","?"],["ver","adj","pcd","pro","pob","?"],["ver","adj","pcd","pro","adv","pob","?"]]
for a in range(12):
sui[0][-2:2]=["_"];sui[1][-2:-2]=["_"];sui[2][-2:-2]=["_"];sui[3][-2:-2]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# Complétive coupée par une incise type
Proc("Complétive coupée par une incise type /",",")
sui=[[modal,incise,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# Locution,obtenir de
Proc("Locution,obtenir de",",")
sui=[["*obtenir","*de","?"],["*obtenir","*du","?"]]
for a in range(12):
sui[0][-1:-1]=["_"];sui[1][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
#
# - Nom abstrait -
#
# Fait état de la possibilité que tout nom abstrait suivi d'un verbe transitif est une complétive, le cod du verbe ne peut se rapporter au nom,
# PRO:RELA
Proc("Tout nom abstrait suivi... Pro:Rela /",",")
amb_r="[pro:rela"
sui=[[nom_abs_concept,"?","[dét","nom","((*avoir(*être","((pro",verbe_trst_qual]] # manque pro et adverbe
corp=Regle(corp,amb,amb_r,sui)
sui=[[nom_abs_concept,"?","(pro(nom","*avoir"]] # La crainte qu'ils ont le révolte
corp=Regle(corp,amb,amb_r,sui)
# COJ:CPLT
Proc("Tout nom abstrait non suivi... Coj:Cplt /",",")
amb_r="[coj:cplt"
sui=[[nom_abs_concept,"?","[dét","nom","((*avoir(*être","((pro","ver"]] # manque pro et adverbe
corp=Regle(corp,amb,amb_r,sui)
sui=[[nom_abs_concept,"?","(pro(nom","ver"]] # La crainte qu'ils reculent le révolte
corp=Regle(corp,amb,amb_r,sui)
#
# Conjonction de comparaison [averbale] ou suppression de la conjonction de comparaison averbale
#
Proc("Conjonction de comparaison [averbale] /",",")
sui_adv=[["[coj:circ/corr/aver/locu","?"]]
sui_nul=[["(pof(@:","?"]]
for a in range(12):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
#corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="-coj:circ/corr/aver/locu"
sui=sui_nul
#corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][1:1]=["_"]
# Pronom interrogatif suite
Proc("Pronom interrogatif suite /",",")
sui_int=[["pof","?","@?"],["{coj:coor","?","@?"]]
sui_nul=[["pof","?","pof"],["{coj:coor","?","pof"]]
for i in range(20):
sui_int[0][-1:-1]=["_"];sui_int[1][-1:-1]=["_"];sui=sui_int
amb_r="[pro:inte"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"];sui_nul[1][-1:-1]=["_"];sui=sui_nul
amb_r="-pro:inte"
corp=Regle(corp,amb,amb_r,sui)
# PRO:INTE
Proc("Pro:Inte /",",")
amb_r="[pro:inte"
sui=[["pof","?","ver"],["coj","?","ver"],["?","[vii:inf"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:INTE
Proc("Que Ess : Pro:Inte",",")
amb_r="[adv:inte"
sui=[[poc_l,"?","*ne"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[poc_l,"?","@?"]]
for a in range(6):
corp=Regle(corp,amb,amb_r,sui)
sui[0][-1:-1]=["_"]
# ADV:ITRJ
Proc("Que Ess : Adv:Itrj ",",")
amb_r="[adv:itrj"
sui=[["?","pro","ver","adj","@!"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:CPLT
Proc("Que Ess : Coj:Cplt",",")
amb_r="[coj:cplt"
sui=[["[v","adj",adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO:RELA
Proc("Que Ess : Pro:Rela",",")
amb_r="[pro:rela"
sui=[["nom",adv_l,"adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:CPLT
Proc("Que Ess : Coj:Cplt",",")
amb_r="[coj:cplt"
sui=[["(adj(ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Que_Ante(corp):
# Que Antécédent
Proc("QUE ANTEPOSÉ"",")
amb="*que"
amb_r="coj:cplt"
sui=[["{po","?","{po","@si"]] # Je veux dire, continua Dupin, pendant que je contentais de rire de ses dernières observations, que, si le ministre n'avait été qu'un mathématicien, le préfet n'aurait pas été dans la nécessité de me convaincre.
corp=Regle(corp,amb,amb_r,sui)
# CPLT RELA CIRC
sui_cpl=[["{coj:cpl","{pro:pers/suje","pob","?","{pro:pers/suje"],["{coj:cpl","{pro:pers/suje","{coj:coo","?","{pro:pers/suje"]]
sui_pro=[["{pro:rela/verb","{pro:pers/suje","pob","?","{pro:pers/suje"],["{pro:rela/verb","{pro:pers/suje","{coj:coo","?","{pro:pers/suje"]]
sui_con=[["{coj:circ","{pro:pers/suje","pob","?","{pro:pers/suje"],["{coj:circ","{pro:pers/suje","{coj:coo","?","{pro:pers/suje"]]
for a in range(25):
amb_r="[coj:cplt"
sui_cpl[0][-3:-3]=["_"];sui_cpl[1][-3:-3]=["_"]
sui=sui_cpl
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:circ/locu" # d'abord coj:circ puis, pro:rela
sui_con[0][-3:-3]=["_"];sui_con[1][-3:-3]=["_"]
sui=sui_con
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:rela"
sui_pro[0][-3:-3]=["_"];sui_pro[1][-3:-3]=["_"]
sui=sui_pro
corp=Regle(corp,amb,amb_r,sui)
# CPLT RELA CIRC
sui_cpl=[["{coj:cpl","pob","?"],["{coj:cpl","{coj:coo","?"]]
sui_pro=[["{pro:rela/verb","pob","?"],["{pro:rela/verb","{coj:coo","?"]]
sui_con=[["{coj:circ","pob","?"],["{coj:circ","{coj:coo","?"]]
for a in range(25):
amb_r="[coj:cplt"
sui_cpl[0][-2:-2]=["_"];sui_cpl[1][-2:-2]=["_"]
sui=sui_cpl
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:circ"
sui_con[0][-2:-2]=["_"];sui_con[1][-2:-2]=["_"]
sui=sui_con
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:rela"
sui_pro[0][-2:-2]=["_"];sui_pro[1][-2:-2]=["_"]
sui=sui_pro
corp=Regle(corp,amb,amb_r,sui)
# RELA
sui_pro=[["{pro:rela/verb",poc_l,"?"]]
for a in range(18):
amb_r="[pro:rela"
sui_pro[0][-2:-2]=["_"]
sui=sui_pro
corp=Regle(corp,amb,amb_r,sui)
return corp
def Que_fin(corp):
# Que fin
Proc("QUE... FIN")
#modal_dire=modal[0];modal_dire=[modal_dire+"(*dire"]
amb="*que"
Proc("Cplt /",",")
# CPLT
amb_r="[coj:cplt"
sui=[["{vii:infi","pob","?"],["[v","adv","?"]] # 1 : écrire, que 2 : Je sentais aussi que
corp=Regle(corp,amb,amb_r,sui)
sui=[[etat,"(([adv","(([dét","(([adj","[nom","(([adj","?","*de"]] # Ce n'est pas une petite besogne que d'enfoncer le ministre.
corp=Regle(corp,amb,amb_r,sui)
sui=[["pob","?","pob","@si"]] # Je veux dire, continua Dupin, pendant que je me contentais de rire de ses dernières observations, que, si le ministre n'avait été qu'un mathématicien, le préfet n'aurait pas été dans la nécessité de me souscrire ce billet.
corp=Regle(corp,amb,amb_r,sui)
Proc("Rela Excl /",",")
# RELA
amb_r="[pro:rela"
sui=[["nom","pob","?"],["nom","adj","pob","?"]]
corp=Regle(corp,amb,amb_r,sui)
# EXCL
amb_r="[adv:itrj"
sui=[["{coj:coor","?"],["pof","?"],["pob","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Cplt2 /",",")
# CPLT pour champs de dire, AjoutEtiqu_nul
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul"
sui_ter=[["pof","?"]]
sui_cpl=[[ver_dial,"?"]]
for a in range(12):
sui_cpl[0][-1:-1]=["_"]
sui=sui_cpl
amb_r="[coj:cplt"
#corp=Regle(corp,amb,amb_r,sui)
sui_ter[0][-1:-1]=["_"];sui=sui_ter
amb_r="-sui_nul"
#corp=Regle(corp,amb,amb_r,sui)
amb="*que"
Proc("Rela2 /",",")
# RELA
amb_r="[pro:rela"
sui=[["nom","?"],["nom","adj","?"],["nom","adv","adj","?"],["({pro:rela({pro:démo","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Cplt3 /",",")
# CIRC
amb_r="[coj:circ"
sui=[[poc_l,"[adv","?"],["{coj:circ","?"]]
corp=Regle(corp,amb,amb_r,sui)
# CPLT
amb_r="[coj:cplt"
sui=[["{v","?"],["adj","?"],["{po","?"],["{coj:coor","?"]] # et que, justifié pour cplt ???
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"((_","((_","((_","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="]adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def CarSpe(corp):
Proc("CARACTÈRE SPÉCIAUX")
amb="@-"
amb_r="pof"
sui=[["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pcd"
sui=[["[adj:numé","?","[adj:numé"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pob"
sui=[["_","?","_"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def T_euph(corp):
# T euphonique
Proc("EUPHONIQUE T")
amb="@t"
amb_r="pob"
sui=[["ver","?"],["?","pro"],["ver","?"],["?","pro"],["?","@<->"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["?"]]
return corp
def L_apos(corp):
Proc("APOSTROPHE L'")
amb="@l#"
amb_r="[dét:arti/part"
sui=[["[dét:arti/part","?"],["adv","pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["pro","?"],["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/défi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Neuf(corp):
# Neuf
Proc("NEUF")
amb="@neuf"
amb_r="-adj:mas+sg" # Neuf ne peut être adjectif s'il ne s'accorde pas avec un pluriel.
sui=[["(]pl+p3(]pl+p2(]pl+p1","((_","((_",etat,"?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Numeraux(corp):
# Numéraux
Proc("NUMERAUX")
#
# - Déterminant article indéfini -
#
amb="[dét:arti/indé" #un, non numéral,
# DET UN
amb_r="[dét:numé"
sui=[["*compter","?"], ["@plus","@d#","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-dét:numé"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Déterminant numéral cardinal -
#
amb="[dét:numé/card"
# NOM
amb_r="nom"
sui=[["{dét:art","?",poc_l],["{dét:art","?","coj"],["[nom","*de","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["(pré(@en","?",poc_l]] # Elle était presque déchirée en deux.
corp=Regle(corp,amb,amb_r,sui)
# DET:NUME/CARD
amb_r="dét"
sui=[["?","[dét:numé","[nom:f"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","nom"],["?","{dét:numé/card"],["{dét:numé/card","?"],["?","adj"],["?","adj nom"],["?","*kilomètre"],["?","coj","*un"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","@à","[dét:numé/card","[nom"],["?","@à","[dét:numé/card","[dét:numé/card","[nom"]]
corp=Regle(corp,amb,amb_r,sui) # estimation, neuf à dix hommes
#
# - numéral ordinal -
#
amb="[nom:numé/ordi" # ne pas choisir adj:numé/ordi à cause de "un".
# ADJ NUME ORDI
amb_r="[adj:numé/ordi"
sui=[["(*scène(*page(*chapitre(*acte({nom:prop","?"],["dét","?",etre]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","[vpp","[pré"]] # La première partie de la soirée.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","[nom","[pré"]] # Ma première nuit en Argentine.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[ver",adv_l,"[dét","?","[nom"]] # Il nous fit une seconde visite
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","*visite"]] # Amb Sémantique, visite
corp=Regle(corp,amb,amb_r,sui)
# PRO NUME CARD
amb_r="[pro:numé/card"
sui=[["{ve",adv_l,"?",poc_l],["[dét:adje","?","{vpp:ppas"],["?","[pré"],["?","coj","{adj:numé/card"],["*tout","?","[po"],["coj","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?",adv_l,"ver"],["?","{pro:rela"],["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{pro:numé/card",liai,"?"],["?",liai,"{pro:numé/card"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM NUME ORDI
amb_r="[nom:numé/ordi"
sui=[["dét","?","{po"],["[dét","?","[ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Numeraux_fin(corp):
# Numéraux fin
Proc("NUMERAUX... FIN")
#
# DET NUME CARD
amb="[dét:numé/card" # Cardinaux
amb_r="nom"
sui=[["nom","pré","?","{po"]] # un quart de mille
corp=Regle(corp,amb,amb_r,sui)
# ADJ NUME ORDI
amb_r="[adj:numé/ordi"
sui=[["pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO NUME CARD
amb_r="[pro:numé/card"
sui=[["?","]pl+p3"],["?","*le"],["?","*un"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?",liai,"{dét:numé/card"]] # Deux puis quatre puis cent hommes apparurent sur la crête.
for i in range(5):corp=Regle(corp,amb,amb_r,sui)
sui=[["?",liai,"{pro:numé/card"]] # Deux puis quatre puis cent hommes apparurent sur la crête.
for i in range(5):corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"],["dét","adj","?"],["coj","?"],["pré","?"],["dét","]sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
# DET NUME CARD
amb_r="[dét:numé/card"
sui=[["?","dét"],["[dét","?"],["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ NUME ORDI
amb="[nom:numé/ordi" # Cardinaux
amb_r="[adj:numé/ordi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Calcul(corp):
# Suite de calculs
Proc("CHIFFRE DE CALCUL")
amb_sui=["@moins","@plus"]
amb_r="pré"
for amb in amb_sui:
sui=[["([nom:prop([nom:maju([nom:inco/maju","?","([nom:prop([nom:maju([nom:inco/maju"],["([nom:prop([nom:maju([nom:inco/maju","pob","?","([nom:prop([nom:maju([nom:inco/maju"],["([nom:prop([nom:maju([nom:inco/maju","pob","?","[pré","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Romain(corp):
# Chiffres romains
Proc("CHIFFRE ROMAIN")
amb=chiffre_romain
amb_r="[adj:numé"
sui=[["([nom:prop([nom:maju([nom:inco/maju","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Cote(corp):
# Côté
Proc("CôTÉ")
amb="@côté"
amb_r="pré"
sui=[["@à","?"],["@du","?","@de"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Encore(corp):
# Encore
Proc("ENCORE")
amb="@encore"
amb_r="adv"
sui=[["[ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?","*que"],["*si","?"],["?","*si"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Soit(corp):
# Soit
Proc("SOIT")
amb="@soit"
amb_r="ver"
sui=[["[pro","?"],["[pro","adv","?"],["{po","nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["{po","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?","@soit"],["@soit","?"]]
for a in range(15):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["]subr","?"]]
for a in range(10):
corp=Regle(corp,amb,amb_r,sui)
sui[0][1:1]=["_"]
return corp
def Soit_fin(corp):
# Soit fin
Proc("SOIT... FIN")
amb_r="coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Cela(corp):
# Cela
Proc("CELA")
amb="@cela"
amb_r="ver"
sui=[["@il","?"],["@il","pro","?"],["@il","pro","pro","?"],["@on","?"],["@on","pro","?"],["@on","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@il","?"],["@il","*ne","pro","?"],["@il","*ne","pro","pro","?"],["@on","*ne","?"],["@on","*ne","pro","?"],["@on","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?","pro"],["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Cela_fin(corp):
# Cela fin
Proc("CELA... FIN")
amb="@cela"
amb_r="ver"
sui=[["@nom","?"],["@nom","pro","?"],["@nom","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@nom","?"],["@nom","*ne","pro","?"],["@nom","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def OuiNon(corp):
# Adverbe d'opinion Oui et Non
Proc("OUI NON")
amb="@non"
amb_r="nom"
sui=[["@le","((adj","?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?",adv_l,"*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_sui=["@oui","@non"]
for amb in amb_sui:
amb_r="nom"
sui=[["dét pro","?"],["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Comme(corp):
# Comme
Proc("COMME")
amb="@comme"
# ADV:ITRJ
amb_r="[adv:itrj"
sui=[["({po(coj","?","@!"]]
for a in range(6):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# ADV:CMPR
amb_r="[adv:cmpr" # Il est comme perdu
sui=[["(adv(ver","?","adj",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","(([adj","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:COOR
amb_r="[coj:coor"
sui=[["(nom(pro","?","(nom(pro"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:CPLT
amb_r="[coj:cplt"
sui=[[modal,adv_l,"?"],["{po","{ver:impé","?"]] # Vois comme il est gentil.
corp=Regle(corp,amb,amb_r,sui)
return corp
def Comme_fin(corp):
Proc("COMME... FIN")
amb="@comme"
# ADV:CMPR
amb_r="[adv:cmpr" # Il est comme perdu
sui=[["([adv([ver","?","[adj",poc_l],["{po","[ver:impé","?"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:CIRC
sui_aver=[["?","pof"],["?","pob","{coj:c"],["pob","?","pob"]]
sui_verb=[["?","ver"]]
for a in range(15):
amb_r="[coj:circ/aver"
sui_aver[0][1:1]=["_"];sui_aver[1][1:1]=["_"];sui_aver[2][2:2]=["_"]
corp=Regle(corp,amb,amb_r,sui_aver)
amb_r="[coj:circ/verb"
sui_verb[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui_verb)
amb_r="[coj:circ/verb"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui_verb)
return corp
def Pourquoi(corp):
# Pourquoi
Proc("POURQUOI")
amb="POURQUOI"
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui_coj=[["?","{ver"],["?","*avoir"],["?","*être"]]
sui_adv=[["?","{po"],["?","{coj:coor"],["?","{pro:rela"]]
for a in range(8):
amb_r="[coj:circ"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"];sui_coj[1][-1:-1]=["_"];sui_coj[2][-1:-1]=["_"]
amb_r="adv"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][-1:-1]=["_"];sui_adv[1][-1:-1]=["_"];sui_adv[2][-1:-1]=["_"]
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Seul(corp):
Proc("SEUL")
amb="*seul"
amb_r="nom"
sui=[["dét","?","pof"],["dét","?","pob"],["dét","?","pré"],["dét","?","coj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Meme(corp):
Proc("MêME")
# MEME
# ADV:LIAI composé
amb="*même"
amb_r="+*de_même Adv:Liai/Cmps"
sui=[[poc_l,"@de","?",poc_l],[poc_l,"@de","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@de"
amb_r="+*de_même Adv:Liai/Cmps"
sui=[[poc_l,"?","@même",poc_l],[poc_l,"?","@même","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*de_même")
corp=Effac_forme(corp)
amb="*de_même"
amb_r="[adv:liai"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ composé
amb="@même" # singulier
amb_r="+*le_même Adj:Qual/Cmps+Ing+SG"
sui=[[etat,adv_l,"(@le(@la","?","{po"]] # Il est demeuré le même
corp=Regle(corp,amb,amb_r,sui)
amb=["@le","@la"]
amb_r="+*le_même Adj:Qual/Cmps+Ing+SG"
sui=[[etat,adv_l,"?","@même",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*le_même")
corp=Effac_forme(corp)
amb="*le_même"
amb_r="[adj:qual/cmps+ing+sg"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@mêmes" # pluriel
amb_r="+*le_même Adj:Qual/Cmps+Ing+PL"
sui=[[etat,adv_l,"(@le(@la","?",poc_l]] # Ils sont demeurés les mêmes
corp=Regle(corp,amb,amb_r,sui)
amb="@les"
amb_r="+*le_même Adj:Qual/Cmps+Ing+PL"
sui=[[etat,adv_l,"?","@mêmes",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*le_même")
corp=Effac_forme(corp)
amb="*le_même"
amb_r="[adj:qual/cmps+ing+pl"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO composé
amb="@même" # singulier
amb_r="+*le_même Pro:Indé/Cmps+Ing+SG"
sui=[["(@le(@la","?",poc_l],["(ver(vpp","(@le(@la","?","((adv",poc_l]] # J'ai vu le même.
corp=Regle(corp,amb,amb_r,sui)
amb=["@le","@la"]
amb_r="+*le_même Pro:Indé/Cmps+Ing+SG"
sui=[["?","@même",poc_l],["(ver(vpp","?","@même","((adv",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*le_même")
corp=Effac_forme(corp)
amb="*le_même"
amb_r="[pro:indé/cmps+ing+sg"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@mêmes" # pluriel
amb_r="+*le_même Pro:Indé/Cmps+Ing+PL"
sui=[["@les","?",poc_l],["(ver(vpp","(@les","?","((adv",poc_l]] # J'ai vu les mêmes.
corp=Regle(corp,amb,amb_r,sui)
amb="@les"
amb_r="+*le_même Pro:Indé/Cmps+Ing+PL"
sui=[["?","@mêmes",poc_l],["(ver(vpp","?","@mêmes","((adv",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*le_même")
corp=Effac_forme(corp)
amb="*le_même"
amb_r="[pro:indé/cmps+ing+pl"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ:INDE/ITEF
amb="*même"
amb_r="[adj:indé/itef" # post position, Et le lendemain même un billet meme nous arrivait.
sui=[["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
adv_li_tp=["@ici","@là","@maintenant","@lors","@hier","@demain","@ailleurs"]
for adv_ in adv_li_tp:
sui=[[adv_,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ:INDE
amb_r="[adj:indé+" # pré position, C'est le même dossier
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="[pro"
sui=[["[pro:pers/disj","*trai_liai","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Meme_fin(corp):
Proc("MêME... FIN")
amb="*même"
# ADJ:INDE/ITEF
amb_r="[adj:indé/itef" # post position, Et le lendemain même un billet meme nous arrivait.
sui=[["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ:INDE
amb_r="[adj:indé+" # pré position, C'est le même dossier
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
#
sui_adv=[["?","[coj:circ/corr/aver"],["?","]coj:circ/corr/verb/locu","[coj:circ"],["?","]pro:rela"],["?","*que","ver"]]#moins surpris des paroles que proféraient...
sui_coj=[["?","[coj:circ/corr/verb/locu"]]
for a in range(8):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
#corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][-1:-1]=["_"];sui_adv[2][-1:-1]=["_"];sui_adv[2][-1:-1]=["_"];sui_adv[3][-2:-2]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
#corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="adj"
sui=[["[dét","?"],["?","nom"],["nom","?"],["pro","?"],["@de","?","{po"],["@de","?","{coj:coor"],["@de","?","[pré"]]
#corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","@s#","@il"],["(@à(@pas(@de(@quand{adv:néga","?"],["?","(dét(*que(@si({adv:néga"],["{coj:coor","?","(nom(pro"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","?"],["adv","?"],["adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["[dét","?","{coj:coor"],["[dét","?","{po"]]
#corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["[dét","?","{coj:coor"],["[dét","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Lequel(corp):
Proc("LEQUEL")
amb="*lequel"
amb_r="[pro:inte"
sui=[["?","@?"]]
for a in range(20):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:rela"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Surtout(corp):
# Surtout
Proc("SURTOUT")
amb="*surtout"
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ou(corp):
# Où. J'ai toujours, devant les yeux, l'image de ma première nuit de vol en Argentine, une nuit sombre où scintillaient seules, comme des étoiles, les rares lumières éparses dans la plaine.
Proc("Où")
amb="@où"
# NOM
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO:INTE
amb_r="[pro:inte"
sui=[["{po","?","@?"],["{po","_","?","@?"]]# pas d'infinitif [["[vii:infi","?"]] car " J'ai vu dans les pays que le sort m'a fait parcourir, et dans les cabarets où j'ai servi, un nombre prodigieux de personnes qui avaient leur existence en exécration ; mais je n'en ai vu que douze qui aient mis volontairement fin à leur misère : trois nègres, quatre Anglais, quatre Genevois et un professeur allemand nommé Robeck.
for a in range(20):
sui[0][-1:-1]=["_"];sui[1][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof","]inte","{coj:coor","?"],["pof","_","]inte","{coj:coor","?"]]
for a in range(15):
sui[0][-2:-2]=["_"];sui[1][-2:-2]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="[adv:lieu"
sui=[["@d#","?"],["pof","?"],["{v",adv_l,"?"],["{v","pré","?"],["adv","?"],["pof","{pro:indé","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO:RELA
amb_r="[pro:rela"
sui=[["nom","?"],["nom","pré","?"],["adj","?"],["coj","?"],["pof","?"],["pob","?"],["[pré"],["?","pro"],["[pro:adve","?"],["[pro:adve","_","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ou_fin(corp):
# Où. Force le passage
Proc("Où fin")
amb="@où"
# PRO:RELA
amb_r="[pro:rela"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adv:lieu"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def ProPers(corp):
# Pronoms personnels Nous vous tu eux lui
Proc("PRONOMS PERSONNELS NOUS VOUS TU EUX LUI")
amb=["*nous","*vous"]
# NOM
amb_r="nom"
sui=[["dét","?"],["dét","adj","?"],["dét","adv","adj","?"],["dét","adv","adv","adj"]]
#corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
#
# Tu
#
amb="@tu"
# VER
amb_r="vpp"
sui=[[etre,adv_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Nous vous, pronom personnel sujet, complément et disjoint
#
# PRO:COMP
amb=["@nous","@vous","@lui"]
amb_r="[pro:pers/comp"
sui=[["[pro:pers/suje","?"],["{v",adv_c,"?"],["?","[v","pcd","[pro"]] # 3 : nous dites-vous
corp=Regle(corp,amb,amb_r,sui)
for tptr in sui_temp_trait:
sui=[["?","vii"],["?","(([pro","(]"+tptr+"+sg+p1(]"+tptr+"+sg+p2(]"+tptr+"+sg+p3(]"+tptr+"+pl+p3"]] # 1 : vous convaincre/nous rendre maîtres et possesseurs de la Nature; tout sauf les verbes en "ez" et "ons"
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","(([pro","]ipré+sg+p3"]]
#corp=Regle(corp,amb,amb_r,sui)
# PRO:SUJE
amb_r="[pro:pers/suje"
amb="@nous"
sui=[["?","(([pro","(([pro",adv_l,"]pl+p1"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@vous"
sui=[["?","(([pro","(([pro",adv_l,"]pl+p2"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO:DISJ
amb=["@nous","@vous","@lui"]
amb_r="[pro:pers/disj"
sui=[["pré",adv_l,"?"],["?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# elle
amb=["@elle","@elles"]
sui=[["pré",adv_l,"?",poc_l],["{po","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pers/suje"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO:PERS/DISJ
amb="[pro:pers/disj"
amb_r="[pro:pers/disj" # lui-même
sui=[["?","pcd","*même"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def ProPers_fin(corp):
# Pronom personnel fin
Proc("PRONOM PERSONNEL... FIN")
amb=["*nous","*vous"]
amb_r="[pro:pers/suje"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def SujComDis(corp):
Proc("SUJET COMPLÉMENT DISJOINT")
amb="pro"
amb_r="[pro:pers/disj"
sui=[["pob","?","pof"],["pob","?","pob"],["pré","?","pof"],["pré","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pers/comp"
sui=[["pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pers/suje"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Quand(corp):
# Quand
Proc("QUAND")
amb="@quand"
sui_int=[["{po","?","@?"]]
sui_poi=[["?","@."]]
for a in range(10):
sui=sui_poi
sui[0][-1:-1]=["_"]
amb_r="[coj:circ"
corp=Regle(corp,amb,amb_r,sui)
sui=sui_int
sui[0][-1:-1]=["_"]
amb_r="[adv"
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:circ"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Si_prepa(corp):
# Si
Proc("SI")
amb="@si"
# ADV:DEGR
amb_r="[adv:degr"
sui=[["[dét:adje","?","pré"],["pob","?","adj",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","?","{po"],["[dét","?","{coj:coor"],["[dét","?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -ADV:AFFI
amb_r="-adv:affi"
sui=[[etre,adv_l,"?",incise]] #C'est à peine si, de son léger murmure, il dit bonjour.
corp=Regle(corp,amb,amb_r,sui)
# ADV:AFFI
amb_r="[adv:affi"
sui=[["?","pof"],["?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:INTE
amb_r="[adv:inte" # interrogatif début
sui=[["{po","?","@?"]]
for a in range(10):
corp=Regle(corp,amb,amb_r,sui)
sui[0][-1:-1]=["_"]
# COJ:CIRC
amb_r="]coj:circ"
sui=[["@même","?"],["@comme","?"],["ver","?","[pro:pers"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","?","[pro:pers"]] # si je vous disais que la soeur, que vous connaissais (sinon coj:circ/corr/verb/locu)
corp=Regle(corp,amb,amb_r,sui)
sui=[[modal,"?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","([det([pro"]] # Si l'homme est , Si tu ...
corp=Regle(corp,amb,amb_r,sui)
return corp
def Si_fin(corp):
# Si fin
Proc("SI FIN")
amb="@si"
# ADV:DEGR
amb_r="[adv:degr"
sui=[["?","[adv","pob","{pro:inte"],["?","([adj([vpp","((pré",adv_l,"pob"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ:CIRC
amb_r="]coj:circ"
sui=[["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("adv/degr / ",",")
# ADV:DEGR
amb_r="[adv:degr"
sui=[["ver","?","[adj"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","adv",poc_l]] # Ces mots d'ordre qui m'engageaient si gravement, je les recevais près des vitrines éclairées.
corp=Regle(corp,amb,amb_r,sui)
#
# INTERROGATIF suite
#
Proc("adv inte / ",",")
# -ADV:INTE
amb_r="-adv:inte"
sui=[["?","[adj","{po"]] # Il est si gentil ?
corp=Regle(corp,amb,amb_r,sui)
sui=[["nom","?","adj"]] # La nature est d'une espèce si différente de la nôtre ?
corp=Regle(corp,amb,amb_r,sui)
# ADV:INTE
amb_r="[adv:inte"
sui=[["?","@?"]]
for a in range(10):
corp=Regle(corp,amb,amb_r,sui)
sui[0][-1:-1]=["_"]
Proc("adv/degr II / ",",")
# ADV:DEGR
amb_r="[adv:degr"
sui=[[etat,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","adj"],["?","adv"],["[pré","?"],["?","[vrr","*que"],["?","[adv","*que"],["?","[adv","ver","*que"],["?","[adv","[vrr","*que"]] # si brillant que...
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("coj:circ /",",")
# COJ:CIRC
amb_r="]coj:circ"
sui=[["{po","?"],["@comme","?"],["?","{pro:pers/suje"],["ver","?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
# Choix ADV ou COJ
sui_adv=[["?","pof"]]
sui_coj=[["?",temp_sico]]
for a in range(8):
amb_r="[adv:degr"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][-1:-1]=["_"]
amb_r="]coj:circ"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
#
# S'
#
Proc("s' /",",")
amb="@s#"
# COJ
amb_r="[coj:circ"
sui=[["?","*il"]]#,["?","[ver:ipqp"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Si_finII(corp):
Proc("SI FIN II")
amb="@si"
amb_r="[adv:degr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Des(corp):
Proc("DES")
amb="@des"
# DET
amb_r="dét"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ARTI/INDE
Proc("Dét Indé /",",")
amb_r="[dét:arti/indé"
sui=[["ver","(adj nom(adj","?"]] # lesquels gisaient pêle-mêle des lettres diverses et d'autres papiers.
corp=Regle(corp,amb,amb_r,sui)
sui=[["*avoir","pré","[dét","nom","?","nom"]] # il a dans son hôtel des serviteurs.
corp=Regle(corp,amb,amb_r,sui)
# ARTI/DEFI
Proc("Dét Cont /")
amb_r="[dét:arti/défi/cont"
sui=[["*sortir","?","@mains"],[poc_l,adv_l,"[vpp","?"],["(nom(adj nom","?","(nom(adj nom"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*le","*un","?"]] # L'un des joueurs tient dans la main
corp=Regle(corp,amb,amb_r,sui)
sui=[["{dét:arti/défi","nom","((adj","((pob","{coj:c","?","nom"]] # L'un des joueurs tient dans la main
corp=Regle(corp,amb,amb_r,sui)
sui=[["nom","((adj","?","((adj","nom"]] # l'assaut direct des massifs d'Alcoy
corp=Regle(corp,amb,amb_r,sui)
sui=[["vii","pob","pré","dét","nom","((adv","pob","?","nom","((adj",poc_l]] # causer, pendant un quart d'heure environ, des affaires publiques.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[adv:lieu","?"]] # au-dessus des mers de nuages
corp=Regle(corp,amb,amb_r,sui)
return corp
def Des_fin(corp):
# Des
Proc("DES FIN")
#
# - Des -
#
amb="@des"
# ARTI/DEFI
amb_r="[dét:arti/défi"
sui=[["[pro:indé","?"],[etre,adv_l,"vpp","?"]] # 2 : Elle fut suivie des premiers.
corp=Regle(corp,amb,amb_r,sui)
# ARTI/INDE
amb_r="[dét:arti/indé"
sui=[["([dét:arti/indé(pro(coj({po","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ARTI/DEFI
amb_r="[dét:arti/défi"
sui=[["[pro:pers/comp","|((_|((_|((_|((_|((_","[nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Locution verbale
sui=[["(@près(]ppré/cmps(]infi/cmps(]ppas/cmps(]ipré(]iimp/cmps(]ipsi/cmps(]spré/cmps(]cpré/cmps(]simp/cmps(]ifut/cmps","?"]]
# je les recevais près des vitrines éclairées.
# Et en tenant compte des circonstances.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[nom","?","nom"]] # Avec la charge des sacs postaux.
corp=Regle(corp,amb,amb_r,sui)
# ARTI/INDE
amb_r="[dét:arti/indé"
sui=[["pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Tout(corp):
# Tout
Proc("TOUT")
amb="*tout"
# Choix entre COJ averbal, COJ verbal et DET, pour une distinction par ex. entre
# 1 : Tout solide qu'il apparaisse. Coj:Circ/Corr/Verb/Locu.
# 2 : Tout solide qu'il prend fragilise sa santé. Det.
sui_tout_coj_de=[["?","[adj",adv_l,"*que","{ver:i"]]
sui_tout_coj_ve=[["?","[adj",adv_l,"*que","[v"]]
sui_tout_coj_av=[["?","[adj",adv_l,"*que","pof"]]
for a in range(5):
amb_r="[dét"
sui=sui_tout_coj_de
corp=Regle(corp,amb,amb_r,sui)
sui_tout_coj_de[0][-1:-1]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_tout_coj_ve
corp=Regle(corp,amb,amb_r,sui)
sui_tout_coj_ve[0][-1:-1]=["_"]
amb_r="[coj:circ/corr/aver/locu"
sui=sui_tout_coj_av
corp=Regle(corp,amb,amb_r,sui)
sui=sui_tout_coj_av[0][-1:-1]=["_"]
#
# Tous
#
amb="@tous"
# DET
amb_r="dét"
sui=[["[ver","?","[pro:numé"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[[etre,"?"],["ver","?","]sg"],["ver","?","[dét","]fém+pl"],["{po","?","]mas+sg"],["{coj:coor","?","]mas+sg"],["ver","adv","?","]sg"],["ver","adv","?","[dét","]fém+pl"]] # ils levaient tous les mains au ciel
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","[vpp:ppas","pré"],["?","[adj","pré"],["pro","?","nom"],["?","(@le(@la(@un(@une"]] # ils sont tous chargés de
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Tout
#
# ADV
amb_r="adv"
sui=[["@en","?","(nom(adj nom"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro" # "dirent tous que"
sui=[["ver","?","*que"],["@en","?"],["@une","@fois","@pour","?"],["@envers","coj","@contre","?"],["?","@ou","@rien"],["@comme","?","pof"],["@après","?","pof"],["@malgré","?","pof"],["@comme","?","pob"],["@après","?","pob"],["@malgré","?","pob"],["?","[pro:pers/suje"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
Proc("Dét",",")
amb="*tout"
amb_r="dét"
sui=[["?","[dét:num","[ver"],["?","({pro:numé({pro:démo({pro:pose"],["?","nom"],["?","adj","nom"]]# 1: tous deux dirent
corp=Regle(corp,amb,amb_r,sui)
# Choix entre COJ verbal et sui_nul
sui_coj_ve=[["?","[adj",adv_l,"*que","{v"]]
sui_coj_av=[["?","[adj",adv_l,"*que","pof"]]
corp=AjoutEtiquNul(corp,amb);amb="[sui_nul"
for a in range(15):
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj_ve
#corp=Regle(corp,amb,amb_r,sui)
sui_coj_ve[0][-1:-1]=["_"]
amb_r="-sui_nul"
sui=sui_coj_av
#corp=Regle(corp,amb,amb_r,sui)
sui=sui_coj_av[0][-1:-1]=["_"]
amb="*tout"
# PRO
amb_r="pro"
sui=[["adv","?","pof"],["adv","?","pob"],["adv","?","pob"],["ver","?","pob"],["pré","?","(pof(vii"],["adv","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","(vpp(vii(vrr"],["?","adj","(pof(pob"],["@point","@du","?"],[etre,"?","adj"],["ver","?","[adv"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","(@bas(@haut"],["ver","?","[adj",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["nom","?","adj nom","{po"]] # La cinquantaine d'oreillons tout nus.
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["ver","[dét","?","pré"],["ver","adv","[dét","?","pré"],["[dét:pos","?"],["[dét:dem","?"],["[dét","?","{po"],["[dét","?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","[dét","?"]] # Le tout devait...
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","[pro:per","ver"],["?","[pro:per","[pro:per","ver"],["pro","ver","?","nom"],["pré","?","pré"],["?","*ne","ver"],["?","adv","*ne","ver"],["?","adv","adv","*ne","ver"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -SUI_NUL nettoyage séé
amb_r="-sui_nul"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Tout_fin(corp):
# Tout fin
Proc("TOUT FIN")
#
amb="*tout"
#
# Tout mot
#
amb="@tout"
# DET
amb_r="dét"
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Tout lemme
#
amb="*tout"
# ADJ:Inde
amb_r="[adj:indé"
sui=[["?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["ver","?",poc_l]] # Il les perdait toutes de la même façon.
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","[adj"],["?","adv"],["ver","?"],["?","pré"]] # 4:Voir le combat tout à son aise
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","[vrr"],["[adj","pob","?","[vrr"],["[vrr","pob","?","[vrr"],["[ver","?","[adj"],["[ver","?","[vpp:ppas"],["nom","?","[adj"],["nom","?","[vpp:ppas"]] # 2:Tout agitée
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","pof"],["?","pob"],["?","coj"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","ver"],["pof","?"],["pob","?"],["ver","adv","?"],["ver","adv","adv","?"],["ver","?","adv"],[etre,"?"],]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?","[nom"],["pré","?"],["?","pro"]] # 1: leur firent toutes sortes de civilités
corp=Regle(corp,amb,amb_r,sui)
return corp
def Tel_fin(corp):
# Tel fin
Proc("TEL FIN")
# COJ:CIRC
amb="*tel_que"
amb_r="[coj:circ/locu"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
amb="*tel"
# ADJ
amb_r="adj"
sui=[["*tel","[coj:c","?"]]
corp=Regle(corp,amb,amb_r,sui)
# COJ
sui_adv=[["?","[coj:circ/corr/aver"],["?","]coj:circ/corr/verb/locu","[coj:circ"],["?","]pro:rela"],["?","*que","ver"],["?","pof"]]
sui_coj=[["?","[coj:circ/locu"]]
for a in range(8):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
#corp=Regle(corp,amb,amb_r,sui)
for a in range(5):sui_adv[a][1:1]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
#corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
# DET
amb_r="dét"
sui=[["{adv:inte","?"],["{pro:rela","?"],["*tel","coj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["*un","?","adj","nom"],["*un","?","nom"],["@de","?","nom"],["?","{po"],["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["pré","?"],["pré","adv","?"],["coj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","ver"],["?","adv"],["@pour","?","pob"],["@pour","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Aucun(corp):
# Aucun
Proc("AUCUN")
amb="*aucun"
# ADJ
amb_r="adj"
sui=[["nom","((adj","?","((adj",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?","((adj","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?",adv_l,"ver"],["@en","[ver",adv_l,"?"]] # 2 : de n'en poser aucun.
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DifDiv(corp):
# DIFFERENT,DIVERS, MAINTS, PLUSIEURS
# « Certains marins sont ici » « Certains sont ici » « Un certain nombre de personnes » « Ils sont certains d'être là » « Un nombre certain de personnes »
Proc("DIFFERENT,DIVERS, MAINTS, PLUSIEURS CERTAIN")
amb_sui=["*différent","*divers","*plusieurs","*maint","*certain"]
for amb in amb_sui:
amb_r="[adj:indé"
sui=[["[dét","?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro"
sui=[["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:adje"
sui=[["?", "nom","(([ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DifDiv_fin(corp):
# DIFFERENT,DIVERS, MAINTS, PLUSIEURS
Proc("DIFFERENT,DIVERS, MAINTS, PLUSIEURS CERTAIN Fin")
amb_sui=["*différent","*divers","*plusieurs","*maint","*certain"]
for amb in amb_sui:
amb_r="[adj:indé"
sui=[["[dét","?","[nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:adje"
sui=[["?", "[nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro"
sui=[["?","[ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adj:qual"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Aussi_prepa(corp):
# Aussi_bien
Proc("AUSSI PREPARATION")
amb="@aussi"
# -ADV:CMPS
# 1 : aussi bien que Jean, 2 : vois-tu aussi bien le jour
amb_r="-adv:manr/cmps"
sui=[["?","@bien","(([adv","*que"],["pcd","[pro","?","@bien"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:AFFI
amb_r="[adv:affi"
sui=[["pof","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:LIAI
amb_r="[adv:liai"
sui=[[poc_l,"?"],["@;","?"]] # Aussi, la cordillère des Andes, que je connaissais bien, apparaisaît comme un miracle de la Nature.
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv:liai"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# -COJ
amb_r="-coj"
sui=[["?","dét","nom","*que"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Aussi(corp):
# Aussi
Proc("AUSSI")
amb="*aussi"
# ADV:DEGR
amb_r="[adv:degr"
sui=[["?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# COJ
amb_r="coj"
sui=[[poc_l,"?","([adv([adj","*que"],[poc_l,"?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:DEGR
amb_r="[adv:degr"
sui=[["?","{adv:néga/nver"]]
for a in range(8):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# COJ
amb_r="coj"
sui=[["?","*que"]]
for a in range(8):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Aussi_fin(corp):
# Aussi fin
Proc("AUSSI... FIN")
amb="*aussi"
# COJ
sui_adv=[["?","[coj:circ/corr/aver/locu"],["?","[coj:circ/corr/verb/locu","[coj:circ"],["?","]pro:rela"],["?","*que","ver"]]#moins surpris des paroles que proféraient...
sui_coj=[["?","[coj:circ/corr/verb/locu"]]
for a in range(8):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
sui_adv[0][-1:-1]=["_"];sui_adv[2][-1:-1]=["_"];sui_adv[2][-1:-1]=["_"];sui_adv[3][-2:-2]=["_"]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
sui_coj[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# ADV:DEGR
amb_r="[adv:degr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Leur(corp):
# Leur
Proc("LEUR")
amb="*leur"
amb_r="dét"
sui=[["?","nom"],["?","adj"],["?","[vpp:ppas","{po"],["?","[vpp:ppas","coj"]] # il prit leur parti.
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pers"
sui=[["?","ver"],["pcd","?"],["?","[vpp:ppas"],["?","[vrr"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pose"
sui=[["{dét","?"],["@du","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Leur_fin(corp):
Proc("LEUR... FIN")
amb="*leur"
amb_r="dét"
sui=[["?","nom"],["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pers"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def EstSuis(corp):
Proc("EST SUIS")
amb="@est"
# VER
# Elle est comme son père est, par rapport à ["nom","?","pof"]
amb_r="ver"
sui_coj=[["[coj:circ/corr","?"]]
for a in range(5):
sui_coj[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui_coj)
sui=[["[pro:dem","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["*aile","?"],["*côte","?"],["nom","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@suis"
amb_r="[ver:impé"
sui=[["pob","?"],["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Chacun(corp):
Proc("CHACUN")
amb="*chacun"
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Quel(corp):
Proc("QUEL")
amb="*quel"
amb_r="coj"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="dét"
sui=[["?","nom"],["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?","pro"],["?","ver"],["?","adv"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Correlative_prepa(corp):
#
# CORRELATION 1/4
#
Proc("CORRELATION")
amb=["@moins","@plus","@tant","@aussi","@mieux","@même","@tel_que","@à_ce_point","@à_tel_point","@si","@tellement","@à_peine","*autre","*meilleur","*tel"]
sui_adv=[["?","(pof({pro:rela({@qui(@aussi(*trai_phra"],["?","({coj:c([coj:circ","[coj:circ"]]
sui_coj=[["?","*que"]] # anciennement adv coj cpa pro
for a in range(12):
amb_r="-coj:circ/corr" #anciennement "[adv:degr"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"];sui_adv[1][1:1]=["_"]
amb_r="[coj:circ/corr"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
# Suite CMPR Phase 1 Si "que" est absent suppression de la subordonnée,
sui_adv=[["?","pof"]]
sui_coj=[["?","*que"]] # anciennement adv coj cpa pro
for a in range(16):
amb_r="-coj:circ/corr"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="[coj:circ/corr"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="-coj:circ/corr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Correlative(corp):
#
# CORRELATION 3/3
#
Proc("CORRELATION 3/3")
# (Phase 2 pour Que)
# Choix entre subordonnée comparative averbale et verbale
amb=["@moins","@plus","@tant","@aussi","@mieux","@même","@tel_que","@à_ce_point","@à_tel_point","@si","@tellement","*meilleur","*autre","*tel"] # un tel chahut que
sui_adv=[["?","[coj:circ/corr/aver/locu/aver"]]
sui_coj=[["?","[coj:circ/corr/verb/locu/verb"]]
for a in range(12):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
return corp
def Tant_fin(corp):
# Tant
Proc("TANT")
amb="@tant"
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Moins_prepa(corp):
Proc("MOINS PRÉPA")
amb="@moins"
# NOM
amb_r="nom"
sui=[["[dét","?","({po([ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Moins_fin(corp):
Proc("MOINS... FIN")
amb="@moins"
# ADV
amb_r="adv"
sui=[["[ver","dét pro","?"],["[ver","dét pro nom","?"],["[ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","[adj:num"],["?","@le","@quart"],["?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["@le","?","*que"],["[dét","?","pob"],["[dét","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Plus_prepa(corp):
# Plus
Proc("PLUS")
amb="@plus"
# PRE
amb_r="[pré"
sui=[["?","{adj:numé"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:DEGR
amb_r="[adv:degr"
sui=[["@au","?"],["[pro:indé","[adv:néga",etre,"?","[adj"]] # Rien n'était plus vrai
corp=Regle(corp,amb,amb_r,sui)
# ADV:NEGA
amb_r="[adv:néga"
sui=[["@non","?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["*un","?","coj"],["*un","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="[v"
sui=[["(@je(@tu","((pro","((pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Choix entre ADV:NEGA et ADV:DEGR
sui_neg=[["*ne","?"]]
sui_itf=[["@pas","?"],["@jamais","?"],["@point"]]
for i in range(6):
amb_r="[adv:néga"
sui=sui_neg
corp=Regle(corp,amb,amb_r,sui)
sui_neg[0][-1:-1]=["_"]
amb_r="-adv:néga"
sui=sui_itf
corp=Regle(corp,amb,amb_r,sui)
sui_itf[0][-1:-1]=["_"];sui_itf[1][-1:-1]=["_"];sui_itf[2][-1:-1]=["_"]
# -VER
amb_r="-ver"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Plus_fin(corp):
# Plus fin
Proc("PLUS FIN")
amb="@plus"
# PRE
amb_r="[pré"
sui=[["?","{adj:numé"],["?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV:DEGR
amb_r="[adv:degr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Personne(corp):
# Personne
Proc("PERSONNE")
amb="*personne"
# NOM
amb_r="nom"
sui=[["(adj(@par(@en(nom([dét","(([adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["@pour(adv(pro(ver({po","?"],["?","(adv(pro(ver({po"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Haut(corp):
Proc("HAUT")
amb="*haut"
amb_r="adj"
sui=[["{po","?","@de","[dét:numé"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Bien_prepa(corp):
# Aussi_bien
Proc("BIEN PRÉPARATION")
amb="@bien"
# -ADV:CMPS
# 1 : aussi bien que Jean, 2 : vois-tu aussi bien le jour
amb_r="-adv:manr/cmps"
sui=[["@aussi","?","(([adv","*que"],["pcd","[pro","@aussi","?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
# bien lui en prit
amb_r="nom"
sui=[[poc_l,"?","pro","@en","ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Bien(corp):
# Il est bien habillé. - Ils sont bien malheureux. - Ils sont bien trois mille. - Nous sommes bien arrivés. - J'ai terminé. Bien... - Très bien ! -
# Le pilote le bien pilote. - Bien lui en prit. - Le bien le mal. -
# bien qu'un Groupe de Chasse assassine plutôt qu'il ne combat. - Il est bien. -
# J'espère bien que ce n'est pas encore dans le genre assassinat. - On reconnaissait tant bien que mal, dans leur maison, cette maison de Saigon, de Marrakech. » « plus de bien que je n'en aurais osé dire. - Elle chante, si bien que je n'entends que sa voix. - on le dépèce si bien qu'il ne lui en reste plus qu'une feuille. -
# C'est bien. - Un homme bien. - Cette robe est très bien. - Il se sent bien. -
# Il est bien qu'il soit là. -
# Il semble bien qu'il soit là. -
# Bien
Proc("BIEN")
amb="*bien"
# ADJ
ver_bien=["*sentir","*aller"]
amb_r="adv"
for ver in ver_bien:
sui=[[ver,adv_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etat,adv_l,"?","[adv:degr"],[etat,adv_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@aussi","?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["{pro:pers","*dire","?"],["{pro:pers","*voir","?"],["{pro:pers","*savoir","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["adv","?"],["{ver:i","?"],["[adv:ite","?"],[etre,"?","[adj"],["{ver:s","?"],["{po","[adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"?","[adv:degr","[vpp:ppas"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","?","*que"]] # j'espère bien que
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét:arti/def","?"],["pré","?","(adj(nom(pré"],["pré","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","adj"],["?","adj nom ver"],["?","adj nom"],["?","adv"],["pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{coj:c","?","[adv:degr"]] # et bien moins
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","[vpp:ppa"],[etre,"?","[adj"],[etre,"?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","[ver:impé","?"]] # . Remarquez bien
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="[adj:inv+"
sui=[[etre,"?"],[etre,"adv","?"],["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
# Modaux et bien que
sui=[["(nom(pro",modal,adv_l,"?","*que"],[modal,"pcd","pro","?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Bien_fin(corp):
# Bien fin
Proc("BIEN... FIN")
amb="@bien"
amb_r="[coj:circ/locu"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["[adj","?","[pro:pers"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Bien_fin_II(corp):
# Bien fin
# Elle chante, si bien que je n'entends que sa voix », « on le dépèce si bien qu'il ne lui en reste plus qu'une feuille. Plus de bien que je n'en aurais osé dire.
Proc("BIEN... FIN fusion")
# COJ:CIRC/LOCU
# Il chante, si bien qu'il paraît...
amb="@si"
amb_r="+*si_bien_que Coj:Circ/Locu/Cmps"
sui=[[poc_l,"?","@bien","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@bien"
sui=[[poc_l,"@si","?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*que"
sui=[[poc_l,"@si","@bien","?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*si_bien_que")
corp=Effac_forme(corp)
#amb="*si_bien_que"
#sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
# bien que
amb="@bien"
amb_r="+*bien_que Coj:Circ/Locu/Cmps"
sui=[["?","{coj:circ/verb/locu"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*que"
sui=[["*bien","?"]]
corp=Regle(corp,amb,amb_r,sui)
#amb="*bien_que"
#amb_r="-*bien_que"
#sui=[["@si","?","*que"]]
#corp=Regle(corp,amb,amb_r,sui)
#sui=[["@si","@bien","?"]]
#corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*bien_que")
corp=Effac_forme(corp)
#amb="*bien_que"
#sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
return corp
def AvantArr_deb(corp):
# Avant arrière (début)
Proc("AVANT ARRIÈRE")
amb=["@avant","@arrière"]
# ADV
amb_r="adv"
sui=[["*fait","((adv","(@machine(@vent(@marche","?"],["@en","?"],["?","[pré"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","([dét([adj:numé(nom(pro"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AvantArr_fin(corp):
# Avant arrière (fin)
Proc("AVANT ARRIÈRE... FIN")
amb=["@avant","@arrière"]
# ADJ
amb_r="adj"
sui=[["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Un(corp): #Un de ceux que je connais. Un et un ferait quatre. Le un. Le pays est tout un contre la menace. La page un de l?ouvrage.
# Un
#
Proc("UN")
amb="*un"
# NOM : Un et un ferait quatre. Le un.
amb_r="nom"
sui=[["@le","?"],["@la","?"],["[nom:numé/card",liai,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO : Un de ceux que je connais.
amb_r="[pro"
sui=[["{pro:numé",liai,"?"],["?",liai,"{pro:numé"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@l#","?"],["@les","?"],["?","ver"],["@quelqu#","?"],["?","pré"],["?","{pro:rela"],["?","*que"],["?","pob"],["?","pof"],["[ver","?","[pré"],["?","@des"],["?","@d#"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="[dét:a"
sui=[["?","nom"],["?","adv"],["?","adj"],["pré","?"],["ver","?"],["?","[dét:adje"],["{v","?"],["[dét","[pro:indé","?"]] # ultimu : lâcha à l'autre une bordée si bas et si juste qu'il le coula à fond.
corp=Regle(corp,amb,amb_r,sui)
# ADJ:QUAL : Le pays est tout un contre la menace.
amb_r="[adj:qual"
sui=[[etat,adv_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ:ORDI : La page un de l?ouvrage.
amb_r="[adj:numé/ordi"
sui=[["nom","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="[dét:a"
for sui in amb_nom_ver:
sui=[["?",sui]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","ver"],["dét","?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DuDe(corp):
# Du de
Proc("DU & DE")
amb="@du"
amb_r="[dét:arti/défi"
sui=[["nom","?"],["adj","?"],["@auprès","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/part"
sui=[["(*manger(*dévorer(*partager","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/défi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_sui=["@de","@d#"]
for amb in amb_sui:
amb_r="pré"
sui=[["pof","[vpp:ppas","?"],["?","[dét:arti/def","[nom:pro"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/part"
sui=[["?","[nom:prop/pays"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/part"
sui=[["*ne","ver","?"],["*ne","ver","adv","?"],["*ne","ver","ver","adv","?"],["*ne","ver","ver","adv","adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DuDe_final(corp):
# Du de final
Proc("DU & DE... FIN")
amb=["@de","@d#"]
amb_r="pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[dét:arti/part"
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pendant(corp):
# Pendant
Proc("PENDANT")
amb="@pendant"
amb_r="adv"
sui=[["@c#","*être",adv_l,"?"]] # C'est toujours pendant, qu'il...
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[[etre,adv_l,"?"],["nom","?",adv_l,"ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["(ver(vpp",adv_l,"?","(*de(dét"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["({v","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["nom","?","(pob({coj:coor"],["coj:coor","?"],["adj","pob","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pendant_fin(corp):
# Pendant
Proc("PENDANT_FIN")
amb="@pendant"
amb_r="-adj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Maintenant(corp):
# Maintenant
Proc("MAINTENANT")
amb="@maintenant"
amb_r="vpp"
sui=[["pro","?","dét"],["nom","?","dét"],["*ne","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[[etre,"?"],["?","{po"],["{po","?"],["[coj:circ/corr/verb/locu","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Donc(corp):
# Donc
Proc("DONC")
amb="@donc"
amb_r="adv"
sui=[["ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Donc_fin(corp):
# Donc fin
Proc("DONC... FIN")
amb="@donc"
amb_r="coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Rien(corp):
# Rien
Proc("RIEN")
amb="*rien"
amb_r="adv"
sui=[["?","[vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["nom","?","{po"],["?","*ne","ver"],["?","*ne","pro","ver"],["?","*ne","pro","pro","ver"],["?","pro","pro","ver"],["?","pro","ver"],["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Rien_fin(corp):
# Rien fin
Proc("RIEN... FIN")
amb="*rien"
amb_r="pro"
sui=[["nom","?","{po"],["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Cher(corp):
# Cher, chère
Proc("CHER")
amb="*cher"
amb_r="adj"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","nom"],[etre,"?"],[etre,"adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["ver","?"],["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Point(corp):
# Point, pas
Proc("POINT PAS")
amb_sui=["*point","*pas"]
for amb in amb_sui:
amb_r="coj"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["*ne","?"],["*ne","_","?"],["*ne","_","_","?"],["*ne","_","_","_","?"],["*ne","_","_","_","_","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["[dét","?"],["?","@à","@la","@ligne"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["{po","?"],["[coj:coor","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Point_fin(corp):
# Point, pas fin
Proc("POINT PAS... FIN")
amb_sui=["*point","*pas"]
for amb in amb_sui:
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Mieux(corp):
# Mieux
Proc("MIEUX")
amb="*mieux"
# -COJ
amb_r="-coj"
sui=[["?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
# Choix entre COJ et ADV
sui_coj=[["?","*que"]]
sui_adv=[["?","pof"]]
for a in range(14):
amb_r="coj"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="-coj"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
# ADJ
amb_r="adj"
sui=[["*avoir","?","pré"],["*avoir","?","coj"],["*avoir","?","pof"],["*avoir","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*avoir","adv","?","pré"],["*avoir","adv","?","coj"],["*avoir","adv","?","pof"],["*avoir","adv","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"pré","?"],[etre,"?","pré"],[etre,"?","coj"],[etre,"?","pof"],[etre,"?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"adv","?","pré"],[etre,"adv","?","coj"],[etre,"adv","?","pof"],[etre,"adv","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
# -ADJ
amb_r="-adj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Suite CMPR Phase 1 Si "que" est absent suppression de la subordonnée,
sui_adv=[["?","pof"]]
sui_coj=[["?","*que"]]
for a in range(16):
amb_r="-coj:circ"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="[coj:circ"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="-coj:circ"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Mieux_fin(corp):
# Mieux fin
Proc("MIEUX... FIN")
amb="@mieux"
# CMPR Phase 3 : (Phase 2 pour Que)
# Choix entre subordonnée comparative averbale et verbale
sui_adv=[["?","[coj:circ/corr/aver/locu/aver"]]
sui_coj=[["?","[coj:circ/corr/verb/locu/verb"]]
for a in range(12):
amb_r="[coj:circ/corr/aver/locu"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="[coj:circ/corr/verb/locu"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
# ADV
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Autre(corp):
# Autre
# def Autre() avant def Si().
Proc("AUTRE")
amb="@autres"
# PRO
amb_r="pro"
sui=[["@nous","?"],["@vous","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*autre"
# ADJ:QUAL
amb_r="[adj:qual"
sui=[[etre,"?"],[etre,"adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ:INDE
amb_r="[adj:indé"
sui=[["dét","?","nom"],["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","(ver(coj(pro(pof({pro:pers/comp"],["*le","?","[dét"],["*le","?","[adv"],["@l#","?","[pré"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","@où"],["?","@même"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Autre_fin(corp):
Proc("AUTRE FIN")
# DET
amb="*autre"
amb_r="pro"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="dét"
sui=[["?","nom"],["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Comment(corp):
Proc("COMMENT")
amb="*comment"
amb_r="[adv:itrj"
sui=[["?","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["adv","?"],["coj","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Beaucoup(corp):
Proc("BEAUCOUP")
amb="@beaucoup"
amb_r="nom"
sui=[["pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?",adv_l,"ver"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def BeaucoupFin(corp):
Proc("BEAUCOUP FIN")
amb="@beaucoup"
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Quelque(corp):
Proc("QUELQUE")
amb="@quelque"
amb_r="adv"
sui=[["?","[dét:numé"],["?","@peu"]]
corp=Regle(corp,amb,amb_r,sui)
sui_loc=[["?","[coj:circ"]]
sui_coj=[["?","pof"]]
for a in range(12):
amb_r="[coj:circ/corr/verb/locu"
sui=sui_loc
#corp=Regle(corp,amb,amb_r,sui)
sui_loc[0][-1:-1]=["_"]
amb_r="[coj:circ/corr/aver/locu"
sui=sui_coj
#corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="dét"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Quoi(corp):
Proc("QUOI")
amb="@quoi"
amb_r="coj"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["{dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adv:itrj"
sui=[["coj","?","pof"],["coj","?","pob"],["?","@!"],["?","_","@!"],["?","_","_","@!"]]
corp=Regle(corp,amb,amb_r,sui)
sui_inte=[["?","@?"]]
sui_nul=[["?","pof"]]
for a in range(20):
sui_inte[0][-1:-1]=["_"];sui=sui_inte
amb_r="[pro:inte"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-1:-1]=["_"];sui=sui_nul
amb_r="-pro:inte"
corp=Regle(corp,amb,amb_r,sui)
return corp
def Qui(corp):
# Qui
Proc("QUI")
amb="@qui"
# PRO
amb_r="[pro:rela" # énumération, les moines qui enseignent, qui discutent,
sui=[["[adj","[pro:rela","[ver","pob","?","[ver"],["[nom","[pro:rela","[ver","pob","?","[ver"],["pob","{pro:rela","[ver","pob","?","[ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["nom",parole,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# INTE
sui_inte=[["{po","?","(({po","@?"]]
sui_nul=[["?","pof"]]
for a in range(20):
sui_inte[0][-2:-2]=["_"];sui=sui_inte
amb_r="[pro:inte"
corp=Regle(corp,amb,amb_r,sui)
sui_nul[0][-2:-2]=["_"];sui=sui_nul
amb_r="-pro:inte"
corp=Regle(corp,amb,amb_r,sui)
# PRO RELA
amb_r="[pro:rela"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Quoi_fin(corp):
# Quoi Fin
Proc("QUOI FIN")
amb="@quoi"
amb_r="[pro:rela"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pres(corp):
# Près
Proc("PRÈS")
amb="@près"
# ADV
amb_r="adv"
sui=[["@à","@peu","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","(*de(@du(dét"],["?","*le","*une"],["?","*le","*autre"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pres_fin(corp):
# Près
Proc("PRÈS FIN")
amb="@près"
# ADV
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Mais(corp):
Proc("MAIS")
amb="@mais"
amb_r="[adv:itrj"
sui=[["?","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def CestEn(corp):
Proc("C'EST EN")
amb="@c#"
amb_r="pro"
sui=[["?","@est"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@en"
amb_r="adv"
sui=[["?","@conséquence"],["?","@effet"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?","[vrr"],["?","[nom:prop/pays"],["?","adj nom","{po"],["?","adj nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["pro","?"],["?","ver"],["@d'","?","[vii:inf"],["pcd","?"]]
corp=Regle(corp,amb,amb_r,sui)
#sui=[["nom","?"],["ver","?"],["adv","?"],["?","pro"],["pob","?"],["pof","?"]]
amb="@ce"
amb_r="pro"
sui=[["?","[pré","@quoi"],["@sur","?","{po"],["@sur","?","{pro:pers"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="dét"
sui=[["?","[pré","@quoi"],["@sur","?"]]
#corp=Regle(corp,amb,amb_r,sui)
return corp
def CestEn_fin(corp):
Proc("C'EST EN... FIN")
amb="@en"
amb_r="pro"
sui=[["?","vii"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvDetPro(corp):
Proc("ADV DÉT PRO")
amb="adv dét pro"
amb_r="adv"
sui=[["ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="dét"
sui=[["?","nom"],["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?","ver"],["?","adv"],["?","pro"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdjNomPro(corp):
Proc("ADJ NOM PRO")
amb_sui=["adj nom pro","nom pro"]
for amb in amb_sui:
amb_r="[dét:adje"
sui=[["?","adj"],["?","nom"],["?","adv"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["ver","?"],["{coj:coor","?"],["{po","?"],["?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Infi(corp):
# Infinitif
Proc("INFINITIF")
amb="[vii:infi"
# ADJ
amb_r="adj"
sui=[["dét","nom","?"],["[adv:degr","?"]] # Le visage fier
corp=Regle(corp,amb,amb_r,sui)
# VII
amb=["@avoir","@être"]
amb_r="vii"
sui=[["{v","?"]] # Dupin semblait avoir dit cela sérieusement.
corp=Regle(corp,amb,amb_r,sui)
# -VII
amb="[vii:infi"
amb_r="-vii"
sui=[[etat,adv_l,"?"]] # être fier
corp=Regle(corp,amb,amb_r,sui)
# VII
amb_r="[vii:infi"
sui=[["[vpp:ppas","?"],["ver","?"],["pré","[pro","[pro","?"],["pré","[pro","?"],["pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@les","?"],["@la","?"]] # les toucher, la toucher,
corp=Regle(corp,amb,amb_r,sui)
# il pouvait le toucher, le manger,
sui=[["@le","?","{po","{coj:coor","[pro","[vii:infi"],["@le","?","{po","[pro","[vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
# liste : pouvoir leur
sui=[["*pouvoir","*leur","?"]]
corp=Regle(corp,amb,amb_r,sui)
# 1 : leur parler 2 : me conseillez-vous de faire ?
sui=[["ver","[pro:pers","?"],["*de","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
# 1 : ne plus l'être 2 : elle pouvait bien être,
sui=[["[adv:néga","[adv:néga","[dét","?"],["[ver","[adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# enumeration,
sui=[["pob","?","pré","nom","pob","{vii:infi","pob"],["{vii:infi","dét","nom","pob","?","pré","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"],["dét","[adj","?",poc_l]] # un certain pouvoir
corp=Regle(corp,amb,amb_r,sui)
return corp
def Infi_fin(corp):
Proc("INFINITIF FIN")
amb="[vii:infi"
amb_r="nom"
sui=[[poc_l,"[dét","?"],["[dét:arti/indé","?"],["[pré","?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-vii:infi"
sui=[["[pr/indé","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[vii:infi"
sui=[["[pro","?"],["[pré","?"],["(vii(ver(vpp(nom(adj nom","?"]] # 2 : Comme officier judiciaire
corp=Regle(corp,amb,amb_r,sui)
return corp
def PPre(corp):
# Participe Présent
Proc("PARTICIPE PRÉSENT")
amb="[vrr"
# VRR
amb_r="[vrr"
sui=[["@en","?"],["@en","[pro","?"],["?","adv","pré"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{coj:c","[adv","?","[adv"]] # Et ne croyant pas
corp=Regle(corp,amb,amb_r,sui)
sui=[["(nom(adj","?","{adv:manr"]] # Et le contenu étant ainsi caché.
corp=Regle(corp,amb,amb_r,sui)
sui=[["pro","?"]] # Chacun étant d'une puissance donnée.
corp=Regle(corp,amb,amb_r,sui)
sui=[["(vpp(vrr","pré",poc_l,"?"],[poc_l,"?","vpp","pré"]] # Aussi beau que moi, pétri de douceur et d'agréments, brillant d'esprit et brûlant d'amour.
for a in range(6):
corp=Regle(corp,amb,amb_r,sui)
sui[0][2:2]=["_"]
# NOM
amb_r="nom"
sui=[["[dét","?","(([pro","ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?",adj_nom]] # Pour rendre l'ascendant complet
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["adj","pob","?","{po"],["adj","pob","?","{coj:c"],["adj","[coj:coo","?"],["adj","[coj:coo","pré","?"]]
corp=Regle(corp,amb,amb_r,sui) # règle des précédents
sui=[["adj","pob","adv","?","{po"],["adj","pob","adv","adv","?","{po"],["adj","pob","adv","?","coj"],["adj","pob","adv","adv","?","coj"],["adj","pob","adv","?","adv"],["adj","pob","adv","adv","?","adv"]]
corp=Regle(corp,amb,amb_r,sui) # règle des précédents
sui=[["nom","?","({po({pro:rela"]] # Je ne sais quoi d'un rouge éclatant qui
corp=Regle(corp,amb,amb_r,sui)
sui=[["dét","?","nom"],["nom","?","ver"],[etre,"?",poc_c]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","[dét"],["{po","?","pro","{po"]]
#corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["ver","?"],["?","{pro:pers/suje"],["nom","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"],["ver","[dét","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Adjectif nom et participe présent
#
amb=["adj nom vrr","nom vrr"]
# VRR
amb_r="vrr"
sui=[["[dét:arti/défi","[pro:indé","?"]] # l'un ascendant (ascendre)
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét:arti/indé","?"]] # un ascendant sur
corp=Regle(corp,amb,amb_r,sui)
# - Avoir -
amb="*avoir" # Mais ce seigneur AYANT été roué au bout de deux ans.
amb_r="vrr"
sui=[["?","[vpp"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def PPre_fin(corp):
# Participe présent fin
Proc("PARTCIPE PRÉSENT FIN")
#
# Participe présent
#
amb="]vrr:ppré"
# ADJ
amb_r="adj"
sui=[["adj","pob","[adv","?","{po"],["?","nom"]]
corp=Regle(corp,amb,amb_r,sui) # règle des précédents
sui=[["([adv([coj","?"]] # moins méchant, du verbe mécher.
corp=Regle(corp,amb,amb_r,sui)
# VRR
amb_r="[vrr"
sui=[["coj","?"],["pof","?"],["pob","?"],["?","*que"],["adv","?","pré"],["{pro:pers/comp","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","dét"],["[dét:arti/défi","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*leur","?","[dét"],["nom","((adj","?","[dét"],["nom",adv_l,"?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","[nom","[adj","?"]]
corp=Regle(corp,amb,amb_r,sui) # Un vaisseau français étant sur le point de partir pour Ajaccio.
# ADJ
amb_r="adj"
sui=[["adj","pob","[adv","?","{po"],["nom","?"]]
corp=Regle(corp,amb,amb_r,sui) # règle des précédents
return corp
def PPas(corp):
Proc("PARTICIPE PASSE")
# Participe passé,
amb="[vpp:ppas"
# -PPAS
Proc("-PPas /",",")
amb_r="-vpp:ppas"
sui=[["dét","?"],["{vii:infi","[pro:pers/comp","?"],["dét","nom","?","{po"]] # 3: Les avions découverts
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"(([adv","?",adv_l,"*de","{vii"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","{po",adv_l,"?","(@par(*de(@du(@à"]] # l'ouvre, fait semblant de la lire.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","(nom(adj nom"]] # le parfait nigaud.
corp=Regle(corp,amb,amb_r,sui)
Proc("PPas /",",")
# PPAS
# Entre locution conjonctive
amb_r="[vpp:ppas"
sui=[["[coj:circ/corr/verb/locu","?","[coj:circ"],["[coj:circ/corr/verb/locu","?","pob","[coj:circ"],["{coj:circ/corr/verb/locu","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Passif
Proc("Passif /",",")
sui=[["*avoir",adv_l,"?"],["ver","@<->","pro","?"],["ver","@<->","pro","[coj:coor","?"],["*avoir",adv_l,"?"],["@été","?"],["*se","(([pro:adv",etre,"?"],["*se",adv_l,etre,"?"],["ver","@<->","pro","?"],["ver","pcd","@t","pcd","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"(([adv","?",adv_l,"@par"],[etre,"?","*de","((adj","nom","((adj","@par"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*avoir","(([pro","*être","(([pro",adv_l,"?","@par"]] # Nous avons été tous là-bas fortement embarrassés par cette affaire.
corp=Regle(corp,amb,amb_r,sui)
Proc("Préposition /",",")
# Prépostion
sui=[["{po",adv_l,"?","(@par(*de(@du(@à"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{ver:c","?"],["{ver:if"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{pro:rela","dét","nom","?","ver"]] # dont les bois noircis alignaient ...
corp=Regle(corp,amb,amb_r,sui)
Proc("Nom 1/",",")
# NOM
amb_r="nom"
sui=[["[dét","?","([dét({po([adj"],["adj","?","pré"]] # 1: il est l'opposé du, 2: contemplative bouffée de fumée
corp=Regle(corp,amb,amb_r,sui)
Proc("Vpp:PPas /",",")
amb_r="[vpp:ppas"
# dont il était volé... j'y fus volé...
sui=[["@dont","_","?"],["{pro:adve","ver","?"]]
for i in range(5):
sui[0][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# Les passifs & les passés composés
Proc("Passés composés /",",")
amb=sui_ver_perf
sui=[[etre,"|(([coj:circ/corr|((pro|(([adv|(([adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb=sui_ver_pass
sui=[[etre,"|(([coj:circ/corr|((pro|(([adv|(([adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PPas antéposé
Proc("PPas antéposé /",",")
amb="[vpp:ppas"
amb_r="[vpp:ppas"
sui=[["{vpp:ppas","pob","coj","[adv","?"],["{vpp:ppas","pob","coj","?"],["{vpp:ppas","{coj:coor","[adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["vpp","{coj:c","?","{po"]] # bouillis
corp=Regle(corp,amb,amb_r,sui)
sui=[["@être","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Précédé d'une marque d'antériorité,
Proc("Marque antériorité /",",")
sui=[["@dès","@que",etre,"?"],["@quand",etre,"?"]] # Quand le repas fut fini, Cacambo partit. Passé antérieur
for a in range(4):
sui[0][-2:-2]=["_"];sui[1][-2:-2]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
Proc("Adj /",",")
amb_r="adj"
sui=[["ver","adj","{coj:coor","?"],["nom","adj","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","[coj:circ/corr","?"]] # La cachette la plus compliquée, la plus profonde de son hôtel, serait aussi peu secrète qu'une antichambre.
corp=Regle(corp,amb,amb_r,sui)
sui=[["@comme","?"]] # Il est comme perdu.
corp=Regle(corp,amb,amb_r,sui)
# NOM
Proc("Nom 2/",",")
amb_r="nom"
sui=[["ver","?","{coj:coor","nom"],["[dét","[adj:indé","?"],["[adj:numé/ordi","?"]] # 3: La première partie de la soirée
corp=Regle(corp,amb,amb_r,sui)
# Mega participe passé
amb="[vpp"
# VPP
Proc("Vpp /",",")
amb_r="vpp"
sui=[["[dét","(([adj","[nom",adv_l,"?","(@par(@avec"]] # Ils ont puisé dans le même registre d'idées que le trou fait avec une vrille.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","(([adj","[nom","?","[adv"]] # Appelons bizarres toutes les choses situées au-delà de sa compréhension.
#corp=Regle(corp,amb,amb_r,sui)
# NOM
Proc("Nom 3/",",")
amb_r="nom"
sui=[["[dét","?",adv_c,"(([adj","(({pro:pers/comp","ver"],["[pré","?",poc_c]] # 3:une longue, solide et contemplative bouffée de 'fumée'
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pré","?","nom"]] # 3 : en assemblée nationale
corp=Regle(corp,amb,amb_r,sui)
# ADJ
Proc("Adj 2/",",")
amb_r="adj"
sui=[["[dét","(([adj","[nom",adv_l,"?"]]# Un jeune icoglan très bien fait.
corp=Regle(corp,amb,amb_r,sui)
# VER
Proc("Ver /")
amb_r="ver"
sui=[["[dét","[adj","[nom","[pro:adv","?"],["nom","?","nom"]] # 2 : Je concède qu'analyse traduit algèbre.
corp=Regle(corp,amb,amb_r,sui)
return corp
def PPas_fin(corp):
Proc("PARTICIPE PASSE FIN")
#
# - Participe passé -
#
amb="[vpp"
# PPAS
amb_r="[vpp:ppas" # le caractère exact de mes pensées, quand, _mis_ au défi par celle que le préfet appelle la meilleure.
sui=[["?","*à_le"]]
corp=Regle(corp,amb,amb_r,sui)
# -VPP
amb_r="-vpp:ppas" # Et dit : "
sui=[["?","@:"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver" # que fait Cunégonde ?
sui=[["[adv:inte","?"],[poc_l,"?",adv_l,"dét"]] # 2: Mon cher enfant, bénis nos fétiches, adore-les toujours.
corp=Regle(corp,amb,amb_r,sui)
Proc("Adj /",",")
# ADJ
amb_r="adj" # pour le déposer tout ouvert.
sui=[["[vii","[adv:degr","?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","[dét","?"]] # - et à cet autre fait que, d'après la démonstration décisive fournie par le préfet, ce document n'avait pas de limites.
corp=Regle(corp,amb,amb_r,sui) #
sui=[["ver","[dét","?"],["[dét","?","adj"],["@l#","?"],["[pro","?","[vrr"]] # 2 : Pour toute l'assemblée.
corp=Regle(corp,amb,amb_r,sui) # 1 : Il les porta avec une rapidité et un bruit <*bruire> horrible.
sui=[["[vpp","[dét","?"]] # 2 : avoir poussé la fumée
corp=Regle(corp,amb,amb_r,sui)
Proc("Ppas /",",")
# PPAS
amb_r="vpp"
sui=[["[pro","?"],["vii","[adv","(coj(pob","[adv","?"]] # 1 : la pris 2 : Après avoir longuement et pensivement poussé la fumée de sa pipe.
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"?","(vii(nom vii"],["*avoir","?","(vii(nom vii"]] # Puis elle était rentrée faire le compte de toutes les ouvertures
corp=Regle(corp,amb,amb_r,sui)
sui=[["vpp","{coj:c","?"]] # Nous avons aussi mesuré l'épaisseur de chaque reliure avec la plus exacte minutie et appliqué à chacune curiosité jalouse du microscope.
for a in range(10):
sui[0][1:1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# -PPAS
amb_r="-vpp:ppas"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Adj 2/",",")
# ADJ
amb_r="adj"
sui=[["pof","[adv","?"],["pob","[adv","?"],["coj","[adv","?"],["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["vpp","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pob","?","pob","[adj"],["adj","pob","?","pob"]]
corp=Regle(corp,amb,amb_r,sui) # Entre les ponctuations
# NOM
amb_r="nom"
sui=[["pob","?","pob"],["pob","?","pof"],["[coj:coor","?","pof"],["[coj:coor","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)# Entre les ponctuations
amb_r="[vpp:ppas"
sui=[["vpp","{coj:c","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
# enumeration,
amb_r="adj"
sui=[[poc_l,"?",poc_l]] # Entre rupture
corp=Regle(corp,amb,amb_r,sui)
sui=[[etre,"adj","pré","[dét","[nom","{coj:coor","?"]]
corp=Regle(corp,amb,amb_r,sui) # Il était étendu dans la rue et couvert de
sui=[["adj","{po","adv","adv","?"]]
corp=Regle(corp,amb,amb_r,sui) # rangé, si bien ordonné que
sui=[["{coj:coor","?"]]
corp=Regle(corp,amb,amb_r,sui) # mais travaillée avec tant de goût
Proc("Adj 3",",")
# ADJ
# Constante
sui=[[etat,adv_l,"?"]] # Elle n'était pas chargée à balle.
corp=Regle(corp,amb,amb_r,sui)
# enumeration
amb_r="[vpp:ppas"
sui=[[etre,"pcd","pro","?"],["pob","?","{coj:coord","{vpp:ppas"],["pob","?","pob","{vpp:ppas"],["{vpp:ppas","{coj:coor","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{vpp:ppas","pob","?"],["?","*de"],["?","*du"],["nom","?"],["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[v","[dét","adv","?"],["[v","adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["adv","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["adj","nom","adj","?"]] # Il eût perdu cenros moutons rouges chargés des plus grands trésors de la terre.
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"]] # nommé Robeck
corp=Regle(corp,amb,amb_r,sui)
sui=[["[adv","?","[adv"]] # Ayant d'ailleurs rapporté tant de diamants.
corp=Regle(corp,amb,amb_r,sui)
# PPAS
amb_r="[vpp:ppas" # moins affligé
sui=[["[adv:degr","?"]]
corp=Regle(corp,amb,amb_r,sui)
# -VPP
amb_r="-vpp:ppas" # PPas antéposé
sui=[["?","pcd"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def PPas_fin_II(corp):
Proc("PATICIPE PASSÉ FIN II")
#
# - Participe passé -
#
# ADJ
amb="adj vpp"
amb_r="adj"
sui=[["ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="vpp"
sui=[["adv","?","@par"]]
#corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvVer(corp):
Proc("ADV VER")
amb="adv ver"
amb_r="-adv"
sui=[["nom","pro","?"],["pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["coj","?"],["pof","?"],["pob","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvNom(corp):
Proc("ADV NOM")
amb="adv nom"
amb_r="adv"
sui=[["ver","?","[vpp"],["ver","?","vii"],["ver","?","vrr"],["ver","?","ver"],["[ver","?","[adj"]] # Last : J'ai été hier volée
corp=Regle(corp,amb,amb_r,sui)
return corp
def CojNom(corp):
Proc("COJ NOM")
amb_sui=["coj nom","adj coj nom"]
for amb in amb_sui:
amb_r="[adv:itrj"
sui=[["?","@!"],["?","_","@!"],["?","_","_","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["[adj","{coj:c","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["@:","?"],["{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*parce" # La ville de Parce
amb_r="coj"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def CojNom_fin(corp):
Proc("COJ NOM FIN")
amb_sui=["coj nom","adj coj nom"]
for amb in amb_sui:
amb_r="[adv:itrj"
sui=[["?","@!"],["?","_","@!"],["?","_","_","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["[dét","?"],["[coj","?"],["[pré","?"],["?","{coj:coor"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def FusionLocution(corp):
Proc("FUSION DES LOCUTIONS ADVERBIALES, NOMINALES... AMBIGUËS")
#
# Fusion locution conjonctive
#
# Du Tout
amb="@tout"
amb_r="+*du_tout Adv:Degr/Cmps"
sui=[["[v",adv_c,"@du","?"],["@pas","@du","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@du"
amb_r="+*du_tout Adv:Degr/Cmps"
sui=[["[v",adv_c,"?","@tout"],["@pas","?","@tout"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*du_tout")
corp=Effac_forme(corp)
amb="*du_tout"
amb_r="*du_tout"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Du moins
amb="@moins"
amb_r="+*du_moins Adv:Opin/Cmps"
sui=[["[v",adv_l,"@du","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb="@du"
amb_r="+*du_moins Adv:Opin/Cmps"
sui=[["[v",adv_l,"?","@moins",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*du_moins")
corp=Effac_forme(corp)
amb="*du_moins"
amb_r="*du_moins"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# s'arracher les yeux, arracher les yeux
amb="*arracher"
amb_r="+*arracher_les_yeux Ver:Cmps"
sui=[["@s#","((@en","?","@les","@yeux"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@les"
amb_r="+*arracher_les_yeux Ver:Cmps"
sui=[["@s#","((@en","*arracher","?","@yeux"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@yeux"
amb_r="+*arracher_les_yeux Ver:Cmps"
sui=[["@s#","((@en","*arracher","@les","?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*arracher_les_yeux")
corp=Effac_forme(corp)
amb="*arracher_les_yeux"
amb_r="*arracher_les_yeux"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def FusionLocuConj(corp):
Proc("FUSION LOCUTION CONJONCTIVE")
# faute_que *faute_que Coj:Circ/Locu/Cmps
# histoire_que *histoire_que Coj:Circ/Locu/Cmps
# non_que *non_que Coj:Circ/Locu/Cmps
sui_coj_locu=["faute","histoire","non"]
for coj in sui_coj_locu:
amb="*que"
amb_r="+*"+coj+"_que Coj:Circ/Locu/Cmps"
sui=[[poc_l,"@"+coj,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@"+coj
amb_r="+*"+coj+"_que Coj:Circ/Locu/Cmps"
sui=[[poc_l,"?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion
corp=Fusion_mot_comp(corp,"*"+coj+"_que")
corp=Effac_forme(corp)
# Choix de la locution
amb="*"+coj+"_que"
amb_r="[coj:circ/locu/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion locution conjonctive de comparaison
#
sui_coj_cmpr=["mieux","si","plus","moins","même","tel","tant","aussi","ailleurs"]
for coj in sui_coj_cmpr:
# Ajoute, verbal
amb="{coj:circ/corr/verb/locu/verb"
amb_r="+*"+coj+"_que Coj:Circ/corr/Verb/Locu/Cmps"
sui=[["*"+coj,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*"+coj
amb_r="+*"+coj+"_que Coj:Circ/corr/Verb/Locu/Cmps"
sui=[["?","{coj:circ/corr/verb/locu/verb"]]
corp=Regle(corp,amb,amb_r,sui)
# Mais choisi adverbe s'il est resté
amb="*"+coj+"_que"
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Rajoute, averbal
amb="{coj:circ/corr/aver/locu/aver"
amb_r="+*"+coj+"_que Coj:Circ/corr/Aver/Locu/Cmps"
sui=[["*"+coj,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="*"+coj
amb_r="+*"+coj+"_que Coj:Circ/corr/Aver/Locu/Cmps"
sui=[["?","{coj:circ/corr/aver/locu/aver"]]
corp=Regle(corp,amb,amb_r,sui)
# Mais choisi adverbe s'il est resté
amb="*"+coj+"_que"
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion
corp=Fusion_mot_comp(corp,"*"+coj+"_que")
corp=Effac_forme(corp)
# Choix de la locution
amb="*"+coj+"_que"
amb_r="[coj:circ/corr/aver/locu/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[coj:circ/corr/verb/locu/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ainsi(corp):
# Ainsi
Proc("AINSI")
#
# Fusion locution conjonctive
#
# ainsi que
amb="@qu#"
amb_r="+*ainsi_que Coj:Circ/Locu/Cmps"
sui=[["@ainsi","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@que"
amb_r="+*ainsi_que Coj:Circ/Locu/Cmps"
sui=[["@ainsi","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@ainsi"
amb_r="+*ainsi_que Coj:Circ/Locu/Cmps"
sui=[["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*ainsi_que")
corp=Effac_forme(corp)
amb="@ainsi" # ainsi
amb_r="adv"
sui=[["[pro:démo",etre,"?"],["[pro:démo","[adv",etre,"[adv","?"]] # c'est ainsi que
corp=Regle(corp,amb,amb_r,sui)
amb="*ainsi_que"
amb_r="[coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ainsi_fin(corp):
# Ainsi
Proc("AINSI FINAL")
amb="@ainsi" # ainsi
amb_r="[adv:liai"
sui=[[poc_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[adv:manr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvCoj_prepa(corp):
# AadvCoj preparation
Proc("ADVCOJ PRÉPA")
# encore
amb="@encore"
amb_r="adv"
sui=[["?","@une","@fois"]]
corp=Regle(corp,amb,amb_r,sui)
# avant
amb="adv coj nom pré"
amb_r="coj"
sui=[["?","adv","*que"],["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
# cependant
amb="@cependant"
amb_r="adv"
sui=[["?","pob","*que"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV COJ NOM
Proc("Adj Coj Nom /",",")
amb="adv coj nom"
amb_r="nom"
sui=[["[dét","?","pré"],["[dét","?","{coj:coor"],["[dét","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV COJ
amb_sui=["adv coj nom","adv coj"]
for amb in amb_sui:
amb_r="adv"
sui=[["adv coj","?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","*que","{pro:pers","{po"]] # J'en conclu que j'en savais autant que lui.
corp=Regle(corp,amb,amb_r,sui)
#
# - Adverbe et subordonnant
#
# Phase CMPR 1 / 4 : Détermine si plus est une comparaison
# Adv:Degr C'est une plus grande affaire qui demande le plus grand secret, et que je perdrais très vite.
# Adv:Degr Un certain document de la plus grande importance avait été soustrait des appartements royaux.
# Le choix de aussi pour Adv:Degr dans : La cachette la plus compliquée, la plus profonde de son hôtel, serait aussi peu secrète qu'une antichambre.
Proc("Cmpr 1/4 /",",")
amb=["@ainsi","adv coj","adv coj nom"]
sui_adv=[["?","(pof({pro:rela({@qui(@aussi"],["?","({coj:c([coj:circ","[coj:circ"]]
sui_coj=[["?","*que"]]
for a in range(12):
amb_r="[adv:degr"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"];sui_adv[1][1:1]=["_"]
amb_r="[coj:circ"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
# Suite CMPR Phase 1 Si "que" est absent suppression de la subordonnée,
sui_adv=[["?","pof"]]
sui_coj=[["?","*que"]]
for a in range(16):
amb_r="-coj:circ"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="[coj:circ"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
amb_r="-coj:circ"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvCoj_fin(corp):
# Adv Coj fin
Proc("ADV COJ FIN")
amb=["@ainsi","adv coj nom","adv coj","@à_peine"]
#
# CMPR Phase 3 : (Phase 2 pour Que)
# Choix entre subordonnée comparative averbale et verbale
sui_adv=[["?","]aver/locu/aver"]]
sui_coj=[["?","]verb/locu/verb"]]
for a in range(12):
amb_r="]aver/locu"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="]verb/locu"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
sui_adv=[["?","]aver/locu/aver"]]
sui_coj=[["?","]verb/locu/verb"]]
for a in range(12):
amb_r="]aver/locu/cmps"
sui=sui_adv
corp=Regle(corp,amb,amb_r,sui)
sui_adv[0][1:1]=["_"]
amb_r="]verb/locu/cmps"
sui=sui_coj
corp=Regle(corp,amb,amb_r,sui)
sui_coj[0][-1:-1]=["_"]
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
# Non utilisée
def ConjSubo(corp):
Proc("Subo")
amb="[coj:circ/corr/verb/locu"
amb_r="coj"
sui=[["?","{coj:circ"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["ver","?","{po"],["ver","adv","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Fait_prepa(corp):
# Fait préparation
Proc("FAIT PRÉPA")
amb="@fait"
amb_r="adj"
sui=[[etre,"((adv","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["?","vii"]] # , fait tirer le canon,
corp=Regle(corp,amb,amb_r,sui)
amb_r="vpp"
sui=[[etre,adv_l,"?"],["*avoir",adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@t","@<->","[pro","?"],["*avoir",adv_l,"?"]] # 1: Qu'a-t-on fait ?
corp=Regle(corp,amb,amb_r,sui)
amb_r="[v"
sui=[["*que","?"],["?","({nom:prop([nom:maju([nom:inco/maju"],["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Faire, "votre fortune est faite",
amb="*faire"
amb_r="adj"
sui=[[etre,"?",adv_l,"{po"],[etre,"?","{coj:coor"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["[dét","nom","?","[dét"],["adv","?","adv"],["{po","?","adv"],["{po","?","{po"],["@la","?"],["@les","?"]] # 1 : Le gouverneur fait quelques, ["adv","?","{po"],
corp=Regle(corp,amb,amb_r,sui)
return corp
def Fait_fin(corp):
# Fait fin
Proc("FAIT FIN")
amb="@fait"
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="vpp"
sui=[["?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["?","[adv","[adv","{po"],["?","[adv","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ver_Prepa(corp):
# Ver categorie préparation
Proc("CATEGORIE VERBE PREPARATION")
# VER
amb="[ver"
amb_r="ver"
sui=[["?","@<->","pro"],["?","*le","*un"],["(@tu(@je","((pro((pro","?"],["pro","adv","dét pro","?"],["*ne","?"],["pof","?","coj","pro"],["nom","pob","?","*le","*un"]]# ["nom","[dét","?","coj"],["nom","[dét","?","pob"],["adj","[dét","?","coj"],["adj","[dét","?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
# -VER règle du Tu
amb=["[ver:ipré+sg+p2","[ver:cpré+sg+p2","[ver:spré+sg+p2"]
amb_r="-ver"
sui=[["[nom","((adj","?"]] # Il avait prévu les perquisitions secrètes dans son hôtel.
corp=Regle(corp,amb,amb_r,sui)
return corp
def Ver_Cate(corp):
# Ver cate
Proc("CATEGORIE VERBE")
amb=["[ver:ip","[ver:ii","[ver:if","[ver:cp"]
#
# INFI
amb_r="[vii:infi"
sui=[["pof","{vii:infi","|((_|((_|((_|((_","?"],["?","|((_|((_|((_|((_","pob","{vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[[etre,"?","{dét:arti/part"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["?","coj","adj"],["?","|adv:qua"],[etre,"adv","?"],[etre,"adv","adv","?"],[etre,"?"],["adj","coj","?"],["{adv:ite","?"],["{adv:qua","?"],["pob","?","pob","adj","pob"],["pob","?","pob","adj","coj"],["{adv:degr","?"],["{coj:circ/corr/verb/locu","?"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
Proc("Ver /",",")
amb=["adj adv ver","adj ver","adv ver"]
sui=[["[pro","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb=["[nom:mas+sg","[nom:fém+sg","[nom:ing+sg"]
amb_r="ver"
sui=[[poc_l,"@les","?",poc_l]] # Ce malfaiteur, naturellement, les roule.
corp=Regle(corp,amb,amb_r,sui)
# -VPP
amb="[vpp"
amb_r="-vpp"
sui=[["(@il(@elle(@on",adv_c,"?"]] # Il dit
corp=Regle(corp,amb,amb_r,sui)
#
# Participe passé
#
# -VER:IPSI
amb="[vpp"
corp=Regle(corp,amb,"-ver:ipsi+sg+p2",[["?"]])
corp=Regle(corp,amb,"-ver:ipsi+sg+p1",[["?"]])
#
# Verbe
#
amb=["[ver:ip","[ver:ii","[ver:if","[ver:cp"]
# VER
amb_r="ver"
sui=[["pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
# - NOM
amb_r="-nom" # on ajoute foi, il ajoute. (conserve nom pour ajoute)
sui=[["(pro(@on","?"]]
#corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["*pour","[dét","?","*que"],["*pour","[dét","?","[pro:rela"]]# pour le bruit qu'il fit
corp=Regle(corp,amb,amb_r,sui)
# VER:I
Proc("Ver:I /",",")
amb_r="[ver:i"
sui=[["{po","?","@encore"]] # Passe encore si,
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver" # 1 : Tu m'en gardes, 2 :Dieu ne leur a donné, (aussi en nom_final forcé)
sui=[["{pro:pers","{pro:adve","?"],["adv","[pro:pers","?","[vpp:ppas"],["nom","adv","[pro:pers","?"],["nom","[pro:pers","?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[adj","?","[ver:s"],["[adj","?","[ver:ip"],["[adj","?","[ver:ii"],["[adj","?","[ver:if"],["[adj","?","[ver:cp"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof","?","adj nom"],["pof","?","adj"],["ver","pré","?"],["adj","pré","?"]]#,["?","ver"],["pof","adv","?"],["coj","adv","[dét","?"],["coj","[dét","?"],["[dét","?","coj"],["nom","pof","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","[dét:arti/part"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
Proc("Nom /",",")
# Enumération
amb_r="nom"
sui=[["pof","nom","pob","?"],["pob","nom","pob","?"]]#,["pof","adj","pob","?"],["pob","adj","pob","?"],["nom","pof","adv","?"],["adj","pof","adv","?"],["?","pob","{coj:coor","nom"],["{coj:coor","?","{coj:coor","nom"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver"
sui=[["nom","adj","?"],["ver","?","[vii:inf"]]#,["?","{dét:pos"]
corp=Regle(corp,amb,amb_r,sui)
#
# - Avoir -
#
# Mais ce seigneur AYANT été roué au bout de deux ans.
amb="@a"
# VER
amb_r="ver"
sui=[["@l#","@un","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["@un","?","pof"],["[dét","*lettre","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# Avoir
amb="*avoir"
# NOM
amb_r="nom"
sui=[["[nom","(([adj","[ver","[dét","?"]] # 2 : Le pilote pilote les avions.
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
Proc("Ver temps /")
amb="]sg+p2"
for temp in sui_temp_simpl:
amb_r="-"+temp[1:]+"+sg+p2"
sui=[["pré","[nom","?","{po"],["nom","?"],["[dét","adj nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
for temp in sui_temp_compo:
amb_r="-"+temp[1:]+"+sg+p2"
sui=[["pré","[nom","?","{po"],["nom","?"],["[dét","adj nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Nom propre
#
amb="[nom:prop"
amb_r="-nom:prop"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
# NOM
def Nom_prepa(corp):
Proc("NOM PREPA")
#
# Entre dét et nom
amb="dét nom"
#
# DET
amb_r="dét"
sui=[["?","(nom(adj nom"]] # qui faisait tout son succès
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# - NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Traite les adjectifs courants antéposés -
#
# ADJ
amb="[ver" # COMMENT UNE VIEILLE PRIT SOIN
amb_r="-nom:capi"
sui=[[adj_ante,"?"]]
corp=Regle(corp,amb,amb_r,sui)
amb=sui_adj_ante
amb_r="adj"
sui=[["?","[nom"],["?","([nom:prop([nom:maju([nom:inco/maju"],["coj","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Adjectif prépa
#
amb="[adj" #sui_adj_ante
# VER
amb_r="ver"
sui=[["[nom","?","[adv"]] # le matelot court incontinent
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["[ver",adv_l,"?","([adj([vpp:ppas"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[nom",adv_l,"?","([adj([vpp:ppas"]] # Il acheta un cheval bon marché,
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["pof","[dét","?","[ver","[pré"]] # La vieille frappe à
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","pré"]] # Vous pouvez aussi bien me faire un _bon_ pour la somme susdite.
corp=Regle(corp,amb,amb_r,sui)
#
# - Adverbe -
#
amb=amb_nom_ver_tot
amb_r="adv"
sui=[["ver","?",adv_l,"adj"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Classique du Dét Nom -
#
amb="nom ver"
amb_r="nom"
sui=[["dét","?"]] # Des avions
corp=Regle(corp,amb,amb_r,sui)
return corp
def Nom_Cate(corp):
Proc("NOM CATÉ")
#
# - Ambiguïté Nom Verbe -
amb=amb_nom_ver_tot
#
# Titre
#
Proc("Titre /",",")
# ADJ:NUME
amb_r="[adj:numé/ordi"
sui=[["pof","pof","?","((_","((_","((_","((_","((_","pof","pof"]]
corp=Regle(corp,amb,amb_r,sui) # Titre : I
# NOM
amb=["nom ver","adj nom ver"]
amb_r="nom" # marque de paragraphe, construction nominale
sui=[["pof","pof","?","((_","((_","((_","((_","((_","pof","pof"]] # Concernant la longeur : DIALOGUE ENTRE A. ET B., sachant que A. risque d'être mal étiqueté
corp=Regle(corp,amb,amb_r,sui) # Titre : "Terre des hommes" sinon il pointait un verbe.
#
# - Préposition
#
amb="[pré"
# NOM
amb_r="nom"
sui=[["[v","[dét","?",poc_l],["[v","[dét","?","dét"]] #Nous avons enlevé les dessus des tables.
corp=Regle(corp,amb,amb_r,sui)
#
# - Nom -
#
amb=amb_nom_ver_tot
# ADJ
amb_r="adj" # il est bien vrai, est-il bien vrai,
sui=[[etat,adv_l,"?"],[etat,"pcd","pro",adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{coj:circ/corr","?","*que"]] # quelque gentil que, aussi gentil que
corp=Regle(corp,amb,amb_r,sui)
sui=[["vii","?"]] # la manie d'appeler bizarres toutes les choses...
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["ver","?","(adj(adv"],["ver","([adv:degr([coj:circ/corr/verb/locu","?"],["ver","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["@pas","{dét:arti/défi","?"],["@pas","{dét:arti/indé","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["dét","adj","?"],["dét","adv","adj","?"],["dét","adv","adv","adj"],["dét","adj","?"],["dét","adv","adj","?"],["dét","adv","adv","adj"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","ver"],["?","*ne","ver"],["pré","?"],["ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
Proc("Adj /",",")
amb_r="adj"
sui=[["nom",adv_l,"?"],["?","nom"],["?","nom pro"],[etre,"pcd","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{coj:circ/corr/verb/locu","?","*que"]] # si absolu que
corp=Regle(corp,amb,amb_r,sui)
sui=[["vpp","?","{po"]] # Frère Giroflée s'était fait turc.
corp=Regle(corp,amb,amb_r,sui)
sui=[["{pro:pers/comp","ver","?"]] # problème : "je me fis correcteur"
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","coj","adj"],["?","|adv:qua"],[etre,"adv","?"],[etre,"adv","adv","?"],[etre,"?"],["adj","coj","?"],["{adv:ite","?"],["{adv:qua","?"],["pob","?","pob","adj","pob"],["pob","?","pob","adj","coj"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etat,adv_l,"*tout","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["[v","?","pro"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["[ver","?"],["pro","?"],["adv","?"],["*tout","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","dét"],["?","nom"],["?","nom"],["?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Nom_megambig(corp):
# Méga ambiguïté
#
# - Verbe -
amb="[ver"
Proc("SÉQUENCE COMPLEXE, MEGAMBIG ADJ NOM VER")
#
# VER PL
Proc("ver",",")
sui=[["[pro:numé/card","?"]]
amb_r="]pl+p3"
corp=Regle(corp,amb,amb_r,sui) # Méthode pour les numéraux : ne choisi le verbe que s'il est troisième pers plur
# -VER
Proc("-Ver /",",")
amb_r="-ver"
sui=[["[pro:numé/card","?"]]
corp=Regle(corp,amb,amb_r,sui) # Sinon c'est un nom (ou un adj)
sui=[["pof","vii","dét","nom","?"]]
corp=Regle(corp,amb,amb_r,sui) # Faire une perquisition complète.
amb=intrs
sui=[["nom","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui) # Verbe intransitif suivi d'un déterminant
#
# - Nom Verbe -
amb=amb_nom_ver_tot
Proc("Nom Ver /",",")
#
# NOM
# Association nom nom propre, et adverbe adjectif
amb_r="nom"
sui=[[poc_l,"[dét","?","([nom:prop([nom:maju([nom:inco/maju"],["{coj:coor","nom","{coj:coor","?","{po"]]
corp=Regle(corp,amb,amb_r,sui) # le philosophe Pangloss, mon ami dupin
# ADJ
amb_r="adj"
sui=[["ver","[pré","[dét","nom","?"]]
corp=Regle(corp,amb,amb_r,sui) # Ceux qui s'y étaient endormis répondaient par un grognement vague au salut du nouvel arrivant.
#
# - Adjectif Adverbe -
amb=amb_adv
Proc("Adj Adv /",",")
#
# ADV
amb_r="adv"
sui=[["[vpp:ppas","?","[pré"],["nom","?","adj nom"],["adj nom","?","nom"],["nom","?","nom"],["adj","?","adj nom"],["adj nom","?","adj nom"],["[ver","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="[adj"
sui=[["[dét","adv","?","[adj","[nom"]]
corp=Regle(corp,amb,amb_r,sui) # Un très beau jeune homme
sui=[["{po",adv_c,"?",adv_c,"{po"]]
corp=Regle(corp,amb,amb_r,sui) # Un très beau jeune homme
# ADV
amb_r="adv"
sui=[["[dét","?","[adj","[nom"]]
corp=Regle(corp,amb,amb_r,sui) # Un fort bon homme
# NOM
amb_r="nom"
sui=[["[dét","?","[adj"]]
corp=Regle(corp,amb,amb_r,sui) # Le mal physique (force le passage : [dét)
# ADV
amb_r="adv"
sui=[[etre,"?",nom_ver],["?","([vpp:ppas([adj([vrr"]]
corp=Regle(corp,amb,amb_r,sui) # Elle est fort jolie, fort ignorant
#
# - Nom Verbe -
amb=amb_nom_ver
Proc("Mégambig chargée /",",")
#
# ADJ
amb_r="adj"
sui=[["?","adj nom","adj nom"]]
corp=Regle(corp,amb,amb_r,sui) # Maudit frère aîné, suite des adjectifs
sui=[["[adv:degr","?"],["[coj:circ/corr/verb/locu","?"]]
corp=Regle(corp,amb,amb_r,sui) # Un si gentil garçon
sui=[["[dét","[nom","?",adv_l,"[pro:rela"]]
corp=Regle(corp,amb,amb_r,sui) # Une nuit sombre où scintillaient seules.
# VER
amb_r="ver"
sui=[["[dét","[nom","?","[coj:coor","(]p1(]p2(]p3"]]# Le gentil pilote et chante
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","[nom","?","adv"]] # L'ancien domestique mieux maintenant.
corp=Regle(corp,amb,amb_r,sui)
sui=[[poc_l,"[dét","?","@être"]] # ce doit être mieux.
corp=Regle(corp,amb,amb_r,sui)
sui=[["pob","?","[dét","[nom"]] # , vit la manière dont
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","pob","?","{po"]] # J'y vole, partons.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét",nom_ver,"?","[dét"],["[dét",nom_ver,"adv","?","[dét"]] # La dame tire du lit une main
corp=Regle(corp,amb,amb_r,sui)
sui=[["pro","pcd","adv","?"]] # Celui-ci doit évidemment se proposer
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pré","pro","[v","(pob([coj:c","((pob(([coj:c","[pro","?"]] # fait semblant de la lire, et la place juste à côté.
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","[nom","?","(pre([coj:coor","pro","[ver"]]
corp=Regle(corp,amb,amb_r,sui) # Le gentil pilote vers moi chante
sui=[["[dét","?","]sg+p2","{po"]]
corp=Regle(corp,amb,amb_r,sui) # Sur leurs épaules nues
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui) # - Classique du dét -
# ADJ
amb_r="adj"
sui=[["[pré","{vii:infi","[dét","[nom","?"]] # pour prendre la place chaude
corp=Regle(corp,amb,amb_r,sui)
sui=[["[vpp:ppas","*de","[dét","[nom","?","coj"]] # pris d'une toux violente et
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","[dét","nom","?","[pré"]] #J'aperçois un canot vide sur le rivage.
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","?",etat],["[dét","?","*avoir"]] # car la porte était d'argent
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pré","[dét","?","{po"]] # pour la métaphysique
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pré","adj","?","([pre(dét"]] # comme jeune pilote à
corp=Regle(corp,amb,amb_r,sui)
#
# - Adjectif Adverbe -
amb=amb_adv
Proc("Adj Adv /",",")
#
amb_r="ver"
sui=[["[dét",nom_ver,"?","{vii:infi"],["[dét",nom_ver,"?","pré"]]
corp=Regle(corp,amb,amb_r,sui) # Le gentil pilote pour
#
# - Nom Verbe -
amb=amb_nom_ver
Proc("Nom Ver 2 /",",")
#
# ADJ
amb_r="adj"
sui=[["[dét:arti/part",nom,"?","*de"],["[dét","?",nom,"[nom"]]#,["[dét","?",amb_d,"ver"],["[dét","?","adj",amb_d]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?",nom_ver,"pré"],["[dét","[nom","?",nom_ver]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["(@dans(@pour","[dét","[nom","?",poc_l]] # Dans un but politique.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pré","[dét:adje/indé","nom","?",poc_l]] # Dans le but de toute institution politique.
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["[dét","[nom","?","pob","[dét","[nom","(([adj(([vpp","ver"]] # Il y a à parier, répliqua Dupion, en citant Chamfort, que toute idée politique, toute convention reçue est une sottise.
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","[nom",nom_ver,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["(nom(adv","((adj","?","{vii:infi"]] # le pilote doit partir.
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver"
sui=[["[dét","[nom","?",adv_l,"[dét"],["[dét","[nom",adv_l,"?",adv_l,poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{pro:rela","[dét","nom","?","ver"]] # l'espoir que le pilote pilote est ...
corp=Regle(corp,amb,amb_r,sui)
sui=[["adj nom","adj nom","?","pré"],["adj nom","adj nom","?","[dét"]] # La prudente vieille vit dans l'instant tout ce qui était à faire.
corp=Regle(corp,amb,amb_r,sui)
sui=[["adj nom","adj","?","pré"],["adj nom","adj","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver","{po",adv_l,"?","(@par(*de(@du(@à"]] # l'ouvre, fait semblant de la lire.
corp=Regle(corp,amb,amb_r,sui)
#
# - Adjectif -
# Enumeration, Les adjectifs isolés dans des conjonctions ou des ponctuations, pour les énumérations
amb=amb_adj
Proc("Énumération /",",")
#
# ADJ
amb_r="adj"
sui=[[poc_c,"adj",poc_c,"?"],["?",poc_c,"adj",poc_c],["adj",poc_c,"?",poc_c]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[poc_l,"?",poc_l,"({vpp:ppas(adj"],["[adv:degr","?",poc_l,"[adv:degr","({vpp:ppas(adj"]]
corp=Regle(corp,amb,amb_r,sui) # si beau, si leste,
sui=[["?","pob","{coj:coor","adj"],["adj","pob","{coj:coor","?"],[poc_l,"[adj","pob",poc_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof","?","pob","[adj","pob","[vpp:ppas"],["pof","[adj","pob","?","pob","[vpp:ppas"]]
corp=Regle(corp,amb,amb_r,sui) # blanche, ferme, taillée comme la Vénus de Médicis
sui=[["pob","?","pré"]] # , pareils à des
corp=Regle(corp,amb,amb_r,sui)
sui=[["dét","?","[nom",adv_l,"[ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[dét","?","{coj:c","[adj","[nom"]] # ces longues et fines aiguilles
corp=Regle(corp,amb,amb_r,sui)
sui=[["adj","{coj:coor","?","pob"]] # sain et sauf.
corp=Regle(corp,amb,amb_r,sui) # Ils furent aussi poussés à une absolue perfection.
sui=[["dét","?","nom"]]
corp=Regle(corp,amb,amb_r,sui) # Ils furent aussi poussés à une absolue perfection.
sui=[["dét","?","pob","[adj","{coj:c","[adj","[nom"]]
corp=Regle(corp,amb,amb_r,sui) # Mais je vous la dirai, répliqua le préfet en lâchant une longue, solide et contemplative bouffée de fumée.
sui=[["[dét","[dét","nom","pob","?","{coj:c","[adj","{po"],["[dét","[dét","nom","pob","[adj","{coj:c","?","{po"]]
corp=Regle(corp,amb,amb_r,sui) # # Le principe de la force d'inertie, par exemple, semble identique dans les deux natures, physique et métaphysique ;
# Adjectif masculin et féminin
amb=["[adj:qual+mas+pl","[adj:qual+fém+pl"] # Ces fines aiguilles.
sui=[["(dét(coj","?","([nom:fém+pl([nom:mas+pl"]]
#corp=Regle(corp,amb,amb_r,sui)
# NOM
# Enumerations, Les noms isolés dans des conjonctions ou des ponctuations, pour les énumérations
# Insoluble (demande est un verbe, dans la règle un nom) : L'un des joueurs tient dans sa main un certain nombre de ses billes, et demande à l'autre : amb=amb_nom
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui) # - Classique du dét, classique du nom -
sui=[[poc_l,"nom",poc_l,"?",poc_l],["pob","?","pob","nom"],["[coj:coor","nom","[coj:coor","?"],["?","[coj:coor","nom","[coj:coor"],["nom","adj","pob","?","pré"],["nom","adj","pob","?","{coj:coor"],["nom","pob","?","{coj:coor"],["nom","adj","pob","?","[dét"],["nom","pob","?","[dét"]] # Tempête, naufrage, tremblement - ...Donnèrent vingt yens, monnaie du pays
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pob","{coj:coor","nom"],["nom","pob","{coj:coor","?"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
# Les verbes isolés dans des conjonctions ou des ponctuations, pour les énumérations
amb=amb_ver
amb_r="ver"
sui=[[poc_l,"?",poc_l,"ver"],["?",poc_l,"ver",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[poc_l,"?","pob",poc_l,"ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["ver",adv_l,"dét","nom","((adj","(pob({adv:liai","?"]] # : Il prend son fusil espagnol, tire, [suite ligne règle suivante] et tue les eux singes.
corp=Regle(corp,amb,amb_r,sui)
# ADJ
# La suite nom + adj a peu de chance d'être nom + ver si elle est précédée d'un verbe ou introduite par une préposition, sauf pour un inspecteur morne. amb="[adj"
amb_r="adj"
sui_adj=["@morne"]
for amb in sui_adj:
sui=[["pré","[dét","nom","?"],["pré","[dét","nom","?"],["ver","[dét","nom","?"],["ver","[dét","nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb=amb_adj
sui=[["(ver(pre","[dét","nom","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Participe passé -
amb="[vpp"
Proc("Participe passé /",",")
#
# VPP
# Combinaison de base pour l'étiquetage du participe passé épithète, d'abord verbe puis ppas,
amb_r="vpp"
sui=[["nom","((adj","?",adv_l,"(@par(*de(@du(à"]] # Deux singes rôtis d'un goût excellent.
corp=Regle(corp,amb,amb_r,sui)
#
# - Combinaison Adjectif -
amb="[vpp"
Proc("Adjectif /")
# Combinaison de base pour l'étiquetage de l'adjectif,
#
# ADJ
amb=amb_adj
amb_r="adj"
sui=[["[dét","?","nom"],["[vpp:ppa","((pro","?"],["[vpp:ppa","pro","pcd","[pro","?"]] # Je me sois rendu moi-même coupable
corp=Regle(corp,amb,amb_r,sui)
# ADJ ADV NOM
amb="adj adv nom"
amb_r="adv"
sui=[["[nom","?","[adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
return corp
def Nom_final(corp):
# Nom Final
Proc("NOM... FINAL")
#
# - Nom -
#
amb="[nom"
# NOM
amb_r="nom"
sui=[["{v","@en","?"],["(@en(@comme(@pour","?","adj"],["(@en(@comme(@pour","(([adj","?"]] # en somme exacte, en pilote habile, Pré + Nom sans déterminant, comme livreur, comme pilote de ligne
corp=Regle(corp,amb,amb_r,sui) # il se met en colère,
# VER
amb_r="ver"
sui=[["@en","?","dét"],["@en","?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Verbe -
#
amb="[ver"
# VER
amb_r="-ver" # Ver_final "on fit bonne chère"
sui=[["ver","[nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Nom Préposition -
#
# NOM
amb="nom pré" # car, sous
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Combinaison Nom Verbe -
#
# NOM
amb=nom_ver
amb_r="nom"
sui=[["dét","?"],["[dét","?",poc_l],["[pro:numé","[pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[poc_l,"?",poc_l,"nom"]]
corp=Regle(corp,amb,amb_r,sui) # énumération,
# PRE
amb_r="pré"
sui=[["ver","?","[nom"],["ver","?","[dét"],["?","[pro:pers/disj"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["ver","?"],["?","[pro:pers/disj"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["nom","?"],["?","nom"],["adj","coj","?"],["{vii:inf","?"],["{po,","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["adj","?"],["{vii:infi","?"],["dét","?"]] # Faire voile
corp=Regle(corp,amb,amb_r,sui)
sui=[["pré","?"]] # Il a pour discipline... L'infaillibilité au jeu de pair et impair. Mais : Où de vivantes colonnes...
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["pob","?","*de"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver"
sui=[["pob","?","pré"],["?","[dét:num"],["[adv","[pro:pers","?","[vpp:ppas"],["[nom","[adv","[pro:pers","?"],["[nom","[pro:pers","?"]]# Dieu leur a donné (aussi en ver_cate nom non forcé)
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["coj","?"],["?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# Amb ver nom totale
amb=amb_nom_ver
# VII
amb_r="[vii:infi"
sui=[["ver","?"],["pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Nom_final_II(corp):
# Nom Final
Proc("NOM... FINAL II")
#
# - Verbe deuxième personne
#
amb="[ver:ipré+sg+p2"
# -VER
amb_r="-ver"
sui=[["coj","?","]pl"]] # comme choses naturelles
corp=Regle(corp,amb,amb_r,sui)
#
# Nom Ver total
#
amb=amb_nom_ver
# -VER
amb_r="-ver"
sui=[["coj","?","(]fém+sg(]ing+sg(]mas+sg"]] # comme chose démontrée
corp=Regle(corp,amb,amb_r,sui)
# VER
amb_r="ver"
sui=[["ver",adv_l,"?","{po"],["coj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Adjectif
# ADJ
amb="[adj"
amb_r="adj"
sui=[[etat,adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[etat,adv_l,"ver",adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
non_ver=["pré","coj","nom","adj","adv","dét"]
#
# court, ferme, grave
#
amb="adj adv nom ver"
# VER
amb_r="ver"
sui=[["?","pof"],["?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Nom Ver /",",")
#
# Nom Ver
#
amb=amb_nom_ver
# NOM
amb_r="nom" # Det + Nom répétition des règles de bases,
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Quasi-arbitraire du verbe
sui=[["pob","[dét","?","pré","dét"],["{coj:coord","[dét","?","pré","dét"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Nom Ver total
#
amb=amb_nom_ver_tot
# VER
amb_r="ver"
sui=[["@qui","[pro:pers","?","{po"]]#,["{pof","?","dét"]]# (3: ayant cuvé son vin, achète un billet) mais impératif ??
corp=Regle(corp,amb,amb_r,sui)
# COJ
amb_r="coj"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["(nom(coj([vii(adv","?"],["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Nom /",",")
# - nom -
amb=amb_nom_ver_tot
# NOM
amb_r="nom"
sui=[["?","adj"],["adj","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Arbitraire a demi... ,["pré","?"]] # Il a pour discipline...
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="[adj"
amb_r="adj"
sui=[["[dét","?","nom"]] # Arbitraire a demi... ,["pré","?"]] # Il a pour discipline...
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
# Arbitraire du nom, passe derrière le précédent : Cette superbe voute étoilée.
sui=[["[dét","?"],["{int","?"],[poc_l,"?","[adj"],["coj","?","[adj"]]
corp=Regle(corp,amb,amb_r,sui)
# - adjectif -
amb="[adj"
# PRE
amb_r="pré"
sui=[[poc_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["?","nom ver"],["{po","?","[dét"]] # 1: Profond silence, 2: meilleur des mondes,
corp=Regle(corp,amb,amb_r,sui)
# - adj nom -
amb="adj nom" # blanc et noir,
# NOM
amb_r="nom"
sui=[["nom","{coj:coor","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# - nom -
amb="[nom" # l'adjectif : registre cornu,
# NOM
amb_r="nom"
sui=[["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
# - adv coj pré -
amb="adv coj pré" # pour, sans, après, dès
amb_r="coj"
sui=[["?","[coj:circ"],["?","[adv","[coj:circ"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
corp=Regle(corp,amb,amb_r,sui)
sui=[["@quelque","@temps","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Pro /",",")
# - pro -
amb="[pro" # il <*il Pro:Pers/Suje+Mas+SG+P3 *il Nom:Mas+SG>
amb_r="-nom"
sui=[["?","([ver([pro"]]
corp=Regle(corp,amb,amb_r,sui)
# VER
amb="[ver" # n'oublions pas le verbe,
amb_r="ver"
sui=[["nom","?"],["pro","?"],["pro","[coj","?"]] # Que faut-il donc faire ?
corp=Regle(corp,amb,amb_r,sui)
amb="@c"
amb_r="[nom"
sui=[["[dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Nom_final_III(corp):
# Nom final III
Proc("NOM... FINAL III")
# Amb nom
#
amb=amb_nom
# NOM
amb_r="nom" # Det + Nom
sui=[["dét","?"],["pré","?"],["{adv:itrj","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="nom pro" # Det + Nom
sui=[["dét","?"],["pré","?"],["{adv:itrj","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb=amb_nom_ver
amb_r="pro"
sui=[["?","pro"],["{vpp:ppas","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["{coj:coor","?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","adv"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["?","pob","{coj:coor","{vpp:ppas"],["?","pob","{coj:coor","adj"],["?","pob","{vpp:ppas"],["?","pob","adj"],["dét","?","{coj:coor","adj","nom"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="ver"
sui=[["{coj:coor","?","coj","ver"],["?","pob","{coj:coor","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb="adj nom" # Règle nom adj
amb_r="adj"
sui=[["nom","?"],[etre,"pcd","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[adj" # force le passage, Précédent (déjà formulée 1)
amb_r="adj"
sui=[["?","pob","{coj:coor","{vpp:ppas"],["?","pob","{coj:coor","adj"],["?","pob","{vpp:ppas"],["?","pob","adj"],["dét","?","{coj:coor","adj","nom"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[vpp","?","[pré"]] #Je fus jugé propre par le père général.
corp=Regle(corp,amb,amb_r,sui)
amb="[nom" # force le passage,
amb_r="nom"
sui=[["?","[adj"],["[adj","?"],["[vpp","?","[pré"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[pro"
amb_r="pro"
sui=[[poc_l,"[ver:im","?",poc_l],[poc_l,"[ver:im","?","coj"]] # prends le même si tu peux pas.
corp=Regle(corp,amb,amb_r,sui)
amb=amb_nom_ver
amb_r="nom" # Det + Nom
sui=[["?"]]
amb="[vii:infi"
amb_r="[vii:infi"
sui=[["adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["@en","?"],["?","pof"],["?","pob"],["pob","?"],["pof","?"],["{coj:coor","?","pro"],["{coj:coor","?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom"
amb_r="nom"
sui=[["dét","?"]]
corp=Regle(corp,amb,amb_r,sui)
for amb in amb_nom_ver:
amb_r="adv"
sui=[["@en","?"],["?","pof"],["?","pob"],["pob","?"],["pof","?"],["{coj:coor","?","pro"],["{coj:coor","?","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@a"
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# PROP
amb=amb_nom
amb_r="[nom:prop/prén" # nom propre ?
sui=[["?","([nom:prop([nom:maju([nom:inco/maju"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Nom_final_IV(corp):
# Nom final IV
Proc("NOM... FINAL IV")
# Adj
amb="[adj"
amb_r="adj"
sui=[["(nom(ver","?"]] # ils gisaient pêle-mêle
corp=Regle(corp,amb,amb_r,sui)
# Nom
amb="[nom"
amb_r="nom"
sui=[["{adv:itrj","?","{po"],["dét","?"],["{po","(({coj:c","?"],["ver","?"],["pré","?"],["adv","?"],["nom","{coj:coor","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# Adj langue
amb="[adj:qual/lang"
amb_r="[adj:qual/lang"
sui=[[langue,adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb="[nom"
amb_r="adv"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
# DET PRO
def DetProNom_genre(corp):
# Det Pro genre # Pointe incohérence du type les (pluriel) pilote (sing) pour trouver le verbe,
Proc("DET PRO NOM GENRE")
#
# - Le -
#
amb="[nom:fém+sg"
amb_r="-nom:fém+sg" # le frappe, le frotte,
sui=[["(@le","?"]] #(@mon(@ton(@son","?"]] son entreprise.
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:fém+pl"
amb_r="-nom:fém+pl"
sui=[["(@le(@mon(@ton(@son","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:mas+pl"
amb_r="-nom:mas+pl"
sui=[["(@le(@mon(@ton(@son","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - La -
#
amb="[nom:mas+sg"
amb_r="-nom:mas+sg"
sui=[["(@la(@ma(@ta(@sa","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:mas+pl"
amb_r="-nom:mas+sg"
sui=[["(@la(@ma(@ta(@sa","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:fém+pl"
amb_r="-nom:mas+sg"
sui=[["(@la(@ma(@ta(@sa","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("les /",",")
#
# - Les -
#
# NOM
amb="[nom:mas+sg"
amb_r="-nom:fém+sg"
sui=[["(@mes(@tes@(ses(@les","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:fém+sg"
amb_r="-nom:fém+sg" # les laisse,
sui=[["(@mes(@tes@(ses(@les","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Ver:P2
amb="[ver:ipré+sg+p2"
amb_r="[nom:fém+pl" # pour les pilotes, pour les affaires,
sui=[["@pour","(@mes(@tes@(ses(@les","?"]]
#corp=Regle(corp,amb,amb_r,sui)
# Nom
amb="[nom"
# VER
amb_r="ver" # appelle à l'aide, l'aide à remonter,
sui=[["[ver","@à","[vii:infi","pob","@l#","?","@à","[vii:infi"],["[ver","@à","[dét","[nom","pob","@l#","?","@à","[vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
amb=["[nom:mas+pl","[nom:mas+sg","[nom:fém+pl"]
Proc("vii /",",")
# VII
amb_r="[vii:infi"
sui=[["@la","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Dét Arti
amb="[dét:arti/défi" # Infinitif
# PRO
amb_r="pro"
sui=[["?","{vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
# Les
amb="@les"
sui=[["?","((adj","({nom:mas+sg({nom:fém+sg([nom:ing+sg"]]
corp=Regle(corp,amb,amb_r,sui)
amb_sui=["*chuter","*dîner"]
for sui in amb_sui:
amb="*le" #un verbe intransitif ne peut être précédé de son complément
amb_r="dét"
sui=[["?",sui]]
corp=Regle(corp,amb,amb_r,sui)
Proc("adj:indé /")
#
# Adj:Indé
#
amb=["[adj:indé+mas+pl","[adj:indé+fém+pl","[adj:indé+ing+pl"] #["[adj:indé+mas+pl","[adj:indé+fém+pl","[adj:indé+ing+pl"]
amb_r="[adj:indé"
sui=[["(@les(@des([dét:pose/plur+pl([dét:pose/sing+pl([dét:démo+ing+pl","?","[ver:ipré+sg+p2"]] #["@les","?","[ver:ipré+sg+p2"]"(@les(@des([dét:pose/plur+pl([dét:pose/sing+pl([dét:démo+ing+pl"
corp=Regle(corp,amb,amb_r,sui)
return corp
def Det(corp):
# Det : Les déterminants en general
Proc("DÉT GÉNÉRAL")
amb="[dét:arti"
# Fusion des composés
amb_r="]cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["*avoir","?","nom pré"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét" # l'un, l'autre
sui=[["?","{pro:indé"],["?","*un"],["?","*autre"],["?","*leur",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
sui_pre=["@avant","@après","@vers","@sur","@à","@de","@dans","@sans"] # Il le voit sans la bosse,
for pre in sui_pre:
sui=[[pre,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["?","[pro:pers"],["?","((pro","ver"],["@<->","?"],["@ne","?","@plus"]]
corp=Regle(corp,amb,amb_r,sui)
#
# l'
#
amb="l#" # l'on : pronom
# PRO
amb_r="pro"
sui=[["?","@on"]]
corp=Regle(corp,amb,amb_r,sui)
#
# dét:arti / démo
#
amb=["[dét:arti","[dét:démo"]
# DET
amb_r="dét"
sui=[["?","[dét:num"],["pré","nom","?"],["(*que(pof","?"],["?","(nom({dét:pos(adj{{pro:ind"],["pof","adv","?"],["ver","?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","adj nom ver","*que"],["?","adj nom","*que"],["?","adj nom ver","pob","*que"],["?","adj nom","pob","*que"],["?","[adj:ind"],["?","[dét:adj"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","{pro:pose/sing"]] # Il donne les siens.
corp=Regle(corp,amb,amb_r,sui)
sui=[["@excepté","?","[vii:infi"]] # excepté le souper.
corp=Regle(corp,amb,amb_r,sui)
# NOM
amb_r="nom"
sui=[["dét","?"],["dét","adj","?"],["dét","adv","adj","?"],["dét","adv","adv","adj"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["@depuis","?","[vii:inf"],["@par","?","[vii:inf"],["?","[vii:inf","nom"]]
corp=Regle(corp,amb,amb_r,sui)
#
# dét:arti
#
amb="[dét:arti"
# PRO
amb_r="pro"
sui=[["?","[vii:inf"],["?","ver"],["?","pro","ver"],["@<->","pro"]]
corp=Regle(corp,amb,amb_r,sui)
# -NOM
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# dét:démo
#
amb="[dét:démo"
# DET
amb_r="dét"
sui=[["?","[nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Det_fin(corp):
# Det : Les déterminants en général,final
Proc("DÉT GÉNÉRAL final")
amb="[dét" # chaque
amb_r="dét"
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DetPro_prepa(corp):
# DetPro preparation. L'ambiguïté déterminant et pronom en particulier 1/4
Proc("DÉT PRO... PRÉPA 1/4")
amb_sui=["@au","@aux"]
for sui in amb_sui:
amb="[ver"
amb_r="-ver"
sui=[[sui,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# Les DetPro pris entre rupture ou corrélatives
amb=["adj pro","dét pro","adj cpa dét nom pro","@la"]# adj dét nom pro : "nul"
amb_r="dét"
sui=[["[coj:circ/corr","?",nom,"[coj:circ/corr"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DetPro(corp):
# DetPro. L'ambiguïté déterminant et pronom en particulier 2/4
Proc("DET PRO PARTICULIER")
amb="[dét"
# PRO
amb_r="pro"
sui=[["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb=["adj pro","dét pro","adj cpa dét nom pro","@la"]# adj dét nom pro : "nul"
sui=[["pcd","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pro","?","[ver"]] # Je le contre
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?","[adv:degr"]] # la moins
corp=Regle(corp,amb,amb_r,sui)
sui=[["[ver","[pro","?","[ver","[dét"],["[ver","[adv","[pro","?","[ver","[dét"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","*un"],["?","*autre"]] # l'un, l'autre
corp=Regle(corp,amb,amb_r,sui)
sui=[["vrr","?","[vpp"],["vpp","?","[vpp"],["vii","?","[vpp"]] # Je vous avoue qu'en - jetant la vue - sur ce globule.
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[[etre,adv_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[pro:pose"
lis_ver=["adj nom ver","adj ver","nom ver","ver","adv ver","pro ver","adj pro ver","adv pro ver"]
for ver in lis_ver:
sui=[["?",ver,"dét"]]
#corp=Regle(corp,amb,amb_r,sui) # annulée cause : Afin que leurs actes du pouvoir législatifs.
# DET:ARTI/CONT
amb_r="[dét:arti/défi/cont"
sui=[["nom","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro" # ce qui fait
sui=[["?","{pro:rela"],["{pro:rela","?","[ver"]] # 2: qui que ce soit.]
corp=Regle(corp,amb,amb_r,sui)
# ADJ
amb_r="adj"
sui=[["[dét","?","nom"],["[nom","?","{po"]] # une certaine éducation,
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?","(nom(adj nom"],["[ver","?","vpp"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="[pro:pers"
sui=[["?","*que"],["?","*ne"],["?","{v"]]
corp=Regle(corp,amb,amb_r,sui)
# -PRO
amb_r="-pro"
sui=[["@part","[pro:pers","?"],["@sauf","[pro:pers","?"],["@n#",etre,"[pro:pers","?"],["@sinon","[pro:pers","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRO
amb_r="pro"
sui=[["[pro:pers","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# le la avec pluriel
#
amb="@le","@la"
sui=[["?","([nom:mas+pl([nom:ing+pl([nom:fém+pl"]] # Tu vérifie la porte puis la fermes.
#corp=Regle(corp,amb,amb_r,sui)
amb="@les"
sui=[["?","([nom:mas+sg([nom:ing+sg([nom:fém+sg"]] # Le fermier vérifie les portes puis les ferme.
#corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
sui=[["?","dét"]]#,["nom","?"]] because Je pense que Dieu l'a abandonné à quelque être malfaisant.
corp=Regle(corp,amb,amb_r,sui)
# DET:NUME
amb="[dét:numé/card" # numéraux
amb_r="pro"
sui=[["dét","?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
# DET
amb_r="dét"
for ver in lis_ver:
sui=[["?",ver,"ver"],["?",ver,"adv","dét"],["?",ver,"adv","adv","dét"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DetPro_supp_nom(corp):
# DetPro supprime nom. L'ambiguïté déterminant et pronom en particulier, supprime le nom 3/4
Proc("DÉT PRO SUPPRIME LE NOM")
amb=["adj pro","dét pro","@la"]
amb_r="nom"
sui=[["[dét","?","{po"],["[dét","?","coj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def DetPro_fin(corp):
# Det Pro fin. L'ambiguïté déterminant et pronom en particulier 4/4
Proc("DÉT PRO FIN")
amb=["dét pro","adj cpa dét nom pro","@la"]#,"adj dét nom pro"]
amb_r="dét"
sui=[["?","nom"],["?","adj"],["?","[pro:numé"],["?","{pro:pose"]] # 3 : toutes les deux, 4 : Chez les siens,
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?","ver"],["?","vrr"],["?","[adv:néga","ver"],["?","pro"],["@qui","?","[ver","{po"],["?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="dét" # forçage
sui=[["?","[nom"],["?","[adj"],["?","{dét:arti/part"]]
corp=Regle(corp,amb,amb_r,sui)
for amb_d in amb_nom_ver:
amb_r="dét"
sui=[["?",amb_d,"pof"],["?",amb_d,"pob"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[dét:numé/card"
amb_r="dét"
sui=[["?","[nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
# COMBINAISON DIVERSES
def PreVer(corp):
# Préposition Verbe
Proc("PRÉ VER") # Entre
amb="pré ver"
amb_r="ver"
sui=[["?","[pré"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["pro","?"],["{po","nom","{po","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["ver","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["(nom(nom ver(adj nom ver","?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pre(corp):
# Préposition
Proc("PRÉPOSITION")
amb=["adv pré","nom pré","adv nom pré"]
amb_r="pré"
sui=[["([v","?","pro"]] # Il dit qu'il était venu pour nous consulter.
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","{pro:pers/suje"],["?","{po"],["?","pré"],["?","{coj:coor"],["coj","?","ver"],["pro","?","ver"],["{po","?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="nom"
sui=[["?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-pré"
sui=[["?","{po"],["?","{coj:coor"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdjPre(corp):
#Adj Pre
Proc("ADJ PRÉ")
amb="adj pré"
amb_r="adj"
sui=[["*pomme","?"]]
#corp=Regle(corp,amb,amb_r,sui)
amb_r="pré"
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
return corp
def AdjAdv_fin(corp):
Proc("ADJ ADV FIN") # Le problème est abordé dans Megambig "fort polis"
amb_sui=["adj adv","adj adv nom","adj adv int","adj adv nom int"] # bas, épais
for amb in amb_sui:
amb_r="adj"
sui=[["{coj:circ/corr","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["coj","?","pro"],["ver","?"],["vpp","?"],["vii","?"],["vrr","?"],["[adv:degr","?"],["adv","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdjAdvPro(corp):
# Adjectif Adverbe Pronom,
Proc("ADJ ADV PRO")
amb_sui=["adj adv pro","adv pro"]
for amb in amb_sui:
amb_r="adv"
sui=[["ver","?"],["adv","?"],["nom","?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adj"
sui=[["?","nom"],["?","adj"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?","ver"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="adv"
sui=[["?","pof"],["?","pob"],["?","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@s#" # si
amb_r="coj"
sui=[["?","@il"],["?","@ils"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="pro"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvPre(corp):
# voici, voilà
Proc("ADV PRÉ")
amb="adv pré"
# ADV
amb_r="adv"
sui=[["?",poc_l],["[pro:pers","?"],["{po","?","{po"],["{po","?","[pré"],["{po","?","[coj"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pro"],["ver","?"],["?","nom"],["?","*de"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","pof"],["?","pré"],["?","adv pré"],["?","pob"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Adv coj pré Après
#
amb="adv coj pré"
# ADV
amb_r="adv"
sui=[["?","{po"],["?","pré"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def AdvNomPreVer(corp):
# Adv Nom Pré Ver, contre, derrière
Proc("ADV NOM PRE VER")
#
amb=["adv nom pré ver","adv nom pré"]
#
# NOM
amb_r="nom"
sui=[["dét","?"],["[pré","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="adv"
sui=[["?","pof"],["?","pob"],["?","coj"]]
corp=Regle(corp,amb,amb_r,sui)
# ADV
amb_r="ver"
sui=[["pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PRE
amb_r="pré"
sui=[["?","[dét"],["[nom","?","[nom"],["[adj","?","[adj"],["[nom","?","[pro:rela"],["[adj","?","[pro:rela"],["[nom","?","[adj"],["[adj","?","[nom"],["?","{pro:pers/disj"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","nom"]]
corp=Regle(corp,amb,amb_r,sui)
#
amb="nom pré " # vers
#
# NOM
amb_r="nom"
sui=[["[pré","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Adverbe(corp):
Proc("ADV COMPOSÉ")
#
# Adverbe et adverbe composé, de manr, liai et affi
#
amb=["[adv:manr","[adv:affi","[adv:liai"]
# LIAI
amb_r="[adv:liai"
sui=[["pof","?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv:liai"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# AFFI
amb_r="[adv:affi"
sui=[["pof","?","pof"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-adv:affi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# LIAI
amb_r="[adv:manr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Fusion des adverbes de liaison composés
Proc("Fusion")
# à la longue
amb="@à"
amb_r="+*à_la_longue Adv:Liai/Cmps"
sui=[["{po","?","@la","@longue","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@la"
amb_r="+*à_la_longue Adv:Liai/Cmps"
sui=[["{po","@à","?","@longue","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@longue"
amb_r="+*à_la_longue Adv:Liai/Cmps"
sui=[["{po","@à","@la","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*à_la_longue")
corp=Effac_forme(corp)
amb="*à_la_longue"
amb_r="[adv:liai/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# par dessus tout
amb="@par"
amb_r="+*par_dessus_tout Adv:Liai/Cmps"
sui=[["{po","?","@dessus","@tout","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@dessus"
amb_r="+*par_dessus_tout Adv:Liai/Cmps"
sui=[["{po","@par","?","@tout","{po"]]
corp=Regle(corp,amb,amb_r,sui)
amb="@tout"
amb_r="+*par_dessus_tout Adv:Liai/Cmps"
sui=[["{po","@par","@dessus","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
corp=Fusion_mot_comp(corp,"*par_dessus_tout")
corp=Effac_forme(corp)
amb="*par_dessus_tout"
amb_r="[adv:liai/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Pers_final(corp):
Proc("PERSONNE FINALE et IMPÉRATIF")
#
# - Voir -
#
# -IMPE
Proc("voir /",",")
amb="*voir"
amb_r="[ver:impé"
sui=[[poc_c,"?","pcd","[pro:pers/suje","((_","@!"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-ver:impé"
sui=[["?","pcd","[pro:pers/suje"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("exception /","")
amb=["@lettre"]
amb_r="ver:impé"
sui=[[poc_l,"?",poc_l]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-ver:impé"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
##
Proc("-impé /",",")
amb="[ver:impé" # impératif
amb_r="-ver:impé"
sui=[["{po","{adv:inte","?"],["{po","{pro:pers","ver",poc_l,"?"]] # Comment veux-tu...
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pro:pers/comp","?","pcd","[pro:pers/suje"]] # Quel non-sens nous dites-vous là !
corp=Regle(corp,amb,amb_r,sui)
sui=[["({ver:ip({ver:if","{coj:c","?"]] # L'assemblée nationale reconnaît et déclare, en présence du Monde des Fous et des fooouuuusss.
corp=Regle(corp,amb,amb_r,sui)
Proc("impé p2 /",",")
amb_sui=["[ver:impé+pl+p2","[ver:impé+sg+p2"]
for amb in amb_sui:
sui_int=[["?","pcd","[pro:pers","@?"]]
sui_imp=[["?","pcd","[pro:pers","pof"]]
for i in range(26):
sui_int[0][-1:-1]=["_"];sui=sui_int
amb_r="-ver:impé"
corp=Regle(corp,amb,amb_r,sui)
sui_imp[0][-1:-1]=["_"];sui=sui_imp
amb_r="[ver:impé"
corp=Regle(corp,amb,amb_r,sui)
Proc("- impé2 /",",")
amb_r="-ver:impé"
sui=[["pob","pob","?"]]
for a in range(8):
sui[0][1:1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
sui=[["[pro:pers/comp","[pro:pers/comp+pl+p1","?","pcd","@vous"],["[pro:pers/comp","[pro:pers/comp+pl+p2","?","pcd","@nous"]] # Lui permettez-vous de partir / Permettons-nous une fantaisie.
corp=Regle(corp,amb,amb_r,sui)
# IMPE
Proc("impé 1/2 /",",")
amb="[ver:impé"
amb_r="[ver:impé"
sui=[["({po(@;","?","({po(@!"],["{ver:impé","{po","_","{po","?"],["{po","{coj:c","?","pcd"],["pof","?","dét"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","*ne","[pro:pers/comp","?","{adv:néga"],["@;","?","pob"],["@;","?","pof"],["pof","?","pob"],["{ver:impé","{po","_","{po","?"],["{po","{coj:c","?","pcd"]] # 1 (contre, à cause pof) : on ne se soucie
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof","?","pof"],["pof","{coj:coor","?","pof"],["{po","?","pro"],["{po","@-","{coj:c","?"]]# (Last : - Mais regardez -)
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","?","{coj:c","[ver:impé"],["{ver:impé","{coj:c","?"]] # Soupez et tenez-vous prêt.
corp=Regle(corp,amb,amb_r,sui)
sui=[["{ver:impé","{po","?","{po"],["({po({coj:c","((adv","?","pcd","[pro:pers/comp"]] #1 : (énumération) 2 : Mon cher enfant, adore-les toujours.
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","?","@bien"],["?","pcd","[pro:pers/disj"],["pob","{coj:c","?","pob"],["{po","{coj:c","?","[pré"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("impé 2/2 /",",")
sui=[["pob","?",adv_l,"dét"],["pof","?",adv_l,"[pré"]] # 1: Engagez chaque passager à vous conter son histoire. 2 : Travaillons sans raisonner
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","?","{v","((nom((pre((coj"]] # Va prendre Mlle Cunegonde à Ajaccio.
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof","?","{pro:indé"],["pof","?","coj"]] # 1:Vendons un des... 2:Ajoutez que
corp=Regle(corp,amb,amb_r,sui)
sui=[["{po","?","pré"],["{coj:coor","*ne","?","(nom({po"]] # venez chez moi, et ne dites mot.
corp=Regle(corp,amb,amb_r,sui)
sui=[["pof",liai,"*ne","?","@pas"]] # Ou ne commencez pas, dit Dupin.
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:impé" # supprime impératif si énumération ? Mangez, buvez, dormez, lui dit-il. Frottez-vous de la pommade, mangez et dormez.
sui=[["{po","?","{po","{coj:c","[ver:im"],["{po","?","{coj:c","[ver:im"],["{po","?","{po","[ver:im"],["[ver:ip","{po","?","{po"],["[ver:ip","{po","{coj:c","?","{po"],["[ver:im","{coj:c","?","{po"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("modal /",",")
amb=sui_modal
sui=[["?","pcd","[pro:pers"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:impé"
amb_r="[ver:impé" # selectionne impératif si entre ponctuation ou coordination
sui=[["{po","?","{po"],["{coj:coor","?","pré"],["{coj:coor","?","{po"],["pof","coj","?","{po"],["pof","adv","?","{po"],["{po","?","pré"],["{po","?","pro"],["pof","?","dét"],["{po","?","coj"],["pof","?","adv","pré"],["[ver:impé","[coj:coor","?"],["[ver:impé","pof","[coj:coor","?"],["{po","?","{vii:infi"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:impé+pl+p1"
sui=[["pob","?","@!"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("-impé 3 /",",")
amb_r="-ver:impé"
sui=[["{po","*ne","?","pcd"],["[adv:itrj","pob","(([adv","?"]]# 2: L'avion, hélas ! ne tarde guère.
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:impé"
sui=[["{po","*ne","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("personne /",",")
amb="ver" # personne
amb_r="]pl+p1"
sui=[["*nous","?"],["*nous","pro","?"],["*je","pro","pro","?"],["?","@<->","@je"],["]+p1","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*nous","*ne","?"],["*nous","*ne","pro","?"],["*je","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]pl+p2"
sui=[["*vous","?"],["*vous","pro","?"],["*vous","pro","pro","?"],["?","@<->","@tu"],["]+p2","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*vous","*ne","?"],["*vous","*ne","pro","?"],["@tu","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]pl+p3"
sui=[["*ils","?"],["*ils","pro","?"],["*ils","pro","pro","?"],["?","@<->","@tu"],["]+p2","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*ils","*ne","?"],["*ils","*ne","pro","?"],["@tu","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*elles","?"],["*elles","pro","?"],["*elles","pro","pro","?"],["?","@<->","@tu"],["]+p2","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*elles","*ne","?"],["*elles","*ne","pro","?"],["@tu","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
Proc("sg+p /",",")
amb_r="]sg+p1"
sui=[["*je","?"],["*je","pro","?"],["*je","pro","pro","?"],["?","@<->","@je"],["]+p1","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["*je","*ne","?"],["*je","*ne","pro","?"],["*je","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]sg+p2"
sui=[["@tu","?"],["@tu","pro","?"],["@tu","pro","pro","?"],["?","@<->","@tu"],["]+p2","@<->","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["@tu","*ne","?"],["@tu","*ne","pro","?"],["@tu","*ne","pro","pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]sg+p3"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Impératif
Proc("impé 4 -impé /",",")
amb="[ver:impé"
amb_r="-ver:impé"
sui=[["?","pcd","pro","*que"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:impé"
amb_r="-ver:impé"
sui=[["@combien","?"],["{pro:inte","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[ver:impé"
sui=[["{po","?","pcd"],["{po","adv","?","pcd"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-ver:impé"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="[vpp:ppas"
sui=[["*avait","?"],["*avait","adv","?"],["*avait","adv","adv","?"]]
corp=Regle(corp,amb,amb_r,sui)
# Pers final
Proc("pers finale /",",")
amb="ver"
amb_r="]+p1"
sui=[["]+p1","((pcd","?"],["]+p1","(pro","((pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","((pcd","]+p1"],["?","(pro","((pro","]+p1"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]+p2"
sui=[["]+p2","((pcd","?"],["]+p1","(pro","((pro","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","((pcd","]+p2"],["?","(pro","((pro","]+p2"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Temps(corp):
Proc("TEMPS SUBJONCTIF")
# Etaient
amb="@étaient" # Problématique de étayer et étaient
sui=[["?"]]
amb_r="-ver:ipré"
corp=Regle(corp,amb,amb_r,sui)
amb_r="-ver:spré"
corp=Regle(corp,amb,amb_r,sui)
#
# Subjonctif
#
amb="[ver:s" # il dit que ce papier confère
amb_r="-ver:s"
sui=[["*dire",adv_l,"{coj:cplt","?"]]
for su in range(5):
corp=Regle(corp,amb,amb_r,sui)
sui[0][-1:-1]=["_"]
sui=[["{coj:cplt","?"]]
amb_r="[ver:s"
for su in range(5):
corp=Regle(corp,amb,amb_r,sui)
sui[0][-1:-1]=["_"]
# Locution de l'hypothétique
sui=[[hypot,"?"]]
for a in range(4):sui[0][-1:-1]=["_"];corp=Regle(corp,amb,amb_r,sui)
#
sui=[["@avant","*que","?"],["@afin","*que","?"],["@à","@mesure","?"],["@à","@seule","@fin","?"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[[modal,"{pro:rela","?"],[modal,"{pro:rela","_","?"],[modal,"{pro:rela","_","_","?"]]
for b in range(5):
sui[0][-2:-2]=["_"];sui[1][-2:-2]=["_"];sui[2][-2:-2]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# Suppression Subjonctif
amb_r="-ver:s"
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
return corp
def Fusion_ver_comp(corp):
# Fusion des verbes composés
Proc("FUSION DES VERBES COMPOSÉS")
sui_temp_simpl_maj=["[Ver:IPré","[Ver:IImp","[Ver:IPsi","[Ver:SPré","[Ver:CPré","[Ver:SImp","[ver:IFut"]
sui_ver_pers_maj=["+SG+P1","+SG+P2","+SG+P3","+PL+P1","+PL+P2","+PL+P2"]
for ver_s in sui_temp_simpl_maj:
ver_s=ver_s[1:]
for ver_p in sui_ver_pers_maj:
ver_remp=ver_s+ver_p
#print "remp",ver_remp
#print ver_remp
corp=FusionEtiqu(corp,ver_remp,"Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vpp:PPas+Mas+SG","Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vpp:PPas+Mas+PL","Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vpp:PPas+Fém+SG","Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vpp:PPas+Fém+PL","Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vii:Infi","Ver:Cmps","Cmps")
corp=FusionEtiqu(corp,"Vrr:PPré","Ver:Cmps","Cmps")
return corp
def GenreNombre(corp):
# Genre et nombre
Proc("GENRE NOMBRE")
# Fusion
identi=["Prof","Topo"]
for rep in range(3):
for fus_penu in penul:
corp=FusionEtiqu(corp,"Nom:"+fus_penu,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Nom:"+fus_penu,"Nom:Capi","Capi")
for fus_iden in identi:
corp=FusionEtiqu(corp,"Nom:"+fus_iden+"+"+fus_penu,"Nom:Maju","Maju")
corp=FusionEtiqu(corp,"Nom:"+fus_iden+"+"+fus_penu,"Nom:Capi","Capi")
# Fusion
Proc("fusion /",",")
for amb_pen in penul:
amb_pen=string.lower(amb_pen)
amb="]nom:cmps+"+amb_pen
amb_r=amb
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui) # Difficulté avec "L'Aurore a pris parti" corrigée
# Nom propre
Proc("nom propre /",",")
amb="[nom:prop+"
amb_r="[nom:prop+"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# Accord (par élmination)
amb=["nom","adj"]
identi_min=["maju"]#prof","topo"]
#
# Masculin singulier
Proc("mas sing /",",")
amb_r_sui=["fém+sg","fém+pl","mas+pl","ing+pl","fém+in"]
sui=[["]mas+sg","((*être","?"],["?","((*être","]mas+sg"]]
for amb_r_s in amb_r_sui:
for inte in amb:
amb_r="-"+inte+":"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
for iden in identi_min:
amb_r="-"+inte+":"+iden+"+"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
# Féminin singulier
Proc("fém sing /",",")
amb_r_sui=["mas+sg","fém+pl","mas+pl","ing+pl","mas+in"]
sui=[["]fém+sg","((*être","?"],["?","((*être","]fém+sg"]]
for amb_r_s in amb_r_sui:
for inte in amb:
amb_r="-"+inte+":"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
for iden in identi_min:
amb_r="-"+inte+":"+iden+"+"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
# Masculin pluriel
Proc("mas plur /",",")
amb_r_sui=["mas+sg","fém+pl","fém+sg","ing+sg"]
sui=[["]mas+pl","((*être","?"],["?","((*être","]mas+pl"]]
for amb_r_s in amb_r_sui:
for inte in amb:
amb_r="-"+inte+":"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
for iden in identi_min:
amb_r="-"+inte+":"+iden+"+"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
# Féminin pluriel
Proc("fém plur /",",")
amb_r_sui=["mas+sg","mas+pl","fém+sg","ing+sg"]
sui=[["]fém+pl","((*être","?"],["?","((*être","]fém+pl"]]
for amb_r_s in amb_r_sui:
for inte in amb:
amb_r="-"+inte+":"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
for iden in identi_min:
amb_r="-"+inte+":"+iden+"+"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
# Invariable pluriel (des, les)
Proc("inv plur /",",")
amb_r_sui=["mas+sg","fém+sg","ing+sg"]
sui=[["]ing+pl","((*être","?"],["?","((*être","]ing+pl"]]
for amb_r_s in amb_r_sui:
for inte in amb:
amb_r="-"+inte+":"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
for iden in identi_min:
amb_r="-"+inte+":"+iden+"+"+amb_r_s
corp=Regle(corp,amb,amb_r,sui)
# Accord en passant par dessus un mot, une jeune princesse
amb="nom"
amb_r="-nom:mas+sg"
sui=[["]fém+sg","_","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="-nom:fém+sg"
sui=[["]mas+sg","_","?"]]
corp=Regle(corp,amb,amb_r,sui)
# encore une fois
amb="[nom:fém+pl"
amb_r="[nom:fém+in"
sui=[["]fém+sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:mas+pl"
amb_r="[nom:mas+in"
sui=[["]fém+sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Participe passé -
#
Proc("genre nombre ppas /",",")
#
amb="vpp"
amb_r="]sg"
sui=[["*avoir","?"]]
corp=Regle(corp,amb,amb_r,sui)
# - Accord du participe passé avec le verbe être -
# SG
amb_r="]sg"
sui=[["]sg",adv_l,etat,adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# PL
amb_r="]pl"
sui=[["]pl",adv_l,etat,adv_l,"?"]]
corp=Regle(corp,amb,amb_r,sui)
# En cas d'accord IN va chercher plus loin (le déterminant ?) : Un garçon est plus difficilement mis en mouvement qu'un petit.
# SG
amb_r="]sg"
sui=[["]sg","|((_|((_|((_|((_|((_","?"]]
corp=Regle(corp,amb,amb_r,sui)
# PL
amb_r="]pl"
sui=[["]pl","|((_|((_|((_|((_|((_","?"]]
corp=Regle(corp,amb,amb_r,sui)
#
# - Accord nom et adjectif ou participe passé
#
amb=["vpp","adj"]
list_acc=["","maju+"]
for acc in list_acc:
amb_r="]mas+sg"
sui=[["{nom:"+acc+"mas+sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]mas+pl"
sui=[["{nom:"+acc+"mas+pl","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]fém+pl"
sui=[["{nom:"+acc+"fém+pl","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]fém+sg"
sui=[["{nom:"+acc+"fém+sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]ing+sg"
sui=[["{nom:"+acc+"ing+sg","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]ing+pl"
sui=[["{nom:"+acc+"ing+pl","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]mas+in"
sui=[["{nom:"+acc+"mas+in","?"]]
corp=Regle(corp,amb,amb_r,sui)
amb_r="]fém+in"
sui=[["{nom:"+acc+"fém+in","?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def TempsComp(corp):
# Temps composés
Proc("TEMPS COMPOSÉ")
#
#
sui_amb_r_compo_m=["-ver:ipac","-ver:ipqp","-ver:ipan","-ver:spas","-ver:cpas","-ver:scpa","-ver:ifan"]
#sui_temp_simpl=["[ver:ipré","[ver:iimp","[ver:ipsi","[ver:spré","[ver:cpré","[ver:simp","[ver:ifut"]
#sui_temp_compo=["[ver:ipac","[ver:ipqp","[ver:ipan","[ver:spas","[ver:cpas","[ver:scpa","[ver:ifan"]
# - être - moins composé
Proc("Être /",",")
amb=etre
for amb_r in sui_amb_r_compo_m:
sui=[["?","vii"]] # Je m'en fus passer cette veillée d'arme.
corp=Regle(corp,amb,amb_r,sui)
#
# Auxiliaires
#
amb=[etre,"*avoir"]
# composé
Proc("Composés /",",")
for amb_r in sui_temp_compo:
sui=[["?",adv_l,ver_perf],["?","[pro","@-","[pro","?"]] # 2 : me sois moi-même
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pcd","@t","pcd","[pro:pers",ver_perf],["?","pcd","[pro:pers",ver_perf]]
corp=Regle(corp,amb,amb_r,sui)
Proc("Temps Composé, antécédent antériorité /",",")
for amb_r in sui_temp_compo:
corp=Regle(corp,amb,amb_r,sui)
sui_1=[["*au_moment_où","?"]]
sui_2=[["(@après(@avant","(@avoir(@que","?","[adv","[vpp","(@par(*de(@du(@à"]] # nous avons tous passé
for i in range(10):
sui_1[0][-1:-1]=["_"];sui=sui_1
corp=Regle(corp,amb,amb_r,sui)
sui_2[0][2:2]=["_"];sui=sui_2
corp=Regle(corp,amb,amb_r,sui)
Proc("Temps Composé, pronominal /",",")
for amb_r in sui_temp_compo:
sui=[["[pro:pers/comp","?","vpp","@à"]] # vous vous êtes résigné à comprendre
corp=Regle(corp,amb,amb_r,sui)
# simple, être au passif,
amb=etre
Proc("Temps Simple /",",")
for amb_r in sui_temp_simpl:
sui=amb_passif # Suite passive
corp=Regle(corp,amb,amb_r,sui)
sui=[["?",adv_l,ver_pass]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pcd","@t","pcd","[pro:pers",ver_pass],["?","pcd","[pro:pers",ver_pass]]
corp=Regle(corp,amb,amb_r,sui)
# composé
amb=[etre,"*avoir"]
Proc("Temps Composé /",",")
for amb_r in sui_temp_compo:
sui=[["?","[pro:indé","[vpp"]] # nous avons tous passé
corp=Regle(corp,amb,amb_r,sui)
sui=[["?",adv_l,"dét","adv","[vpp:ppas"],["?","dét","adv","[vpp:ppas"],["?",adv_l,"[vpp:ppas"]]
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","pcd","@t","pcd","[pro:pers",adv_l,"[vpp:ppas"],["?","pcd","[pro:pers",adv_l,"[vpp:ppas"]] # a-t-elle pu
corp=Regle(corp,amb,amb_r,sui)
sui=[["?","[pro","pcd","[pro","[vpp"]]
corp=Regle(corp,amb,amb_r,sui)
# Auxiliaire seul.
Proc("Auxiliaire sans participe passé /",",")
for amb_r in sui_temp_simpl:
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Cotexte, present, passé simple,
Proc("Cotexte des temps de conjugaison /",",")
sui_psi=[["{ver:ipsi","?"],["?","{ver:ipsi"]]
sui_pre=[["{ver:ipré","?"],["?","{ver:ipré"]]
sui_poi=[["?","pof"],["pof","?"]]
for i in range(18):
sui_poi[0][-1:-1]=["_"];sui_poi[1][-1:-1]=["_"]
sui_pre[0][-1:-1]=["_"];sui_pre[1][-1:-1]=["_"]
corp=Regle(corp,"[ver:ipsi","[ver:ipré",sui_pre)
corp=Regle(corp,"[ver:ipsi","-ver:ipré",sui_poi)
sui_psi[0][-1:-1]=["_"];sui_psi[1][-1:-1]=["_"]
corp=Regle(corp,"[ver:ipsi","[ver:ipsi",sui_psi)
corp=Regle(corp,"[ver:ipsi","-ver:ipsi",sui_poi)
# simple
for amb_r in sui_temp_simpl:
amb=amb_r
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# être
amb=etre
amb_r="[ver:ipré"
sui=[["?","*faire","{po"]]
corp=Regle(corp,amb,amb_r,sui)
# imparfait = passé simple,
amb="[ver:ipsi"
amb_r="[ver:ipsi"
sui=[["{ver:iimp","?"],["?","{ver:iimp"]]
for i in range(20):
for a in range(2):
sui[a][-1:-1]=["_"]
corp=Regle(corp,amb,amb_r,sui)
# supprime le subjonctif présent
amb="[ver:spré"
amb_r="-ver:spré"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Impératif passé, impératif
Proc("Infinitif, impératif, présent et passé",",")
ifps=["sg+p2","pl+p1","pl+p2"]
for ifp in ifps:
ifpm=string.upper(ifp)
amb="[ver:impé+"+ifp
amb_r="+Ver:ImPs+"+ifpm
sui=[["?",adv_l,"vpp"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:imps+"+ifp
amb_r="[ver:imps+"+ifp
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:impé+"+ifp
amb_r="+Ver:ImPr+"+ifpm
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:impr+"+ifp
amb_r="[ver:impr+"+ifp
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Infinitif passé, présent
amb="[vii:infi/cmps"
amb_r="+Ver:IfPs/Cmps"
sui=[["?",adv_l,"vpp"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:ifps/cmps"
amb_r="[ver:ifps/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[vii:infi/cmps"
amb_r="+Ver:IfPr/Cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:ifpr/cmps"
amb_r="[ver:ifpr/cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# non composé
amb="[vii:infi"
amb_r="+Ver:IfPs"
sui=[["?",adv_l,"vpp"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:ifps"
amb_r="[ver:ifps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[vii:infi"
amb_r="+Ver:IfPr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[ver:ifpr"
amb_r="[ver:ifpr"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
return corp
def Lissage(corp):
# Lissage
Proc("LISSAGE",",")
# Fusion
amb_sui=["]cmps+sg+p1","]cmps+sg+p2","]cmps+sg+p3","]cmps+pl+p1","]cmps+pl+p2","]cmps+pl+p3","]cmps"]
for amb in amb_sui:
amb_r=amb
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Selection Nom majuscule avec nom profession
for pen in penul:
pen=string.lower(pen)
amb="[nom:prof+"+pen
amb_r="-nom:"+pen
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
amb="[nom:prof/maju+"+pen
amb_r="-nom:maju+"+pen
sui=[["?"]]
#corp=Regle(corp,amb,amb_r,sui)
# Fusion Nom composé avec nom profession
identi=["Prof","Topo"]
for rep in range(3):
for fus_penu in penul:
for fus_iden in identi:
corp=FusionEtiqu(corp,"Nom:"+fus_iden+"+"+fus_penu,"Nom:Cmps+"+fus_penu,"Cmps")
fus_penu=string.lower(fus_penu)
fus_iden=string.lower(fus_iden)
# Supprime les identiques incomplets.
amb="[nom:"+fus_iden+"/cmps+"+fus_penu
amb_r="-nom:cmps+"+fus_penu
corp=Regle(corp,amb,amb_r,[["?"]])
amb_r="-nom:"+fus_penu
corp=Regle(corp,amb,amb_r,[["?"]])
for pen in penul:
corp=FusionEtiqu(corp,"Nom:"+pen,"Nom:Capi","Capi")
amb="[nom:capi"
amb_r="-nom:capi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[nom:prop/vill" # Paris
amb_r="-nom:maju"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Abréviation, lettre capitale.
amb="[nom:abré/capi"
amb_r="[nom:abré/capi"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[dét:arti" # choisi entre article et numéral
amb_r="[dét:arti"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[cpa"
amb_r="-cpa"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="[sui_nul"
amb_r="-sui_nul"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Supprime nom majuscule
corp=ChangEtiqu(corp,"Nom:Maju","Nom:Majs")
amb="[nom:maju"
amb_r="-nom:majs"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=ChangEtiqu(corp,"Nom:Majs","Nom:Maju")
amb="]nom:capi"
amb_r="[nom:capi+"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
amb="]cmps"
amb_r="]cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Supprime subjonctif
amb=sui_temp_simpl
amb_r="-ver:s"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
# Nettoyage
corp=ConcatEti(corp)
corp=Corp_espace(corp)
return corp
def CompilRegles_MotOutil(corp):
# Règles sur les mots-outils
corp=Seul(corp)
corp=Comment(corp)
corp=Beaucoup(corp)
corp=Quoi(corp)
corp=Haut(corp)
corp=Bien(corp)
corp=Pendant(corp)
corp=Maintenant(corp)
corp=Point(corp)
#corp=L_apos(corp)
corp=T_euph(corp)
corp=CarSpe(corp)
corp=Numeraux(corp)
corp=Numeraux(corp)
corp=Numeraux(corp)
corp=Rien(corp)
corp=Autre(corp)
corp=Mieux(corp)
corp=Aussi(corp)
corp=Quand(corp)
corp=Tout(corp)
corp=Leur(corp)
corp=Un(corp)
corp=DuDe(corp)
corp=CestEn(corp)
corp=ProPers(corp)
corp=Chacun(corp)
corp=Aucun(corp)
corp=DifDiv(corp)
corp=Meme(corp)
corp=Personne(corp)
corp=Cher(corp)
corp=Cela(corp)
corp=Quelque(corp)
corp=Cote(corp)
corp=Donc(corp)
corp=EstSuis(corp)
corp=Quel(corp)
corp=AvantArr_deb(corp)
corp=Surtout(corp)
corp=Ou(corp)
return corp
def CompilRegles(corp):
corp=CompilRegles_MotOutil(corp)
# Règles sur les ambiguités déterminants et pronoms
corp=CojNom(corp)
corp=DetProNom_genre(corp)
corp=DetPro(corp)
corp=Det(corp)
corp=Des(corp)
corp=AdvDetPro(corp)
corp=AdvNomPreVer(corp)
# Règles de préparation sur l'ambiguïté du verbe et du nom
corp=Nom_prepa(corp)
corp=Ver_Prepa(corp)
# Règles sur les participes, les adjectifs et les infinitifs
corp=AdvNom(corp)
corp=PPas(corp)
corp=PPre(corp)
corp=Infi(corp)
# Règles sur les ambiguïtés courantes
corp=AdjNomPro(corp)
corp=AdjAdvPro(corp)
corp=AdjPre(corp)
corp=DetPro(corp)
corp=AdvPre(corp)
corp=PreVer(corp)
# Règles sur les ambiguïtés complexes adjectif, nom et verbe
corp=Nom_megambig(corp)
# Règles sur l'ambiguïté du nom et du verbe
corp=Ver_Cate(corp)
corp=Nom_Cate(corp)
return corp
def CompilRegleFin(corp):
corp=Cela_fin(corp)
corp=PPre_fin(corp)
corp=PPas(corp)
corp=PPas_fin(corp)
corp=Infi_fin(corp)
corp=Fait_prepa(corp)
corp=Fait_fin(corp)
corp=Nom_final(corp)
corp=DuDe_final(corp)
corp=Tout(corp)
corp=Tout_fin(corp)
corp=DetPro_fin(corp)
corp=AdjAdv_fin(corp)
corp=Numeraux_fin(corp)
corp=Numeraux(corp)
corp=Pourquoi(corp)
corp=Des(corp)
corp=Quoi_fin(corp)
corp=Pres_fin(corp)
corp=Rien_fin(corp)
corp=Des_fin(corp)
corp=AvantArr_fin(corp)
corp=Autre_fin(corp)
corp=Que_interm(corp) # Que_interm
corp=Correlative(corp)
corp=Meme_fin(corp)
corp=Si_prepa(corp)
corp=Si_fin(corp)
corp=Ou_fin(corp)
corp=Aussi_fin(corp)
corp=Plus_fin(corp)
corp=Mieux_fin(corp)
corp=Moins_fin(corp)
corp=Tant_fin(corp)
corp=Bien_fin(corp)
corp=Leur_fin(corp)
corp=Comme(corp)
corp=Comme_fin(corp)
corp=Pendant_fin(corp)
corp=Tel_fin(corp)
corp=CojNom(corp)
corp=CojNom_fin(corp)
corp=CestEn_fin(corp)
corp=Nom_final(corp)
corp=Ainsi_fin(corp)
corp=DifDiv_fin(corp)
corp=AdvCoj_fin(corp)
# Règles sur les complétives, relatives et circonstancielles
corp=Que(corp)
corp=Que_Ante(corp)
corp=Que_Ante(corp)
corp=Que_Ante(corp)
corp=Que_fin(corp)
corp=Que_Ante(corp)
return corp
def CompilRegleFinII(corp):
corp=Beaucoup(corp)
corp=BeaucoupFin(corp)
corp=Tout_fin(corp)
corp=Si_fin(corp)
corp=Si_finII(corp)
corp=Donc_fin(corp)
corp=PPre_fin(corp)
corp=PPas_fin(corp)
corp=Que_fin(corp)
corp=Bien_fin_II(corp)
corp=Det_fin(corp)
return corp
def CompilRegleTemps(corp):
corp=Tout_fin(corp)
corp=Temps(corp)
corp=GenreNombre(corp)
corp=Pers_final(corp)
corp=TempsComp(corp)
return corp
def CompilLissage(corp):
corp=Lissage(corp)
return corp
def FusionGlobal_mot_comp(corp):
# Mots composés
Proc("FUSION DES MOTS COMPOSÉS")
MM=string.split(M)
for mot_c in MM:
if mot_c[0]=="*":
#print mot_c
corp=Fusion_mot_comp(corp,mot_c)
corp=Effac_forme(corp)
amb=["[adv","[pré"]
amb_r="]cmps"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
corp=FusionLocution(corp)
corp=Fusion_ver_comp(corp)
return corp
def Compil(corp):
Delete()
# Règles sur le nom propre, cas sémantiques et interjections
if processus==1:
print corp
corp=NomPropReaf(corp)
# Fusion des mots composés
corp=FusionGlobal_mot_comp(corp)
# Règles de préparation sur les mots-outils
corp=Aussi_prepa(corp)
corp=Bien_prepa(corp)
corp=LangInco(corp)
corp=CasSeman(corp)
corp=Dire(corp)
corp=NomProp_prepa(corp)
corp=Calcul(corp)
corp=AdjNomi(corp)
corp=Interj(corp)
corp=Ponctu(corp)
corp=Compose(corp)
corp=Romain(corp)
# Règles de préparation
corp=Neuf(corp)
corp=Mais(corp)
corp=Qui(corp)
corp=Pres(corp)
corp=Soit(corp)
corp=Encore(corp)
corp=Lequel(corp)
corp=OuiNon(corp)
corp=Comme(corp)
corp=DetPro_prepa(corp)
corp=Aussi_prepa(corp)
corp=Bien_prepa(corp)
corp=Moins_prepa(corp)
corp=Plus_prepa(corp)
corp=Si_prepa(corp)
corp=Que_prepa(corp)
corp=Correlative_prepa(corp)
corp=Ainsi(corp)
corp=AdvCoj_prepa(corp)
corp=Fait_prepa(corp)
corp=Interj_II(corp)
# Premier passage de l'ensemble des règles
corp=CompilRegles_MotOutil(corp)
# Suppression des noms
corp=DetPro_supp_nom(corp)
# Nom propre
corp=NomProp_inco(corp)
# Premier passage des règles mots pleins
corp=CompilRegles(corp)
# Deuxième passage de l'ensemble des règles
corp=CompilRegles(corp)
# Règles de conclusion de l'ensemble des règles
# Règles de mi-parcours
corp=CompilRegleFin(corp)
# Passage 3 de 4
Proc("3 de 4")
corp=CompilRegles(corp)
# Passage 4 de 4
Proc("4 de 5")
corp=PPas_fin_II(corp)
corp=Moins_fin(corp)
corp=Pre(corp)
corp=ProPers_fin(corp)
corp=AdjNomi_fin(corp)
corp=Nom_final_II(corp)
corp=Nom_final_III(corp)
corp=CompilRegleFinII(corp)
corp=FusionLocuConj(corp)
corp=CompilRegles(corp)
corp=Nom_final_IV(corp)
corp=NomProp_final(corp)
corp=Que_fin(corp)
corp=Adverbe(corp)
# Règles sur les temps, genre et nombre
corp=CompilRegleTemps(corp)
corp=CompilLissage(corp)
return corp
# VII. Moteur de sélection
def ListAmbi(etiqu):
# organise l'étiquette pour la concaténer en une combinaison
cat_tot=""
for et in etiqu:
if et[0]!="*" and et[0]!="|" and et[0]!="/" and et[0]!="(" and et[0]!="[" and et[0]!="]" and et[0]!="#":
cat=et[0:3]
cat=string.lower(cat)
cat_tot=cat_tot+" "+cat
cat_tot=string.split(cat_tot)
cat_tot=Concat_list(cat_tot)
cat_tot=string.strip(cat_tot)
return cat_tot
def TypeAmbi(amb,mot):
# Renvoie la valeur amb si amb est contenu dans la valeur mot, si est <*oui> ou <@oui> ou est dans l'étiquette [["oui"],["*oui","adv:opin"]]
form_fin=""
form_fin_c=""
eti=mot[1]
lg_sui=len(eti)
#print "lg",amb,mot
if amb[0]=="*":
for form in eti:
if form[0]=="*":
form_fin_c=form_fin_c+" "+form
form_fin_c=string.split(form_fin_c)
form_fin_c=Concat_list(form_fin_c)
form_fin_c=string.split(form_fin_c)
elif amb[0]=="@":
mot_a=mot[0]
form_fin=string.join(mot_a)
form_fin=string.lower(form_fin)
form_fin=MajAccent(form_fin)
form_fin="@"+form_fin
elif amb[0]=="[":
for form in eti:
if form[0]!="*" and form[0]!="/":
form_abr="["+form[0:len(amb)-1]
form_fin_c=form_fin_c+" "+form_abr
form_fin_c=string.split(form_fin_c)
form_fin_c=Concat_list(form_fin_c)
form_fin_c=string.split(form_fin_c)
elif amb[0]=="{":
test_acco=0
if lg_sui<4:test_acco=1
if 3 < lg_sui < 6:
acco_1=mot[1][1][0:8]
acco_2=mot[1][3][0:8]
if acco_1==acco_2:
test_acco=1
#print "acco",acco_1,acco_2
acco_3=mot[1][1][0:13]
acco_4=mot[1][3][0:13]
if acco_3==acco_4:
test_acco=1
#print "acco",acco_3,acco_4
if test_acco==1:
for form in eti:
if form[0]!="*" and form[0]!="/":
form_abr="{"+form[0:len(amb)-1]
form_fin_c=form_fin_c+" "+form_abr
form_fin_c=string.split(form_fin_c)
form_fin_c=Concat_list(form_fin_c)
form_fin_c=string.split(form_fin_c)
elif amb[0]=="]":
for form in eti:
if form[0]!="*" and form[0]!="/":
form_abr="]"+form[-len(amb)+1:]
form_fin_c=form_fin_c+" "+form_abr
form_fin_c=string.split(form_fin_c)
form_fin_c=Concat_list(form_fin_c)
form_fin_c=string.split(form_fin_c)
else:
form_fin=string.lower(form_fin)
form_fin=ListAmbi(eti)
if amb==form_fin:
return form_fin
if form_fin_c!="" and amb[0]=="{":
try:
if form_fin_c[0]==amb:
return form_fin_c[0]
form_fin_c=""
except:pass
if form_fin_c!="":
for form_f_c in form_fin_c:
if form_f_c==amb:
return form_f_c
def Amplifie(sui):
# Amplification par paranthèses.
for O in sui:
sui0=O
sui_art=[];sui1=[];styl=[];sui2=[]
for ampl in range(0,len(sui[0])):
if sui0[ampl][0]=="(":
styl=sui0[ampl]
styl=styl.replace(" ","$")
styl=styl.replace("("," ")
styl=string.split(styl)
sui_mod2=[]
sui_art[-1:-1]=styl
if sui0[ampl][0:2]=="((":
styl[0:0]=[""]
for s in styl:
sui_art[:]=sui0
del sui_art[ampl]
sui2=Lis_Copi(sui_art)
sui1[len(sui1):len(sui1)]=[sui2]
s=s.replace("$"," ")
sui2[ampl:ampl]=[s]
sui1=Sui_espace(sui1)
return sui1
def Test_ampl(sui):
# compte le nombre de boucle à effectuer en fonction nombre de mode (
b_ampl=0
s_ampl=sui
for test_ampl in sui:
if test_ampl[0]=="(":
b_ampl=b_ampl+1
#print "b_ampl",b_ampl
return b_ampl
def FusionListList(sui):
# Insertion des listes (d'une liste imbriquée en liste fusionée).
plii=-1
for plifi in sui:
plf=-1
plii=plii+1
plif_cop=[]
for plif in plifi:
plf=plf+1
if type(plif) == types.ListType:
plif_cop[:]=plif
del sui[plii][plf]
plf_moin=1
for pl_cop in plif_cop:
plf_moin=plf_moin-1
plf_m=plf-plf_moin
sui[plii][plf_m:plf_m]=[pl_cop]
return sui
def Ampl_Rr(r_num_2,rr,sui_rr):
# le ptit test de Amplification
r_2=rr[r_num_2]
r_2=[r_2]
rr_2=Amplifie(r_2)
return rr_2
def Amplification(sui):
# Amplification par les paranthèses ["("]
sui_rr=[]
for s in sui:
comp=0
test_ampl=Test_ampl(s)
if test_ampl==0:
s=[s]
sui_rr=sui_rr+s
if test_ampl==1:
s=[s]
res=Amplifie(s)
#print res
sui_rr=sui_rr+res
if test_ampl==2:
s=[s]
res=Amplifie(s)
#print res
for r_num in range(len(res)):
r=res[r_num];r=[r]
rr=Amplifie(r)
sui_rr=sui_rr+rr
if test_ampl==3:
s=[s]
res=Amplifie(s)
#print res
for r_num in range(len(res)/2):
r=res[r_num];r=[r]
rr=Amplifie(r)
for r_num_2 in range(len(rr)/2):
rr_2=Ampl_Rr(r_num_2,rr,sui_rr)
sui_rr=sui_rr+rr_2
if test_ampl==4:
s=[s];res=Amplifie(s)
for r_num in range(len(res)/2):
r=res[r_num];r=[r]
rr=Amplifie(r)
for r_num_2 in range(len(rr)/2):
rr_2=Ampl_Rr(r_num_2,rr,sui_rr)
for r_num_3 in range(len(rr_2)/2):
rr_3=Ampl_Rr(r_num_3,rr_2,sui_rr)
sui_rr=sui_rr+rr_3
if test_ampl==5:
s=[s];res=Amplifie(s)
for r_num in range(len(res)/2):
r=res[r_num];r=[r]
rr=Amplifie(r)
for r_num_2 in range(len(rr)/2):
rr_2=Ampl_Rr(r_num_2,rr,sui_rr)
for r_num_3 in range(len(rr_2)/2):
rr_3=Ampl_Rr(r_num_3,rr_2,sui_rr)
for r_num_4 in range(len(rr_3)/2):
try:rr_4=Ampl_Rr(r_num_4,rr_3,sui_rr)
except:sui_rr=sui_rr+rr_4
if test_ampl==6:
s=[s];res=Amplifie(s)
for r_num in range(len(res)/2):
r=res[r_num];r=[r]
rr=Amplifie(r)
for r_num_2 in range(len(rr)/2):
rr_2=Ampl_Rr(r_num_2,rr,sui_rr)
for r_num_3 in range(len(rr_2)/2):
rr_3=Ampl_Rr(r_num_3,rr_2,sui_rr)
for r_num_4 in range(len(rr_3)/2):
rr_4=Ampl_Rr(r_num_4,rr_3,sui_rr)
for r_num_5 in range(len(rr_4)/2):
try:rr_5=Ampl_Rr(r_num_5,rr_4,sui_rr)
except:sui_rr=sui_rr+rr_5
sui=sui_rr
return sui
def DecoupBarre(sui):
# Transformation de ["|@il|*donne"] en ["@il","*donne"]
cup=-1
for coup in sui:
cup_int=-1
cup=cup+1
for coup_int in coup:
cup_int=cup_int+1
if coup_int[0]=="|":
coupur=sui[cup][cup_int]
coupur=string.replace(coupur,'|',' ')
coupur=string.split(coupur)
del sui[cup][cup_int]
sui[cup][cup_int:cup_int]=coupur
return sui
def AjoutEtiquNul(corp,amb):
# Ajout une étiquette sui_nul à l'ambiguïté.
ambb=amb
amb="[sui_nul"
amb_r="-sui_nul"
sui=[["?"]]
corp=Regle(corp,amb,amb_r,sui)
m=-1
for mot in corp:
m=m+1
type_ajout=TypeAmbi(ambb,mot)
if type_ajout:
corp[m][1][0:0]=["sui_nul"]
corp[m][1][0:0]=["*sui_nul"]
return corp
def Fusion_mot_comp(corp,mot_compo="##nul##"):
m=-1
mot_mem=""
mmm=0
for mot in corp:
m=m+1
cmp=0
for e in range(1,len(corp[m][1]),2):
try:
cmp=corp[m][1][e].index("Cmps")
cmp=cmp+cmp
cmp=corp[m][1][e].index("Locu")
cmp=cmp+cmp
except:
pass
if cmp>0:
e_comp=TypeAmbi(mot_compo,corp[m])
if e_comp:
if m-1==mm:
mem=string.join(corp[m][0])
mot_mem=mot_mem+"_"+mem
mmm=mmm+1
if mmm==1:
coor_m=m
else:
corp[m][0]=[""]
corp[m][1]=[""]
corp[coor_m][0]=[mot_mem[1:]]
else:
mot_mem=""
mmm=0
mm=m
return corp
def Effac_forme(corp):
e_f=-1
test=1
while test==1:
e_f=e_f+1
# #print corp[e_f][0]
if corp[e_f][0]==[""]:
del corp[e_f]
e_f=e_f-1
if e_f==len(corp)-1:
test=0
return corp
def DeParenEnSui(par):
# pour les variables globales change une suite avec parenthèses en une liste (pour amb)
sui=string.replace(par[0],"(","|")
sui=[[sui]]
sui=DecoupBarre(sui)
sui=sui[0]
return sui
def Regle(corp,amb_lis,amb_r,sui,incn="/amb"):
# Parcours du corpus pour tester la règle. incn contient la marque du mot inconnu /inc
#
# Variables globale
global etre , amb_ver, amb_nom_ver, amb_nom, amb_adj, amb_passif, amb_adv, amb_nom_ver_tot, amb_adj_l, adj_nom
global etat, poi, adv_nega, adv_l, cmp_lim, parole, mois, hypot, intrs, nom_ver, nom, poc_l,poc_c, liai, conj_circ, verbe_trst_qual, nom_abs_concept, operateur, adv_c, ver_perf, ver_pass, sui_cmp_prn
global sui_temp_simpl, sui_temp_compo, ver_dial, langue, contree, chiffre_romain, incise, sui_adj_ante, adj_ante, sui_ver_perf, sui_ver_pass, sui_temp_trait, temp_sico, sui_modal, modal
global penul
# Listes pour l'ambiguïté
etre="*être"
amb_adv=["adj adv nom","adv nom","adj adv"]
amb_ver=["adj nom ver","adj ver","nom ver","adj pré ver","adj adv nom ver","adv nom ver","pro ver","adj adv nom pré","adv nom pré ver","adj adv ver"]
amb_nom_ver=["adj nom ver","adj ver","nom ver","adj pré ver","adj adv nom ver","adv nom ver","dét nom ver","dét ver"] # adj nom pré = plein
amb_nom=["adj dét nom","adj nom ver","adj nom","nom ver","adj adv nom ver","adv nom ver","adj adv nom pré","adv nom pré","nom pré","adv nom","adj adv nom","adj nom pro","adj nom pré"]
amb_nom_ver_tot=["adj nom ver","adj ver","nom ver","adj pré ver","adj adv nom ver","adv nom ver","adj adv nom pré","adv nom pré","nom pré","adv nom","adj adv nom","adj nom pro","dét nom ver","dét nom","dét ver","adj nom pré","adj dét nom","adj nom","adj adv ver"] # adj nom pré = plein
amb_adj=["adj nom ver","adj nom","adj pré","adj pré ver","adj ver","adj adv nom ver","adj adv nom pré","adj adv nom","adj nom pro","adj adv"]
adj_nom=["(adj nom(adj adv nom(adj adv nom pré(adj adv nom(adj nom pro(adj adv"]
amb_adj_l=DeParenEnSui(adj_nom)
## Listes pour l'amplification de l'amb et sui dans boucle
## Temps simples
sui_temp_simpl=["[ver:ipré","[ver:iimp","[ver:ipsi","[ver:spré","[ver:cpré","[ver:simp","[ver:ifut"]
## Temps composé
sui_temp_compo=["[ver:ipac","[ver:ipqp","[ver:ipan","[ver:spas","[ver:cpas","[ver:scpa","[ver:ifan"]
## Temps simple et composés par trait
sui_temp_trait=["ipac","ipqp","ipan","spas","cpas","scpa","ifan","ipré","iimp","ipsi","spré","cpré","simp","ifut"]
## Temps simple et composés
temp_sico=["([ver:ipac([ver:ipqp([ver:ipan([ver:spas([ver:cpas([ver:scpa([ver:ifan([ver:ipré([ver:iimp([ver:ipsi([ver:spré([ver:cpré([ver:simp([ver:ifut"]
## Modaux de complétive
# modaux
modal=["(*espérer(*répliquer(*parier(*avouer(*répondre(*craindre(*vouloir(*savoir(*imaginer(*raconter(*assurer(*ordonner(*penser(*signifier(*démontrer(*jurer(*comprendre(*souvenir(*trouver(*attendre(*prouver(*demander(*devoir(*entendre(*souhaiter(*convenir(*soutenir(*tenir(*prévoir(*informer(*supposer(*convaincre(*insinuer(*considérer(*inférer"]
## Suite modal complétive
sui_modal=DeParenEnSui(modal)
## Modaux de completive pronominaux
sui_cmp_prn=["*apercevoir"]
## Adjectif antépose, jeune homme.
adj_ante=["(*propre(*jeune(*nouveau(*ancien(*vieux(*jeune(*grand(*petit(*bon(*mauvais(*naïf(*redoutable(*vilain(*beau(*sale(*extrême(*gros(*meilleur(*vaste(*pauvre(*profond(*simple(*parfait(*malheureux(*sublime(*étrange(*long(*court(*saint(*tendre(*faible(*prudent(*pur(*pareil(*contemplatif(*parfait"]
## Adjectif antépose, jeune homme.
sui_adj_ante=DeParenEnSui(adj_ante)
## Listes verbe état, pour amplification de la sui
etat=["(*être(*sembler(*apparaître(*paraître(*devenir(*demeurer(*rester(|*être|*considérer|@comme(|*avoir|@l#|@air(|*passer|@pour"]
## Groupe de catégorie opérant une rupture faible, pour énumération
poc_l=["({po({coj:coor([pré({pro:rela({coj:cplt"]
## Groupe de catégorie opérant une rupture
poc_c=["({po({coj:coor(pré({pro:rela({coj:cplt"]
## Groupe de catégorie opérant une liaison
liai=["([coj:coor([adv:liai"]
## Adverbe supprimable
adv_l=["(([adv","(([adv"]
## Adverbe supprimable (c pour certain)
adv_c=["((adv","((adv"]
## Adverbe de négation
adv_nega=["(@pas(@jamais(@plus(@rien(@point(@guère"]
## Liste des combinaison nom et verbe + adj et mots-outils
nom_ver=["(adj nom ver(adj ver(adj nom(nom ver(adj pré ver(adj adv nom ver(adv nom ver(adj adv nom pré(adv nom pré(nom pré(adv nom(adj adv nom(adj nom pro(dét nom ver(dét nom(dét ver(nom(ver"]
## Liste des combinaisons nom et toutes les autres
nom=["(adj dét nom(adj nom ver(adj nom(nom ver(adj adv nom ver(adv nom ver(adj adv nom pré(adv nom pré(nom pré(adv nom(adj adv nom(adj nom pro(adj nom pré(adj(nom"]
## Complétive limitée
cmp_lim=["(*voir(*croire"]
## Incise, Marque de la parole : , dit Candide,
parole=["((pob","*dire","(([dét","nom","((pob"]
## Locution de l'hypothéthique,
hypot=["(|@la|@peine(|@pour|*que(|@bien|*que(|@au|@moment(|@au|@lieu(|*tel|*manière(|*tel|*façon(|@à|*supposer(|@à|@moins(|@à|@condition(|@le|]degr(@quoique(|@sans|@doute"]
## Verbes intransitifs
intrs=["*sombrer"]
## Verbes opérant un passage du temps simple au temps composé, employé avec etre
ver_perf=["(*tomber(*arriver(*naître(*venir(*passer(*partir(*rendre(*aller(*devenir(*entrer(*rester(*sortir(*monter"]
## Verbes temps composés en suite
sui_ver_perf=DeParenEnSui(ver_perf)
## Verbes passifs
ver_pass=["(*abîmer(*adulé(*abolir(*abonner(*activé(*arranger(*assaillir(*abouti(*abréger(*absorbé(*attaquer(*brûler(*charmer(*consumer(*désarmer(*écraser(*élever(*emmener(*étonner(*enchaîner(*fesser(*honorer(*introduire(*juger(*laisser(*louer(*mettre(*pendre(*porter(*précipiter(*prendre(*préparer(*punir(*recevoir(*réduire(*secourir(*tendre(*traiter(*employer"]
## Verbes passifs, en suite
sui_ver_pass=DeParenEnSui(ver_pass)
## Conjonctive circonstancielle, en association avec que
conj_circ=["(@tel(@admettant(@afin(@ainsi(@alors(@après(@autant(@avant(@cependant(@dès(@encore(@fois(@malgrè(@non(@où(@parce(@pendant(@pour(@pourvu(@quel(@qui(@quoi(@sans(@selon(@sitôt(@soit(@suivant(@tandis(@tant"] # ## OKI
## Verbe transitif pouvant attribuer une qualité (pour la règle du que abstrait)
verbe_trst_qual=["(*donner(*conférer(*exprimer(*attribuer"] ##OK
## Verbe de dialogue
ver_dial=["(*répliquer(*dire(*raconter(*assurer(*murmurer(*répondre(*faire_remarquer"] ##OK
## Nom abstrait relevant du concept #
nom_abs_concept=["(*crainte(*peur(*désir(*idée(*pensée(*avis(*façon(*manière"] ##
# Champ lexical du parler
langue=["(*langue(*parler(*dialecte"]
# Champ lexical du pays
contree=["({nom:prop/pays(*ambassadeur(*ambassade(*histoire(*pays(*contrée"]
# Liste des mois
mois=["(*janvier(*février(*mars(*avril(*mai(*juin(*juillet(*août(*septembre(*octobre(*novembre(*décembre"]
# Chiffres romains
chiffre_romain=["@i","@ii","@iii","@iv","@v","@vi","@vii","@viii","@ix","@x"]
## Opérateurs
operateur=["(*diviser(*additionner(*multiplier(*soustaire(@+(@/(@-(@*"]
## Combinaisons pour le passif
amb_passif=[["?",adv_l,"[vpp","(@par"],["?","[vpp:ppas","{adv:néga"]] # ne sont faits que
## incise , de son léger murmure,
# # # incise=["|pob|([pré({coj:c|([dét([pré|(([adv|(([adv|((adj|[nom|pob"] Prbl rapidité
incise=["|pob|[pré|[dét|((adj|[nom|pob"]
## fin de détail, genre et nombre
penul=["Mas+PL","Mas+SG","Mas+IN","Fém+SG","Fém+PL","Fém+IN","Ing+SG","Ing+PL","Ing+IN"]
## fin de détail minuscule
##penul_min=["mas+pl","mas+sg","mas+in","fém+sg","fém+pl","fém+in","ing+sg","ing+pl","ing+in"]
#
# Insertion des listes précédentes, de liste en liste,
sui=FusionListList(sui)
## Amplification par les paranthèses ["("],
sui=Amplification(sui)
## Découpage par les barres ["|"],
sui=DecoupBarre(sui)
## Amplification par les paranthèses ["("] à nouveau,
sui=Amplification(sui)
#
#
## Test sur le corpus
#
if type(amb_lis) == types.StringType: # Liste d'ambiguïtés
amb_lis=[amb_lis]
for amb in amb_lis:
mot=29
#print "",#Suite
while mot!=len(corp)-31: # Parcours le corpus
mot=mot+1 ; mot_corp=corp[mot]
#print amb[0]
if len(mot_corp[1])<3 and amb_r[0]!="+":pass
else:
type_a=TypeAmbi(amb,mot_corp)
sequ_pez="" ; i_pez=0 ; sui_int=[""]
#try:
# for amb_ct in range(
# if corp[
if type_a:
#print type_a
for int in range(len(sui)):
gReg=-1;sReg=-1
for pez in range(len(sui[int])):
gReg=gReg+1
if sui[int][pez]=="?":
sReg=gReg
sui_int[:]=sui[int]
sui_int[sReg]=amb
tot=0
gau=mot-sReg
dro=mot+(len(sui_int)-sReg)
sequ=corp[gau:dro]
for pReg in range(0,len(sui_int)):
p_sui_int=sui_int[pReg]
p_sequ=sequ[pReg]
if p_sui_int=="_":
tot=tot+1
coin=TypeAmbi(p_sui_int,p_sequ)
if coin:
tot=tot+1
if tot==len(sui_int):
sequ_pez=sequ[sReg][0]
join_mot_corp=mot_corp[0][:]
if join_mot_corp==sequ_pez:
tot=100
corp=Reaf(corp,mot,amb_r,mot_corp,incn,sui_int,sequ,amb)
return corp
def Reaf(corp,mot,amb_r,mot_corp,incn,sui_int,sequ,amb):
# Réaffectation.
grp_amb=""
corp_mot1_sv=[""]
for mt_crp in range(0,len(corp[mot][1])):
corp_mot1_sv[:]=corp[mot][1]
test_moin=0
if amb_r[0]=="[":
mt_crp_min=mot_corp[1][mt_crp][0:len(amb_r)-1]
amb_rr=amb_r[1:]
lg_amb_rr=len(amb_rr)
debu=0
elif amb_r[0]=="{":
l_acco=len(corp[mot][1])
if l_acco==2:
mt_crp_min=mot_corp[1][mt_crp][0:len(amb_r)-1]
amb_rr=amb_r[1:]
lg_amb_rr=len(amb_rr)
debu=0
elif amb_r[0]=="]":
amb_rr=amb_r[1:]
mt_crp_min=mot_corp[1][mt_crp][-len(amb_rr):]
lg_amb_rr=-1000
debu=-len(amb_rr)
elif amb_r[0]=="-":
mt_crp_min=mot_corp[1][mt_crp][0:len(amb_r)-1]
amb_rr=amb_r[1:]
lg_amb_rr=len(amb_rr)
debu=0
test_moin=1
#if amb_r=="-sui_nul":
# print "test sui ok"
else:
mt_crp_min=mot_corp[1][mt_crp][0:3]
amb_rr=amb_r
lg_amb_rr=len(amb_rr)
debu=0
mt_crp_min=string.lower(mt_crp_min)
if mt_crp_min==amb_rr:
#suite
if processus==1:
print;print "\nRÈGLE :",sui_int,"\nFORME :",mot_corp,"\nAMBIGUÏTÉ :",amb,"\nPOSITION :",mot,"\nSEQUENCE :",sequ,"\nRÉSOLUTION :",amb_r,"\n"
for lg_amb in range (len(corp[mot][1])): # lg_amb = position successive de amb_r dans l'étiquette
gp_amb=string.lower(corp[mot][1][lg_amb][debu:lg_amb_rr])
if lg_amb_rr==-1000:
gp_amb=string.lower(corp[mot][1][lg_amb][debu:])
if gp_amb==amb_rr:
prec=corp[mot][1][lg_amb-1][0:]
grp_amb=grp_amb+prec+" "+corp[mot][1][lg_amb]+" "
lg_amb_mem=lg_amb # Garde en mémoire la position de amb_r pour VerInst
if test_moin==1: # Suppression
corp[mot][1][lg_amb-0]="#vide#";corp[mot][1][lg_amb-1]="#vide#"
grp_amb=corp[mot][1]
grp_amb=string.join(grp_amb)
corp=Corp_espace(corp)
grp_amb=string.split(grp_amb)
#if corp[mot][2][0]=="/inc":
# incn="/inc"
if incn=="/inc":
corp[mot][2][0]="/inc"
if len(corp[mot][1])!=len(grp_amb) and len(corp[mot][1])!=0:
if corp[mot][1][len(corp[mot][1])-1]!=incn and corp[mot][1][len(corp[mot][1])-2]!=incn:
# print "len",corp[mot][1][len(corp[mot][1])-1]
corp[mot][2][0]=incn
# # print corp[mot][1][2:2]
corp[mot][1]=grp_amb
tst_s=1
# Lemme verbal multiple
corp=VerInst(corp,mot,corp_mot1_sv,amb_r,lg_amb_mem)
# Catégories vides
try:
if test_moin==1 and corp[mot][1][2]==incn: # Evite les catégories vides (à cause du -adv:néga)
corp[mot][1]=corp_mot1_sv
if test_moin==1 and corp[mot][1][4]==incn and corp[mot][1]==[] and corp[mot][1]==[]: # Evite les catégories vides (à cause du -adv:néga)
corp[mot][1]=corp_mot1_sv
except:pass
try:
if test_moin==1 and len(corp[mot][1])==2: # Catégories vides, suite.
corp[mot][1]=corp_mot1_sv
corp=Corp_espace(corp)
if test_moin==1 and corp[mot][1][0]==incn: # Catégories vides, suite.
corp[mot][1]=corp_mot1_sv
if test_moin==1 and corp[mot][1][len(corp[mot][1])-1]!=incn and len(corp[mot][1])!=len(grp_amb): # Test pour le rajout de l'/amb
corp[mot][1][len(corp[mot][1]):]=[incn]
except:pass
try:
if test_moin==1 and corp[mot][1]==[]: # Catégories vides, suite.
corp[mot][1]=corp_mot1_sv
#print "sv",corp_mot1_sv
except:pass
break
if amb_r[0]=="+":#Rajoute une étiquette type amb_r="+*bien Adv:Inte" ou bien pour else "Adv:Inte"
#suite
if processus==1:
print; print "\nSUITE :",sui_int,"\nFORME :",mot_corp,"\nAMBIGUÏTES :",amb,"\nPOSITION :",mot,"\nCHOIX :",amb_r,"\n","SEQUENCE :",sequ,"\n"
if amb_r[1]=="*":
eti_nouv=amb_r[1:]
eti_nouv=string.split(eti_nouv)
#print eti_nouv
#print eti_nouv[0]
#print eti_nouv[1]
else:
eti_nouv=corp[mot][1][0]+" "+amb_r[1:]
eti_nouv=string.split(eti_nouv)
corp[mot][1][0:0]=[eti_nouv[1]]
corp[mot][1][0:0]=[eti_nouv[0]]
if incn=="/inc":
lg_inc=len(corp[mot][1])
corp[mot][1][lg_inc:lg_inc]=["/inc"]
#print "incooo",corp
#Il montait la rue Morgue de Marie Roget.
return corp
def VerInst(corp,mot,corp_mot1_sv,amb_r,lg_amb_mem):
try: # suis, étaient, dit, mirent, pris, rassit
if corp[mot][3][0]=="LemmVerbMult":
#print "lemmevermult",corp[mot][3][0]
ver_lis=ListAmbi(corp[mot][1])
if ver_lis=="ver":
if amb_r[1:]!="ver:impé" and amb_r[1:]!="ver:s" and corp[mot][0]!=["étaient"] and corp[mot][0]!=["suis"] and amb_r!="ver" and amb_r[1:6]!="cmps+" and amb_r[-2:]!="p1" and amb_r[-2:]!="p3":
corp[mot][1]=corp_mot1_sv
except:pass
return corp
# VIII. Editeur de texte
def AffEtiBrut(corp):
# Affichage des résultats de l'étiquetage
corp=Polish(corp)
b=Notule()
b.Fen_resul_tag(" RÉSULTAT DE L'ÉTIQUETAGE DÉTAILLÉ\n\n","cat")
b_a=Notule()
b_a.Fen_resul_tag(" RÉSULTAT DE L'ÉTIQUETAGE ABRÉGÉ\n\n","cat")
f_brut_a=open("result_brut_a.txt","w")
f_brut=open("result_brut.txt","w")
for m in range(30,len(corp)-31):
mot_brut=string.join(corp[m][0])
mot_brut=string.replace(mot_brut,"#","'")
mot_brut=string.replace(mot_brut,"","\n")
b.Fen_resul_tag(mot_brut+" ","mot")
f_brut.write(mot_brut+" < ")
for g in range(len(corp[m][1])):
cat_brut=corp[m][1][g]
cat_brut=string.replace(cat_brut,"*saut_de_ligne","\n")
b.Fen_resul_tag(cat_brut+" ","cat")
f_brut.write(cat_brut+" ")
f_brut.write(" > ")
mot_brut=string.join(corp[m][0])
mot_brut=string.replace(mot_brut,"#","'")
b_a.Fen_resul_tag(mot_brut+" ","\n")
cat_brut=ListAmbi(corp[m][1])
b_a.Fen_resul_tag(cat_brut+" ","cat")
f_brut_a.write(mot_brut+" < "+cat_brut+" > ")
ctrl0.destroy()
def Affich(corp,marq_gau='<',marq_dro='>'):
# Affichage des résultats dans la console des résultats, non-activé.
aAff=-1
corpus=''
for mot in corp:
aAff=aAff+1
mot_lex=string.join(corp[aAff][0])
mot_eti=string.join(corp[aAff][1])
if mot_eti=='':
print mot_lex,
corpus=corpus+"%s "%mot_lex+"%s "%mot_eti+" "
else:
print mot_lex,marq_gau,mot_eti,marq_dro,
corpus=corpus+"%s "%mot_lex+marq_gau+" "+"%s "%mot_eti+marq_dro+" "
return corpus
def Sauve(corp,fiche=""):
corp=Polish(corp)
fich_doc = open('Notule\\te_catego '+fichcorpus+'.txt','a')
fich_xml = open('Notule\\te_catego '+fichcorpus+'.xml','a')
del corp[0:30];del corp[-30:]
if processus==1: # Indique que le programme tourne avec l'éditeur
b=Notule()
b.Fen_resul_tag(" RÉSULTAT DE LA CATÉGORISATION DÉTAILLÉE\n\n","cat")
b.Fen_resul_tag(fiche,"mot")
fich_doc.write(fiche)
fich_xml.write(fiche)
if processus==1:
b_a=Notule()
b_a.Fen_resul_tag(" RÉSULTAT DE LA CATÉGORISATION ABRÉGÉE\n\n","cat")
for iSau in range(len(corp)):
mot=corp[iSau][0][0]
marqu=corp[iSau][2][0]
# Mise en forme
cat_lem=string.join(corp[iSau][1])
cat_lem=string.replace(cat_lem,"*saut_de_ligne Pof:Ponc/Fort","|_ Pof:Ponc/Fort")
cat_lem=cat_lem.replace("Adv:Itrj/EVer","Adv:Itrj")
cat_lem=cat_lem.replace("Adv:Inte/IVer","Adv:Inte")
cat_lem=cat_lem.replace("Adv:Néga/NVer","Adv:Néga")
cat_lem=cat_lem.replace('#vide#',"")
cat_lem=cat_lem.replace("#","'")
cat_lem=cat_lem.replace("/Subr","")
cat_lem=cat_lem.replace("P2Prop","P2")
cat_lem=cat_lem.replace("Nom:Dét:","Dét:Maju/")
cat_lem=cat_lem.replace("P3Prop","P3")
cat_lem=cat_lem.replace("P/Prop","Prop")
cat_lem=cat_lem.replace("Prop/Prop","Prop")
cat_lem=cat_lem.replace("Aver/Locu/Aver","Aver/Locu")
cat_lem=cat_lem.replace("Verb/Locu/Verb","Verb/Locu")
cat_lem=cat_lem.replace("Cplt/Verb","Cplt")
cat_lem=cat_lem.replace("Locu/Cmps","Locu")
cat_lem=cat_lem.replace("Pro:Inte/Verb","Pro:Inte")
for a in range(15):
cat_lem=cat_lem.replace("/amb /amb","/amb")
cat_lem=cat_lem.replace("Vii:","Ver:")
cat_lem=cat_lem.replace("Vpp:","Ver:")
cat_lem=cat_lem.replace("Vrr:","Ver:")
cat_lem=cat_lem.replace("Impé+SG+P3","Impé+SG+P2")
cat_lem=cat_lem.replace("Ver:PPré/PPré","Ver:PPré")
mot=mot.replace("#","'")
mot=mot.replace("","[saut_ligne]")
marqu=marqu.replace("marqueur","/nul")
# Enregistrement dans fichier txt pour Word,
form_word=mot+" <"+cat_lem+" "+marqu+"> "
form_word=form_word.replace("[saut_ligne]","\n")
form_word=form_word.replace("<|_ Pof:Ponc/Fort /nul>","")
fich_doc.write(form_word)
# Enregistrement dans fichier XML,
form_xml="\n"+mot+"\n"
form_cat_xml=xmlformat(cat_lem)
form_marq_xml=""+marqu+"\n"
form_cat_xml+=form_marq_xml
form_cat_xml+="\n"
form_xml=form_xml+form_cat_xml
fich_xml.write(form_xml)
# Fenêtre,
if processus==1:
b.Fen_resul_tag(mot+" ","mot")
b.Fen_resul_tag(cat_lem+" ","cat")
b.Fen_resul_tag(marqu+" ","cat")
b_a.Fen_resul_tag(mot+" ","mot")
cat_lem_a=ListAmbi(corp[iSau][1])
cat_lem_a=cat_lem_a.replace("#","'")
cat_lem_a=cat_lem_a.replace("pof pof","pof")
b_a.Fen_resul_tag(cat_lem_a+" ","cat")
def xmlformat(cat):
cat=string.split(cat)
a=len(cat)
fin=0
try:
if a>2:
fin=1
except:pass
form_cat_xml=""
for i in range(0,a-fin,2):
ii=i/2+1
ii=str(ii)
form_cat_xml+=""+cat[i]+"\n"
cate_cat=cat[i+1]
form_cat_xml+=""+cate_cat+"\n"
form_cat_xml=form_cat_xml.replace("*","")
#if a<4:
# form_cat_xml+="\n"
# form_cat_xml+="\n"
#if a<6:
# form_cat_xml+="\n"
# form_cat_xml+="\n"
#if a<8:
# form_cat_xml+="\n"
# form_cat_xml+="\n"
#if a<10:
# form_cat_xml+="\n"
# form_cat_xml+="\n"
return form_cat_xml
def NomPropReaf(corp):
try:
for ch in range(0,len(corp)-1):
prop=corp[ch][1][1]
mot_ch=corp[ch][0]
mot_ch=string.join(mot_ch)
mot_ch_u=string.upper(mot_ch)
if prop=="Nom:Prop":
for m_ch in range(0,len(corp)-1):
mot_m_ch=corp[m_ch][0]
mot_m_ch=string.join(mot_m_ch)
if mot_m_ch==mot_ch or mot_ch_u==mot_m_ch:
if corp[m_ch][1][1]!="Nom:Prop" :
chob=string.split(corp[m_ch][1][0])
corp[m_ch][1][0:0]=chob+["Nom:Prop"]
except IndexError:pass
return corp
#def EtiquComb(corp):
# corp=Compil(corp)
# ctrl.destroy()
# Sauve(corp)
def Tagger(text="texte vide",eticat=""):
global ctrl0,fichcorpus
#commentaire à supprimer pour la fenetre déroulement de la catégorisation
#ctrl0=Tk()
#ctrl0.title("Déroulement de la catégorisation")
#quit = Button(ctrl0, text="Annuler", command=ctrl0.destroy)
#quit.grid(row=9, column=1, sticky=W)
#Label(ctrl0, text="1/3 Lecture des dictionnaires").grid(row=0, column=0, sticky=W)
#result_fich=Fiche(text)
#text=result_fich[0]
#fich=result_fich[1]
text=Format(text)
#corp=Segment(corp)
long_segm=len(text)
g_s=0
fich_doc = open('Notule\\te_catego '+fichcorpus+'.txt','a')
fich_xml = open('Notule\\te_catego '+fichcorpus+'.xml','a')
for lg_s in range(0,long_segm):
if text[lg_s]=="":
if text[lg_s-1]=="":
fich_doc.write("\n")
else:
corp=text[g_s:lg_s]
time1=strftime("%H:%M:%S", gmtime())
tt_s=lg_s-g_s
print "Taille du corpus : ",g_s,"/",lg_s,"/ ",tt_s," /",long_segm
print "Heure de début de catégorisation : ",time1,"\n"
g_s=lg_s
corp=EtiquBase(corp,eticat)
corp=Compil(corp)
# ctrl.destroy()
Sauve(corp)
fich_xml.write("")
fich_xml.close()
fich_doc.close()
def Etiquet(text="texte vide",eticat=""):
global ctrl0
ctrl0=Tk()
ctrl0.title("Déroulement de l'étiquetage")
quit = Button(ctrl0, text="Annuler", command=ctrl0.destroy)
quit.grid(row=9, column=1, sticky=W)
Label(ctrl0, text="1/3 Lecture des dictionnaires").grid(row=0, column=0, sticky=W)
#result_fich=Fiche(text)
#text=result_fich[0]
#fich=result_fich[1]
corp=Format(text)
Label(ctrl0, text="2/3 Étiquetage de la categorie grammaticale et du lemme").grid(row=1, column=0, sticky=W);print
corp=EtiquBase(corp,eticat)
#EtiquComb(corp)
def Polish(corp):
try:
for pol in range(len(corp)):
corp[pol][0][0]=corp[pol][0][0].replace("<->","-")
#for ish in range(len(corp[pol][1])):
# corp[pol][1][ish]=corp[pol][1][ish].replace("*un_","*un")
except:
pass
return corp
def Ouvrir():
root = Tk()
root.withdraw()
fd = LoadFileDialog(root)
loadfile = fd.go(key="test")
print loadfile
l=open(loadfile,"r")
text=l.read()
return text
def Enregis(text):
root = Tk()
root.withdraw()
fd = SaveFileDialog(root)
savefile = fd.go(key="test")
s=open(savefile,"w")
s.write(text)
def Delete():
for fich in list_gram:
var1=fich[0]+"a."+"close()"
var2=fich[0]+"=''"
exec(var1)
exec(var2)
#aa.write("test_fermeture")
class Notule(Frame):
def __init__(self, parent=None):
#Frame.__init__(self, parent)
ca = Tk()
ca.title("NOTULE 1.1")
c = Frame(ca, borderwidth=14)
c.pack(expand=YES, fill=BOTH)
font = ('Times new roman', 12)
self.scrollba = Scrollbar(c)
self.scrollba.grid(row=1, column=2, sticky="nse")
self.result = Text(c, height=20, width=100, font=font)
self.textEntry = Text(c, height=23, width=88, font=font,yscrollcommand=self.scrollba.set)#,
self.scrollba.config(command=self.textEntry.yview)
self.textEntry.grid(row=1, column=1, sticky=NSEW)
#self.reEntry = Entry(c, width=23, font=font)
#self.reEntry.grid(row=2, column=1, sticky=EW)
c.grid_rowconfigure(0, weight=1)
c.grid_rowconfigure(1, weight=1)
c.grid_columnconfigure(1, weight=1)
# menu Déroulant
fm = Frame(c)
fm.grid(row=0, column=1, sticky=W)
menu0 = Menubutton(fm,text="Fichier")
menu0.grid(row=0, column=2, sticky=W)
menu01=Menu(menu0)
menu01.add_command(label="Nouveau",command=self.Nouv)
menu01.add_command(label="Ouvrir",command=self.Ouvr)
menu01.add_command(label="Enregistrer",command=self.Enre)
menu01.add_command(label="Quitter",command=ca.destroy)
menu0.configure(menu = menu01)
menu02 = Menubutton(fm,text="Edition")
menu02.grid(row=0, column=3, sticky=W)
menu022=Menu(menu02)
menu022.add_command(label="Tout effacer",command=self.Effa)
menu02.configure(menu = menu022)
menu1 = Menubutton(fm,text="Outil")
menu1.grid(row=0, column=4, sticky=W)
menu11=Menu(menu1)
menu11.add_command(label="Concaténation",command=self.concat,foreground='black')
#menu11.add_command(label="Concordancier",command=self.concor,foreground='dark green')
menu11.add_command(label="Découpage",command=self.decoup_format,foreground='black')
menu11.add_command(label="Étiquetage",command=self.eti,foreground='black')
menu11.add_command(label="Catégorisation",command=self.tag,foreground='black')
menu1.configure(menu = menu11)
menu2 = Menubutton(fm,text="Information")
menu2.grid(row=0, column=5, sticky=W)
menu21=Menu(menu2)
menu21.add_command(label="Aide en ligne", command=self.lanceAideExt)
menu21.add_command(label="Aide hors ligne", command=self.lanceAideInt)
menu21.add_command(label="Licence", command=self.flagsHelp)
#menu21.add_command(label="Aide", command=self.syntaxHelp)
#menu21.add_command(label="Licence", command=self.flagsHelp)
menu2.configure(menu = menu21)
self.textEntry.tag_configure('bold', foreground='blue',font=('Courier bold', 14))
fe = Frame(c)
fe.grid(row=2, column=1, sticky=W)
Button(fe, text="Fermer", command=ca.destroy).grid(row=1, column=1,sticky=W)
# option frame
#fo = Frame(c)
#fo.grid(row=4, column=1, sticky=W)
#self.opts = {}
#e=2
#o_reg=['Casse','Local','Multiline','Dotall','Verbose']
#for o in ('IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE'):
# e=e+1
# var = IntVar()
# Checkbutton(fo, text=o_reg[e-3], variable=var).grid(row=1, column=e)
# self.opts[o] = (var, eval('re.'+o))
#self.findall = IntVar()
#Checkbutton(fo, text='Tous ', variable=self.findall).grid(row=1, column=8)
#Button(fo, text="Evaluer", command=self.evaluate).grid(row=1, column=9, sticky=W)
#fe = Frame(c)
#fe.grid(row=4, column=1, sticky=E)
#self.efEntry = Entry(c, width=23, font=font)
#self.efEntry.grid(row=2, column=1, sticky=E)
#Button(fe, text="ttribuer", command=self.attribuer).grid(row=1, column=9,sticky=E)
#Button(fe, text="Effacer", command=self.efface).grid(row=1, column=10,sticky=E)
self.syntaxHelpWin = None
self.flagsHelpWin = None
def attribuer(self):
pass
def efface(self):
pass
def Enre(self):
text_en = self.textEntry.get('0.0', END)
print text_en
Enregis(text_en)
def Fen_resul_tag(self,tag,police):
self.textEntry.tag_configure('mot', foreground='black',
font=('times new roman', 12))
self.textEntry.tag_configure('cat', foreground='#00a600',
font=('courrier', 10))
self.textEntry.insert(END,tag,police)
def Nouv(self):
self.textEntry.delete('0.0',END)
text=Ouvrir()
self.textEntry.insert(END, text)
def Effa(self):
self.textEntry.delete('0.0',END)
def Ouvr(self):
text=Ouvrir()
self.textEntry.insert(END, text)
def concor(self):
text = self.textEntry.get('0.0', END)
Concord_aff(text)
def eti(self):
text = self.textEntry.get('0.0', END)
Etiquet(text,"etique")
def tag(self):
text = self.textEntry.get('0.0', END)
#print text
Tagger(text,"catego")
def concat(self):
text = self.textEntry.get('0.0', END)
text=Concat_chai(text)
b=Notule()
b.Fen_resul_tag(" RÉSULTAT DE LA CONCATÉNATION\n\n","cat")
b.Fen_resul_tag(text,"mot")
def decoup_format(self):
text = self.textEntry.get('0.0', END)
text=Format(text)
text=string.join(text)
text=text.replace("#","'")
text=text.replace("","\n")
b=Notule()
b.Fen_resul_tag(" RÉSULTAT DU DÉCOUPAGE\n\n","cat")
b.Fen_resul_tag(text,"mot")
def getFlags(self):
flags = 0
for o in self.opts.values():
if o[0].get(): flags = flags | o[1]
return flags
def evaluate(self):
text = self.textEntry.get('0.0', END)
self.textEntry.delete('0.0',END)
if len(text) and text[-1] == '\n': text = text[:len(text)-1]
expr = self.reEntry.get()
try:
r = re.compile(expr, self.getFlags())
m = r.search(text)
except re.error, e:
#self.result.insert(END, 'Error: ' + e[0])
print "error"
self.textEntry.insert(END, text)
return
if not m:
print "no match"
#self.result.insert(END, '(No match)')
self.textEntry.insert(END, text)
return
start = self.reportResult(m, text, 0)
if self.findall.get():
while start < len(text):
m = r.search(text, start)
if not m: break
start = self.reportResult(m, text, start)
self.textEntry.insert(END, text[start:])
def reportResult(self, m, text, start):
boundchars = "[]"
bounds = []
for i in range(0, len(m.groups())+1):
bounds.append((m.start(i), 0))
bounds.append((m.end(i), 1))
bounds.sort(lambda s1, s2: s1[0] - s2[0])
index = start
for b in bounds:
bindex = b[0]
self.textEntry.insert(END, text[index:bindex])
self.textEntry.insert(END, boundchars[b[1]], 'bold')
index = bindex
if m.start() == m.end():
if index < len(text):
self.textEntry.insert(END, text[index])
index = index + 1
return index
def syntaxHelp(self):
if not self.syntaxHelpWin:
self.syntaxHelpWin = HelpWindow(self, text=SyntaxHelpText)
self.syntaxHelpWin.title('Regular Expression Syntax')
self.syntaxHelpWin.deiconify()
self.syntaxHelpWin.tkraise()
def lanceAideExt(self):
webbrowser.open('http://cadrat.saynete.net/notule_fonct.php')
def lanceAideInt(self):
adreInt = "file:///"+os.getcwd()+'/notule/Notule - Cadrat_Saynete_Net.htm'
webbrowser.open(adreInt)
def flagsHelp(self):
LicenceTexte = open('notule/gnu general public licence.txt','r')
LicenceTexte = LicenceTexte.read()
if not self.flagsHelpWin:
self.flagsHelpWin = HelpWindow(self, text=LicenceTexte)
self.flagsHelpWin.title('Licence')
self.flagsHelpWin.deiconify()
self.flagsHelpWin.tkraise()
def copy(self, event=None):
self.clipboard_clear()
text = self.get("sel.first", "sel.last")
self.clipboard_append(text)
def cut(self, event):
self.copy()
self.delete("sel.first", "sel.last")
def paste(self, event):
text = self.selection_get(selection='CLIPBOARD')
self.insert('insert', text)
class HelpWindow(Toplevel):
def __init__(self, parent=None, text='you need help'):
#Toplevel.__init__(self, parent)
ca = Tk()
ca.title("Licence GPL de Notule")
c = Frame(ca, borderwidth=14)
c.pack(expand=YES, fill=BOTH)
t = Text(c)
t.insert(END, text)
t.pack(side=LEFT, expand=YES, fill=BOTH)
s = Scrollbar(c,command=t.yview)
s.pack(expand=YES, fill=Y)
t['yscrollcommand']=s.set
# self.protocol('WM_DELETE_WINDOW', self.withdraw)
HelloText = \
'''
'''
SyntaxHelpText = \
r"""Syntax
"""
FlagsHelpText = \
r"""Flags:
"""
class FileDialog:
title = "Sélection d'un fichier"
def __init__(self, master, title=None):
if title is None: title = self.title
self.master = master
self.directory = None
self.top = Toplevel(master)
self.top.title(title)
self.top.iconname(title)
self.botframe = Frame(self.top)
self.botframe.pack(side=BOTTOM, fill=X)
self.selection = Entry(self.top)
self.selection.pack(side=BOTTOM, fill=X)
self.selection.bind('', self.ok_event)
self.filter = Entry(self.top)
self.filter.pack(side=TOP, fill=X)
self.filter.bind('', self.filter_command)
self.midframe = Frame(self.top)
self.midframe.pack(expand=YES, fill=BOTH)
self.filesbar = Scrollbar(self.midframe)
self.filesbar.pack(side=RIGHT, fill=Y)
self.files = Listbox(self.midframe, exportselection=0,
yscrollcommand=(self.filesbar, 'set'))
self.files.pack(side=RIGHT, expand=YES, fill=BOTH)
btags = self.files.bindtags()
self.files.bindtags(btags[1:] + btags[:1])
self.files.bind('', self.files_select_event)
self.files.bind('', self.files_double_event)
self.filesbar.config(command=(self.files, 'yview'))
self.dirsbar = Scrollbar(self.midframe)
self.dirsbar.pack(side=LEFT, fill=Y)
self.dirs = Listbox(self.midframe, exportselection=0,
yscrollcommand=(self.dirsbar, 'set'))
self.dirs.pack(side=LEFT, expand=YES, fill=BOTH)
self.dirsbar.config(command=(self.dirs, 'yview'))
btags = self.dirs.bindtags()
self.dirs.bindtags(btags[1:] + btags[:1])
self.dirs.bind('', self.dirs_select_event)
self.dirs.bind('', self.dirs_double_event)
self.ok_button = Button(self.botframe,
text="Valider",
command=self.ok_command)
self.ok_button.pack(side=LEFT)
self.filter_button = Button(self.botframe,
text="Remonter",
command=self.filter_command)
self.filter_button.pack(side=LEFT, expand=YES)
self.cancel_button = Button(self.botframe,
text="Annuler",
command=self.cancel_command)
self.cancel_button.pack(side=RIGHT)
self.top.protocol('WM_DELETE_WINDOW', self.cancel_command)
self.top.bind('', self.cancel_command)
self.top.bind('', self.cancel_command)
def go(self, dir_or_file=os.curdir, pattern="*", default="", key=None):
if key and dialogstates.has_key(key):
self.directory, pattern = dialogstates[key]
else:
dir_or_file = os.path.expanduser(dir_or_file)
if os.path.isdir(dir_or_file):
self.directory = dir_or_file
else:
self.directory, default = os.path.split(dir_or_file)
self.set_filter(self.directory, pattern)
self.set_selection(default)
self.filter_command()
self.selection.focus_set()
self.top.grab_set()
self.how = None
self.master.mainloop() # Exited by self.quit(how)
if key:
directory, pattern = self.get_filter()
if self.how:
directory = os.path.dirname(self.how)
dialogstates[key] = directory, pattern
self.top.destroy()
return self.how
def quit(self, how=None):
self.how = how
self.master.quit() # Exit mainloop()
def dirs_double_event(self, event):
self.filter_command()
def dirs_select_event(self, event):
dir, pat = self.get_filter()
subdir = self.dirs.get('active')
dir = os.path.normpath(os.path.join(self.directory, subdir))
self.set_filter(dir, pat)
def files_double_event(self, event):
self.ok_command()
def files_select_event(self, event):
file = self.files.get('active')
self.set_selection(file)
def ok_event(self, event):
self.ok_command()
def ok_command(self):
self.quit(self.get_selection())
def filter_command(self, event=None):
dir, pat = self.get_filter()
try:
names = os.listdir(dir)
except os.error:
self.master.bell()
return
self.directory = dir
self.set_filter(dir, pat)
names.sort()
subdirs = [os.pardir]
matchingfiles = []
for name in names:
fullname = os.path.join(dir, name)
if os.path.isdir(fullname):
subdirs.append(name)
elif fnmatch.fnmatch(name, pat):
matchingfiles.append(name)
self.dirs.delete(0, END)
for name in subdirs:
self.dirs.insert(END, name)
self.files.delete(0, END)
for name in matchingfiles:
self.files.insert(END, name)
head, tail = os.path.split(self.get_selection())
if tail == os.curdir: tail = ''
self.set_selection(tail)
def get_filter(self):
filter = self.filter.get()
filter = os.path.expanduser(filter)
if filter[-1:] == os.sep or os.path.isdir(filter):
filter = os.path.join(filter, "*")
return os.path.split(filter)
def get_selection(self):
file = self.selection.get()
file = os.path.expanduser(file)
return file
def cancel_command(self, event=None):
self.quit()
def set_filter(self, dir, pat):
if not os.path.isabs(dir):
try:
pwd = os.getcwd()
except os.error:
pwd = None
if pwd:
dir = os.path.join(pwd, dir)
dir = os.path.normpath(dir)
self.filter.delete(0, END)
self.filter.insert(END, os.path.join(dir or os.curdir, pat or "*"))
def set_selection(self, file):
self.selection.delete(0, END)
self.selection.insert(END, os.path.join(self.directory, file))
class LoadFileDialog(FileDialog):
"""File selection dialog which checks that the file exists."""
title = "Ouvrir un fichier"
def ok_command(self):
file = self.get_selection()
if not os.path.isfile(file):
self.master.bell()
else:
self.quit(file)
class SaveFileDialog(FileDialog):
"""File selection dialog which checks that the file may be created."""
title = "Enregistrer un fichier"
def ok_command(self):
file = self.get_selection()
if os.path.exists(file):
if os.path.isdir(file):
self.master.bell()
return
d = Dialog(self.top,
title="Ecraser le fichier déjà existant",
text="Ecraser le fichier %s?" % `file`,
bitmap='warning',
default=1,
strings=("Oui", "Annuler"))
if d.num != 0:
return
else:
head, tail = os.path.split(file)
if not os.path.isdir(head):
self.master.bell()
return
self.quit(file)
class Concord_aff(Frame):
def __init__(s,corp):
corp=string.split(corp)
s.corp=corp
conc=Tk()
conc.title("Extraction du cotexte")
cc = Frame(conc)
cc.grid(row=0, column=0, sticky=W)
s.conc_entr = Text(cc,height=2, width=40)
s.conc_entr.grid(row=1, column=1, sticky=W)
s.cumul = IntVar()
s.cumul_f = Checkbutton(cc,text='Cumul des formes', variable=s.cumul)
s.cumul_f.grid(row=5, column=0)#, command=s.cb,onvalue="rgb", offvalue="L"
s.Lconc = Label(cc, text="Forme(s)").grid(row=1, column=0, sticky=W)
s.conc_ent_gau = Text(cc,height=1, width=10)
s.conc_ent_gau.grid(row=2, column=1, sticky=W)
s.conc_lab_gau = Label(cc, text="Gauche").grid(row=2, column=0, sticky=W)
s.conc_ent_dro = Text(cc,height=1, width=10)
s.conc_ent_dro.grid(row=3, column=1, sticky=W)
s.conc_lab_dro = Label(cc, text="Droite").grid(row=3, column=0, sticky=W)
Button(cc, text="Lancer", command=s.concor_res).grid(row=4, column=1,sticky=W)
Button(cc, text="Quitter", command=conc.destroy).grid(row=4, column=3,sticky=W)
def concor_res(s):
#print s.cv
g=s.cumul#.get()
print g
cc_entr = s.conc_entr.get('0.0', END)
cc_gau = s.conc_ent_gau.get('0.0', END)
if cc_gau=="":cc_gau="1"
cc_dro = s.conc_ent_dro.get('0.0', END)
if cc_dro=="":cc_dro="1"
cc_entr=string.split(cc_entr)
cc_gau=int(cc_gau)
cc_dro=int(cc_dro)
#print s.corp,cc_entr,cc_gau,cc_dro
resu=Concord(s.corp,cc_entr,cc_gau,cc_dro).Text()
b=Notule()
b.Fen_resul_tag(" RÉSULTAT DU CONCORDANCIER\n\n","cat")
b.Fen_resul_tag(resu[0],"mot")
class Concord:
def __init__(s,crpu,form,droi=10,gauc=10):
s.crpu=crpu
s.form=form
s.droi=droi
s.gauc=gauc
def Text(s):
test,test2,cpt,cpt1,cpt2 = 0,1,0,-1,-1
coord,cpt_c,forms_c,cpt1_c,cpt2_c = '','','','',''
lgc=len(s.crpu)
lgf=len(s.form)
while cpt1!=lgc-1:
cpt1=cpt1+1
while cpt2!=lgf-1:
cpt2=cpt2+1
if s.crpu[cpt1]==s.form[cpt2]:
cpt=cpt+1
forms=" ".join(s.crpu[cpt1-s.gauc:cpt1+s.droi+1])
coord=coord+"%s "%`cpt`+"%s "%forms+"%s "%`cpt2`+"%s "%`cpt1`+"\n"
cpt_c=cpt_c+"%s "%`cpt`
forms_c=forms_c+"%s "%forms+"\n"
cpt2_c=cpt2_c+"%s "%`cpt2`
cpt1_c=cpt1_c+"%s "%`cpt1`
test=1
cpt2=-1
if test==0:
coord=["*? Inc:"]
forms_c=["*? Inc:"]
test2=0
test=0
return coord,test2,cpt_c,forms_c,cpt2_c,cpt1_c
def Bureau():
global fichcorpus, processus
processus=0
#corpus=['declaration des droits de l homme','la chevre de m seguin','j accuse','supplement au voyage de bougainville','la lettre volee','le grand meaulnes','candide','1984']
corpus=["texteacatego"]
for fichcorpus in corpus:
fichcorp = open('Notule\\'+fichcorpus+'.txt','r')
fichcorp = fichcorp.read()
fichcorp=fichcorp+'\n' # Rajoute un saut de ligne en fin de corpus afin de le délimiter
fich_doc = open('Notule\\te_catego '+fichcorpus+'.txt','w')
fich_xml = open('Notule\\te_catego '+fichcorpus+'.xml','w')
fich_xml.write("""\n\n""") # Inclusion d'une feuille de style \n
fich_xml.close()
fich_xml = open('Notule\\te_catego '+fichcorpus+'.xml','a')
Tagger(fichcorp)
fich_doc.close()
fich_xml.close()
def Editeur():
global fichcorpus, processus
processus=1
fichcorpus="result"
Notule()
# Amorce du programme et lecture des dictionnaires
dialogstates = {}
global fichcorpus, list_gram
list_gram=["a.txt","b.txt","c.txt","d.txt","e.txt","f.txt","g.txt","h.txt","i.txt","j.txt","k.txt","l.txt","m.txt",
"n.txt","o.txt","p.txt","q.txt","r.txt","s.txt","t.txt","u.txt","v.txt","w.txt","x.txt","y.txt","z.txt",
"Outil.txt","Speciaux.txt","NomCitPay.txt","MotComp.txt","TempsAuxi.txt","Abreviation.txt"]
for fich in list_gram:
fich_enc="a=open('Notule/listes/"+fich+"','r')"
var0="global "+fich[0]
var1=fich[0]+fich_enc
var2=fich[0]+"="+fich[0]+"a.read()"
var7="global "+fich[0]+"a"
exec(var0);exec(var1);exec(var2);exec(var7)
#Bureau()
Editeur()