# 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()