Програма для автоматизації перекладу слів
Особливості автоматизованого перекладу іноземних мов. Розробка програми для перекладу слів та певних мовних конструкцій молодіжного сленгу на загальновживану мову. Опис структури файлів. Специфікація функцій програми, оцінка достовірності результатів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 15.03.2014 |
Размер файла | 943,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Зміст
1. Постановка задачі
2. Опис алгоритму розв'язання задачі та програми
3. Опис структури файлів
4. Опис програми
5. Специфікація функцій програми
6. Оцінка достовірності результатів
Висновки
Література
Додаток
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.”
- вивести запитувані користувачем слова перекладу на екран консолі;
- вивести готовий переклад;
- виводити на консоль навіть ті слова, які перекласти не вдалося не змінюючи їх.
При введенні речень, які користувачеві потрібно перекласти, програма спочатку розбиває рядок з запитуваним словосполученням або реченням на лексеми - та перевіряє їх наявність у файлі-словнику. Послідовно аналізується кожен рядок у основній бібліотеці на наявність збігів. Кожна лексема, на які попередньо програма поділила вихідний текст, підлягає аналізу та пошукам її безпосереднього перекладу. У разі його знаходження, програма заміняє запитуване слово перекладом і виводить його на екран консолі.
Алгоритм розв'язку даного завдання має такий вигляд:
Размещено на http://www.allbest.ru/
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 років, що виник із протиставлення себе не стільки старшому поколінню, скільки офіційній системі. Існує в середовищі міської учнівської молоді та окремих замкнутих референтних групах.
Дана програма була розроблена для автоматизації не лише слів, а й певних мовних конструкцій молодіжного сленгу. Проте спеціалізація даного словника залежить від того, якими словами заповнений основний словник. Надалі дану програму варто вдосконалювати, а також неодмінно поповнювати бібліотеку новими словами.
Недоліком даної програми є відсутність графічного інтерфейсу користувача. Всі дії та результати роботи програми відображаються на екрані консолі.
Література
1. Информатика: Базовый курс: учебник для студентов / под ред. С. В. Симоновича. СПб.: Питер, 2002.
2. Левин А. Ш. Самоучитель работы на компьютере / А. Ш. Левин. 8-е изд. СПб.: Питер, 2004.
3. Леонтьев В. П. Новейшая энциклопедия персонального компьютера 2003 / В. П. Леонтьев. М.: ОЛМА-Пресс, 2003.
4. Могилев А. В. Информатика: учеб. пособие для студентов/ А. В. Могилев, Н. И. Пак, Е. К. Хеннер; под ред. Е. К. Хеннера. М.: Академия, 2001.
5. Мураховский В. И. Железо персонального компьютера: Практическое руководство / В. И. Мураховский, Г. А. Евсеев. М.: ДЕСС КОМ, 2001.
6. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы: учебник для студентов / В. Г. Олифер, Н. А. Олифер. СПб.: Питер, 2001.
Додаток
Код програми:
#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
Подобные документы
Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.
курсовая работа [335,3 K], добавлен 11.01.2015Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.
курсовая работа [5,3 M], добавлен 12.11.2011Порядок використання комп'ютера для автоматичного перекладу текстів, умови доцільності використання спеціального програмного забезпечення. Характеристика програми PROMT, її можливості та опис інтерфейсу, принцип та правила роботи. Переклад Web-сторінок.
реферат [14,9 K], добавлен 21.09.2009Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.
курсовая работа [2,3 M], добавлен 15.02.2012Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.
курсовая работа [762,8 K], добавлен 03.05.2015Варіантний аналіз та вибір методів розв’язування, основні поняття та визначення, особливості розробки баз даних. Описовий алгоритм головної програми та її структури, опис авторської заставки. Структура модулів та опис функцій, лістинг програми.
курсовая работа [2,6 M], добавлен 30.11.2009Опис структур даних та вмісту файлів з вхідними, вихідними даними. Проектування програми автоматизації процесу обліку (поставки та видачі) товарів для невеликого магазину. Математична постановка основних задач. Опис програмного інтерфейсу з користувачем.
курсовая работа [526,9 K], добавлен 07.10.2014Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Історія машинного перекладу як науково-прикладного напряму. Теорія машинного перекладу. Особливості використання систем, орієнтованих на персональні комп’ютери. Напрямки розвитку та застосування машинного перекладу. Приклади систем машинного перекладу.
реферат [21,5 K], добавлен 19.02.2011Розробка програми автоматизації роботи з матрицями. Оформлення даних у вигляді матриць цілих чисел. Перелік операцій над матрицями, які реалізуються у програмі. Програмне забезпечення, мови програмування. Опис логічної структури та алгоритм програми.
курсовая работа [312,2 K], добавлен 01.04.2016