Поделиться через


Изменение лингвистической схемы Q&A и добавление фраз в Power BI Desktop

Это эффективно, чтобы использовать распространенные фразы и естественный язык, чтобы задать вопросы о ваших данных. Это еще более эффективно, когда ваши данные отвечают. Когда вы задаете вопрос Power BI Q&A, это делает лучшие усилия, чтобы правильно ответить. Вы можете изменить лингвистическую схему, чтобы улучшить ответы Q&A для более эффективного взаимодействия.

Все начинается с корпоративных данных. Чем лучше модель данных, тем проще, чтобы пользователи получили ответы о качестве. Одним из способов улучшения модели является добавление лингвистической схемы, которая определяет и классифицирует терминологию и связи между именами таблиц и столбцов в наборе данных. Power BI Desktop позволяет управлять лингвистическими схемами.

Есть две стороны К&A. Первая сторона — подготовка или моделирование. Вторая сторона задает вопросы и изучает данные или использует их. В некоторых компаниях сотрудники, известные как моделиировщики данных или ИТ-администраторы, могут быть теми, кто собирает наборы данных, создает модели данных и публикует наборы данных в Power BI. Другой набор сотрудников будет тем, кто будет "потреблять" данные в Интернете. В других компаниях эти роли могут объединяться.

Эта статья предназначена для моделей данных, людей, которые оптимизируют наборы данных, чтобы обеспечить наилучшие результаты Q&A.

Что такое лингвистическая схема?

Лингвистическая схема описывает термины и фразы, которые Q&A должны понимать для объектов в наборе данных, включая части речи, синонимов и фраз. При импорте или подключении к набору данных Power BI создает лингвистическую схему на основе структуры набора данных. Когда вы задаете вопрос Q&A, он ищет совпадения и связи в данных, чтобы выяснить намерение вашего вопроса. Например, он ищет существительные, глаголы, прилагательные, фразы и другие элементы. И он ищет связи, такие как столбцы являются объектами команды.

Вы, вероятно, знакомы с частями речи, но выражения могут быть новым термином. Фраза заключается в том, как вы говорите о (или фразе) отношения между вещами. Например, чтобы описать связь между клиентами и продуктами, можно сказать, что "клиенты покупают продукты". Кроме того, чтобы описать отношения между клиентами и возрастами, можно сказать: "возраст указывает, насколько старые клиенты". Кроме того, чтобы описать связь между клиентами и телефонными номерами, можно сказать, что у клиентов есть номера телефонов.

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

Лингвистические схемы сохраняются в формате YAML. Этот формат связан с популярным форматом JSON, но обеспечивает более гибкий и удобный синтаксис. Лингвистические схемы можно изменять, экспортировать и импортировать в Power BI Desktop.

Необходимые компоненты

  • Ознакомьтесь с рекомендациями по оптимизации Q&A в Power BI , чтобы узнать о советах по проектированию и улучшению модели данных. Он содержит важный раздел о добавлении синонимов.
  • Скачайте примеры ФАЙЛОВ YAML и PBIX.
  • Установите редактор YAML-файла. Мы рекомендуем использовать Visual Studio Code.

Настройка редактора для yaml-файлов

Мы рекомендуем использовать Visual Studio Code для изменения лингвистических файлов yaml-файлов схемы. Visual Studio Code включает поддержку файлов YAML вне поля и может быть расширена для конкретной проверки формата лингвистической схемы Power BI.

  1. Установка Visual Studio Code.

  2. Щелкните правой кнопкой мыши ФАЙЛ YAML в примере лингвистической схемы, сохраненной ранее: QnALinguisticSchema.zip.

  3. Выберите "Открыть" с>помощью выбора другого приложения.

  4. Выберите Visual Studio Code и нажмите кнопку Always.

    Screenshot of the dialog that shows a list of programs to open the file. Visual Studio Code and Always are highlighted.

В Visual Studio Code установите расширение YAML Support by Red Hat.

  1. Выберите вкладку "Расширения" (последняя в меню слева) или CTRL+SHIFT+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Найдите "yaml" и выберите службу поддержки YAML red Hat в списке.
  3. Выберите "Установить перезагрузку>".

Работа с лингвистическими схемами

Существует два способа работы с лингвистическими схемами. Одним из способов является изменение, импорт и экспорт yaml из ленты в Power BI Desktop. Этот способ рассматривается в статье о средстве power BI Q&A. Чтобы улучшить Q&A, не нужно открывать YAML-файл.

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

Screenshot of a sample linguistic schema .yaml file.

