Поиск слов в англо-русском словаре

Начальное формирование данных обо всех словах в виде списка. Поиск заданного слова в словаре и печать его толкования. Поиск синонимов – слов с одинаковыми значениями на русском языке и подсчет их количества. Описание классов и их программная реализация.

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

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

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

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

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

Новосибирская государственная академия водного транспорта

Кафедра информационных систем

Курсовой проект

по дисциплине «Технология программирования»

Вариант №7

«Поиск слов в англо-русском словаре»

Выполнил

Студент

Горяинов А.С.

Группа: ИТ-21а

Проверил

Преподаватель

Морозов Ю.В.

2012 г.

Формулировка задания

Составить программу, которая управляет поиском слов в англо- русском словаре:

Сведения о каждом слове содержат:

· Слово на английском языке

· Часть речи

· Значение на русском языке

Программа должна решать следующие задачи:

· Начальное формирование данных обо всех словах в виде списка.

· Поиск заданного слова в словаре и печать его толкования

· Поиск синонимов - слов с одинаковыми значениями на русском языке и подсчет их количества.

Информационные системы в словарях

МАШИННЫЙ ПЕРЕВОД- это выполняемое на компьютере действие по преобразованию текста на одном естественном языке в эквивалентный по содержанию текст на другом языке, а также результат такого действия. Современный машинный, или автоматический перевод осуществляется с помощью человека: пред-редактора, который тем или иным образом предварительно обрабатывает подлежащий переводу текст, интер-редактора, который участвует в процессе перевода, или пост-редактора, который исправляет ошибки и недочеты в переведенном машиной тексте.

Для осуществления машинного перевода в компьютер вводится специальная программа, реализующая алгоритм перевода, под которым понимается последовательность однозначно и строго определенных действий над текстом для нахождения переводных соответствий в данной паре языков L1 - L2 при заданном направлении перевода (с одного конкретного языка на другой). Система машинного перевода включает в себя двуязычные словари, снабженные необходимой грамматической информацией (морфологической, синтаксической и семантической) для обеспечения передачи эквивалентных, вариантных и трансформационных переводных соответствий, а также алгоритмические средства грамматического анализа, реализующие какую-либо из принятых для автоматической переработки текста формальных грамматик. Имеются также отдельные системы машинного перевода, рассчитанные на перевод в рамках трех и более языков, но они в настоящее время являются экспериментальными.

Наиболее распространенной является следующая последовательность формальных операций, обеспечивающих анализ и синтез в системе машинного перевода:

1. На первом этапе осуществляется ввод текста и поиск входных словоформ (слов в конкретной грамматической форме, например дательного падежа множественного числа) во входном словаре (словаре языка, с которого производится перевод) с сопутствующим морфологическим анализом, в ходе которого устанавливается принадлежность данной словоформы к определенной лексеме (слову как единице словаря). В процессе анализа из формы слова могут быть получены также сведения, относящиеся к другим уровням организации языковой системы.

2. Следующий этап включает в себя перевод идиоматических словосочетаний, фразеологических единств или штампов данной предметной области (например, при англо-русском переводе обороты типаin case of, in accordance with получают единый цифровой эквивалент и исключаются из дальнейшего грамматического анализа); определение основных грамматических (морфологических, синтаксических, семантических и лексических) характеристик элементов входного текста (например, числа существительных, времени глагола, синтаксических функций словоформ в данном тексте и пр.), производимое в рамках входного языка; разрешение омографии (конверсионной омонимии словоформ - скажем, англ. round может быть существительным, прилагательным, наречием, глаголом или же предлогом); лексический анализ и перевод лексем. Обычно на этом этапе однозначные слова отделяются от многозначных (имеющих более одного переводного эквивалента в выходном языке), после чего однозначные слова переводятся по спискам эквивалентов, а для перевода многозначных слов используются так называемые контекстологические словари, словарные статьи которых представляют собой алгоритмы запроса к контексту на наличие/отсутствие контекстных определителей значения.

3. Окончательный грамматический анализ, в ходе которого доопределяется необходимая грамматическая информация с учетом данных выходного языка (например, при русских существительных типа сани, ножницы глагол должен стоять в форме множественного числа, при том что в оригинале может быть и единственное число).

