Перейти к содержимому
Последнее обновление

В этом разделе подробно описаны все компоненты и структуры данных в структурах ответов, возвращаемых Tisane.

Ответ POST /parse включает разделы, которые могут быть отображены или скрыты в зависимости от предоставленных настроек. (Дополнительную информацию см. в Руководство по конфигурации и настройке.)

Атрибуты корневого уровня:

  • text (string) — исходный введенный текст.
  • language (string) — обнаруженный код языка, если использовалась идентификация языка.
  • reduced_output (boolean) — указывает, была ли пропущена подробная информация из-за размера входных данных.
  • sentiment (floating-point number) — оценка тональности на уровне документа (от -1 до 1). Отображается только в том случае, если для параметра document_sentiment задано значение true.
  • signal2noise (floating-point number) — показатель релевантности, показывающий, насколько близко текст соответствует концепциям из параметра relevant. Это значение появляется только в том случае, если существует настройка relevant.

Проблемный контент

Tisane автоматически анализирует текст на предмет потенциального проблемного контента и отмечает их в реакциях.

В разделе abuse перечислены обнаруженные случаи контента, которые могут потребовать внимания модераторов или представлять интерес для правоохранительных органов.

Этот раздел появляется, если:

  1. Обнаружены случаи проблемного контента;
  2. Параметр abuse установлен на true (или пропущен).

Сценарии использования могут различаться. Интеграторы и администраторы сообществ несут ответственность за то, следует ли реагировать на различные типы помеченного контента и как именно это делать.

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

Если вы не хотите, чтобы в вашем ответе отображался проблемный контент, вам необходимо явно установить для параметра abuse значение false.

Атрибуты контента

Каждый экземпляр содержит следующие атрибуты:

  • type (string) - Тип нарушения
  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина содержимого.
  • sentence_index (unsigned integer) — индекс предложения, содержащего экземпляр. Отсчет ведется от нуля.
  • text (string) — фрагмент текста, содержащий экземпляр. Появляется только в том случае, если для параметра snippets задано значение true.
  • tags (array of strings) — дополнительные сведения о злоупотреблениях. Например: если фрагмент классифицируется как попытка продажи тяжелых наркотиков, экземпляр содержит тег hard_drugtag.
  • severity (string) — насколько серьезен факт злоупотребления. Уровни серьезности: low, medium, high и extreme.
  • explanation (string) — обоснование классификации (если включено explain).

Поддерживаемые типы

Поддерживаемые типы проблемного контента:

  • personal_attack (личные нападки) - прямые оскорбления или нападки, направленные на отдельного человека. Например: случаи кибербуллинга. Примечание: Критика идей, постов или негативная тональность не является личным оскорблением. См. также: Личные нападки

  • bigotry (нетерпимость) — разжигание ненависти или выражение нетерпимых мнений; враждебные высказывания, направленные на защищённые группы (религия, национальность, сексуальная ориентация, семейное положение, инвалидность, пол). Сюда входят не только расовые оскорбления, но и любые враждебные высказывания, направленные против группы в целом. См. также: Нетерпимость и разжигание ненависти

  • profanity (сквернословие) — использование ненормативной лексики независимо от контекста или намерения. Обратите внимание, что расовые оскорбления не попадают в этот тип. См. также: Ненормативная лексика

  • sexual_advances (cексуальные домогательства) - попытки, как желательные, так и нежелательные, добиться сексуальных услуг или удовлетворения. См. также: Сексуальные домогательства

  • criminal_activity (преступная деятельность) — контент, включающий попытки продать или приобрести незаконные предметы, заняться оказанием или приобретением преступных услуг, или высказывание угроз физической расправы. См. также: Преступная деятельность

  • external_contact - попытки инициировать общение или оплату через внешние каналы. Например: Телефон, электронная почта, приложения для обмена сообщениями. Подобные попытки могут нарушать правила определенных сообществ, например, платформ гиг-экономики или сайтов электронной коммерции. См. также: Попытки установить внешний контакт

  • adult_only (только для взрослых) - действия и темы, неприемлемые для несовершеннолетних. Например: Употребление алкоголя. См. также: Контент только для взрослых

  • mental_issues (проблемы с психикой) — контент, который может указывать на проблемы с психическим здоровьем, такие как мысли о самоубийстве или признаки депрессии. См. также: Проблемы с психическим здоровьем

  • allegation (обвинение) — обвинения в неправомерном преступном поведении, или деятельности, о которой обычно не распространяются. См. также: Обвинения

  • contentious (противоречивое) — контент, который может спровоцировать эмоциональную реакцию у отдельных лиц или групп. См. также: Противоречивый контент

  • disturbing (тревожное) - графические или тревожные описания, которые могут огорчить читателей. См. также: Графический контент

  • no_meaningful_content (нет осмысленного контента) - текст, не имеющий смысла. См. также: Бессмысленный контент

  • data_leak (утечка данных) - Опубликованные конфиденциальные данные. Например: пароли, идентификационные номера. См. также: Утечки данных

  • spam (спам) - Спам-контент. См. также: Спам

  • social_hierarchy (социальная иерархия) - попытки силового утверждения иерархии в сообществе. См. также: Утверждение иерархии

  • generic — проблемный контент, который не вписывается ни в одну определенную категорию.

