From f879f6f345b524f40efd32a46d9db8b5e73e31b7 Mon Sep 17 00:00:00 2001 From: rusinthread Date: Fri, 23 Dec 2016 02:49:40 +0300 Subject: improve parsing --- main.py | 64 ++++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 20 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index bb4cff9..7a68ac6 100755 --- a/main.py +++ b/main.py @@ -26,29 +26,53 @@ def load_data(): def clean_string(s, remove_junk=False): s = s.replace(')', ') ') - s = re.sub(r'\!([^\)])', '!\1 ', s) + s = re.sub(r'\!([^\)])', r'! \1', s) s = s.replace('/', ' ') s = s.upper() + + s = re.sub(r'\s+', ' ', s).strip() + + junks = [ + 'ВОЕННОЕ', + 'ВЫШЕСТОЯЩИХ', + 'ПРАВО', + 'ПРАВИЛАМ ВОЙНЫ', + 'ВЫПИСКА', + 'КОНТРОЛЬ', + 'ИХ', + 'ПО', + 'НАВЫКИ', + 'С ВЫШЕСТОЯЩИМИ', + #'ПРИСУТСТВИЕ', + #'ЛИНЕЙНО', + 'ЗАКОННО!', + 'ПОХЛЕБКА', + 'СВЯЗЕЙ', + 'ЖУЮЩЕГО ХРЯЩИ', + 'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕННО', + 'ОТКЛАДЫВАЕТСЯ ЛИНЕЙНО', + '- ЕГО ВЕЛИЧЕСТВО', + 'ГУБЕРНИЯ', + 'С ВЫШЕСТОЯЩИМИ КОНТРОЛЬ', + 'С ЛОКАЦИИ', + #'КАЗНЬ', + 'ГУБЕРНИЯ', + ] + + # только без пробелов + junks_words = list(filter(lambda w: ' ' not in w, junks)) + + # только с пробелами + junks_nwords = list(filter(lambda w: w not in junks_words, junks)) if remove_junk: - # сделаем из этого одну букву В - s = s.replace('ВОЕННОЕ ВМЕШАТЕЛЬСТВО', 'ВОЕННОЕ_ВМЕШАТЕЛЬСТВО') - # это просто мусор - for junk in [ - 'ВЫШЕСТОЯЩИХ ПО ПРАВО', - 'ВОЕННОЕ ПО ПРАВО', - 'ПО ПРАВИЛАМ ВОЙНЫ', - 'ПО ВЫПИСКА', - 'СВЯЗЕЙ', - 'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕННО', - 'ПОХЛЕБКА ЗАКОННО!', - 'СУХОГРУЗ ОТКЛАДЫВАЕТСЯ ЛИНЕЙНО', - '- ЕГО ВЕЛИЧЕСТВО', - 'ГУБЕРНИЯ', - 'С ВЫШЕСТОЯЩИМИ КОНТРОЛЬ', - 'С ЛОКАЦИИ', - 'КАЗНЬ ПО ВЫШЕСТОЯЩ']: - s = s.replace(junk, '') + s = s.split(' ') + 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('Х О Р Т И Ц А', 'Х_О_Р_Т_И_Ц_А') @@ -87,7 +111,7 @@ def main(): # sort by text length data = sorted(data, key=lambda i: len(i['text'])) - for obj in data: + for obj in data[6:]: text = obj['text'] text = clean_string(text, remove_junk=args.remove_junk) -- cgit v1.2.3