4. Синтез выходных словоформ и предложения в целом на выходном языке.

В зависимости от особенностей морфологии, синтаксиса и семантики конкретной языковой пары, а также направления перевода общий алгоритм перевода может включать и другие этапы, а также модификации названных этапов или порядка их следования, но вариации такого рода в современных системах, как правило, незначительны. Анализ и синтез могут производиться как по фразно, так и для всего текста, введенного в память компьютера; в последнем случае алгоритм перевода предусматривает определение так называемых анафорических связей (такова, например, связь местоимения с замещаемым им существительным - скажем, местоимения им со словом местоимения в самом этом пояснении в скобках).

Действующие системы машинного перевода ориентированы на конкретные пары языков (например, французский и русский или японский и английский) и используют, как правило, переводные соответствия либо на поверхностном уровне, либо на некотором промежуточном уровне между входным и выходным языком. Качество машинного перевода зависит от объема словаря, объема информации, приписываемой лексическим единицам, от тщательности составления и проверки работы алгоритмов анализа и синтеза, от эффективности программного обеспечения. Современные аппаратные и программные средства допускают использование словарей большого объема, содержащих подробную грамматическую информацию. Информация может быть представлена как в декларативной (описательной), так и в процедурной (учитывающей потребности алгоритма) форме.

Современный машинный перевод следует отличать от использования компьютеров в помощь человеку-переводчику. В последнем случае имеется в виду автоматический словарь, помогающий человеку быстрее подбирать нужный переводной эквивалент. Хотя и в том, и в другом случае компьютер работает вместе с человеком (переводчиком или редактором), в содержание термина «машинный перевод» входит представление о том, что главную, бoльшую часть работы по переводу и отысканию переводных эквивалентов и переводных соответствий машина берет на себя, оставляя человеку лишь контроль и исправление ошибок, в то время как компьютерный словарь в помощь человеку - это чисто вспомогательное средство для быстрого нахождения переводных соответствий; при этом, однако, в такого рода словарях в ограниченной степени могут быть реализованы и некоторые функции, присущие системам машинного перевода.

В практике переводческой деятельности и в информационной технологии различаются два основных подхода к машинному переводу. С одной стороны, результаты машинного перевода могут быть использованы для поверхностного ознакомления с содержанием документа на незнакомом языке. В этом случае он может использоваться как сигнальная информация и не требует тщательного редактирования. Другой подход предполагает использование машинного перевода вместо обычного «человеческого». Это предполагает тщательное редактирование и настройку системы перевода на определенную предметную область. Здесь играют роль полнота словаря, ориентированность его на содержание и набор языковых средств переводимых текстов, эффективность способов разрешения лексической многозначности, результативность работы алгоритмов извлечения грамматической информации, нахождения переводных соответствий и алгоритмов синтеза. На практике перевод такого типа становится экономически выгодным, если объем переводимых текстов достаточно велик (не менее нескольких десятков тысяч страниц в год), если тексты достаточно однородны, словари системы полны и допускают дальнейшее расширение, а программное обеспечение удобно для пост-редактирования. Такого рода системы машинного перевода используются в организациях, потребности которых в оперативных и качественных переводах достаточно велики.

Теоретической основой начального (конец 1940-х - начало 1950-х годов) периода работ по машинному переводу был взгляд на язык как кодовую систему. Пионерами МП были математики и инженеры. Описания их первых опытов, связанных с использованием только что появившихся ЭВМ для решения криптографических задач, были опубликованы в США в конце 1940-х годов. Датой рождения машинного перевода как исследовательской области обычно считают март 1947; именно тогда специалист по криптографии Уоррен Уивер в своем письме Норберту Винеру впервые поставил задачу машинного перевода, сравнив ее с задачей дешифровки.

Тот же Уивер после ряда дискуссий составил в 1949 меморандум, в котором теоретически обосновал принципиальную возможность создания систем машинного перевода. Вскоре началось финансирование исследований; в 1952 состоялась первая конференция по машинному переводу, организованная логиком и математиком Й.Бар-Хиллелом.