Прежде чем изменить лингвистическую схему, необходимо открыть (экспортировать) ее из Power BI Desktop. Сохранение YAML-файла обратно в том же расположении считается импортом. Но вместо этого можно импортировать другие yaml-файлы. Например, у вас есть аналогичный набор данных и вы уже добавили части речи, определяя связи, создавая фразы и создавая синонимы, можно использовать этот YAML-файл в другом файле Power BI Desktop.

Q&A использует все эти сведения вместе с любыми улучшениями, которые вы делаете, чтобы обеспечить лучший ответ, автозавершение и сводку вопросов.

Изменение лингвистической схемы

При первом экспорте лингвистической схемы из Power BI Desktop большинство содержимого в файле автоматически создается подсистемой Q&A. Эти созданные сущности, слова (синонимы), связи и фразы назначаются с помощью тега State: Createed tag. Они включены в файл в основном для информационных целей, но могут быть полезной отправной точкой для ваших собственных изменений.

Примечание.

Пример YAML-файла, включенного в этот учебник, не содержит состояния: создано или состояние: удаленные теги, так как он был подготовлен специально для этого руководства. Чтобы просмотреть эти теги, откройте неуправляемый PBIX-файл в представлении отношений и экспортируйте лингвистическую схему.

Screenshot of a sample .yaml file showing State: Generated.

При импорте файла лингвистической схемы обратно в Power BI Desktop все, что отмечено состоянием: создано и повторно создано. Таким образом, если вы хотите изменить созданное содержимое, удалите соответствующее состояние: созданный тег. Аналогичным образом, если вы хотите удалить некоторое созданное содержимое, измените состояние: созданный тег на State: Deleted , чтобы он не был повторно создан при импорте файла лингвистической схемы.

Экспорт, а затем импорт файла YAML

  1. В Power BI Desktop откройте набор данных в представлении модели.

  2. На вкладке "Моделирование" выберите лингвистическую схему экспорта лингвистической схемы>.

  3. Сохраните его. Имя файла заканчивается на .lsdl.yaml.

  4. Откройте его в Visual Code или другом редакторе.

  5. В представлении модели в Power BI Desktop на вкладке "Моделирование" выберите "Импорт лингвистической схемы>".

  6. Перейдите в расположение, в котором вы сохранили измененный YAML-файл и выберите его. Сообщение об успешном выполнении позволяет узнать, что лингвистическая схема yaml-файла успешно импортирована.

    Screenshot of the successful import dialog.

Выражения в лингвистической схеме

Фраза заключается в том, как вы говорите о (или фразе) отношения между вещами. Например, чтобы описать связь между клиентами и продуктами, можно сказать, что "клиенты покупают продукты".

Откуда приходят фразы?

Power BI добавляет множество простых выражений в лингвистическую схему автоматически на основе структуры модели и угадок на основе имен столбцов. Например:

  • Большинство столбцов относятся к содержащей таблице с простым выражением, например "продукты имеют описания".
  • Связи модели приводят к выражениям по умолчанию для обоих направлений связи, таких как "заказы имеют продукты" и "продукты имеют заказы".
  • На основе имен столбцов некоторые связи модели могут иметь более сложную фразу по умолчанию, например "заказы отправляются в города".

Тем не менее, пользователи иногда говорят о вещах таким образом, что Q&A не может догадаться. Поэтому вам может потребоваться добавить собственные фразы вручную.

Почему добавить фразы?

Первая причина добавления фразы заключается в определении нового термина. Например, если вы хотите иметь возможность попросить "список старейших клиентов", необходимо сначала научить Q&A то, что вы означаете "старым". Это можно сделать, добавив фразу, например "возраст указывает, сколько старых клиентов".

Вторая причина добавления фразы заключается в разрешении неоднозначности. Базовый ключевое слово поиск идет до сих пор, когда слова имеют более одного значения. Например, "рейсы в Чикаго" не совпадают с "рейсами из Чикаго". Но Q&A не будет знать, какой из них вы означают, если вы не добавите фразы "рейсы из городов вылета" и "рейсы являются для прибытия городов". Аналогичным образом, Q&A будет понимать только различие между "автомобилями, которые Джон продал Мэри" и "автомобили, которые Джон купил у Мэри" после добавления фраз "клиенты покупают автомобили от сотрудников" и "сотрудники продают клиенты автомобилей".

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

Виды фраз

Чтобы понять различные типы выражений, сначала необходимо помнить несколько основных терминов грамматики:

  • Существительное — это человек, место или вещь. Примеры: автомобиль, подросток, Марти, флюкс капацитор
  • Глагол — это действие или состояние бытия. Примеры: люк, всплеск, пожирает, выталкивает
  • Прилагательное — это описательное слово, которое изменяет существительное. Примеры: мощный, волшебный, золотой, украденный
  • Препозиция — это слово, используемое перед существительным, чтобы связать его с предыдущим существительным, глаголом или прилагательными примерами: for, near, from, from
  • Атрибут является качеством или признаком чего-то.
  • Имя — это слово или набор слов, которыми называется человек, животное, место или вещь.

Выражения атрибутов

Выражения атрибутов — это рабочая лошадка Q&A. Они используются, когда одна вещь выступает в качестве атрибута другой вещи. Они просты, просты, и выполняют большую часть тяжелого подъема, когда вы не определили более тонкий, более подробный фразы. Выражения атрибутов описаны с помощью основной команды "have" ("продукты имеют категории" и "хост-страны или регионы имеют города узлов"). Они также автоматически разрешают вопросы с предпозициями "of" и "for" ("категории продуктов" или "заказы на продукты") и прихоть ("заказы Джона"). Выражения атрибутов используются в следующих типах вопросов:

  • У каких клиентов есть заказы?
  • Перечисление ведущих городов по странам или регионам по возрастанию
  • Показать заказы, которые имеют chai
  • Перечисление клиентов с заказами
  • Какая категория каждого продукта?
  • Подсчет заказов Роберта Кинга

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

product_has_category:
  Binding: {Table: Products}
  Phrasings:
  - Attribute: {Subject: product, Object: product.category}

Фразы имен

Выражения имен полезны, если в модели данных есть таблица, содержащая именованные объекты, такие как имена спортсменов или имена клиентов. Например, фраза "Названия продуктов являются именами продуктов" является важной для использования имен продуктов в вопросе. Фразирование имен также включает "name" в виде команды (например, "Список клиентов с именем Джон Смит"). Тем не менее, это самое важное, если используется в сочетании с другими фразами. Он позволяет использовать значение имени для ссылки на определенную строку таблицы. Например, в разделе "Клиенты, которые купили chai", Q&A может сказать значение "chai" относится ко всей строке таблицы продуктов, а не только к значению в столбце имени продукта. Выражения имен используются в следующих типах вопросов:

  • Какие сотрудники называютСя Робертом Кингом
  • Кто называется Эрнст Гандель
  • Спорт Фернанд Де Монтиньи
  • Количество спортсменов по имени Мэри
  • Что купил Роберт Кинг?

Если вы использовали разумное соглашение об именовании для столбцов имен в модели (например, Name или ProductName, а не PrdNm), Power BI создает большинство фраз имен, необходимых для модели автоматически. Обычно вам не нужно создавать их самостоятельно.

Ниже приведен пример того, как выражение имен выглядит внутри лингвистической схемы:

employee_has_name:
  Binding: {Table: Employees}
  Phrasings:
  - Name:
      Subject: employee
      Name: employee.name

Прилагательные выражения

Прилагательные выражения определяют новые прилагательные, используемые для описания вещей в модели. Например, "счастливые клиенты являются клиентами, где > оценка 6" фраза необходима, чтобы задать такие вопросы, как "список счастливых клиентов в Des Moines". Существует несколько форм прилагательных фраз для использования в разных ситуациях.

Простые прилагательные фразы определяют новый прилагательный на основе условия, например "прекращенные продукты являются продуктами, где состояние = D". Простые прилагательные фразы используются в следующих типах вопросов:

  • Какие продукты прекращены?
  • Список неподдерживаемых продуктов
  • Перечисление золотых медалистов
  • Продукты, которые являются обратными

Ниже приведен пример того, как простое прилагательное выражение выглядит внутри лингвистической схемы:

product_is_discontinued:

Binding: {Table: Products}
  Conditions:
  - Target: product.discontinued
    Operator: Equals
    Value: true
  Phrasings:
  - Adjective:
      Subject: product
      Adjectives: [discontinued]

Прилагательные выражения измерения определяют новое прилагательное на основе числового значения, указывающего степень применения прилагательного выражения, например "длина реки" и "малые страны или регионы имеют небольшие области земли". Прилагательные выражения измерения используются в следующих типах вопросов:

  • Перечисление длинных рек
  • Какие реки являются самыми длинными?
  • Список наименьшей страны или регионов, которые выиграли золото в баскетболе
  • Сколько времени в Рио Гранде?

Ниже приведен пример того, как прилагательное выражение измерения выглядит внутри лингвистической схемы:

river_has_length:

Binding: {Table: Rivers}
 Phrasings:
 - Adjective:
     Subject: river
     Adjectives: [long]
     Antonyms: [short]
     Measurement: river.length

Динамические прилагательные выражения определяют набор новых прилагательных значений в столбце модели, таких как "цвета описывают продукты" и "события имеют полы событий". Динамические прилагательные выражения используются в следующих типах вопросов:

  • Вывод списка красных продуктов
  • Какие продукты зеленые?
  • Шоу конькобежных мероприятий для женщин
  • Число активных проблем