Анализ тональности

Раздел sentiment_expressions включает в себя отношение к аспектам или сущностям.

Этот раздел появляется, если:

  1. Найдены случаи, когда чувства выражаются; и
  2. Параметр sentiment установлен на true (или опущен).

Каждый экземпляр содержит следующие атрибуты:

  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина содержимого.
  • sentence_index (unsigned integer) — индекс предложения, содержащего экземпляр. Отсчет ведется от нуля.
  • text (string) — фрагмент текста, содержащий экземпляр (если параметр snippets имеет значение true).
  • polarity (string) — указывает на тон текста: positive, negative или mixed. Также существует значение по умолчанию, используемое в случае, когда тональность заранее определена приложением. Например: если обзор разделен на две части: Что вам понравилось? и Что вам не понравилось?, которые не посылаются Tisane-у, а рецензент отвечает кратко: Тишина. Служба, полярность по умолчанию позволяет приложению назначать настроение извне на основе контекста.
  • targets (array of strings) — перечисляет конкретные аспекты или сущности, к которым относится мнение, если таковые имеются. Например, в предложении Завтрак был вкусным, но персонал недружелюбный целевыми настроениями являются food и staff. Именованные сущности также могут быть целями настроений.
  • reasons (array of strings) — обоснования мнения, если таковые имеются. Например, в предложении Завтрак был вкусным, но персонал недружелюбный массив reasons для аспекта персонал — это ["unfriendly"], а массив reasons для завтрак — это ["tasty"].
  • explanation (string) — обоснование мнения (если включена установка explain).

Пример:

"sentiment_expressions": [
   {
       "sentence_index": 0,
        "offset": 0,
        "length": 32,
        "polarity": "positive",
        "reasons": ["close"],
        "targets": ["location"]
    },
    {
       "sentence_index": 0,
        "offset": 38,
        "length": 29,
        "polarity": "negative",
        "reasons": ["disrespectful"],
        "targets": ["staff"]
    }
]

Именованные объекты

В разделе entities_summary перечислены обнаруженные в тексте объекты.

Этот раздел появляется, если:

  1. Названные объекты найдены, и:
  2. Параметр entities установлен на true (или пропущен).

