Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2023, 13:09   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Текст разбить на слова

здравствуйте, по сабжу, делаю это так:
Код:
import re
from re import findall
 
text = "кожно-венерологический диспансер"
# \w - любая буква (то, что может быть частью слова), а также цифры и знак нижнего подчёркивания _
words = re.findall(r'\w+', text)
print(words)
ответ
['кожно', 'венерологический', 'диспансер']
не есть гут, как получить такой ответ
['кожно-венерологический', 'диспансер']
в подобных случаях?, спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.11.2023, 14:13   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

нужно ли отличать "проаграмм-это код"?
p51x вне форума Ответить с цитированием
Старый 17.11.2023, 14:19   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
нужно ли отличать "проаграмм-это код"?
да, нужно
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.11.2023, 14:32   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

тогда нужен словарь
p51x вне форума Ответить с цитированием
Старый 17.11.2023, 14:42   #5
Steelcraft
Форумчанин
 
Регистрация: 13.03.2023
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
как получить такой ответ
['кожно-венерологический', 'диспансер']
в подобных случаях?, спасибо
Попробуйте:
Код:
[a-zA-Zа-яА-Я\-]+
Steelcraft вне форума Ответить с цитированием
Старый 17.11.2023, 21:39   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Код:
import re
from re import findall

text = "кожно-венерологический диспансер"
print(re.findall(r'\w+', text))
print(re.findall(r'[a-zA-Zа-яА-Я\-]+', text))
вроде гут
['кожно', 'венерологический', 'диспансер']
['кожно-венерологический', 'диспансер']
спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 18.11.2023, 14:10   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

и про букву ё не забываем))
re.findall(r'[a-zA-Zа-яёА-ЯЁ\-]+', text)
Ципихович Эндрю вне форума Ответить с цитированием
Старый 04.12.2023, 12:59   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

здравствуйте, текст на слова разбиваю так:
Код:
lst_words = re.findall(r'[a-zA-Zа-яёА-ЯЁ1-9\-]+', file) # текст разбить на слова
и код нашёл два слова:
"ского"
"скому"
которые понятно, что не слова, а где-то что-то я не предусмотрел, я их искал в тексте:
"-ского"
"-скому"
" ского"
" скому"
поиск не помог, что это может быть и как найти это нечто? спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 04.12.2023, 13:11   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Читайте пост 4, а то вы можете еще и такие слова, как щщщ ыыы гыоо лллош найти.
p51x вне форума Ответить с цитированием
Старый 04.12.2023, 13:55   #10
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

считаю это плохой затеей, чтобы разбить текст на слова загонять их в список и по нему разбивать
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текст разбить на слова и записать в новый документ shkolnik45 Microsoft Office Word 1 19.12.2021 01:19
Как разбить строку на слова? Le0n41 Общие вопросы C/C++ 2 24.11.2021 23:29
как разбить строки на слова? Lapo4ka Общие вопросы C/C++ 7 01.05.2011 17:09
разбить текст на слова yuliyayuliya Помощь студентам 2 05.04.2011 16:31
Разбить текст на слова и произвести поиск каждого слова по текстовому массиву Burning_brook Microsoft Office Excel 2 22.05.2010 01:56