MediaWiki:Gadget-translation editor.js/Statistiques/code/total traductions

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.
Sauter à la navigation Sauter à la recherche

Code utilisé pour dénombrer le nombre de traductions sur le Wiktionnaire.

 1 import re
 2 import time
 3 
 4 def count_all_trads():
 5   input_file = 'C:\\Users\\automatik\\Downloads\\frwiktionary-20180901-pages-articles.xml'
 6   
 7   counter_pages = 0
 8   counter_trads = 0
 9   
10   with open(input_file, encoding='utf-8') as f:
11     pattern = re.compile(r'{{trad[+-]{0,2}\|')
12     ns = -1
13     for line in f:
14       if '<ns>' in line:
15         ns = int(line[line.find('<ns>')+4:line.find('</ns>')])
16         counter_pages += 1
17         if counter_pages % 100000 == 0:
18           print(str(counter_trads) + ' traductions dénombrées pour ' + str(counter_pages) + ' pages scannees')
19       if ns != 0:
20         continue
21       if ('{{trad|' in line or '{{trad+|' in line or '{{trad-|' in line or '{{trad--|' in line) and '{{T|' in line and not '<comment>' in line:
22         counter_trads += len(re.findall(pattern, line))
23   
24   print('Total : {} traductions dans {} pages'.format(counter_trads, counter_pages))
25 
26 if __name__ == '__main__':
27   start_time = time.time()
28   count_all_trads()
29   print('Done in {} sec'.format(str(time.time() - start_time))) # last runtime: 90 sec
30   # Dump du 1/09/2018 : 860 311 traductions dans 3 547 861 pages

Script exécuté en moins de 2 minutes (Windows 10, processeur quadricore 2.3GHz, 8 Go de RAM)