Програма для автоматизації перекладу слів

Переклад слів з однієї мови на іншу. Опис структури файлів. Специфікація функцій програми. Робота користувача з файлом під назвою "translator". Поділ мовних конструкцій на лексеми. Програма перекладу слів молодіжного сленгу на загальновживану мову.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 23.04.2014
Размер файла 453,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

1. Постановка задачі.

2. Опис алгоритму розв'язання задачі та програми

3. Опис структури файлів

4. Опис програми

5. Специфікація функцій програми

6. Оцінка достовірності результатів

7. Висновки

8. Додатки: код програми, блок-схеми алгоритмів

9. Література

1. Постановка задачі

Переклад є однією з важливих форм міжкультурних взаємин. Оскільки знання іноземних мов і в давні часи, і сьогодні не можна назвати масовим, перекладачі виступають посередниками між народами, які спілкуються в найрізноманітніших сферах життя.

Спочатку переклад виконувався винятково людиною, але були спроби автоматизувати та комп'ютеризувати переклад текстів природними мовами (машинний переклад) (англ. MT -- Machine Translation) або використовувати комп'ютери в якості допоміжних засобів при перекладі (автоматизований переклад) (англ. CAT -- computer aided translation).

В наш час найчастіше використовується автоматичний(машинний) переклад:

· переклад текстів (письмових та усних) з однієї природної мови на іншу за допомогою комп'ютера;

· напрямок наукових досліджень, пов'язаний з побудовою перекладних систем.

На базовому рівні робота комп'ютерних програм для перекладу полягає у заміні слів чи словосполучень з однієї мови на слова чи словосполучення з іншої. Однак тоді виникає проблема, що така заміна не може забезпечити якісний переклад тексту, адже потрібне визначення та розпізнавання слів та цілих фраз з мови оригіналу. Це спонукає активну наукову діяльність у галузі комп'ютерної лінгвістики.

Автоматизований переклад

Замість «машинний» іноді вживається слово автоматичний, що не впливає на сенс. Проте, термін автоматизований переклад, має зовсім інше значення -- в такому випадку програма просто допомагає людині перекладати тексти.

Автоматизований переклад передбачає такі форми взаємодії:

· Частково автоматизований переклад: наприклад, використання перекладачем-людиною комп'ютерних словників.

· Системи з поділом праці: комп'ютер навчений перекладати тільки фрази жорстко заданої структури (але робить це так, що виправляти за ним не потрібно), а все, що не вклалося в схему, віддає людині.

Існують два принципово різних підходи до побудови алгоритмів машинного перекладу: заснований на правилах (rule-based) і статистичний, або заснований на статистиці (statistical-based). Перший підхід є традиційним і використовується більшістю розробників систем машинного перекладу (ПРОМТ в Росії, SYSTRAN у Франції, Linguatec у Німеччині тощо).

До другого типу належить популярний сервіс: Перекладач компанії Google, а також новий сервіс від ABBYY

Програма розробляється на мові С + + , як консольний або діалоговий додаток.

2. Опис алгоритму розв'язання задачі та програми

Завданням даної програми є переклад слів з однієї мови на іншу.

Програма передбачає безпосередню роботу користувача з файлами, які створювалися в ході розробки даного програмного продукту. Користувачеві необхідно запустити текстовий документ у форматі txt., під назвою “translator” і ввести потрібне для перекладу слово або ж набір слів чи цілі речення і зберегти, далі запустити саму програму, яка автоматизує переклад слів. У разі виконання всіх вимог програми, на екрані з'явиться переклад запитуваних користувачем слів, словосполучень або ж речень. Програма дозволяє перекладати текст, який записаний не лише в одному рядку.

У випадку, якщо програма не знайде збігів між введеним словом у вихідному файлі і між словами, які збережені в основній бібліотеці слів молодіжного сленгу, програма виконає переклад лише тих конструкцій, які є в словнику. Решта слів залишаться без зміни, проте також будуть відображатися на консолі в контексті з перекладом. У такому випадку це означає, що або дані слова за своєю тематикою не належать до молодіжного сленгу, або ж свідчить про те, що можливо було допущено помилки у його написанні.

Вирішення цієї задачі передбачає собою створення обов'язкового елемента, без якого, рішення даного питання було б неможливим, а саме створення структури. В даній програмі ця структура представлена способом описаним нижче.

Структура на ім'я «dictionary», містить наступні поля та методи:

- word - слово яке потрібно перекласти;

- translate - переклад слова;

Поля структури приймають значення, вказані у файлі "dictionary.txt". В результаті виконання програма виводить на консоль початковий текст, введений користувачем та попередньо збережений у файлі “translator” , а нижче відображає і його переклад.

