docfun

Примените функцию к словам в документах

Синтаксис

newDocuments = docfun(func,documents)
newDocuments = docfun(func,documents1,...,documentsN)

Описание

пример

newDocuments = docfun(func,documents) вызывает функцию, заданную указателем на функцию func, и передает элементы documents как вектор строки слов.

  • Если func принимает точно один входной параметр, то словами newDocuments(i) является вывод func(string(documents(i))).

  • Если func принимает два входных параметра, то словами newDocuments(i) является вывод func(string(documents(i)),details), где details содержит соответствующие маркерные детали, выведенные tokenDetails.

  • Если func изменяет количество слов в документе, то docfun удаляет маркерные детали из того документа.

docfun не выполняет вызовы функционального func в определенном порядке.

пример

newDocuments = docfun(func,documents1,...,documentsN) вызывает функцию, заданную указателем на функцию func, и передает элементы documents1,…,documentsN как векторы строки слов, где N является количеством входных параметров к функциональному func. Словами newDocuments(i) является вывод func(string(documents1(i)),...,string(documentsN(i))).

Каждый documents1,…,documentsN должен быть одного размера.

Примеры

свернуть все

Примените reverse к каждому слову в массиве документа.

documents = tokenizedDocument([ ...
    "an example of a short sentence" 
    "a second short sentence"])
documents = 
  2x1 tokenizedDocument:

    6 tokens: an example of a short sentence
    4 tokens: a second short sentence

func = @reverse;
newDocuments = docfun(func,documents)
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: na elpmaxe fo a trohs ecnetnes
    4 tokens: a dnoces trohs ecnetnes

Пометьте слова путем объединения слов от одного массива документа с другим, использования строковой функции plus.

Создайте первый массив tokenizedDocument. Сотрите пунктуацию и преобразуйте текст в нижний регистр.

str = [ ...
    "An example of a short sentence."
    "A second short sentence."];
str = erasePunctuation(str);
str = lower(str);
documents1 = tokenizedDocument(str)
documents1 = 
  2x1 tokenizedDocument:

    6 tokens: an example of a short sentence
    4 tokens: a second short sentence

Создайте второй массив tokenizedDocument. Документы имеют то же количество слов как соответствующие документы в documents1. Слова documents2 являются POS тегами для соответствующих слов.

documents2 = tokenizedDocument([ ...
    "_det _noun _prep _det _adj _noun"
    "_det _adj _adj _noun"])
documents2 = 
  2x1 tokenizedDocument:

    6 tokens: _det _noun _prep _det _adj _noun
    4 tokens: _det _adj _adj _noun

func = @plus;
newDocuments = docfun(func,documents1,documents2)
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: an_det example_noun of_prep a_det short_adj sentence_noun
    4 tokens: a_det second_adj short_adj sentence_noun

Вывод не является тем же самым как вызовом plus на документах непосредственно.

plus(documents1,documents2)
ans = 
  2x1 tokenizedDocument:

    12 tokens: an example of a short sentence _det _noun _prep _det _adj _noun
     8 tokens: a second short sentence _det _adj _adj _noun

Входные параметры

свернуть все

Указатель на функцию, который принимает строковые массивы N как вводы и выводы массив строк. func должен принять string(documents1(i)),...,string(documentsN(i)) как вход.

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

  • newWords = func(words), где words является массивом строк слов единого документа.

  • newWords = func(words,details), где words является массивом строк слов единого документа и details, является соответствующей таблицей маркерной подробной информации, предоставленной tokenDetails.

  • newWords = func(words1,...,wordsN), где words1,...,wordsN строковые массивы слов.

Пример: @reverse

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

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

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

свернуть все

Выведите документы, возвращенные как массив tokenizedDocument.

Введенный в R2017b