Каждый объект содержит следующие атрибуты:

  • name (string) — Наиболее полная форма названия объекта, встречающаяся в тексте во всех упоминаниях.
  • ref_lemma (string) — словарная форма (лемма) объекта на английском языке, если она доступна, независимо от языка ввода.
  • type (string or array of strings) — определяет тип объекта. Некоторые объекты могут иметь несколько типов. Страна (или любое другое геополитическое образование, объявляющее себя страной, даже если оно не общепризнано в качестве такового) считается одновременно местом и организацией.
  • subtype (string) — указывает более подробную классификацию в пределах типа объекта.
  • mentions (array of objects) — выводит список всех случаев, когда объект появляется в тексте.

Каждое упоминание содержит следующие атрибуты:

  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина содержимого.
  • sentence_index (unsigned integer) — индекс предложения, содержащего экземпляр. Отсчет ведется от нуля.
  • text (string) — фрагмент текста, содержащий экземпляр (если параметр snippets имеет значение true).

Пример:

"entities_summary": [
       {
           "type": "person",
            "name": "John Smith",
            "ref_lemma": "John Smith",
            "mentions": [
               {
                   "sentence_index": 0,
                    "offset": 0,
                    "length": 10 }
            ]
        }
   ,
        {
           "type": [ "organization", "place" ]
       ,
            "name": "UK",
            "ref_lemma": "U.K.",
            "mentions": [
               {
                   "sentence_index": 0,
                    "offset": 40,
                    "length": 2 }
            ]
        }
    ]

Типы и подтипы именованных объектов

В настоящее время поддерживаются следующие типы объектов:

  • person — имя человека. С дополнительными подтипами: fictional_character, important_person, spiritual_being
  • organization — название организации. Примечание: Страна — это и организация, и место
  • place — место
  • time_range — временной диапазон
  • date — дата
  • time — время
  • hashtag — хэштег
  • email — адрес электронной почты
  • amount_of_money - сумма денег
  • phone — номер телефона, как внутренний, так и международный, в различных форматах.
  • role — социальная роль. Например: Должность в организации.
  • software — пакет программного обеспечения
  • website — адрес вебсайта ; Примечание: веб-службам также может быть назначен тип software
  • item_of_interest — Любой тип артефакта, представляющий потенциальный интерес для расследования. Например: оружие, наркотики, транспортные средства, предметы роскоши
  • weight — вес
  • bank_account В настоящее время поддерживается только формат IBAN; подтипы: iban
  • credit_card — номер кредитной карты с дополнительными подтипами: visa, mastercard, american_express, diners_club, discovery, jcb, unionpay
  • coordinates — GPS-координаты
  • credential — учетные данные, с дополнительными подтипами: md5, sha-1
  • crypto — криптовалюта, с дополнительными подтипами: bitcoin, ethereum, monero, monero_payment_id, litecoin, dash
  • event — значимое событие, в котором принимают участие несколько человек.
  • file — название или путь файла. Поддерживаются только пути Windows; подтипы: windows, facebook (для изображений, загруженных из Facebook)
  • flight_code — код рейса
  • identifier — любые буквенно-цифровые идентификаторы (идентификационные номера, коды и т. д.), не классифицированные в другом месте.
  • ip_address — IP-адрес, подтипы: v4, v6
  • mac_address — МАС-адрес
  • numeric — любая числовая сущность
  • username — имя пользователя

Темы

В разделе topics перечислены обнаруженные в тексте темы. Например: субъекты, домены, темы в других терминах.

Этот раздел появляется, если:

  1. Темы найдены, и;
  2. Параметр topics установлен на true (или пропущен).

Если настройка topic_stats установлена на true, каждая запись в массиве содержит:

  • topic (string) - Название темы.
  • coverage (floating-point number) — показатель релевантности, представляющий собой отношение предложений, в которых обнаружена тема, к общему количеству предложений.

Долговременная память

Раздел memory предоставляет необязательный контекст, который можно передать в settings в последующих сообщениях в той же ветке беседы.

Более подробную информацию см. в разделе Контекст и долговременная память.

Данные низкого уровня: Предложения, фразы и слова