Помимо очевидных практических нужд важную роль в становлении машинного перевода сыграло то обстоятельство, что предложенный в 1950 английским математиком А.Тьюрингом знаменитый тест на разумность («тест Тьюринга») фактически заменил вопрос о том, может ли машина мыслить, на вопрос о том, может ли машина общаться с человеком на естественном языке таким образом, что тот не в состоянии будет отличить ее от собеседника-человека. Тем самым вопросы компьютерной обработки естественноязыковых сообщений на десятилетия оказались в центре исследований по кибернетике (а впоследствии по искусственному интеллекту), а между математиками, программистами и инженерами-компьютерщиками, с одной стороны, и лингвистами - с другой установилось продуктивное сотрудничество.

В 1954 общественности были предъявлены первые результаты: фирма IBM совместно с Джорджтаунским университетом (США) успешно осуществили первый эксперимент (вошедший в историю под названием Джорджтаунского), в ходе которого система, использовавшая словарь из 250 слов и грамматику из 6 синтаксических правил, осуществила перевод 49 заранее отобранных предложений. В том же 1954 первый эксперимент по машинному переводу был осуществлен в СССР И.К.Бельской (лингвистическая часть) и Д.Ю.Пановым (программная часть) в Институте точной механики и вычислительной техники Академии наук СССР, а первый промышленно пригодный алгоритм машинного перевода и система машинного перевода с английского языка на русский на универсальной вычислительной машине были разработаны коллективом под руководством Ю.А.Моторина. После этого работы начались во многих информационных институтах, научных и учебных организациях страны.

Идея машинного перевода стимулировала развитие исследований в теоретическом и прикладном языкознании во всем мире. Появились теории формальных грамматик, большое внимание стало уделяться моделированию языка и отдельных его аспектов, языковой и мыслительной деятельности, вопросам языковой формы и количественных распределений лингвистических явлений. Возникли новые направления лингвистической науки - вычислительная, математическая, инженерная, статистическая, алгоритмическая лингвистика и ряд других отраслей прикладного и теоретического языкознания. В течение 1950-х годов в учебных центрах многих стран мира были открыты отделения прикладной лингвистики и машинного перевода. Так, в СССР такие отделения были созданы в Москве (МГУ им. М.В.Ломоносова, МГПИИЯ им. М.Тореза - ныне МГЛУ), в Минском МГПИИЯ, в Ереване, Махачкале, Ленинградском университете, в университетах Киева, Харькова, Новосибирска, ряда других городов. Исследования и разработки по машинному переводу развернулись также во Франции, Англии, США, Канаде, Италии, Германии, Японии, Нидерландах, Болгарии, Венгрии и других странах, а также в международных организациях, где велик объем переводов с различных языков. В настоящее время исследования по МП ведутся и в таких странах, как Малайзия, Саудовская Аравия, Иран и др.

Исследования по машинному переводу за свою пятидесятилетнюю историю переживали как подъемы, так и спады. В начале 1960-х годов завершился первоначальный эйфорический этап в развитии МП, чему в сильнейшей степени способствовала публикация так называемой «Черной книги машинного перевода» - доклада Специального комитета по прикладной лингвистике (ALPAC) Национальной академии наук США, в котором была констатирована невозможность создания в обозримом будущем универсальных систем высококачественного машинного перевода. Следствием этой публикации было сокращение финансирования и общее снижение интереса к проблематике МП, однако полного сворачивания исследований, в особенности теоретических, не произошло.

Новый подъем исследований в области МП начался в 1970-х годах и был связан с серьезными достижениями в области компьютерного моделирования интеллектуальной деятельности. Соответствующая область исследований, возникшая несколько позже МП (датой ее рождения обычно считают 1956), получила название искусственного интеллекта, а создание систем машинного перевода было осмыслено в 1970-е годы как одна из частных задач этого нового исследовательского направления.

