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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    704,11 Кб
  • Опубликовано:
    2014-01-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Зміст

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

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

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

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

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

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

Висновки

Література

Додаток

 

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

ботан

заучка

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

машина

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

#includestricmp(const char *s1, const char *s2);

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

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


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

 

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

Висновки

 

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

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

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

Література


1.   Информатика: Базовый курс: учебник для студентов / под ред. С. В. Симоновича. СПб.: Питер, 2002.

2.      Левин А. Ш. Самоучитель работы на компьютере / А. Ш. Левин. 8-е изд. СПб.: Питер, 2004.

.        Леонтьев В. П. Новейшая энциклопедия персонального компьютера 2003 / В. П. Леонтьев. М.: ОЛМА-Пресс, 2003.

.        Могилев А. В. Информатика: учеб. пособие для студентов/ А. В. Могилев, Н. И. Пак, Е. К. Хеннер; под ред. Е. К. Хеннера. М.: Академия, 2001.

.        Мураховский В. И. Железо персонального компьютера: Практическое руководство / В. И. Мураховский, Г. А. Евсеев. М.: ДЕСС КОМ, 2001.

.        Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы: учебник для студентов / В. Г. Олифер, Н. А. Олифер. СПб.: Питер, 2001.

Додаток


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

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <fstream>

#include <string.h>namespace std;lines=0;lines2=0;dictionary

{word[200];translate[200];

};main()

{(0, "Russian");fin("dictionary.txt"); stroki[100];(!fin)

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

getch(); return 1;

}(!fin.eof())

}.clear(); // сброс флага eof.seekg(0);*p;*dic=new dictionary[lines];(int i=0; i<lines; i++)

{.getline(stroki,100);=strtok(stroki, ";");(dic[i].word, p); // копируем слово=strtok(NULL, ";");(dic[i].translate, p); // копируем перевод

}fin1("translator.txt");stroki2[100];(!fin1)

{<<"Ошибка";();1;

}(!fin1.eof())

{.getline(stroki2,100);++;<<stroki2<<endl;

}.clear(); // сброс флага eof.seekg(0);prob;(!fin1.eof())

{.getline(stroki2, 256);*p=strtok(stroki2, ".,:!?");(p!=NULL)

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

{(stricmp(p,dic[j].word)==0)<<dic[j].translate<<" ";if(stricmp(p,dic[j].word)!=0 && prob==lines-1)<<p<<" ";if(stricmp(p,dic[j].word)!=0)++;

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

}<<"."<<endl;

}();0;

}

Блок-схема алгоритму

 

 

 

Похожие работы на - Програма для автоматизації перекладу слів

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!