Програма має виконувати наступні дії:

- створення динамічного масиву об'єктів, розмірність якого дорівнює кількості рядків у файлі;

- читання з файлу "dictionary.txt" даних у масив об'єктів dictionary;

- зчитування з файлу “translator” запитуваного слова, яке користувач вводить з клавіатури, та пошук його перекладу у файлі “dictionary.txt.”

- вивести запитувані користувачем слова перекладу на екран консолі;

- вивести готовий переклад;

- виводити на консоль навіть ті слова, які перекласти не вдалося не змінюючи їх.

При введенні речень, які користувачеві потрібно перекласти, програма спочатку розбиває рядок з запитуваним словосполученням або реченням на лексеми - та перевіряє їх наявність у файлі-словнику. Послідовно аналізується кожен рядок у основній бібліотеці на наявність збігів. Кожна лексема, на які попередньо програма поділила вихідний текст, підлягає аналізу та пошукам її безпосереднього перекладу. У разі його знаходження, програма заміняє запитуване слово перекладом і виводить його на екран консолі.

Алгоритм розв'язку даного завдання має такий вигляд:

3. Опис структури файлів

Для мінімального рішення необхідно створити 2 файли:

Ш “dictionary.txt” - файл у якому зберігається словник. Слова та їхній переклад розділені між собою розділовим знаком - “;” (Мал.1.)

Мал.1. Словник “dictionary.txt”

Ш “translator” - файл у якому розміщено вихідний текст який і потрібно перекласти. (Мал.2.)

Мал.2. Файл для введення користувачем запиту.

4. Опис програми

Робота даної програми базується на двох файлах: “dictionary.txt” і “translator”, а також на структурі, яка в розробці даної програми відповідатиме за присвоєння сленговому слову його перекладу із словника.

Програма передбачає собою насамперед роботу користувача з файлом під назвою “translator”. Відповідно, відкривши його, потрібно ввести необхідне для перекладу словосполучення або ж речення. При цьому варто пам'ятати, що після введення вихідного тексту у файлі не повинно залишитися порожнього рядка. Програма сприймає це як помилку, тому працює неправильно.

Дані інформації обробляються за допомогою функції strtok, після чого програма починає пошуки слів, з яких складається речення, запитуване користувачем , у файлі “translator”. Найважливішим файлом у даній програмі являється словник - “dictionary”. У ньому збережено слова молодіжного сленгу та їх безпосередній переклад. Слово та переклад у файлі розділені «;». Відповідно сама програма орієнтується на пошуки цього розділового знаку для того, щоб розділити в файлі слово з його перекладом. При введенні слів варто звернути увагу на їх написання. Адже одна помилка в слові не дає можливості програмі його розпізнати, а тому замість перекладу, користувач побачить це саме слово записане без змін. В таблиці1 представлено дані, які містяться у файлі “dictionary.txt”.

Таблиця 1

Слово

Перевод

1

абитура

1

абитуриенты

2

бабки

2

деньги

3

ботан

3

заучка

4

бошка

4

голова

5

бутер

5

бутерброд

6

виснуть

6

тормозить

7

водила

7

водитель

8

впаривать

8

продавать

9

въезжать

9

понимать

10

глюк

10

галлюцинация

11

движок

11

стимул

12

двинуть

12

ударить

13

дискач

13

дискотека

14

жратва

14

еда

15

задрало

15

надоело

16

кайф

16

наслаждение

17

кадр

17

смешной

18

кандыбать

18

идти

19

кашак

19

кот

20

косарь

20

тысяча

21

лажа

21

ошибка

22

ласты

22

ноги

23

лям

23

миллион

24

махач

24

драка

25

мент

25

милиционер

26

музон

26

музыка

27

напряг

27

проблема

28

нарик

28

наркоман

29

облом

29

неудача

30

опускать

30

унижать

31

отмазка

31

оправдание

32

отрываться

32

веселиться

33

погоняло

33

кличка

34

предки

34

родители

35

ржать

35

смеяться

36

стеб

36

насмешка

37

стремно

37

страшно

38

студак

38

студенческий

39

тачка

39

машина

40

терки

40

конфликт

41

уши

41

наушники

42

фейс

42

лицо

43

харе

43

хватит

44

шарить

44

разбираться

45

юзать

45

использовать

46

ящик

46

телевизор

5. Специфікація функцій програми

Одним із найважливіших завдань програми є поділ мовних конструкцій на лексеми. Рішення цього питання ми досягли за допомогою стандартної функції strtok, яку вдалося використати, підключивши бібліотеку <string.h>.