Можно выделить два основных стимула к развитию работ по машинному переводу в современном мире. Первый - собственно научный; он определяется комплексностью и сложностью компьютерного моделирования перевода. Как вид языковой деятельности перевод затрагивает все уровни языка - от распознавания графем (и фонем при переводе устной речи) до передачи смысла высказывания и текста. Кроме того, для перевода характерна обратная связь и возможность сразу проверить теоретическую гипотезу об устройстве тех или иных языковых уровней и эффективности предлагаемых алгоритмов. Эта характеристическая черта перевода вообще и машинного перевода в частности привлекает внимание теоретиков, в результате чего продолжают возникать все новые теории автоматизации перевода и формализации языковых данных и процессов.

Второй стимул - социальный, и обусловлен он возрастающей ролью самой практики перевода в современном мире как необходимого условия обеспечения межъязыковой коммуникации, объем которой возрастает с каждым годом. Другие способы преодоления языковых барьеров на пути коммуникации - разработка или принятие единого языка, а также изучение иностранных языков - не могут сравниться с переводом по эффективности. С этой точки зрения можно утверждать, что альтернативы переводу нет, так что разработка качественных и высокопроизводительных систем машинного перевода способствует разрешению важнейших социально-коммуникативных задач.

В ходе развития идей и создания промышленных систем машинного перевода были разработаны способы автоматического морфологического анализа для основных европейских языков, методы автоматического обнаружения синтаксических структур, сформулированы требования к семантическим компонентам систем. В рамках эффективного международного сотрудничества и обмена терминологией созданы большие автоматические словари с разнообразной лексической информацией, банки терминологических данных по разным тематическим областям (например, словарь ЕВРОДИКАТОМ и ряд других словарей, тематика которых определялась тем обстоятельством, что практический машинный перевод чаще всего имеет дело с научными и техническими текстами). Результаты работ по МП способствовали началу и развитию исследований и разработок в области автоматизации информационного поиска, логического анализа естественно-языковых текстов, экспертных систем, способов представления знаний в вычислительных системах и т.д.

В СССР в качестве головной организации по машинному переводу был в 1974 определен Всесоюзный центр переводов научно-технической литературы и документации (ВЦП), взявший на себя координацию работ в масштабе страны. Под его эгидой был проведен ряд крупных международных научных конференций (1975, 1979, 1983, 1985, 1989) по машинному переводу и проблемам научно-технического перевода. В ВЦП были созданы промышленные системы машинного перевода с английского языка на русский АМПАР (на основе исследований и разработок коллектива Ю.А. Моторина), с немецкого языка на русский НЕРПА, с французского языка на русский ФРАП, автоматические терминологические словари в помощь человеку-переводчику. Система АМПАР длительное время находилась в промышленной эксплуатации; впоследствии на ее базе были созданы более эффективные системы МП для персональных компьютеров семейства СПРИНТ. В ВПЦ была также разработана система МП с русского языка на английский АСПЕРА. Большой вклад в разработку промышленных систем МП был сделан ленинградской общесоюзной группой «Статистика речи» под руководством Р.Г.Пиотровского, а также группами специалистов по компьютерной лингвистике в Минске (А.В.Зубов), Кишиневе (В.А.Чижаковский), Махачкале (А.И.Чапля), Чимкенте (К.Б.Бектаев), Самарканде (Х.А.Арзикулов) и др. На базе исследований и научно-практического подхода группы «Статистика речи» были впоследствии разработаны и сейчас находятся в коммерческом использовании такие системы машинного перевода, как Stylus, Socrat и другие.

В настоящее время в Российской Федерации продолжаются в незначительных масштабах некоторые работы по системам МП, основанным на подходе «текст-смысл-текст», не всегда явно проговариваемым лозунгом которого в момент обоснования этого подхода в 1960-х годов был «машинный перевод без перевода, без машин, без алгоритмов» (см. обзор работ этого направления, принадлежащий Л.Н. Беляевой и М.И. Откупщиковой). Идея подхода заключалась в том, что от лингвиста требуется только декларативное описание фактов языка (т.е. лингвистическая теория, претендующая, правда, на особую точность и формализованность), а алгоритмы перевода составят программист и математик. В рамках этих исследований были получены значительные теоретико-лингвистические результаты (в частности, создана теория так называемых лексических функций, нашедшая применение в лексикографии), однако для создания практических систем подобного рода подход оказался недостаточно эффективным. Все практические системы без исключения используют идею переводных соответствий, т.е. в их основе лежит модель «текст-текст» и они реализуют краткую схему перевода. Неизмеримо выросшие за последние десятилетия возможности вычислительной техники и новые программистские подходы никак не могут помочь реализовать идеи анализа и синтеза, основанные на приоритете выявления только синтаксической структуры с последующим переходом к смыслу. Выявление содержания текста в рамках человеко-машинного интерфейса может производиться, как и во всякой прикладной задаче, только с использованием как декларативных, так и процедурных знаний и при значительной опоре на лексику. Эта точка зрения обоснована, в частности, в недавних работах отечественного специалиста по программированию и искусственному интеллекту А.С.Нариньяни.

За рубежом эксплуатируется целый ряд систем машинного перевода. Наиболее известной из их числа является система SYSTRAN, разработанная и поддерживаемая компанией SYSTRAN Software Inc. и используемая службой машинного перевода при комиссии Европейского союза. Данная служба, объем переводов в которой составляет около 2,5 млн. страниц в год, использует систему SYSTRAN для перевода с английского на немецкий, французский, испанский, греческий и итальянский языки, а также с французского на английский, испанский и итальянский. В практической эксплуатации находится ряд практических систем исследовательского центра Гренобля (Франция), систему CULT (Гонконг, ныне КНР) и ряд других. На рынке коммерческого машинного перевода предлагаются системы таких фирм, как Logos Corp., Globalinc Inc., Toshiba Corp., CompuServe и др., в том числе и санкт-петербургская компания ПроМТ, выпустившая под названием PROMT 98 усовершенствованную версию популярной системы Stylus.

Проблематика машинного перевода находит свое отражение в регулярно проводимых международных конференциях по вычислительной лингвистике COLING, а также на международных конференциях по машинному переводу MT SUMMIT.

Технические инновации 1990-х годов (значительное расширение возможностей персональных компьютеров, появление качественных и доступных массовому пользователю сканеров и эффективных программ оптического распознавания текста, а также развитие глобальной компьютерной сети Internet и средств доступа к ней) придали новый стимул работам по МП, привлекли в данную область новые значительные инвестиции и увенчались серьезными практическими результатами - появлением достаточно эффективных систем машинного перевода и компьютерных словарей для работы на персональном компьютере (в том числе продуктов отечественных компаний ПроМТ, «Бит», «Арсеналъ», отчасти уже упомянутых выше); объединением систем МП с системами оптического распознавания текста и проверки орфографии; созданием специальных средств МП для работы в Internet, обеспечивающих либо перевод текстов на серверах соответствующих компаний, либо онлайновый перевод Web-страниц. В сочетании с пониманием ограничений МП и реалистической формулировкой целей его использования (прежде всего, это ознакомительно-реферативные цели, что хорошо соответствует базовой идеологии Internet как средства «навигации в информационном море») все это позволяет говорить об органичном встраивании систем МП в общий процесс формирования глобального информационного общества.

Эффективность работы современной системы МП в решающей степени зависит от ее удачной настройки на конкретный подъязык (или микроподъязык) естественного языка, на определенную лексику и ограниченный набор грамматических средств, характерных для текстов данной предметной области, а также на определенные типы документов. Учение о подъязыках с точки зрения машинного перевода было впервые сформулировано Н.Д.Андреевым (Ленинградский университет) в 1967, хотя представления о языковых регистрах, стилях, жанрах письменного текста и т.п. были хорошо известны и в традиционной лингвистике. Подъязык, с точки зрения МП, определяется в первую очередь некоторым исходным набором текстов, в рамках которого определяется входной и выходной словари, степень распространения и характер лексической неоднозначности лексем, характер и распространенность синтаксических конструкций, способы их перевода в данной языковой паре и пр. Большую роль играют параллельные тексты и словари-конкордансы, с помощью которых можно достаточно эффективно изучить и использовать в составлении алгоритмов лексическую сочетаемость и дистрибуцию (распределение) языковых элементов в речи (дискурсе, тексте). Статистические характеристики подъязыков помогают упорядочить структуру соответствующих алгоритмов анализа и синтеза. Выходной словарь, ориентированный на потребности синтеза и передачи основных видов соответствий в конкретной языковой паре, обеспечивает приемлемый выходной текст. В любом из современных видов машинного перевода необходимо участие человека-редактора, удобство работы которого обеспечивается качеством и надежностью соответствующего программного обеспечения.

Перспективы развития машинного перевода связаны с дальнейшей разработкой и углублением теории и практики перевода, как машинного, так и «человеческого». Для развития теории важны результаты сопоставительного языкознания, общей теории перевода, теории закономерных соответствий, способов представления знаний, оптимизации и совершенствования лингвистических алгоритмов. Новые и более эффективные словари с необходимой словарной информацией, строгие теории терминологизации лексики, теория и практика работы с подъязыками помогут повысить качество перевода лексических единиц. Формальные грамматики, ориентированные на перевод, дадут возможность оптимизировать алгоритмы нахождения переводных соответствий в данной коммуникативной ситуации, которая может быть описана в рамках соответствующих прикладных теорий представления знаний. Наконец, новые возможности программирования и вычислительной техники также будут вносить свой вклад в совершенствование и дальнейшее развитие теории и практики машинного перевода.

Описание классов и их программная реализация

Файл: slovar.h - класс описания элементов списка слов:

#pragma once

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

class slovar

{private:

char* slovo;

char* chast;

char* sinonim;

slovar* Next;

public:

slovar(void);

~slovar(void);

slovar(char*slovo1,char*chast1,char*sinonim1);

void Input(void);

void Print(void);

char*Getslovo(void);

char*Getchast(void);

char*Getsinonim(void);

slovar*GetNext(void);

void Setslovo(char*slovo1);

void Setchast(char*chast1);

void Setsinonim(char*sinonim1);

void SetNext(slovar*Next1);

};

Файл - slovarList.h - класс описания элементов списка синонимов:

#pragma once

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

#include "slovar.h"

class slovarList

{

private:slovar*Start;

public:

slovarList(void);

~slovarList(void);

void Print(void);

slovar* Findsinonim(void);

char Podschet(char *sinonim1);

void AddEnd(slovar &t1);

void AddStart(slovar &s2);

void DelEnd(void);

void DelStart(void);

};

Файл - slovar.срр - Класс списка перевода слова:

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

#include "slovar.h"

slovar::slovar(void)

{

slovo=NULL;

chast=NULL;

sinonim=NULL;

}

slovar::~slovar(void)

{

}

slovar::slovar(char *slovo1,char *chast1,char *sinonim1)

{

slovo=new char[strlen(slovo1)];

strcpy(slovo,slovo1);

chast=new char[strlen(chast1)];

strcpy(chast,chast1);

sinonim=new char[strlen(sinonim1)];

strcpy(sinonim,sinonim1);

}

void slovar::Input(void)

{

char slovo1[999];

printf("\n Vvedite slovo ispolzuya '_' vmesto ' ': ");

scanf("%s",slovo1);

slovo=new char[strlen(slovo1)];

strcpy(slovo,slovo1);

char chast1[999];

printf("\n Vvedite chast pechi ispolzuya '_' vmesto ' ': ");

scanf("%s",chast1);

chast=new char[strlen(chast1)];

strcpy(chast,chast1);

int i=0,n=0;

printf("Vvedite kol-vo sinonimov");

char sinonim1[999];

printf("\n Vvedite sinonim ispolzuya '_' vmesto ' ': ");

scanf("%s",sinonim1);

sinonim=new char[strlen(sinonim1)];

strcpy(sinonim,sinonim1);

}

void slovar::Setslovo(char *slovo1)

{

slovo=new char[strlen(slovo1)];

strcpy(slovo,slovo1);

}

void slovar::Setchast(char *chast1)

{

chast=new char[strlen(chast1)];

strcpy(chast,chast1);

}

void slovar::Setsinonim(char *sinonim1)

{

sinonim=new char[strlen(sinonim1)];

strcpy(sinonim,sinonim1);

}

void slovar::SetNext(slovar *Next1)

{

Next=Next1;

}

char*slovar::Getslovo(void)

{

return slovo;

}

char*slovar::Getchast(void)

{

return chast;

}

char*slovar::Getsinonim(void)

{

return sinonim;

}

slovar*slovar::GetNext(void)

{

return Next;

}

Файл - slovarList.cpp - Полное описание

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

#include "slovar.h"

#include "slovarList.h"

slovarList::slovarList(void)

{

Start=NULL;

}

slovarList::~slovarList(void)

{

}

slovar* slovarList::Findsinonim(void)

{

slovar*Cur;

char slovo1[100];

printf("\n Vvedite slovo: ");

scanf("%s",slovo1);

for(Cur=Start;Cur!=NULL;Cur=Cur->GetNext())

if(stricmp(slovo1,Cur->Getslovo())==0)

{

printf("\n slovo found!\n");

printf("\n %s",Cur->Getslovo());

printf("\n Chast pechi: %s",Cur->Getchast());

printf("\n Sinonim: %s\n",Cur->Getsinonim());

return Cur;}

else {printf("slovo ne naydeno");}

}

void slovarList::AddEnd(slovar &B1)

{

slovar *New,*Cur;

New=new slovar;

New->Setchast(B1.Getchast());

New->Setslovo(B1.Getslovo());

New->Setsinonim(B1.Getsinonim());

if(Start==NULL){

Start=New;

New->SetNext(NULL);}

else {

for(Cur=Start;Cur->GetNext()!=NULL;Cur=Cur->GetNext());

Cur->SetNext(New);

New->SetNext(NULL);

Start=New;

}

}

void slovarList::AddStart(slovar& s1)

{

slovar* New;

New=new slovar;

New->Setslovo(s1.Getslovo());

New->Setchast(s1.Getchast());

New->Setsinonim(s1.Getsinonim());

if(Start==NULL)

{

Start=New;

New->SetNext(NULL);

}

else

{

New->SetNext(Start);

Start=New;

}

}

void slovarList::DelStart(void)

{

slovar *Del,*Cur;

Cur=Start;

Start=(Cur->GetNext());

Del=Cur;

delete Del;

}

void slovarList::DelEnd(void)

{

slovar *Del,*Cur;

for(Cur=Start;(Cur->GetNext())->GetNext()!=NULL;Cur=Cur->GetNext());

Del=Cur->GetNext();

Cur->SetNext(NULL);

delete Del;

}

char slovarList::Podschet(char *sinonim1)

{

int n=0;

slovar*Cur;

for(Cur=Start;Cur!=NULL;Cur=Cur->GetNext())

// if(Cur->Getsinonim()==sinonim1) n++;

return n;

{

printf("%s",sinonim1);

}

}

Описание алгоритмов для каждой задачи

слово поиск синоним словарь

1). Начальное формирование данных обо всех словах в виде списка

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

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

Создается список слов и их описания(слово,часть речи и синоним).

2). Поиск заданного слова в словаре и печать его толкования

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

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

Создается новый элемент типа slovar. Затем пользователя приглашают ввести данные о слове(слово,часть речи и синоним). Далее для нового элемента назначаем указатель на следующий элемент - на тот который стоял в начале. После этого в списке назначаем новый элемент как первый.

3). Поиск синонимов - слов с одинаковыми значениями на русском языке и подсчет их количества:

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

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

Пользователю предлагается ввести желаемые параметры для поиска подходящей слова. Затем проверяется каждый элемент списка, и если находится подходящий вариант, то на экран выводится информация ослове.

Программная реализация задач

Файл kursovik.cpp

#include "stdafx.h"

#include "slovar.h"

#include "slovarList.h"

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

int v,f;

slovarList L;

ii:printf("\n\nVibirite deistvie\n 1.Zapolnit spisok\n 2. Naiti slovo\n 3. Podschitat kol-vo\n 0. Vihod\n ");

scanf("%i",&v);

if(v==1)

{

jj:printf("Vibirite deistvie\n 1. AddStart \n 2. AddEnd \n 3. DeleteStart\n 4. DeleteEnd\n 5. V predidushee menu\n 0. Vihod\n ");

scanf("%i",&f);

if(f==1){slovar t1; t1.Input(); L.AddStart(t1);goto jj;}

if(f==2){slovar s2; s2.Input(); L.AddEnd(s2);goto jj;}

if(f==3){L.DelStart();goto jj;}

if(f==4){L.DelEnd();goto jj;}

if(f==5) goto ii;

}

if(f==2) goto ii;

{L.Findsinonim();

goto ii;

}

if(v==3)

{

char *str;

printf("\n Vvedite N stranici: ");scanf("%s",&str);

if(L.Podschet(str)==0) printf("\n slovo ne vstrechautsa");

else printf("\nChislo slov %i\n ",L.Podschet(str));

goto ii;

}

}

Демонстрационная программа

Список литературы

Бельская И.К. Язык человека и машина. М., 1969

Марчук Ю.Н. Проблемы машинного перевода. М., 1983

Нелюбин Л.Л. Компьютерная лингвистика и машинный перевод. М., 1991

Беляева Л.Н., Откупщикова М.И. Автоматический (машинный) перевод. - В сб.: Прикладное языкознание. СПб, 1996

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


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

  • Разработка набора взаимосвязанных классов для реализации Hash-поиска как специализированного контейнера. Поиск с использованием Хэш-функций. Объектная технология. Описание пользовательского интерфейса. Листинг и описание всех классов библиотеки на DP.

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

  • Реализация программы в виде класса, используя для хранения информации контейнеры стандартной библиотеки шаблонов (STL) языка C++. Создание новой базы данных. Вывод информации о всех компьютерах. Удаление элементов контейнера, их поиск по критериям.

    курсовая работа [97,4 K], добавлен 10.01.2015

  • Текстовые базы данных. Библиотеки исходников программного обеспечения. Механизм для нахождения заданного термина в тексте. Поиск без использования индекса. Степени детализации индекса. Расширенный информационный поиск. Латентное сингулярное разложение.

    презентация [131,7 K], добавлен 11.10.2013

  • Аннотация и инструменты базы BioCyc. Варианты поиска BioCyc. Поиск генов, белков, РНК и соединений. Поиск сайтов ДНК или мРНК, рост Медиа. Анализ поиска в полнотекстовых статьях. Ключевые аспекты данных BioCyc. Поиск кросс-организма и поиск BLAST.

    презентация [5,3 M], добавлен 11.06.2019

  • База данных "Эталон" НПИЦ министерства юстиции РФ. Поиск информации в справочно-информационной программе системе "Консультант плюс" и "Гарант". Сквозной поиск из главного раздела "законодательство". Классификатор подключенных печатных изданий.

    реферат [742,7 K], добавлен 12.04.2009

  • Всемирная Паутина - это совокупность информационных ресурсов, связанных средствами телекоммуникаций и основанных на гипертекстовом представлении данных. Поиск информации в Internet. Конкретизация области поиска при помощи выделения ключевых слов.

    реферат [111,4 K], добавлен 27.06.2010

  • Поиск вредоносных программ по средствам программ антивирусных. Выбор формата представления данных. Интерфейс программы, ее тестирование и отладка. Список процедур, их назначение. Поиск как средство для облегчения, удобства, надежности работы на ПК.

    курсовая работа [22,4 K], добавлен 17.05.2013

  • Практическое обоснование выгодности использования web-модуля "Расширенный поиск по сайту". Схема отображения процесса ввода и запроса информации. Описание алгоритма и модель решения задачи. Структура и характеристика базы данных расширенного поиска.

    дипломная работа [2,4 M], добавлен 19.01.2017

  • Исследование методов решения задачи о ходе коня. Описание алгоритмов для итеративной и рекурсивной программ. Генерация перестановок элементов по индексам. Построение эйлерова цикла на графе. Поиск кратчайшего пути на графе. Программная реализация задачи.

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

  • Отличие исконных слов от заимствованных и установление времени, причины заимствований и их роль для развития языка. Алгоритм подсчета обработанных слов приложением "Подсчет частоты введенных слов в текстовом файле". Отладка и тестирование программы.

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

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