exponenta event banner

addSentenceDetails

Добавление номеров предложений в документы

Описание

Использовать addSentenceDetails для добавления информации о предложении в документы.

Функция поддерживает английский, японский, немецкий и корейский тексты.

пример

updatedDocuments = addSentenceDetails(documents) обнаруживает границы предложения в documents и обновляет сведения о маркере. Чтобы получить сведения о предложении от updatedDocuments, использовать tokenDetails.

updatedDocuments = addSentenceDetails(documents,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение.

Совет

Использовать addSentenceDetails перед использованием lower, upper, erasePunctuation, normalizeWords, removeWords, и removeStopWords функции как addSentenceDetails использует информацию, удаляемую этими функциями.

Примеры

свернуть все

Создание маркированного массива документов.

str = [ ...
    "This is an example document. It has two sentences."
    "This document has one sentence."
    "Here is another example document. It also has two sentences."];
documents = tokenizedDocument(str);

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

documents = addSentenceDetails(documents);
tdetails = tokenDetails(documents);
head(tdetails)
ans=8×6 table
      Token       DocumentNumber    SentenceNumber    LineNumber       Type        Language
    __________    ______________    ______________    __________    ___________    ________

    "This"              1                 1               1         letters           en   
    "is"                1                 1               1         letters           en   
    "an"                1                 1               1         letters           en   
    "example"           1                 1               1         letters           en   
    "document"          1                 1               1         letters           en   
    "."                 1                 1               1         punctuation       en   
    "It"                1                 2               1         letters           en   
    "has"               1                 2               1         letters           en   

Просмотрите сведения о маркере второго предложения третьего документа.

idx = tdetails.DocumentNumber == 3 & ...
    tdetails.SentenceNumber == 2;
tdetails(idx,:)
ans=6×6 table
       Token       DocumentNumber    SentenceNumber    LineNumber       Type        Language
    ___________    ______________    ______________    __________    ___________    ________

    "It"                 3                 2               1         letters           en   
    "also"               3                 2               1         letters           en   
    "has"                3                 2               1         letters           en   
    "two"                3                 2               1         letters           en   
    "sentences"          3                 2               1         letters           en   
    "."                  3                 2               1         punctuation       en   

Входные аргументы

свернуть все

Исходные документы, указанные как tokenizedDocument массив.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Abbreviations',["cm" "mm" "in"] определяет обнаружение границ предложений, в которых за этими сокращениями следуют точка и начало предложения с заглавной буквы.

Список сокращений, указанных как строковый массив, символьный вектор, клеточный массив символьных векторов или таблица.

Если Abbreviations - строковый массив, символьный вектор или клеточный массив символьных векторов, затем функция рассматривает их как регулярные сокращения. Если следующее слово является стартером предложения с заглавной буквы, то функция разрывается в завершающем периоде. Функция игнорирует любые различия в буквенном регистре сокращений. Укажите начальные предложения с помощью Starters пара имя-значение.

Чтобы задать различные варианты поведения при разделении предложений в сокращениях, укажите Abbreviations в виде таблицы. Таблица должна иметь переменные с именем Abbreviation и Usage, где Abbreviation содержит сокращения, и Usage содержит тип каждой аббревиатуры. В следующей таблице описаны возможные значения Usageи поведение функции при передаче сокращений этих типов.

ИспользованиеПоведениеПример сокращенияПример текстаОбнаруженные предложения
regularЕсли следующее слово является стартером предложения с заглавной буквы, то делитесь на конец периода. В противном случае не делайте перерыв в конечном периоде.«appt.»"Book an appt. We'll meet then."

"Book an appt."

"We'll meet then."

"Book an appt. today.""Book an appt. today."
innerНе прерывать после завершающего периода.«Доктор»."Dr. Smith.""Dr. Smith."
referenceЕсли следующий маркер не является числом, то разрыв выполняется в конечном периоде. Если следующий маркер является числом, то не делайте перерыв в конечном периоде.«рис»."See fig. 3.""See fig. 3."
"Try a fig. They are nice."

"Try a fig."

"They are nice."

unitЕсли предыдущее слово является числом, а следующее слово является начальным предложением с заглавной буквы, то следует прерваться в завершающем периоде.«в»."The height is 30 in. The width is 10 in."

"The height is 30 in."

"The width is 10 in."

Если предыдущее слово является числом, а следующее слово не заглавно, то не делайте разрыв в завершающем периоде."The item is 10 in. wide.""The item is 10 in. wide."
Если предыдущее слово не является числом, то разрыв выполняется в конце периода."Come in. Sit down."

"Come in."

"Sit down."

Значением по умолчанию является вывод abbreviations функция. Для японского и корейского текста сокращения обычно не влияют на обнаружение предложений.

Совет

По умолчанию функция рассматривает сокращения с одной буквой, такие как «V», или маркеры со смешанными одиночными буквами и периодами, такие как «U.S.A»., как обычные сокращения. Нет необходимости включать эти сокращения в Abbreviations.

Пример: ["cm" "mm" "in"]

Типы данных: char | string | table | cell

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

Значением по умолчанию является вывод stopWords функция.

Типы данных: char | string | cell

Параметр для отбрасывания ранее вычисленных сведений и их повторного вычисления, указанный как true или false.

Типы данных: logical

Выходные аргументы

свернуть все

Обновленные документы, возвращенные как tokenizedDocument массив. Получение сведений о токене из updatedDocuments, использовать tokenDetails.

Подробнее

свернуть все

Языковые соображения

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

Для других языков может потребоваться указать собственный список сокращений для обнаружения предложений. Для этого используйте 'Abbreviations' вариант addSentenceDetails.

Алгоритмы

Если смайлики или эмодзи появляются после завершающего символа пунктуации, то функция разделяет предложение после смайликов и эмодзи.

Представлен в R2018a