Ниже приведен пример того, как динамическое прилагательное выражение выглядит внутри лингвистической схемы:

product_has_color:

Binding: {Table: Products}
  Phrasings:
  - DynamicAdjective:
      Subject: product
      Adjective: product.color

Существительные фразы

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

Простые фразы существительных определяют новое существительное на основе условия, например "подрядчики являются сотрудниками, где полный рабочий день = false" и "чемпион, где количество медалей >5". Простые фразы существительных используются в следующих типах вопросов:

  • Какие сотрудники являются подрядчиками?
  • Подсчет подрядчиков в Портленде
  • Сколько чемпионов в 2016 году

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

employee_is_contractor:

Binding: {Table: Employees}
  Conditions:
  - Target: employee.full_time
    Operator: Equals
    Value: false
  Phrasings:
  - Noun:
      Subject: employee
      Nouns: [contractor]

Динамические выражения существительных определяют набор новых существительных на основе значений в столбце модели, таких как "задания определяют подмножества сотрудников". Динамические фразы существительных используются в следующих типах вопросов:

  • Перечисление кассиров в Чикаго
  • Какие сотрудники являются баристами?
  • Перечисление ссылок в 1992 году

Ниже приведен пример того, как динамическое выражение существительных выглядит внутри лингвистической схемы:
employee_has_job:

Binding: {Table: Employees}
 Phrasings:
 - DynamicNoun:
     Subject: employee
     Noun: employee.job

Препозиция фраз

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

  • Подсчет клиентов в Нью-йорке
  • Перечисление книг о лингвистике
  • В каком городе Роберт Кинг?
  • Сколько книг Стивен Пинкер?

Ниже приведен пример того, как препозиция выглядит внутри лингвистической схемы:
customers_are_in_cities:

Binding: {Table: Customers}
 Phrasings:
 - Preposition:
     Subject: customer
     Prepositions: [in]
     Object: customer.city

Выражения глаголов

Выражения команд используются для описания того, как вещи в модели связаны с помощью команд. Например, фраза "клиенты покупают продукты" улучшает понимание вопросов, таких как "кто купил сыр?" и "что купил Джон?" Выражения глаголов являются наиболее гибкими из всех типов фраз, часто связанных с более чем двумя вещами друг к другу, например "сотрудники продают продукты клиентов". Выражения глаголов используются в следующих типах вопросов:

  • Кто продали кому?
  • Какой сотрудник продал chai Джону?
  • Сколько клиентов было продано мэри?
  • Перечислить продукты, которые Мэри продала Джону.
  • Какие прекращенные продукты были проданы клиентами Чикаго сотрудниками Бостона?

Фразы глаголов также могут содержать предпозиционные фразы, тем самым добавляя к их гибкости, такие как "спортсмены выигрывают медали на соревнованиях" или "клиенты получают возмещение за продукты". Выражения глаголов с препозициональными фразами используются в следующих типах вопросов:

  • Сколько спортсменов выиграли золотую медаль на чемпионате Виз?
  • Какие клиенты получили возмещение за сыр?
  • На каком конкурсе Данелл Лейва выиграл бронзовую медаль?

Некоторые выражения глаголов создаются автоматически, когда столбец распознается как содержащий команду, так и предпозицию.

Ниже приведен пример того, как фраза глагола выглядит внутри лингвистической схемы:
customers_buy_products_from_salespeople:

Binding: {Table: Orders}
  Phrasings:
  - Verb:
      Subject: customer
      Verbs: [buy, purchase]
      Object: product
      PrepositionalPhrases:
      - Prepositions: [from]
        Object: salesperson

Связи с несколькими фразами

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

Ниже приведен пример того, как связь с двумя выражениями выглядит внутри лингвистической схемы:
customer_has_name:

Binding: {Table: Customers}
Phrasings:
  - Attribute: {Subject: customer, Object: customer.name}
  - Name:
      Subject: customer
      Object: customer.name

Еще одним примером будет добавление альтернативного выражения "сотрудники продают продукты клиентов" в отношения "клиенты покупают продукты от сотрудников". Вам не нужно добавлять такие варианты, как "сотрудники продают продукты клиентам" или "продукты продаются клиентами сотрудниками", потому что варианты "по" и "to" субъекта и косвенного объекта автоматически выводятся Q&A.

Рекомендации и устранение неполадок

Если изменить файл .lsdl.yaml, который не соответствует формату лингвистической схемы, проверка указывает на проблему:

Screenshot of a sample .yaml file showing errors.

Есть еще вопросы? Спросите Сообщество Power BI