diff options
author | rusinthread <rusinthread@cock.li> | 2017-01-07 23:57:44 +0300 |
---|---|---|
committer | rusinthread <rusinthread@cock.li> | 2017-01-07 23:57:44 +0300 |
commit | 5bf61081d39bf47e756b5c9775e8614036f8fab8 (patch) | |
tree | d9e987ccfd79a7567987c7447c53f19fd2e1fcf9 /data_lib.py | |
parent | b08c2582ec94c34672902ab1579ec584d04d5727 (diff) |
improve decoding of type1 ciphertexts
Diffstat (limited to 'data_lib.py')
-rw-r--r-- | data_lib.py | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/data_lib.py b/data_lib.py index 90b1bfd..5bf468e 100644 --- a/data_lib.py +++ b/data_lib.py @@ -1,21 +1,41 @@ import os import json import re +import datetime +import time CWD = os.path.dirname(os.path.realpath(__file__)) -def load_data(): +def _data_sort_len(i): + return len(i['text']) + +def _data_sort_date(i): + return int(time.mktime(datetime.datetime.strptime(i['date'], '%d/%m/%y').timetuple())) + +# sort: 'len', 'date' +def load_data(sort='len', sort_reverse=False): with open(os.path.join(CWD, "data.json")) as f: data = json.loads(f.read()) # ignore placeholders data = list(filter(lambda i: i['text'] != '', data)) - + + # sort + if sort == 'len': + sort_f = _data_sort_len + elif sort == 'date': + sort_f = _data_sort_date + else: + raise Error("Unknown sort type " + str(sort)) + + data = sorted(data, key=sort_f, reverse=sort_reverse) + + return data def clean_string(s, remove_junk=False): s = s.replace(')', ') ') - s = re.sub(r'(\!|\.)([^\)])', r'\1 \2', s) + s = re.sub(r'(\!|\.|\]|\,)([^\)])', r'\1 \2', s) #s = s.replace('/', ' ') s = s.upper() @@ -35,16 +55,20 @@ def clean_string(s, remove_junk=False): 'С ВЫШЕСТОЯЩИМИ', #'ПРИСУТСТВИЕ', #'ЛИНЕЙНО', - 'ЗАКОННО!', + 'ИНСТРУКЦИИ', + 'ЗАКОННО', 'ПОХЛЕБКА', 'СВЯЗЕЙ', 'ЖУЮЩЕГО ХРЯЩИ', + 'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕНННО', 'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕННО', 'ОТКЛАДЫВАЕТСЯ ЛИНЕЙНО', + 'УСТАЛИ СМОТРЯЩИХ', '- ЕГО ВЕЛИЧЕСТВО', 'ГУБЕРНИЯ', 'С ВЫШЕСТОЯЩИМИ КОНТРОЛЬ', - 'С ЛОКАЦИИ', + 'С ЛОКАЦИИ', + 'КАЗНЬ ВЫШЕСТОЯЩ', #'КАЗНЬ', 'ГУБЕРНИЯ', 'ПРОВЕРКИ', @@ -97,17 +121,20 @@ def clean_string(s, remove_junk=False): # только с пробелами junks_nwords = list(filter(lambda w: w not in junks_words, junks)) + #print(junks_nwords) if remove_junk: s = s.split(' ') - s = list(filter(lambda l: re.sub(r'\.|\!$', '', l) not in junks_words, s)) + s = list(filter(lambda l: re.sub(r'\.|\!|,$', '', l) not in junks_words, s)) s = ' '.join(s) for j in junks_nwords: s = s.replace(j, '') - # хортица - это буква Х s = s.replace('Х О Р Т И Ц А', 'Х_О_Р_Т_И_Ц_А') + s = s.replace('ЯРОСЛАВСКАЯ ГУБЕРНИЯ', 'ЯРОСЛАВСКАЯ_ГУБЕРНИЯ') + s = s.replace('ЩУКА В МЕШКЕ', 'ЩУКА_В_МЕШКЕ') + s = s.replace('Ъ - ВЕЛИЧЕСТВЕННО', 'Ъ_-_ВЕЛИЧЕСТВЕННО') s = re.sub(r'\s+', ' ', s).strip() return s @@ -116,7 +143,7 @@ def decode(s, is_url=False): buf = '' for word in s.split(' '): word = word.strip() - if word == '': + if word == '' or word == '!': continue if re.match(r'^\d+', word): |