Задать вопрос
@Timebird

Как воспользоваться методом re.split?

Допустим, я хочу выделить из текста наиболее частовстречающиеся слова, разделяю текст по символам с помощью re.split:
words = re.split("[ \n.,?!:;']", corpus)
А я хочу еще добавить символ ", но если добавлю - то произойдет синтаксически преждевременное закрытие кавычек. Как его добавить?
Еще мелкий вопрос: а куда копать, чтоб разделение шло по всем символам, кроме заглавных-строчных букв? Помню, что вроде синтаксис вроде: re.split("[^[a-z][A-Z]"), как эта конструкция называется?
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
tema_sun
@tema_sun
Экранируйте re.split("[ \n.,?!:;'\"]", corpus)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, вы можете экранировать символ двойных кавычек так же, как экранируете символ перевода строки - "[ \n.,?!:;'\"]". Во-вторых, можно проще и быстрее сделать:

from collections import defaultdict, Counter
import string

punctuation_map = dict((ord(char), None) for char in string.punctuation)
prepositions = ['и', 'в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'с', 'у', 'за', 'над', 'об', 'под', 'про', 'для']

with open('WarAndPeace.txt', encoding='utf-8') as fh:
    text = fh.read()
    clean_data = text.translate(punctuation_map)
    words = Counter(word.strip().lower() for word in clean_data.split() if word not in prepositions)

print(words.most_common(1))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы