summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrusinthread <rusinthread@cock.li>2016-12-23 02:49:40 +0300
committerrusinthread <rusinthread@cock.li>2016-12-23 02:49:40 +0300
commitf879f6f345b524f40efd32a46d9db8b5e73e31b7 (patch)
tree50c269ae0767cd007dbd5402fa16e6435fc4db0b
parentd7353eda575d506374761e23a5c4e4667418da0f (diff)
improve parsing
-rw-r--r--data.json5
-rwxr-xr-xmain.py64
2 files changed, 44 insertions, 25 deletions
diff --git a/data.json b/data.json
index 1544973..0c8ce6a 100644
--- a/data.json
+++ b/data.json
@@ -22,11 +22,6 @@
"date": "5/12/16"
},
{
- "text": "Присутствие Военное по Право РОБОТИЧЕСКИ Отмечено! закадычно[паррома] Военное Вмешательство Имения Вышестоящих По Право Щука В Мешке Екатерина УКДВРК Беркут Имения Вышестоящих По Право Йодиноловый по Выписка Цепочка Связей Ытрэч: МЕСТА(!)Акробатическое По Правилам Войны РОБОТИЧЕСКИ ШПИОНАЖ ЖУЮЩЕГО ХРЯЩИ Имения Вышестоящих По Право РОБОТИЧЕСКИ УКДВРК Ющенко Щука В Мешке Имения Вышестоящих По Право Йодиноловый по Выписка. Присутствие Военное По Право РОБОТИЧЕСКИ Имения Вышестоящих По Право МЕСТА(!) Екатерина ТРИУМФАЛЬНО! Ытрэч: ШПИОНАЖ ЖУЮЩЕГО ХРЯЩИ РОБОТИЧЕСКИ Акробатическое По Правилам Войны МЕСТА(!) Номер Индексирован Безукоризненно Акробатическое По Правилам Войны Номер Индексирован Безукоризненно Имения Вышестоящих По Право ЖИЗНЬ! Номер Индексирован Безукоризненно Екатерина Йодиноловый по Выписка ГАЗ-53 УКДВРК Беркут Екатерина.",
- "source": "2ch",
- "date": "5/12/16"
- },
- {
"text": "ГАЗ-53 Отмечено! Линейно с Локации Отмечено! Военное Вмешательство УКДВРК Дежурные с Вышестоящими Контроль РОБОТИЧЕСКИ УКДВРК ГАЗ-53 Отмечено! Йодиноловый по Выписка ЖИЗНЬ! Екатерина РОБОТИЧЕСКИ ТРИУМФАЛЬНО! Военное Вмешательство Ытрэч Сухогруз Откладывается Линейно Беркут РОБОТИЧЕСКИ Отмечено! Сухогруз Откладывается Линейно Имения Вышестоящих По Право Линейно с Локации УКДВРК Беркут Имения Вышестоящих По Право Йодиноловый по Выписка Цепочка Связей Акробатическое По Правилам Войны закадычно[паррома] Дежурные с Вышестоящими Контроль Екатерина Сухогруз Откладывается Линейно Ь - Его Величество. МЕСТА(!) Екатерина Сухогруз Откладывается Линейно Ярославская Губерния Цепочка Связей Номер Индексирован Безукоризненно Акробатическое По Правилам Войны закадычно[паррома] Акробатическое По Правилам Войны Дежурные с Вышестоящими Контроль.",
"pic": "косм.jpg",
"source": "2ch",
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)