1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| from collections import Counter
import re
'''
with open('Le Diable au Corps.txt') as f:
txt = f.read()
'''
txt = '''Le Diable au Corps
Je vais encourir bien des reproches. Mais quy puis-je ? Est-ce ma faute si jeus douze ans quelques mois avant la déclaration de la guerre ? Sans doute, les troubles qui me vinrent de cette période extraordinaire furent dune sorte quon néprouve jamais à cet âge ; mais comme il nexiste rien dassez fort pour nous vieillir malgré les apparences, cest en enfant que je devais me conduire dans une aventure où déjà un homme eût éprouvé de lembarras. Je ne suis pas le seul. Et mes camarades garderont de cette époque un souvenir qui nest pas celui de leurs aînés. Que ceux qui déjà men veulent se représentent ce que fut la guerre pour tant de très jeunes garçons : quatre ans de grandes vacances.
Nous habitions à F
, au bord de la Marne.
Mes parents condamnaient plutôt la camaraderie mixte. La sensualité, qui naît avec nous et se manifeste encore aveugle, y gagna au lieu dy perdre.
Je nai jamais été un rêveur. Ce qui semble rêve aux autres, plus crédules, me paraissait à moi aussi réel que le fromage au chat, malgré la cloche de verre. Pourtant la cloche existe.
La cloche se cassant, le chat en profite, même si ce sont ses maîtres qui la cassent et sy coupent les mains.
Jusquà douze ans, je ne me vois aucune amourette, sauf pour une petite fille, nommée Carmen, à qui je fis tenir, par un gamin plus jeune que moi, une lettre dans laquelle je lui exprimais mon amour. Je mautorisais de cet amour pour solliciter un rendez-vous. Ma lettre lui avait été remise le matin avant quelle ne se rendît en classe. Javais distingué la seule fillette qui me ressemblât, parce quelle était propre, et allait à lécole
'''
# Éclatement de la chaîne
mots = re.split('[.,;?!
\s]+', txt) # Apostrophe de traitement de texte !
#print(mots)
# Construction du dict des occurences
occurences = {k:v for (k, v) in Counter(mots).items() if len(k) > 2 and v > 2}
#print(occurences)
exp = '\\b(%s)\\b' % '|'.join(occurences)
#print(exp)
pos_mots = {}
for r in re.finditer(exp, txt):
pos_mots.setdefault(r[1], []).append(r.span())
print(pos_mots)
print('"%s"' % txt[108:111]) |