9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
if dToken["sValue"].count("-") > 1:
if "-t-" in dToken["sValue"]:
nEnd = nEnd - 2
elif re.search("-l(?:es?|a)-(?:[mt]oi|nous|leur)$|(?:[nv]ous|lui|leur)-en$", dToken["sValue"]):
nEnd = dToken["sValue"][0:nEnd].rfind("-")
return g_morph(dToken, sPattern, sNegPattern, 0, nEnd, False)
def rewriteSubject (s1, s2):
"rewrite complex subject: <s1> a prn/patr/npr (M[12P]) followed by “et” and <s2>"
if s2 == "lui":
return "ils"
if s2 == "moi":
return "nous"
if s2 == "toi":
return "vous"
if s2 == "nous":
return "nous"
if s2 == "vous":
return "vous"
if s2 == "eux":
return "ils"
if s2 in ("elle", "elles"):
if cr.mbNprMasNotFem(_oSpellChecker.getMorph(s1)):
return "ils"
# si épicène, indéterminable, mais OSEF, le féminin l’emporte
return "elles"
return s1 + " et " + s2
def apposition (sWord1, sWord2):
"returns True if nom + nom (no agreement required)"
return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1)))
def g_checkAgreement (dToken1, dToken2, bNotOnlyNames=True):
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
if dToken["sValue"].count("-") > 1:
if "-t-" in dToken["sValue"]:
nEnd = nEnd - 2
elif re.search("-l(?:es?|a)-(?:[mt]oi|nous|leur)$|(?:[nv]ous|lui|leur)-en$", dToken["sValue"]):
nEnd = dToken["sValue"][0:nEnd].rfind("-")
return g_morph(dToken, sPattern, sNegPattern, 0, nEnd, False)
def apposition (sWord1, sWord2):
"returns True if nom + nom (no agreement required)"
return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1)))
def g_checkAgreement (dToken1, dToken2, bNotOnlyNames=True):
|