summaryrefslogtreecommitdiff
path: root/main.py
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 /main.py
parentd7353eda575d506374761e23a5c4e4667418da0f (diff)
improve parsing
Diffstat (limited to 'main.py')
-rwxr-xr-xmain.py64
1 files changed, 44 insertions, 20 deletions
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)