Tisane также может предоставить более подробные лингвистические данные:

  • Предложения: Оригинальные предложения, а также их исправленные версии, если обнаружены какие-либо ошибки.
  • Лексические фрагменты: Группы слов (фрагменты), снабженные грамматическими и стилистическими примечаниями.
  • Деревья синтаксического анализа и фразы: Иерархические представления структуры предложения, выделение фраз и их взаимосвязей.

Предложения

Раздел sentence_list генерируется, если:

  • Параметр words или parses установлен на true.

Каждая структура предложения в списке содержит:

  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина содержимого.
  • text (string) — исходный введенный текст.
  • corrected_text (string) — автоматически исправленная версия предложения, если обнаружена опечатка или запутывание/алгоритмическая ошибка и включена проверка орфографии.
  • words (array of structures) — предоставляет подробную информацию о каждом лексическом фрагменте, если параметр words установлен в значение true. Примечание: Хотя термин «слово» используется для простоты, с лингвистической точки зрения может быть некорректно отождествлять лексические блоки с отдельными словами.
  • parse_tree (object) — содержит дерево анализа и обнаруженные фразы для предложения, когда параметр parses установлен в значение true.
  • nbest_parses (array of parse objects) — выводит список альтернативных деревьев анализа, которые близки к лучшему. Генерируется, когда оба параметра parses имеют значение true, а параметр deterministic явно установлен в значение false.

Слова

Раздел слов генерируется, если:

  • Параметр words установлен на true.

Каждая лексическая часть (для простоты называемая «словом») в массиве words содержит:

  • type (string) — определяет категорию элемента. Например: punctuation для знаков препинания, numeral для цифр или word для всех остальных текстовых элементов.
  • text (string) — исходный введенный текст.
  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина содержимого.
  • text (string) — автоматически исправленная версия предложения, если обнаружена ошибка.
  • lettercase (string) — указывает исходный регистр букв слова: upper, capital или mixed. Примечание: Если текст полностью состоит из строчных букв или нечувствителен к регистру, этот атрибут опускается.
  • stopword (boolean) — указывает, является ли слово stopword
  • grammar (array of strings or structures) — перечисляет грамматические особенности, связанные с word. Если параметр feature_standard определен как native, каждый параметр представляет собой объект, содержащий index(a numeral) и value(string). В противном случае каждый признак представляется в виде простой строки.

Дополнительно

Только для лексических слов:

  • role (string) - Семантическая роль слова. Например: agent или patient. Примечание: В пассивном залоге семантические роли меняются местами относительно синтаксических. Например: В The car was driven by David, car — пациент, а David — агент.

  • numeric_value (floating-point number) — числовое значение, если слово представляет его или связано с ним.

  • family (integer number) — идентификатор связанной семьи с разрешенным значением слова лексического фрагмента.

  • definition (string) - определение семейства.

    • Включается, если параметр fetch_definitions установлен в значение true.
  • lexeme (integer number) — идентификатор записи лексемы, связанной с разрешенным значением слова.

  • nondictionary_pattern (integer number) — идентификатор несловарного шаблона, который соответствовал слову, если оно не было найдено в языковой модели, но классифицировано с использованием несловарной эвристики.

  • style (array of strings or structures) — создает список стилевых особенностей, связанных со word.

    • Включено, если для параметра feature_standard задано значение native или description.
  • semantics (array of strings or structures) — создает список семантических признаков, связанных со word.

    • Включено, если для параметра feature_standard задано значение native или description.
  • segmentation (structure) — предоставляет информацию о выбранной сегментации. Сегментация — это массив структур слов.

    • Включается, если возможны множественные сегментации, а параметр deterministic установлен на false.
  • other_segmentations (array of structures) — перечисляет альтернативные сегментации, которые считаются неверными в процессе устранения неоднозначности. Каждая запись имеет ту же структуру, что и segmentation.

  • nbest_senses (array of structures) — предоставляет альтернативные гипотезы разрешения неоднозначности.

    • Включается, если параметр deterministic равен true.

    • Каждая гипотеза включает в себя:

      • grammar, style и semantics. Они структурированы идентично соответствующим атрибутам выше.
      • senses. Перечисляет значения слов для гипотезы, каждое из которых содержит:
        • family: Соответствующий семейный идентификатор.
        • definition: Определение семейства, если fetch_definitions включено.
        • ref_lemma: Справочная лемма, если таковая имеется.