Є також функції цієї ж бібліотеки: strcpy і stricmp.

· Функція strtok

#include <string.h>

char *strtok(char *str1, const char *str2);

Функція strtok () повертає показник на наступну лексему в рядку, що адресується параметром str1. Символи, що утворюють рядок, адресуються параметром str2, являють собою роздільники, які визначають лексему. При відсутності лексеми, яка підлягає поверненню, повертається нульовий покажчик.

· Функція strcpy

#include <string.h>

char *strcpy (char *dst, const char *src);

Функція strcpy () копіює вміст рядка str2 в рядок str1. Параметр str2 повинен вказувати на рядок із завершальним нульовим символом. Функція strcpy () повертає значення покажчика str1.

· Функція stricmp

#include

int stricmp(const char *s1, const char *s2);

Функція stricmp виконує беззнакове порівняння рядків s1 і s2, починаючи з першого символу в кожному рядку і, продовжуючи порівняння наступних символів до тих пір, поки не зустрінуться неспівпадаючі символи або не закінчаться рядки.

6. Оцінка достовірності результатів

переклад слово мова файл

Необхідною умовою нормальної роботи даного словника є безпосередній контакт користувача з файлами, та введення в них слів, які повинні бути перекладеними. Даний словник передбачає переклад слів молодіжного сленгу на загальновживану мову, тому використовувати його доцільно для висловів, якими користується молодь. Варто знати, що в вихідному файлі всі слова варто вводити російськими або українськими літерами. Для того, щоб програма коректно переклала ваше речення або слово, потрібно ознайомитись зі словником в текстовому файлі «dictionary», який також можливо змінювати .

Мал.3. Результат роботи програми.

Висновки

Молодіжний сленг - соціолект людей у віці 12 - 22 років, що виник із протиставлення себе не стільки старшому поколінню, скільки офіційній системі. Існує в середовищі міської учнівської молоді та окремих замкнутих референтних групах.

Дана програма була розроблена для автоматизації не лише слів, а й певних мовних конструкцій молодіжного сленгу . Проте спеціалізація даного словника залежить від того, якими словами заповнений основний словник. Надалі дану програму варто вдосконалювати, а також неодмінно поповнювати бібліотеку новими словами.

Недоліком даної програми є відсутність графічного інтерфейсу користувача. Всі дії та результати роботи програми відображаються на екрані консолі.

// Открываем файл для вывода

ofstream

// открываем тот же файл для ввода

ifstream

Додатки:

Код програми:

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <fstream>

#include <string.h>

using namespace std;

int lines=0;

int lines2=0;

struct dictionary

{

char word[200];

char translate[200];

};

int main()

