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Если следующая лексема не является числом, то прерывание происходит в конечный период. Если следующая лексема является числом, не ломайте его в конечный период.«fig»."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