#!/usr/bin/python # -*- mode: python; coding: koi8-r -*- # top 500 ru_stat = { u'\u0441\u0442': 318, # ст 318003 u'\u0435\u043d': 247, # ен 247117 u'\u043d\u043e': 243, # но 242682 u'\u043d\u0438': 239, # ни 239065 u'\u043d\u0430': 201, # на 201315 u'\u0440\u0430': 195, # ра 195332 u'\u043a\u043e': 194, # ко 194125 u'\u0442\u043e': 185, # то 185262 u'\u043e\u0432': 173, # ов 172597 u'\u043f\u043e': 172, # по 171621 u'\u043e\u0441': 167, # ос 167029 u'\u0440\u0435': 164, # ре 163681 u'\u0440\u043e': 163, # ро 163474 u'\u043f\u0440': 162, # пр 161921 u'\u0433\u043e': 154, # го 154378 u'\u0432\u043e': 145, # во 145150 u'\u043b\u0438': 143, # ли 143420 u'\u0435\u0440': 143, # ер 142510 u'\u043e\u0440': 138, # ор 138365 u'\u0430\u043d': 136, # ан 136346 u'\u043d\u0435': 135, # не 134723 u'\u043d\u044b': 131, # ны 131308 u'\u043b\u0435': 131, # ле 130619 u'\u043e\u043b': 130, # ол 130442 u'\u043e\u0442': 126, # от 125809 u'\u0435\u0441': 124, # ес 124464 u'\u0441\u043a': 121, # ск 120889 u'\u043e\u0434': 119, # од 118716 u'\u0440\u0438': 119, # ри 118596 u'\u0435\u043b': 118, # ел 118221 u'\u0442\u0430': 118, # та 118205 u'\u0442\u0435': 118, # те 118107 u'\u0432\u0435': 115, # ве 114810 u'\u0432\u0430': 114, # ва 114111 u'\u043b\u044c': 111, # ль 111037 u'\u043e\u043c': 108, # ом 108182 u'\u0435\u0442': 105, # ет 105304 u'\u043e\u0433': 104, # ог 103696 u'\u043a\u0430': 103, # ка 103286 u'\u0430\u043b': 102, # ал 101764 u'\u0442\u0438': 101, # ти 100727 u'\u043c\u0435': 100, # ме 100460 u'\u043b\u043e': 100, # ло 100396 u'\u0435\u043c': 96, # ем 95760 u'\u043e\u0431': 95, # об 94915 u'\u0434\u0435': 95, # де 94768 u'\u0438\u0435': 94, # ие 93914 u'\u0438\u043d': 89, # ин 89050 u'\u043d\u043d': 89, # нн 88714 u'\u0430\u0442': 88, # ат 88218 u'\u0442\u0432': 88, # тв 87665 u'\u043b\u0430': 87, # ла 87042 u'\u0438\u0442': 86, # ит 85904 u'\u0441\u043e': 86, # со 85633 u'\u0447\u0435': 85, # че 85140 u'\u043a\u0438': 84, # ки 84371 u'\u0438\u0441': 84, # ис 83880 u'\u043c\u0438': 83, # ми 83310 u'\u0435\u0434': 83, # ед 82536 u'\u0438\u043c': 82, # им 82385 u'\u043e\u0439': 82, # ой 82253 u'\u043e\u043d': 82, # он 81553 u'\u0434\u0430': 81, # да 81052 u'\u0441\u044f': 79, # ся 79196 u'\u0434\u043e': 79, # до 78571 u'\u0430\u0432': 78, # ав 78082 u'\u0430\u0441': 76, # ас 75657 u'\u0438\u044f': 75, # ия 75484 u'\u0438\u043b': 73, # ил 73257 u'\u0438\u0437': 73, # из 72659 u'\u0430\u043a': 71, # ак 70800 u'\u0437\u0430': 70, # за 69849 u'\u0442\u044c': 70, # ть 69794 u'\u0430\u0440': 69, # ар 69391 u'\u0430\u0437': 69, # аз 68619 u'\u0432\u0438': 68, # ви 67657 u'\u0430\u043c': 67, # ам 67050 u'\u0442\u0440': 66, # тр 66040 u'\u0441\u043b': 65, # сл 65304 u'\u0436\u0435': 65, # же 64530 u'\u0431\u043e': 61, # бо 60674 u'\u0438\u0445': 59, # их 59016 u'\u043f\u0435': 56, # пе 55688 u'\u0435\u0439': 55, # ей 55493 u'\u0442\u0441': 55, # тс 55010 u'\u043c\u043e': 54, # мо 54486 u'\u044b\u0445': 54, # ых 54401 u'\u043c\u0430': 54, # ма 54196 u'\u0441\u0435': 54, # се 53623 u'\u0438\u0447': 51, # ич 51384 u'\u0447\u0430': 51, # ча 50996 u'\u044c\u043d': 51, # ьн 50597 u'\u0435\u0433': 50, # ег 49934 u'\u043e\u0435': 50, # ое 49510 u'\u0440\u0443': 49, # ру 49499 u'\u0438\u0438': 49, # ии 48664 u'\u0434\u0438': 48, # ди 48061 u'\u0432\u044b': 47, # вы 47451 u'\u043b\u044f': 47, # ля 46836 u'\u0435\u0432': 46, # ев 45795 u'\u0431\u044b': 45, # бы 45229 u'\u0438\u043a': 45, # ик 44933 u'\u0438\u0439': 45, # ий 44637 u'\u044b\u0435': 44, # ые 44330 u'\u0449\u0435': 43, # ще 43010 u'\u0447\u0438': 43, # чи 42581 u'\u0434\u043d': 42, # дн 42239 u'\u0438\u0432': 42, # ив 41571 u'\u043e\u043a': 40, # ок 39826 u'\u0430\u044f': 40, # ая 39565 u'\u0432\u043b': 39, # вл 39449 u'\u0432\u0441': 39, # вс 39016 u'\u044b\u043c': 39, # ым 38518 u'\u0430\u0435': 38, # ае 37991 u'\u043a\u0440': 37, # кр 37053 u'\u0448\u0435': 37, # ше 36750 u'\u0441\u0430': 37, # са 36661 u'\u0437\u043d': 36, # зн 36187 u'\u0441\u0438': 36, # си 35985 u'\u043e\u043f': 35, # оп 35445 u'\u0430\u0434': 35, # ад 35185 u'\u0445\u043e': 35, # хо 35112 u'\u0440\u044b': 35, # ры 34807 u'\u0431\u0435': 34, # бе 34338 u'\u043e\u0436': 34, # ож 34060 u'\u0442\u043d': 34, # тн 33995 u'\u043c\u0443': 33, # му 33347 u'\u043f\u0430': 33, # па 33064 u'\u0431\u0440': 33, # бр 33007 u'\u0435\u0435': 33, # ее 32860 u'\u0441\u0432': 33, # св 32589 u'\u043e\u0447': 32, # оч 32044 u'\u0432\u043d': 32, # вн 31727 u'\u0443\u0441': 31, # ус 31415 u'\u0441\u043f': 31, # сп 30992 u'\u0435\u043a': 31, # ек 30845 u'\u0448\u0438': 30, # ши 30202 u'\u044b\u0439': 30, # ый 30019 u'\u043e\u0437': 30, # оз 29722 u'\u044e\u0442': 30, # ют 29541 u'\u0443\u0434': 29, # уд 28840 u'\u0437\u0432': 29, # зв 28666 u'\u0442\u044b': 28, # ты 28270 u'\u0441\u0441': 28, # сс 28247 u'\u0441\u044c': 28, # сь 28230 u'\u0430\u044e': 28, # аю 28113 u'\u0433\u0430': 28, # га 28071 u'\u0434\u0443': 28, # ду 27600 u'\u0436\u0438': 27, # жи 27364 u'\u0433\u0438': 27, # ги 27119 u'\u043b\u0443': 27, # лу 27098 u'\u044d\u0442': 27, # эт 27076 u'\u043f\u0438': 27, # пи 26608 u'\u0434\u0440': 27, # др 26590 u'\u0443\u0447': 26, # уч 26194 u'\u043d\u0441': 26, # нс 25931 u'\u0430\u0445': 26, # ах 25919 u'\u0441\u0443': 26, # су 25809 u'\u044f\u0442': 26, # ят 25798 u'\u0442\u0443': 26, # ту 25656 u'\u0433\u0440': 25, # гр 25473 u'\u0438\u0440': 25, # ир 25328 u'\u044b\u043b': 25, # ыл 25056 u'\u0438\u0434': 25, # ид 24973 u'\u0446\u0435': 25, # це 24937 u'\u0443\u044e': 25, # ую 24788 u'\u0430\u0447': 24, # ач 24257 u'\u0449\u0438': 24, # щи 24204 u'\u0446\u0438': 24, # ци 23864 u'\u043d\u0443': 24, # ну 23606 u'\u0434\u043b': 24, # дл 23518 u'\u043a\u0443': 23, # ку 23460 u'\u0432\u0440': 23, # вр 23330 u'\u0435\u0437': 23, # ез 23121 u'\u0431\u043b': 23, # бл 22886 u'\u0435\u0447': 22, # еч 22493 u'\u0436\u0434': 22, # жд 22402 u'\u0447\u043d': 22, # чн 22220 u'\u0440\u043d': 22, # рн 21855 u'\u0441\u043d': 22, # сн 21651 u'\u0430\u043f': 22, # ап 21629 u'\u0436\u043d': 21, # жн 21447 u'\u043d\u0442': 21, # нт 21327 u'\u043d\u044f': 21, # ня 21072 u'\u0439\u0441': 21, # йс 20887 u'\u043e\u0438': 21, # ои 20860 u'\u043c\u044b': 21, # мы 20766 u'\u0447\u0442': 20, # чт 20424 u'\u0433\u043b': 20, # гл 20302 u'\u0434\u0441': 20, # дс 20248 u'\u0443\u0440': 20, # ур 20174 u'\u0443\u0442': 20, # ут 20109 u'\u0430\u0436': 20, # аж 20107 u'\u044b\u0432': 20, # ыв 19983 u'\u0440\u044f': 20, # ря 19758 u'\u0435\u0436': 20, # еж 19709 u'\u0437\u0434': 20, # зд 19678 u'\u0437\u043e': 19, # зо 18946 u'\u0443\u043f': 19, # уп 18709 u'\u044e\u0449': 19, # ющ 18542 u'\u0435\u0431': 19, # еб 18538 u'\u044f\u043d': 18, # ян 18281 u'\u0443\u0436': 18, # уж 18150 u'\u0443\u0433': 18, # уг 17690 u'\u0436\u0430': 17, # жа 17474 u'\u0435\u043f': 17, # еп 17391 u'\u043f\u043b': 17, # пл 17118 u'\u043c\u043d': 17, # мн 17081 u'\u0438\u0446': 17, # иц 16996 u'\u0430\u0431': 17, # аб 16931 u'\u0438\u044e': 17, # ию 16614 u'\u043b\u044e': 16, # лю 16484 u'\u0430\u0433': 16, # аг 16459 u'\u043a\u043b': 16, # кл 16456 u'\u0440\u0441': 16, # рс 16100 u'\u043e\u044f': 16, # оя 15807 u'\u0434\u0432': 16, # дв 15514 u'\u0433\u0435': 15, # ге 15403 u'\u044c\u0441': 15, # ьс 15328 u'\u0440\u0442': 15, # рт 15143 u'\u0432\u0443': 15, # ву 15131 u'\u043a\u0442': 15, # кт 14848 u'\u0437\u044b': 15, # зы 14698 u'\u0446\u0430': 15, # ца 14694 u'\u044f\u043c': 14, # ям 14357 u'\u0431\u0443': 14, # бу 14291 u'\u0438\u0433': 14, # иг 14154 u'\u0431\u0430': 14, # ба 14101 u'\u0437\u0435': 14, # зе 14041 u'\u0443\u043a': 14, # ук 13801 u'\u0431\u0438': 14, # би 13700 u'\u044b\u0441': 14, # ыс 13699 u'\u0433\u0434': 14, # гд 13605 u'\u043d\u0446': 13, # нц 13449 u'\u0432\u0448': 13, # вш 13416 u'\u0443\u0431': 13, # уб 13370 u'\u043d\u044c': 13, # нь 13159 u'\u0437\u0438': 13, # зи 12970 u'\u044c\u043a': 13, # ьк 12913 u'\u044c\u0448': 13, # ьш 12881 u'\u0444\u0438': 13, # фи 12773 u'\u043f\u0443': 13, # пу 12669 u'\u043a\u0435': 13, # ке 12649 u'\u0434\u044b': 13, # ды 12572 u'\u0442\u043a': 13, # тк 12505 u'\u043d\u0434': 12, # нд 12478 u'\u0438\u043e': 12, # ио 12439 u'\u043c\u044f': 12, # мя 12428 u'\u0440\u043c': 12, # рм 12336 u'\u044b\u0442': 12, # ыт 12211 u'\u0443\u043c': 12, # ум 12068 u'\u0440\u0433': 12, # рг 12059 u'\u0443\u043b': 12, # ул 11719 u'\u0440\u0432': 12, # рв 11685 u'\u0441\u043c': 12, # см 11582 u'\u0445\u0430': 12, # ха 11502 u'\u0437\u043c': 11, # зм 11435 u'\u044f\u0435': 11, # яе 11412 u'\u0443\u0449': 11, # ущ 11403 u'\u0438\u0431': 11, # иб 11401 u'\u0435\u0449': 11, # ещ 11291 u'\u0441\u0440': 11, # ср 11277 u'\u0431\u0449': 11, # бщ 11241 u'\u043e\u044e': 11, # ою 10960 u'\u0433\u0443': 11, # гу 10903 u'\u0435\u0445': 11, # ех 10869 u'\u0438\u0430': 11, # иа 10765 u'\u0448\u0430': 11, # ша 10607 u'\u043e\u0448': 11, # ош 10530 u'\u044c\u044e': 11, # ью 10522 u'\u043b\u0441': 10, # лс 10422 u'\u043a\u043d': 10, # кн 10337 u'\u043e\u0445': 10, # ох 10233 u'\u0435\u043e': 10, # ео 10207 u'\u044f\u0432': 10, # яв 9969 u'\u0444\u043e': 10, # фо 9959 u'\u043b\u043b': 10, # лл 9939 u'\u043b\u044b': 10, # лы 9921 u'\u0442\u044f': 10, # тя 9863 u'\u044f\u0437': 10, # яз 9706 u'\u0437\u0443': 10, # зу 9665 u'\u044f\u0445': 9, # ях 9473 u'\u0440\u043a': 9, # рк 9007 u'\u0435\u0448': 9, # еш 8974 u'\u0449\u0430': 9, # ща 8968 u'\u0431\u043d': 9, # бн 8904 u'\u0440\u0436': 9, # рж 8856 u'\u0430\u0439': 9, # ай 8834 u'\u044f\u0449': 9, # ящ 8821 u'\u043d\u043a': 8, # нк 8387 u'\u0435\u0446': 8, # ец 8373 u'\u044f\u044e': 8, # яю 8333 u'\u043e\u043e': 8, # оо 8181 u'\u0438\u0436': 8, # иж 8157 u'\u0439\u043d': 8, # йн 8139 u'\u0445\u0440': 8, # хр 8118 u'\u0432\u044f': 8, # вя 8084 u'\u0443\u043d': 8, # ун 8081 u'\u0438\u043f': 8, # ип 7865 u'\u0437\u043b': 8, # зл 7836 u'\u044b\u043a': 8, # ык 7815 u'\u0430\u0449': 8, # ащ 7736 u'\u0440\u0445': 8, # рх 7719 u'\u0441\u044b': 8, # сы 7637 u'\u0430\u0448': 8, # аш 7577 u'\u0443\u0445': 8, # ух 7572 u'\u044c\u044f': 8, # ья 7555 u'\u043b\u043d': 7, # лн 7380 u'\u043d\u0433': 7, # нг 7372 u'\u0444\u0440': 7, # фр 7310 u'\u044f\u0434': 7, # яд 7283 u'\u0443\u0435': 7, # уе 7219 u'\u044f\u043b': 7, # ял 7219 u'\u0443\u0437': 7, # уз 7207 u'\u0437\u0440': 7, # зр 7144 u'\u0434\u044f': 7, # дя 7073 u'\u043c\u043f': 7, # мп 6998 u'\u0438\u0448': 7, # иш 6898 u'\u0440\u044c': 7, # рь 6869 u'\u044c\u0435': 7, # ье 6853 u'\u0445\u0438': 7, # хи 6845 u'\u044f\u0441': 7, # яс 6769 u'\u0434\u043a': 7, # дк 6761 u'\u044b\u0448': 7, # ыш 6623 u'\u0444\u0430': 7, # фа 6602 u'\u0443\u0448': 6, # уш 6484 u'\u043a\u0441': 6, # кс 6422 u'\u0430\u0438': 6, # аи 6396 u'\u043c\u043b': 6, # мл 6307 u'\u0444\u0435': 6, # фе 6224 u'\u0442\u043b': 6, # тл 6182 u'\u043b\u0436': 6, # лж 6116 u'\u0430\u0444': 6, # аф 6106 u'\u0440\u0434': 6, # рд 6080 u'\u0430\u0446': 6, # ац 5984 u'\u043a\u0432': 6, # кв 5947 u'\u044b\u0440': 6, # ыр 5921 u'\u044e\u0434': 6, # юд 5905 u'\u0435\u044f': 6, # ея 5897 u'\u043c\u0441': 6, # мс 5889 u'\u0440\u0448': 6, # рш 5867 u'\u043b\u043a': 6, # лк 5579 u'\u0441\u0447': 6, # сч 5562 u'\u0441\u0445': 5, # сх 5426 u'\u0435\u044e': 5, # ею 5414 u'\u0439\u0448': 5, # йш 5353 u'\u0432\u043f': 5, # вп 5297 u'\u0443\u0432': 5, # ув 5278 u'\u043f\u044b': 5, # пы 5231 u'\u043e\u0444': 5, # оф 5225 u'\u0448\u043a': 5, # шк 5220 u'\u0435\u0438': 5, # еи 5197 u'\u043a\u0436': 5, # кж 5147 u'\u044e\u0447': 5, # юч 5113 u'\u044c\u043c': 5, # ьм 5080 u'\u0432\u0442': 5, # вт 5006 u'\u0448\u043d': 5, # шн 4983 u'\u0448\u043b': 5, # шл 4941 u'\u044b\u043d': 5, # ын 4885 u'\u0431\u0441': 5, # бс 4879 u'\u0446\u044b': 5, # цы 4805 u'\u0442\u0434': 5, # тд 4770 u'\u0438\u0449': 5, # ищ 4652 u'\u0432\u043a': 5, # вк 4628 u'\u0447\u0443': 4, # чу 4465 u'\u0430\u0443': 4, # ау 4395 u'\u0447\u043a': 4, # чк 4360 u'\u0433\u043d': 4, # гн 4232 u'\u0446\u0432': 4, # цв 4020 u'\u043d\u0447': 4, # нч 3994 u'\u043e\u0449': 4, # ощ 3982 u'\u043e\u0446': 4, # оц 3927 u'\u043e\u044d': 4, # оэ 3901 u'\u0448\u043e': 4, # шо 3897 u'\u044f\u043a': 4, # як 3848 u'\u0445\u0443': 4, # ху 3780 u'\u0440\u043b': 4, # рл 3740 u'\u0437\u044f': 4, # зя 3740 u'\u0446\u043e': 4, # цо 3725 u'\u0432\u044c': 4, # вь 3672 u'\u044b\u0447': 4, # ыч 3670 u'\u0435\u0430': 4, # еа 3638 u'\u0431\u044f': 4, # бя 3622 u'\u0437\u0431': 4, # зб 3617 u'\u0445\u043d': 4, # хн 3590 u'\u044f\u0440': 4, # яр 3567 u'\u0432\u0437': 4, # вз 3565 u'\u044d\u043b': 4, # эл 3548 u'\u044c\u0442': 4, # ьт 3510 u'\u0448\u044c': 3, # шь 3464 u'\u0438\u0444': 3, # иф 3402 u'\u044c\u0437': 3, # ьз 3398 u'\u0434\u044c': 3, # дь 3316 u'\u044b\u0434': 3, # ыд 3293 u'\u0432\u043c': 3, # вм 3283 u'\u0446\u0443': 3, # цу 3206 u'\u043f\u0442': 3, # пт 3202 u'\u0441\u0434': 3, # сд 3154 u'\u0434\u043c': 3, # дм 3081 u'\u043f\u043d': 3, # пн 3077 u'\u043c\u043c': 3, # мм 3069 u'\u044f\u0436': 3, # яж 3049 u'\u0431\u044a': 3, # бъ 3026 u'\u0437\u043a': 3, # зк 2899 u'\u0440\u0446': 3, # рц 2888 u'\u044f\u044f': 3, # яя 2859 u'\u0434\u043f': 3, # дп 2818 u'\u0448\u0443': 3, # шу 2774 u'\u0440\u0431': 3, # рб 2773 u'\u043a\u0446': 3, # кц 2757 u'\u0437\u0433': 3, # зг 2754 u'\u044e\u0431': 3, # юб 2708 u'\u0447\u0440': 3, # чр 2694 u'\u044c\u0431': 3, # ьб 2687 u'\u043f\u044f': 3, # пя 2672 u'\u043f\u043f': 3, # пп 2671 u'\u044e\u0440': 3, # юр 2630 u'\u0436\u0443': 3, # жу 2597 u'\u0445\u043b': 3, # хл 2579 u'\u044d\u043a': 3, # эк 2505 u'\u0441\u044e': 2, # сю 2446 u'\u0446\u043a': 2, # цк 2445 u'\u043b\u0433': 2, # лг 2442 u'\u044e\u0436': 2, # юж 2401 u'\u0442\u0442': 2, # тт 2339 u'\u0441\u0448': 2, # сш 2327 u'\u0442\u0447': 2, # тч 2304 u'\u044a\u0435': 2, # ъе 2298 u'\u044d\u043f': 2, # эп 2284 u'\u0435\u0444': 2, # еф 2269 u'\u0443\u0430': 2, # уа 2268 u'\u0445\u0441': 2, # хс 2245 u'\u043b\u0442': 2, # лт 2241 u'\u0445\u0432': 2, # хв 2236 u'\u0441\u0431': 2, # сб 2151 u'\u043f\u0441': 2, # пс 2147 u'\u0433\u043a': 2, # гк 2128 u'\u0448\u0442': 2, # шт 2122 u'\u0445\u0435': 2, # хе 2109 u'\u0432\u0432': 2, # вв 2062 u'\u0449\u0443': 2, # щу 2025 u'\u0432\u0434': 2, # вд 2023 u'\u044a\u044f': 2, # ъя 2017 u'\u0440\u043f': 2, # рп 1972 u'\u044c\u0446': 2, # ьц 1969 u'\u044b\u0431': 2, # ыб 1959 u'\u0441\u0446': 2, # сц 1935 u'\u0439\u0446': 2, # йц 1905 u'\u0447\u0448': 2, # чш 1905 u'\u044f\u0433': 2, # яг 1888 u'\u043c\u0431': 2, # мб 1886 u'\u043c\u043a': 2, # мк 1881 u'\u043f\u0431': 2, # пб 1853 u'\u044b\u043f': 2, # ып 1822 u'\u0434\u0448': 2, # дш 1820 u'\u044e\u0441': 2, # юс 1805 u'\u0447\u044c': 2, # чь 1804 u'\u0447\u043b': 2, # чл 1787 u'\u0435\u0443': 2, # еу 1781 u'\u0431\u0445': 2, # бх 1756 u'\u0432\u0433': 2, # вг 1743 u'\u0442\u043c': 2, # тм 1733 u'\u044b\u0437': 2, # ыз 1732 u'\u044f\u0447': 2, # яч 1715 u'\u0440\u044e': 2, # рю 1705 u'\u0444\u043b': 2, # фл 1701 u'\u0437\u044c': 2, # зь 1693 u'\u0434\u0436': 2, # дж 1689 u'\u043e\u0443': 2, # оу 1687 u'\u044c\u0438': 2, # ьи 1672 u'\u0437\u0441': 2, # зс 1672 u'\u043d\u0440': 2, # нр 1666 u'\u0434\u0446': 2, # дц 1641 u'\u044c\u0434': 2, # ьд 1619 u'\u0434\u0434': 2, # дд 1601 u'\u0442\u043f': 2, # тп 1597 u'\u044e\u043d': 2, # юн 1533 u'\u044f\u0439': 2, # яй 1503 u'\u0444\u0443': 1, # фу 1479 u'\u0440\u0447': 1, # рч 1452 u'\u0439\u043a': 1, # йк 1450 u'\u0440\u0444': 1, # рф 1428 u'\u0449\u043d': 1, # щн 1418 u'\u0441\u0444': 1, # сф 1404 u'\u044d\u043c': 1, # эм 1371 u'\u0439\u0434': 1, # йд 1366 u'\u0440\u0440': 1, # рр 1363 u'\u043e\u0430': 1, # оа 1358 u'\u044e\u0437': 1, # юз 1353 u'\u0438\u0443': 1, # иу 1345 u'\u043d\u044e': 1, # ню 1272 u'\u0442\u0446': 1, # тц 1261 u'\u044d\u043d': 1, # эн 1258 u'\u0436\u0441': 1, # жс 1257 u'\u043f\u0446': 1, # пц 1238 u'\u0433\u0441': 1, # гс 1229 u'\u043f\u043a': 1, # пк 1223 u'\u0436\u043a': 1, # жк 1215 u'\u0443\u044f': 1, # уя 1212 u'\u0433\u0433': 1, # гг 1188 } #from config import charsets_list charsets_list = ('koi8-r', 'cp1251', 'cp866', 'iso8859-5', 'utf-8') def detectcharset(fileobj): """detectcharset(fileobj) - определение русской кодировки аргумент: файловый объект возвращаемое значение: кодировка или None (если кодировка не была определена)""" scores={} total_score=0 # чтобы не просматривать весь файл: # 1 000 000 ~= 100 строк русского текста max_total_score=1e6 for cs in charsets_list: scores[cs]=0 if hasattr(fileobj, 'xreadlines'): readlines = fileobj.xreadlines else: readlines = fileobj.readlines for l in readlines(): for cs in charsets_list: if scores[cs] == -1: continue try: str=unicode(l, cs).lower() except UnicodeError: scores[cs]=-1 continue for i in range (len(str)-2): d=str[i:i+2] if ru_stat.has_key(d): scores[cs]+=ru_stat[d] total_score+=ru_stat[d] if total_score > max_total_score: break max_score=-1 ret=None for cs in charsets_list: if scores[cs] > max_score: max_score=scores[cs] ret=cs #print scores if max_score > 0: return ret else: return None if(__name__=="__main__"): import sys if len(sys.argv) < 2: print """usage: %s file(s)""" % sys.argv[0] sys.exit(1) for f in sys.argv[1:]: print "%s: %s" \ % (f, detectcharset(open(f)))