ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Комп'ютерний морфологічний розбір слів російської мови
         

     

    Інформатика, програмування

    Комп'ютерний морфологічний розбір слів російської мови.

    Єрмолаєв Д.С., Москва

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

    Приклад. користувач ввів у базу знань свою інформацію "фірма РВК. наша фірма продає тару картонну ". Модуль морфологічного розбору перетворює цю інформацію до наступного увазі: "фірма. Рик. мій фірма продати тара картонний ". З точки зору сенсу вийшла нісенітниця. Але для комп'ютера - самий раз, це буде видно далі. Тепер, інший користувач вводить для пошукової системи запит "продає тару картонну". Цей запит буде так само перетворений в "продати тара картонний". І тепер виконавши простий пошук за збігом, система пошуку видасть раніше запомненную інформацію: "фірма Рік. продати ...". Однак тут було б краще запам'ятати первинну інформацію клієнта з правильними словоформа і видати тільки її.

    Морфологія слів російської мови визначається за афікси - закінчення та суфікс слова. Назвемо це правило правилом морфологічного розбору. Однак є слова, які мають закінчення, що підходить для певної форми слова, але є зовсім іншою формою. Наприклад, "-ать" говорить що слово є дієслово (стрибати, бігти). Але є слово "ліжко", яке є іменник. Значить, з правила морфологічного розбору є винятки. Так само є слова, які не змінюють свою форму. Наприклад, прийменники, "не", прислівники, "так" і т.д. Значить, є доповнення до правилом морфологічного розбору. Ці доповнення можна представити як виключення з правила. Таким чином ми прийшли до певного логічного опису морфологічного розбору слів. Для створення комп'ютерної програми тут найкраще підійде логічна мова програмування. Розглянь два з них.

    Приклад програми морфологічного розбору слів на логічному мовою програмування ПРОЛОГ.

    ------------------------------------

    /* програма з розпізнавання морфології слів російської мови */

    /* по закінченню слова */

    /* мова програмування ПРОЛОГ */

    domains

    Слово = String

    predicates

    морфологія (Слово, Слово Основа)

    nondeterm виняток (Слово, Слово Основа)

    nondeterm правило (Слово Афікс, Слово АффіксОснови)

    nondeterm афікс (Слово Корінь, Слово, Слово Афікс)

    clauses

    /* база знань */

    /* виключення з правила розбору слова для "неправильних" слов */

    виключення ( "річок", "ріка ").

    виключення ( "сіл", "сісти ").

    /* правила розбору для правильних слів */

    /* для дієслів */

    правило ( "нулі", "ать ").

    правило ( "глянув", "ать ").

    правило ( "еть", "ать ").

    правило ( "ает", "ать ").

    правило ( "ал", "ать ").

    правило ( "вул", "ать ").

    правило ( "ули", "ать ").

    /* для прикметників */

    правило ( "ша", "вий ").

    правило ( "ші", "вий ").

    правило ( "а", "Ой ").

    правило ( "ие", "Ой ").

    правило ( "ту", "Ой ").

    /* предикат здійснює перебір всіх варіантів */

    /* афіксів для цього слова */

    афікс ( "", Афікс, Афікс).

    афікс (Корінь, Слово, Афікс ):-

    frontchar (Слово, Буква, Слово1),

    афікс (Корень1, Слово1, Афікс),

    frontchar (Корінь, Буква, Корень1).

    /* спочатку переглянь всі виключення */

    морфологія (Слово, Осн ):-

    виключення (Слово, Осн ),!.

    /* якщо не вдало, то переберемося все афікси слова */

    морфологія (Слово, Осн ):-

    афікс (Корінь, Слово, Афікс),

    правило (Афікс, АффіксіОсн),

    concat (Корінь, АффіксіОсн, Осн ),!.

    /* якщо невдало, то значить слово несклоняемо */

    морфологія (Слово, Слово ):-!.

    /* виклик процедури морфологічного розбору */

    Goal морфологія ( "зелену", Слово).

    Відповідь Пролог: Слово = "зелений"

    Як видно, у програмі всього 13 рядків, а інше база знань. Тепер подивимося як впорається з цим завданням РЕФА.

    Приклад на логічному мовою програмування РЕФА - 5:

    -----------------------

    /* програма з розпізнавання морфології слів руссского мови */

    /* по закінченню і приставці слова */

    /* мова програмування РЕФА 5 */

    /* від Єрмолаєв Д.С. [email protected] */

    /* введення одного слова з консолі */

    $ ENTRY Go (= )>>;);

    /* таблиця1. слова, які мають неправильне закінчення */

    WordsMissTable (=

    ( ( 'сіл') 'сісти')

    ( ( 'річок') 'чого')

    ) ;

    /* таблиця2. закінчення, за якими можна визначити основу */

    CompletionTable (=

    /* для дієслів */

    ( ( 'нулі') 'ать')

    ( ( 'глянув') 'ать')

    ( ( 'ает') 'ать')

    ( ( 'еть') 'ать')

    ( ( 'ЕЧ') 'ать')

    ( ( 'ал') 'ать')

    ( ( 'їв') 'ать')

    /* для прикметників */

    ( ( 'ші') 'вий')

    ( ( 'ша') 'вий')

    ( ( 'а') 'ї')

    ( ( 'ие') 'ї')

    ( ( 'ую') 'ї')

    );

    /* сама програма розпізнавання морфологічної форми слова */

    Question (

    /* беремо слово і шукаємо відповідне за шаблоном у таблице1 */

    (e.Word), : e.L ((e.Word) e.Qst) e.R = e.Qst;

    /* інакше, бере закінчення слова і шукаємо по шаблону в табліце2 */

    (e.1 e.End), : eL ((e.End) e.Qst) eR = e.1 e.Qst;

    /* інакше, слово незмінне */

    (e.1) = E.1;

    );

    Програма на РЕФАЛЕ складається з трьох пропозицій!

    Цікаво, скільки б пропозицій програми довелося б написати для вирішення такого завдання на алгоритмічній мові? Наприклад С + +?

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

    Для підготовки даної роботи були використані матеріали з сайту http://www.citforum.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status