diff options
author | rusinthread <rusinthread@cock.li> | 2016-12-23 02:49:40 +0300 |
---|---|---|
committer | rusinthread <rusinthread@cock.li> | 2016-12-23 02:49:40 +0300 |
commit | f879f6f345b524f40efd32a46d9db8b5e73e31b7 (patch) | |
tree | 50c269ae0767cd007dbd5402fa16e6435fc4db0b /main.py | |
parent | d7353eda575d506374761e23a5c4e4667418da0f (diff) |
improve parsing
Diffstat (limited to 'main.py')
-rwxr-xr-x | main.py | 64 |
1 files changed, 44 insertions, 20 deletions
@@ -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) |