Представляет результат разбора входной фразы, в соответствии с именованными паттернами, и результаты работы конверторов значений.
$parseTree имеет древовидную структуру, где на каждом уровне представлены данные, относящиеся к определенному токену, начиная с корневого.
Формат одного уровня $parseTree:
$parseTree: {
tag:
pattern:
text:
words:
value:
TokenByName: <$parseTree> // вложенные токены
...
}
Где:
tag— имя, под которым токен фигурирует в$parseTree;pattern— имя именованного паттерна, в который попал текст;text— текст в видеstring;words— токены;value— элемент является активным при использовании маппинга, конвертеров или именованных сущностей.TokenByName— именованный паттерн.
Примеры значений
- Определим дерево разбора для фразы
Какая погода в Петербурге?.
Именнованные паттерны для разбора фразы:
$Question = (какой|какая)
$Weather = (погода|прогноз)
$City = (~Петербург|~Москва)
q: * [$Question] * $Weather * $City *
Для фразы будет построено следующее дерево разбора:
$parseTree : {
"tag": "root",
"pattern": "root",
"text": "Какая погода в Петербурге",
"words": [
"какая",
"погода",
"в",
"Петербурге"
],
"Question": [
{
"tag": "Question",
"pattern": "Question",
"text": "Какая",
"words": [
"какая"
]
}
],
"Weather": [
{
"tag": "Weather",
"pattern": "Weather",
"text": "погода",
"words": [
"погода"
]
}
],
"City": [
{
"tag": "City",
"pattern": "City",
"text": "Питере",
"words": [
"Петербу рге"
]
}
]
"_Question": "Какая",
"_Weather":"погода",
"_City":"