addSentenceDetails

Добавьте числа предложения в документы

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

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

Синтаксис

updatedDocuments = addSentenceDetails(documents)
updatedDocuments = addSentenceDetails(documents,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

ИспользованиеПоведениеСокращение в качестве примераТекст в качестве примераОбнаруженные предложения
regularЕсли следующее слово является капитализированным начинающим предложения, то повредитесь в запаздывающий период. В противном случае не повреждайтесь в запаздывающий период."назначенный"."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Если следующая лексема не является номером, то повредитесь в запаздывающий период. Если следующая лексема является номером, то не повреждайтесь в запаздывающий период."fig"."See fig. 3.""See fig. 3."
"Try a fig. They are nice."

"Try a fig."

"They are nice."

unitЕсли предыдущее слово является номером, и следующее слово является капитализированным начинающим предложения, то повредитесь в запаздывающий период.\in"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

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

свернуть все

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

Больше о

свернуть все

Факторы языка

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

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

Алгоритмы

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

Введенный в R2018a