Форум сайта python.su
0
Добрый день, появилась необходимость написать программу для выделения слов.
Скажем, что у меня есть строка допустим такая ‘55anywayвлюбомслучае56introduceпредставлять’ в которой есть английские, русские слова и буквы.
Мне необходимо выделить оттуда английские и русские слова чтобы в итоге получить отдельно. Например ‘anyway - в любом случае’.
Подскажите что использовать? Какие методы или функции?
Офлайн
44
и вставьте ссылку на его url Офлайн
76
Можешь регулярные выражения использовать.
Офлайн
857
jeyzihnoОбщий подход такой:
Скажем, что у меня есть строка допустим такая ‘55anywayвлюбомслучае56introduceпредставлять’ в которой есть английские, русские слова и буквы.
Мне необходимо выделить оттуда английские и русские слова чтобы в итоге получить отдельно. Например ‘anyway - в любом случае’.
>>> import re >>> import string >>> >>> def get_tokens(text): ... pat = r'[a-z]+[а-яё]+' ... out = re.findall(pat, text) ... return out ... >>> def split_token(text): ... eng, rus = [], [] ... for ch in text: ... if ch in string.ascii_lowercase: ... eng.append(ch) ... else: ... rus.append(ch) ... out = (''.join(eng), ''.join(rus)) ... return out ... >>> text = '55anywayвлюбомслучае56introduceпредставлять' >>> >>> tokens = get_tokens(text) >>> tokens ['anywayвлюбомслучае', 'introduceпредставлять'] >>> >>> splitted = tuple(map(split_token, tokens)) >>> splitted (('anyway', 'влюбомслучае'), ('introduce', 'представлять')) >>>
Офлайн