Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП1.docx
Скачиваний:
2
Добавлен:
29.06.2023
Размер:
133.63 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра безопасности информационных систем (БИС)

автоматизированный анализ текста на естественном языке

Отчет по лабораторной работе №1

по дисциплине «Языки программирования»

Студент гр.739-1

_______ М. Д. Климанов

24.09.2020

Принял

Младший научный сотрудник

______ ______ В. А. Полюга

24.09.2020

Томск 2020

Содержание

Содержание 2

1 Введение 3

2 Ход работы 4

2.1 Теоретические сведения 4

2.2 Задание 4

3 Заключение 7

Приложение А 9

Приложение Б 10

1 Введение

Цель работы: закрепить знания, полученные при изучении учебных курсов по программированию. Познакомиться с алгоритмами обработки текста.

Задание: разработать программу, которая будет определять и выводить концы предложений в русском тексте разных стилей: научный, официально-деловой, публицистический, художественный и разговорный-обиходный на языке Python.

2 Ход работы

2.1 Теоретические сведения

Синтаксический анализ — это процесс сопоставления линейной последовательности лексем (слов, токенов) языка с его формальной грамматикой.

Лексический анализ — процесс аналитического разбора входной последовательности символов с целью получения на выходе последовательности символов, называемых «токенами» (подобно группировке букв в слова). Группа символов входной последовательности, идентифицируемая на выходе процесса как токен, называется лексемой. В процессе лексического анализа производится распознавание и выделение лексем из входной последовательности символов.

Семантический анализ — этап в последовательности действий алгоритма автоматического понимания текстов, заключающийся в выделении семантических отношений, формировании семантического представления текстов.

2.2 Задание

Условие: разработать программу, которая будет определять и выводить концы предложений в русском тексте разных стилей: научный, официально-деловой, публицистический и художественный на языке Python.

Для начала составим блок-схему, изображенную на рисунке 2.1

Рисунок 2. 1 – Блок-схема

На языке Python данный алгоритм может выглядеть вот так:

Считывание текста из файла:

import re

input_filename = "../txt.txt"

Регулярное выражение и его вывод:

lookfor = r" ([\w](((т\.к\.)| (т\.е\.)|(\w\))| (\W\")|([А-Я]\.[А-Я]\.) |(г\.)|(\s\() |(т\.\w)|(\d\.\s*)) |[^?!.)(])*[.?!)(])"

results = re.findall(lookfor, mytext)

for item in results:

print(item[0])

Полный листинг программы представлен в приложении А.

Данная программа определяет конец предложения и выводит все предложения с новой строки. Учитывая разнообразие русского языка, учесть все моменты, когда действительно заканчивается предложение – невозможно. Программа работает в тех случаях, когда текст относительно простой: перед точками/вопросительными/восклицательными знаками нет пробелов, между дробной и целой частью числа нет пробела, предложения не начинаются с фамилии, имени и отчества, то пишутся в конце предложения вместе, между инициалами ставится пробел.

Пример правильной работы программы для текста, указанного в приложении Б, представлен на рисунке 2.2.

Рисунок 2.2 – Результат работы программы

3 Заключение

В ходе выполнения лабораторной работы закреплены знания, полученные при изучении учебных курcов по программированию, получены навыки составления алгоритмов обработки текста.

Была разработана программа, которая будет определять и выводить концы предложений в русском тексте разных стилей на языке C#.

Отчет был написан согласно ГОСТ ОС ТУСУР.

Список использованных источников

1 Романов, А.С. Методические указания. Автоматизированный анализ текста на естественном языке, 2014. – 9 с.

Соседние файлы в предмете Языки программирования