{

setlocale (0, "Russian");

ifstream fin("dictionary.txt");

char stroki[100];

if(!fin)

{

cout<<"Файл не может быть открыт";

getch(); return 1;

}

while(!fin.eof())

{

fin.getline(stroki,100);

lines++;

}

fin.clear(); // сброс флага eof

fin.seekg(0);

char *p;

dictionary *dic=new dictionary[lines];

for(int i=0; i<lines; i++)

{

fin.getline(stroki,100);

p=strtok(stroki, ";");

strcpy(dic[i].word, p); // копируем слово

p=strtok(NULL, ";");

strcpy(dic[i].translate, p); // копируем перевод

}

ifstream fin1("translator.txt");

char stroki2[100];

if(!fin1)

{

cout<<"Ошибка";

getch();

return 1;

}

while(!fin1.eof())

{

fin1.getline(stroki2,100);

lines2++;

cout<<stroki2<<endl;

}

fin1.clear(); // сброс флага eof

fin1.seekg(0);

int prob;

while(!fin1.eof())

{

fin1.getline(stroki2, 256);

char *p=strtok(stroki2, " .,:!?");

while(p!=NULL)

{

prob=0;

for(int j=0; j<lines; j++)

{

if(stricmp(p,dic[j].word)==0)

cout<<dic[j].translate<<" ";

else if(stricmp(p,dic[j].word)!=0 && prob==lines-1)

cout<<p<<" ";

else if(stricmp(p,dic[j].word)!=0)

prob++;

}

p=strtok(NULL, " ,./;':><?!");

}

cout<<"."<<endl;

}

getch();

return 0;

}

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [943,8 K], добавлен 15.03.2014

  • Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.

    курсовая работа [335,3 K], добавлен 11.01.2015

  • Опис структури даних та вимоги до них. Характеристика файлів та їх призначення. Процедури та функції користувача. Опис стандартних процедур та функцій, що використовувались у програмі. Інструкція для роботи з програмою: програмісту, користувачу.

    курсовая работа [1,2 M], добавлен 21.01.2012

  • Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.

    курсовая работа [5,3 M], добавлен 12.11.2011

  • Порядок використання комп'ютера для автоматичного перекладу текстів, умови доцільності використання спеціального програмного забезпечення. Характеристика програми PROMT, її можливості та опис інтерфейсу, принцип та правила роботи. Переклад Web-сторінок.

    реферат [14,9 K], добавлен 21.09.2009

  • Опис структури даних та вимоги до них, процедур і функцій користувача, файлів та їх призначення. Інструкція для роботи з програмою. Результати роботи програми, її структура та функціональні компоненти, принципи роботи та сфери практичного застосування.

    курсовая работа [330,6 K], добавлен 04.02.2015

  • Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.

    курсовая работа [2,3 M], добавлен 15.02.2012

  • Загальні відомості про мову програмування, історія створення та використовування. Програма мовою Паскаль складається з лексем і символів – розділювачів. Робота з масивами, створення алгортимів. Складання програм з використанням процедур та функцій.

    реферат [18,3 K], добавлен 22.10.2010

  • Причини та історія виникнення машинного перекладу. Його функції, можливості, переваги та недоліки. Основні підходи до автоматичного перекладу. Принцип роботи Google Translator Toolkit, порівняння системи з її аналогами та іншими онлайн-сервісами.

    дипломная работа [1,7 M], добавлен 16.07.2013

  • Розробка програми автоматизації роботи з матрицями. Оформлення даних у вигляді матриць цілих чисел. Перелік операцій над матрицями, які реалізуються у програмі. Програмне забезпечення, мови програмування. Опис логічної структури та алгоритм програми.

    курсовая работа [312,2 K], добавлен 01.04.2016

  • Особливості об'єктно-орієнтованого програмування. Розробка програми для елементарних математичних розрахунків, виведення результату на екран та запису у файлі. Сортування слів у рядку. Програма, яка реалізовує ходи шахових фігур. Програма-калькулятор.

    отчет по практике [2,0 M], добавлен 19.03.2015

  • Розробка програми для синхронізації та резервного копіювання даних на основі функцій Windows API. Методи отримання шляхів папок. Синхронізація та резервне копіювання файлів або папок. Застосування основ мови програмування С, функцій Windows API.

    курсовая работа [366,5 K], добавлен 21.05.2019

  • Призначення ігрової програми "Змійка" для розвитку уваги та логічного мислення гравців. Розробка програми в середовищі C++ Builder 6, її функціонування в ОС Windows. Опис алгоритму та основних функцій програми. Основні переваги та недоліки мови С++.

    реферат [1,7 M], добавлен 17.12.2014

  • Дослідження динамічних рядів методом найменших квадратів та ковзаючого середнього. Опис логічної структури програми. Стандартні методи та елементи середовища програмування Borland Delphi 2007. Опис функцій складових частин програми і зв'язків між ними.

    курсовая работа [135,3 K], добавлен 01.04.2016

  • Побудування блок-схеми рішення завдання зі знайдення центра ваги однорідної усіченої призми. Розробка програми за допомогою язика програмування C++, опис змінних та функцій програми та загальної математичної моделі. Розробка інструкції користувача.

    курсовая работа [1,1 M], добавлен 04.01.2012

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Порядок проектування програми для перегляду текстових файлів різного розміру, сфера її практичного застосування та алгоритм написання. Опис і обґрунтування проектних рішень системи. Інструкція користувача та текст програми, проведення її листингу.

    курсовая работа [20,7 K], добавлен 08.08.2009

  • Компаратори слів (схеми порівняння) – це комбінаційні цифрові вузли, які виконують функцію порівняння двох кодових слів визначеної розрядності. Основними операціями є визначення ознаки рівності/нерівності двох n-розрядних чисел. Синтез схеми порівняння.

    лекция [302,1 K], добавлен 13.04.2008

  • Модель обробки файлів растрових зображень. Середній квадрат яскравості. Фільтри для виділення перепадів і границь. Опис та обґрунтування вибору складу технічних та програмних засобів. Опис інтерфейсу програми. Зображення діалогового вікна програми.

    курсовая работа [664,3 K], добавлен 30.06.2009

  • Програми лінійної та розгалуженої структури. Програмна реалізація функцій для роботи з датою та часом. Робота з візуальними компонентами керування. Створення інтерфейсу користувача стандартними подіями. Глобальні ідентифікатори Screen, Mouse, Application.

    отчет по практике [1,3 M], добавлен 24.02.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.