11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-
+
|
aSugg = set()
for sStem in stem(sFlex):
tTags = conj._getTags(sStem)
if tTags:
# we get the tense
aTense = set()
for sMorph in _dAnalyses.get(sFlex, []): # we don’t check if word exists in _dAnalyses, for it is assumed it has been done before
for m in re.finditer(sStem+" .*?(:(?:Y|I[pqsf]|S[pq]|K|P))", sMorph):
for m in re.finditer(">"+sStem+" .*?(:(?:Y|I[pqsf]|S[pq]|K|P))", sMorph):
# stem must be used in regex to prevent confusion between different verbs (e.g. sauras has 2 stems: savoir and saurer)
if m:
if m.group(1) == ":Y":
aTense.add(":Ip")
aTense.add(":Iq")
aTense.add(":Is")
elif m.group(1) == ":P":
|
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
|
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
|
-
+
|
def suggSimil (sWord, sPattern=None):
"return list of words phonetically similar to sWord and whom POS is matching sPattern"
# we don’t check if word exists in _dAnalyses, for it is assumed it has been done before
aSugg = phonet.selectSimil(sWord, sPattern)
for sMorph in _dAnalyses.get(sWord, []):
for e in conj.getSimil(sWord, sMorph):
for e in conj.getSimil(sWord, sMorph, sPattern):
aSugg.add(e)
#aSugg = aSugg.union(conj.getSimil(sWord, sMorph))
if aSugg:
return "|".join(aSugg)
return ""
|
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
-
+
|
return "la"
_zBinary = re.compile("^[01]+$")
def formatNumber (s):
nLen = len(s)
if nLen <= 4:
if nLen < 4:
return s
sRes = ""
# nombre ordinaire
nEnd = nLen
while nEnd > 0:
nStart = max(nEnd-3, 0)
sRes = s[nStart:nEnd] + " " + sRes if sRes else s[nStart:nEnd]
|