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 | |
parent | d7353eda575d506374761e23a5c4e4667418da0f (diff) |
improve parsing
-rw-r--r-- | data.json | 5 | ||||
-rwxr-xr-x | main.py | 64 |
2 files changed, 44 insertions, 25 deletions
@@ -22,11 +22,6 @@ "date": "5/12/16" }, { - "text": "Присутствие Военное по Право РОБОТИЧЕСКИ Отмечено! закадычно[паррома] Военное Вмешательство Имения Вышестоящих По Право Щука В Мешке Екатерина УКДВРК Беркут Имения Вышестоящих По Право Йодиноловый по Выписка Цепочка Связей Ытрэч: МЕСТА(!)Акробатическое По Правилам Войны РОБОТИЧЕСКИ ШПИОНАЖ ЖУЮЩЕГО ХРЯЩИ Имения Вышестоящих По Право РОБОТИЧЕСКИ УКДВРК Ющенко Щука В Мешке Имения Вышестоящих По Право Йодиноловый по Выписка. Присутствие Военное По Право РОБОТИЧЕСКИ Имения Вышестоящих По Право МЕСТА(!) Екатерина ТРИУМФАЛЬНО! Ытрэч: ШПИОНАЖ ЖУЮЩЕГО ХРЯЩИ РОБОТИЧЕСКИ Акробатическое По Правилам Войны МЕСТА(!) Номер Индексирован Безукоризненно Акробатическое По Правилам Войны Номер Индексирован Безукоризненно Имения Вышестоящих По Право ЖИЗНЬ! Номер Индексирован Безукоризненно Екатерина Йодиноловый по Выписка ГАЗ-53 УКДВРК Беркут Екатерина.", - "source": "2ch", - "date": "5/12/16" - }, - { "text": "ГАЗ-53 Отмечено! Линейно с Локации Отмечено! Военное Вмешательство УКДВРК Дежурные с Вышестоящими Контроль РОБОТИЧЕСКИ УКДВРК ГАЗ-53 Отмечено! Йодиноловый по Выписка ЖИЗНЬ! Екатерина РОБОТИЧЕСКИ ТРИУМФАЛЬНО! Военное Вмешательство Ытрэч Сухогруз Откладывается Линейно Беркут РОБОТИЧЕСКИ Отмечено! Сухогруз Откладывается Линейно Имения Вышестоящих По Право Линейно с Локации УКДВРК Беркут Имения Вышестоящих По Право Йодиноловый по Выписка Цепочка Связей Акробатическое По Правилам Войны закадычно[паррома] Дежурные с Вышестоящими Контроль Екатерина Сухогруз Откладывается Линейно Ь - Его Величество. МЕСТА(!) Екатерина Сухогруз Откладывается Линейно Ярославская Губерния Цепочка Связей Номер Индексирован Безукоризненно Акробатическое По Правилам Войны закадычно[паррома] Акробатическое По Правилам Войны Дежурные с Вышестоящими Контроль.", "pic": "косм.jpg", "source": "2ch", @@ -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) |