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

 

Зміст


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ботан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

#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())

{.getline(stroki,100);++;

}.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;

}


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





Зміст 1. Постановка задачі . Опис алгоритму розвязання задачі та програми . Опис структури файлів . Опис програми . Специфікація функцій прог

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