Только для знаков препинания:

  • id (integer number) — идентификатор знака препинания.

  • behavior (string) — код поведения, определяющий функцию знака препинания. Значения:

    • sentenceTerminator
    • genericComma
    • bracketStart
    • bracketEnd
    • scopeDelimiter
    • hyphen
    • quoteStart
    • quoteEnd
    • listComma (для восточноазиатских запятых перечисления, таких как )

Знаки препинания не имеют n-лучших значений.

Разбор грамматических деревьев и фраз

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

Раздел дерева синтаксического анализа генерируется, если:

  • Параметр parses установлен на true.

На верхнем уровне синтаксического анализа находится массив корневых фраз, содержащихся в элементе phrases, каждая из которых связана с числовым id.

Каждая фраза может иметь дочерние фразы, образуя вложенную структуру.

Каждая фраза включает в себя следующие атрибуты:

  • type (string) — стандартный тег фразы, обозначающий тип фразы. Например: S, VP, NP, ADJP, ADVP.
  • family (integer number) — идентификатор семейства фраз.
  • offset (unsigned integer) — начальная позиция экземпляра. Отсчет ведется от нуля.
  • length (unsigned integer) — длина фразы.
  • role (string) — семантическая роль фразы, если применимо, аналогичная семантическим ролям, назначаемым отдельным словам.
  • text (string) — текстовое представление фразы: Члены фразы разделяются символом вертикальной черты (|). Дочерние фразы заключены в скобки (). Например:
    • driven|by|David 9 (плоская фраза, состоящая из трех частей)
    • (The|car)|was|(driven|by|David) (иерархическая структура с дочерними фразами).

Пример:

"parse_tree": {
"id": 4,
"phrases": [
{
       "type": "S",
       "family": 1451,
       "offset": 0,
       "length": 27,
       "text": "(The|car)|was|(driven|by|David)",
       "children": [
               {
                       "type": "NP",
                       "family": 1081,
                       "offset": 0,
                       "length": 7,
                       "text": "The|car",
                       "role": "patient"
               },
               {
                       "type": "VP",
                       "family": 1172,
                       "offset": 12,
                       "length": 15,
                       "text": "driven|by|David",
                       "role": "verb"
               }
       ]
}

Исправление орфографии с учетом контекста

Tisane поддерживает контекстно-зависимую коррекцию орфографии. Он выявляет и исправляет опечатки или преднамеренные искажения, выводя предполагаемое значение, особенно когда языковая модель не распознает слово.

При внесении исправления Tisane добавляет атрибут corrected_text:

  • На уровне слов: Если возвращаются отдельные слова или лексические фрагменты.

  • На уровне предложения: Если текст предложения сгенерирован.

Атрибут corrected_text на уровне предложения появляется, когда настройки words или parses установлены на true.

Исключить редкие термины

Tisane работает с большими словарями. Вы можете исключить эзотерические термины, изменив настройку min_generic_frequency.

Вызов проверки орфографии

Примечание: Проверка орфографии выполняется независимо от того, включены ли в вывод предложения или части слов.

Вы можете контролировать это поведение с помощью следующих настроек:

  • Установите для параметра disable_spellcheck значение true, чтобы полностью отключить проверку орфографии.

  • Чтобы избежать исправления имен собственных (в языках с заглавными буквами), установите для параметра lowercase_spellcheck_только значение true. Это ограничивает проверку орфографии словами, написанными строчными буквами, исключая термины, написанные заглавными и прописными буквами.