11 Часть I. Компоненты 14 Глава Компьютерная



бет37/197
Дата19.03.2022
өлшемі4,29 Mb.
#136225
түріЛитература
1   ...   33   34   35   36   37   38   39   40   ...   197
Байланысты:
nikolaev is mitrenina ov lando tm red prikladnaia i kompiute
Латын тілі 4,5 - дәріс 2, 169-182 фил, Вопросы на русском языке, 6 үж
Листинг 2. Пользовательская НС-грамматика в NLTK
#coding: utf-8 import nltk
from nltk.draw.tree import draw_trees grammar = nltk.CFG.fromstring(""" Предложение -> ИГ ГГ
ПГ -> П ИГ
ИГ -> С | С ПГ
ГГ -> Г ИГ | ГГ ПГ
С -> 'Николай' | 'гостей' | 'коридоре'
Г -> 'встретил'
П -> 'в'
""", encoding="utf-8")
sent = [u'Николай', u'встретил', u'гостей', u'в', u'коридоре'] parser = nltk.ChartParser(grammar)
draw_trees(*(tree for tree in parser.parse(sent)))

Эта программа выведет на экран графические представления постро- енных деревьев:






Рис. 15. NLTK: обнаружены все версии разбора
NLTK позволяет также строить версии разбора и в виде деревьев за- висимостей, однако на сегодняшний день не выполняет разбор в терминах ТСГ (комбинированных структур НС и ГЗ). Кроме того, для разбора в терминах ГЗ требуется указание в грамматике всех возможных зависимо- стей между конкретными словоформами в явном виде, что в некотором роде делает эту процедуру бессмысленной.
Способов семантической фильтрации версий синтаксического разбо- ра в NLTK не предусмотрено, однако пользователь может указывать веро- ятности для каждого правила грамматики в квадратных скобках (реализуя тем самым модель PCFG, см. выше).




  1. Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   197




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет