Я пытаюсь подсчитать количество символов пунктуации, появляющихся в романе. Например, я хочу найти вхождения вопросительных знаков и периодов вместе со всеми другими не алфавитно-цифровыми символами. Затем я хочу вставить их в файл csv. Я не уверен, как делать регулярное выражение, потому что у меня нет такого большого опыта работы с python. Кто-нибудь может мне помочь?Подсчет пунктуации в тексте с использованием Python и regex
texts=string.punctuation
counts=dict(Counter(w.lower() for w in re.findall(r"\w+", open(cwd+"/"+book).read())))
writer = csv.writer(open("author.csv", 'a'))
writer.writerow([counts.get(fieldname,0) for fieldname in texts])
Не делайте подсчет частоты с регулярным выражением. Просто зациклируйте символ по символу и отфильтруйте буквы, цифры и пробелы, и нажмите остальные в dict для подсчета частоты. Или другим способом является замена всех букв, цифр и пробелов, а затем цикл через оставшуюся строку (которая является более чистой). – nhahtdh
Вы побеждаете цель счетчика, опуская его инициализацию в словарь, а затем вызывая '.get (x, 0)', когда вы могли просто оставить его в качестве счетчика, который возвращает 0 для отсутствующих элементов – jamylak
, t нужно регулярное выражение, просто проверьте, является ли символ 'in' строкой префикса строки [string module] (http://docs.python.org/2/library/string.html#string.пунктуация) при повторении по роману –