Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8

Автоматическое разбиение текста на предложения в русском языке

20.05.2017, 20:24. Показов 4284. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, помогите написать пожалуйста программу на основе статьи.
Вложения
Тип файла: pdf 83.pdf (785.4 Кб, 23 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2017, 20:24
Ответы с готовыми решениями:

Ввод предложения на русском языке
Люди помогите разобраться, как ввести через консоль предложение на русском языке ?

Дан текстовый файл Т, содержащий предложения на русском языке.
Выровнять строки по правому краю, вставляя между словами дополнительные пробелы. За образец считать самую длинную строку.

Дано предложение на русском языке. Построить список слов предложения
Добрый вечер!) Помогите пожалуйста с заданием.. Дано предложение на русском языке. Построить список слов предложения. Список не должен...

4
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.05.2017, 22:28
Как вам помочь, если вы еще ничего не написали?
Если вам это нужно для реальной задачи - используйте готовые сегментаторы, типа sent_tokenize из пакета nltk.
Если для чего-то другого - для начала начните хоть что-то писать. Подход с помощью статистики требует знание статистики.
В nltk это реализовано регулярными выражениями: не всегда точно, но для многих случаев подойдет.
0
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8
21.05.2017, 05:03  [ТС]
в python я разбираюсь очень плохо, а делать надо. Программа нужна для сдачи экзамена. Понадеялась, что кто-то поделиться своими знаниями и подскажет хотя бы алгоритм.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.05.2017, 11:59
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-
import re
 
text = '''\
Это было интересное время. Начало распада великой империи и рождение
сразу двух новых (одной из них даже предстоит намного пережить своего
создателя). Вот в этот-то уже давно бурлящий, но еще не плеснувший через
край котел упала, буквально с неба, еще одна человеческая жизнь. Каплей,
чтобы исчезнуть бесследно, крупинкой ли соли - чтобы растворится, оставив
после себя память, камнем на самое дно - наблюдать отстраненно за крушением
миропорядка или щепкой в водовороте событий, а может и пулей - насквозь.
Так ли это важно? Как жить и где умирать - каждый выбирает сам, а решает -
судьба.'''
 
ls = re.split(r'[\.\?!]', text)
print(ls)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.05.2017, 14:06
Это неправильный в общем случае вариант. Он оставляет пустые строки и удаляет знаки терминирующие предложение.
Если уж пользоваться примитивами разбивки, то так:
Python
1
2
3
s = re.sub(r'\s+', ' ', text, flags=re.M)
for idx, s in enumerate(re.split(r'(?<=[.!?…]) ', s)):
    print('[{}]{}'.format(idx+1,s))
И потом, это не имеет отношения ни к статистич. подходу, ни к машинному обучению, ни к rule-based грамматикам. То есть к тому, что описывается в статье.

Добавлено через 8 минут
И, как я уже указал, есть nltk, где сегментация текста на предложения реализована на очень высоком уровне, хотя она и недостаточно точная в сравнении с методами сегментации основанными на статистич. подходах.

Добавлено через 27 минут
irinamiass2212,
Насчет nltk я немного ошибся - авторы более ответственно подошли к задаче и реализовали подход не на голых регулярках, а применили более сложный алгоритм с подсчетом частотных характеристик и грамматическими эвристиками.
source
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2017, 14:06
Помогаю со студенческими работами здесь

Разбиение текста на предложения
Задача такова - создать текстовый файл, программа должна разбить этот текст на предложения, учитывая : 1. . 2. ... 3. ! 4. !!! 5....

Разбиение текста на предложения
Здравствуйте. Есть текст: Как мне разбить его на предложения? Я сделал так: Tmp-&gt;StrictDelimiter = true; ...

Разбиение текста на абзацы, предложения и слова
привет всем, нужно разбить текст с файла на абзаци и записать абзаци в List, потом с этого List разбить абзаци на предложения и записать их...

Вывод текста на русском языке
Добрый вечер, помогите пожалуйста переделать программу, чтобы она считывала русский буквы initGame(); stop(); function...

Разбиение текста на предложения и поиск в предложениях последних слов
Добрый день! Дана задача на использование библиотеки cstring для умения работать с классической C-строкой. Необходимо из введённого текста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru