Вверх ↑
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 131
#1: 2013-10-22 17:52:21 ЛС | профиль | цитата
Компонент http://yadi.sk/d/SbjAz1ySCdjEb включает в себя синтаксический анализатор для русского и английского языков и систему автоматического перевода (русско-английское и англо-русское направления).
Функция перевода не основная и носит характер: "Если Вы купите у нас квартиру, дачу и машину, то в подарок получите бейсболку с нашим логотипом".
Компонент предназначен для написаеия программ в области лингвистики ( см.http://aot.ru/но такого там нет!), поисковиков, ИИ, и т.д.
Я применяю для снятия омонимии (омографы) при озвучке текста TTS движками.
Возможности:
1.Стадии обработки текста
1.1.Сегментация.
Текст разбивается на слова и предложения. Кроме собственно слов выделяются знаки препинания, цифры и другие последовательности специальных символов, которые могут присутствовать во встречающихся на практике текстах.
1.2.Морфологический анализ.
На стадии морфологического анализа для каждого из слов строится список вариантов нормализации. Каждому варианту нормализации соответствует набор атрибутов и текст нормальной формы, которыми исходное слово может обладать. Более подробные сведения об используемых атрибутах содержатся в описании синтаксического разбора в архиве файл Справка.txt.
1.3.Синтаксический разбор.
На стадии синтаксического разбора принимается решение, какие из вариантов нормализации в действительности соответствуют словам из исходного текста, и строятся синтаксические связи между словами. После этого на основе синтаксических связей строится дерево синтаксического разбора. Более подробные сведения о синтаксических связях содержатся в описании синтаксического разбора.
Таким образом, в результате синтаксического разбора получаются:
•список слов, каждому слову сопоставлен текст нормальной формы и набор атрибутов;
•список синтаксических связей между словами предложения;
•дерево синтаксического разбора.
Если будет интересно, можно будет расширить возможности и написать подробную справку с технологиями.
Архив весит 9м из за словорей.
Словари соответственно Мюллер и Зализняк.Для их редактирования (бинарники) есть программка на aot.ru, если не найдёте могу дать свою.
В принципе, алгоритм справляется с неизвесными словами эврестически, так что только для перевода.
Можно добавлять слова в текстовый файл er.sml и re.sml.
Обновление13 ноября 2013
http://forum.hiasm.com/forum_serv.php?q=56&id=3634
карма: 6

2
Голосовали:ser_davkin, sаmakacd
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2013-10-27 09:52:17 ЛС | профиль | цитата
Практическая эксплуатация в боевых условиях показала, что не хватает некоторых точек, а точка onNumSyntax - показушная.
Поэтому добавлены дополнительные точки, исправлены мелкие ошибки.
Без ошибок не получается, - это моё второе творение на дельфи.
Перезалил http://yadi.sk/d/rkpKjhr_C3Qkk.
Здесь http://yadi.sk/d/SiCbUFqPC3QnG облегчённый вариант без словарей и dll.
карма: 6

0
Ответов: 257
Рейтинг: -2
#3: 2013-10-28 04:28:39 ЛС | профиль | цитата
не понятно со словарями. А вообще да, как переводчик работает занимательно

code_32181.txt
карма: 0

0
файлы: 1code_32181.txt [532B] [657]
Ответов: 2059
Рейтинг: 131
#4: 2013-10-28 16:02:39 ЛС | профиль | цитата
mudfactory
Этот движок не предназначен для перевода! Можно было ограничиться одним языком. Главное здесь выводимые цифирки.
На подобных движках сделаны поисковые системы Mail.Ru - разработка Санкт-Петербургского государственного университета,
Яндекс - разработка Алексея и Сергея Сикорко, Рамблер и Nigma.ru - разработка МГУ.
Алгоритм заложенный в компоненте ближе к разработке МГУ, но не аналог.
Всё, что представлено здесь http://www.rvb.ru/soft/catalogue/catalogue.html , можно сделать с использованием этого компонента.

не понятно со словарями.

Не понял вопроса.
Пример работает. Если не работает, надо задать путь к словорям в точке "path" - включается во вкладке, там же и путь прописать можно.
Если вопрос заключается в добавлении слов, то это морфологический словарь со структурой словаря Зализняка.
Т.е. добавляется простая словоформа и способ изменения её по падежам, склонениям и числам + остальные атрибуты - род, существительное-глагол-наречие... На http://aot.ru/ раньше была тема, где энтузиасты пытались вымуслить словарь, потом кудато перенесли тему, не разбирался.
Но в принципе этого и не надо делать. Фраза - " Глокая куздра бодлонула бокра" будет понята правильно и без словарей, подобно
http://company.yandex.ru/technologies/mystem/noncommercial.xml .
Если касается перевода, то можно делать, как показано в .MorphologyDataERer.sml .
box | сундучок | 1
box | коробочка | 1
" 1 " означает существительное - смотри таблицу атрибутов в Справка.txt.
------------ Дoбавленo в 16.02:
Вот показуха возможностей http://yadi.sk/d/L-PuHl9YBiYZ7, только не на Hiasm.
карма: 6

0
Ответов: 257
Рейтинг: -2
#5: 2013-10-28 17:36:11 ЛС | профиль | цитата
Вы расскажите где это можно в реальной жизни использовать, помимо лингвистики. Пока что не понятно как это может при поиске помочь.

Мне вот нужно выделять именительный падеж слова, например во фразе: окраска корпуса, нужно выделить слово "корпус", или: замена правого уха - чтоб выдавал - правое ухо
карма: 0

0
Ответов: 2059
Рейтинг: 131
#6: 2013-10-28 19:26:27 ЛС | профиль | цитата
Мне вот нужно выделять именительный падеж слова, например во фразе: окраска корпуса, нужно выделить слово "корпус", или: замена правого уха - чтоб выдавал - правое ухо

В отношении поиска примерно так.
Только это упрощённо. На самом деле в поисковиках делается целая надстройка для понимания текста.
Это конкорданс-список слов какого-л. текста с указанием контекстов их употребления, тезаурус-множество смысловыражающих единиц некоторого языка с заданной на нём системой семантических отношений и много чего ещё. Этим и отличаются поисковики друг от друга, и держится это всё в секрете.
Один вывалит тысячи ссылок, но бестолковых, а другой две-три, но то, что доктор прописал.
где это можно в реальной жизни использовать,

Этот компонент - элементарный "кирпичик" для программ обработки текста.
Можно делать поиск по тексту не по совпадению строк, а по смыслу.
"Мне заменили в поликлинике левое ухо, а надо было на машине - правое."
Запрос - "замена правого уха".
Определение принадлежности текста к тому, или иному автору.
У меня есть даже такая программка на Си, использующая эти dll.
Я приводил ссылки выше, где можно использовать. Набери в поисковике "Лингвистические технологии". Всё что вывалится, нельзя реализовать без главного элемента.
Я использую так:
Качаю кучу книг и слушаю с помощью TTS движка. Как известно, все голосовые движки не дружат с ударениями, а тем более с омографами.
Например: погру`зите-погрузи`те, вы`сыпалась-высыпа`лась, за`мок-замо`к, верте`ла -вертела` и т.д. Так при помощи программы, за минуту, ставлю ударения в десятке книг.
Я пробую, какие темы интересны. В стволе ещё две темы:- dll внутри кода программы и компонент Speech надо бы переделать, Не работает ни шута
карма: 6

0
Ответов: 257
Рейтинг: -2
#7: 2013-10-28 19:42:08 ЛС | профиль | цитата
Хорошо, можно пример схемы, где на запрос " замена переднего верхнего рычага ", будет выдаваться ответ - "передний верхний рычаг"?
карма: 0

0
Ответов: 2059
Рейтинг: 131
#8: 2013-10-28 21:56:12 ЛС | профиль | цитата
Думаю, что вопрос быыл не такой.
Но сделал точно по ТЗ.

code_32194.txt
карма: 6

0
файлы: 1code_32194.txt [1.6KB] [697]
Ответов: 257
Рейтинг: -2
#9: 2013-10-29 00:19:07 ЛС | профиль | цитата
Работает, круто! Правда не могу разобраться с компонентом, немного не понятна логика его действий (и не видно что за текст в компоненте сравнение по маске). Только он выдает "в лоб" фразу, а хотелось бы чтоб он определял слово к которому относятся остальные, т.е. в фразе " замена правого переднего рычага" получается главное "рычаг" и то что к нему относится "правый передний" остальное отсекать. Т.е. в данном конкретном случае хотелось бы чтоб была возможность определять что в предложении название детали, а что просто слова, к названию не имеющие отношения.
карма: 0

0
Ответов: 5227
Рейтинг: 586
#10: 2013-10-29 06:02:47 ЛС | профиль | цитата
flint2 писал(а):
Я пробую, какие темы интересны. В стволе ещё две темы:- dll внутри кода программы
CallDllEx http://forum.d2h.ru/forum.html?q=3&p=206103 правда функционал ограничен простыми параметрами вызовов
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 131
#11: 2013-10-29 10:18:30 ЛС | профиль | цитата
mudfactory, Наверное вот так:
code_32199.txt
Сначала я так сделал, а потом переделал по ТЗ.
В поле ввода должно произойти изменение, так как в элементе - сравнение по маске нет второй верхней точки. Удивительно, что нет компонента тупо сравнить две строки, а может только у меня нет в палитре.
Правда не могу разобраться с компонентом, немного не понятна логика его действий

Неприменно надо написаь описание, а то точек много и их раабота не очевидна из названий.
Сегодня завтра напишу.
[offtop]Мне пока тяжело печатать на клавиатуре, лежу в гипсе, а до клавиатуры надо тянуться и не очень видно что пишу.
С мышкой проще.[/offtop]
andrestudio, Не совсем то я имел ввиду.
Я хочу сделать, чтобы компоненты были без dll.
Например sqlite3.dll запихнуть в сам компонент, аналогично и в другие компоненты, которые таскают за собой dll.

карма: 6

0
файлы: 1code_32199.txt [2.7KB] [647]
Ответов: 5227
Рейтинг: 586
#12: 2013-10-29 10:40:16 ЛС | профиль | цитата
flint2, там в комплекте есть юнит DllLoader, он как раз этим и занимается, а именно позволяет работать с dll из памяти.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2059
Рейтинг: 131
#13: 2013-10-29 14:34:08 ЛС | профиль | цитата
andrestudio
в комплекте есть юнит DllLoader

Я это и имел ввиду.
Не разобрался.
Виноват.
Исправлюсь.
------------ Дoбавленo в 14.34:
Я голову ломал:

    *************************************************************************
    * *
    * DLL linking is provided by Benjamin Rosseaux, www.0ok.de, *
    * mailto:benjamin@0ok.de *
    * *
    * This DLL Loader code is coyyrighted: (C) 2004, Benjamin Rosseaux *
    * *
    *************************************************************************

    UNIT DLLLoader;

    INTERFACE

    USES Windows,Classes;

Оказывается всё просто:


    {*************************************************************************
    * *
    * DLL linking is provided by Benjamin Rosseaux, www.0ok.de, *
    * mailto:benjamin@0ok.de *
    * *
    * This DLL Loader code is coyyrighted: (C) 2004, Benjamin Rosseaux *
    * *
    *************************************************************************}

    unit DLLLoader;

    interface

    uses Windows, Kol, Share, Debug;

карма: 6

0
Ответов: 257
Рейтинг: -2
#14: 2013-10-29 17:16:54 ЛС | профиль | цитата
flint2 писал(а):
mudfactory, Наверное вот так:
code_32199.txt
Сначала я так сделал, а потом переделал по ТЗ.
В поле ввода должно произойти изменение, так как в элементе - сравнение по маске нет второй верхней точки. Удивительно, что нет компонента тупо сравнить две строки, а может только у меня нет в палитре.


чего то схема не запускается(
------------ Дoбавленo в 17.07:
и еще подскажите что там в полее ввода должно быть написано, а то вместо текста там символы ( так копируются схемы на форум )
------------ Дoбавленo в 17.12:
выдает ошибку при нажатии ок - runtime error 216 at 0000c018
------------ Дoбавленo в 17.16:
Запустил. Но она определяет только слова относящиеся к рычаг. А мне нужно чтоб в предложении "замена правого переднего верхнего рычага" отделялось все, кроме рычаг и относящее к нему - правый, передний, верхний. Потому как преддложение может быть составлено и так - " замена рычага правого верхнего переднего" И тут нужно найти главное слово (рычаг) и все к нему относящиеся, простые формы которых потом будут использоваться для поиска То есть на такой запрос должно выдавать "правый передний верхний рычаг". Такое возможно? Без того чтоб вводить искомое слово в отдельное поле?
карма: 0

0
Ответов: 2059
Рейтинг: 131
#15: 2013-10-29 19:38:56 ЛС | профиль | цитата
И тут нужно найти главное слово (рычаг) и все к нему относящиеся

В этой же схеме делаешь запрос "замена или продажа" - получаешь - рычаг.
замена рычага правого верхнего переднего

Предложение составлено так, что у слова "рычага" нет зависимых слов.
Это можно посмотреть в примере с компонентом - кнопка "синтаксис".
Последняя схема была сделана на принципе зависимости слов.
В этом предложении только пара "замена-рычага".
Вот схемка,

code_32204.txt

выводит все прилагательные, если заменить в маске * 3 * на 26,
то будут выводиться все слова в родительном падеже.
Если делать проверку на 3 и 26, конечно не в одной маске, то получатся все прилагательные в родительном падеже.
Признаков 47 см. таблицу, комбинаций получается много.
Надо комбинировать синтаксические зависимости - пред идущая схема и морфологические атрибуты - эта схема.
Конечно получается много коммутаций...
Надо подумать, какие сопутствующие элементы сделать, чтобы избавиться от моря перефирии.
Типа пустышек с нужными точками, но с единым информационным полем.
Вобщем я понял, что тебе нужно.
Будем посмотреть.
карма: 6

0
файлы: 1code_32204.txt [1.6KB] [690]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)