exponenta event banner

контекст

Поиск в документах вхождений word или n-gram в контексте

Описание

пример

T = context(documents,word) ищет вхождения одного слова в documents и возвращает таблицу, показывающую word в контексте и его местоположениях. Функция по умолчанию чувствительна к регистру.

пример

T = context(documents,ngram) ищет вхождения n-грамма в documents. Функция по умолчанию чувствительна к регистру.

пример

T = context(___,contextLength) указывает длину контекста, возвращаемого с использованием любого из предыдущих синтаксисов.

пример

T = context(___,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение, используя любой из предыдущих синтаксисов.

Примеры

свернуть все

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Ищите слово «жизнь.»

tbl = context(documents,"life");
head(tbl)
ans=8×3 table
                            Context                             Document    Word
    ________________________________________________________    ________    ____

    "consumst thy self single life ah thou issueless shalt "        9        10 
    "ainted counterfeit lines life life repair times pencil"       16        35 
    "d counterfeit lines life life repair times pencil pupi"       16        36 
    " heaven knows tomb hides life shows half parts write b"       17        14 
    "he eyes long lives gives life thee                    "       18        69 
    "tender embassy love thee life made four two alone sink"       45        23 
    "ves beauty though lovers life beauty shall black lines"       63        50 
    "s shorn away live second life second head ere beautys "       68        27 

Просмотр вхождений в массиве строк.

tbl.Context
ans = 23x1 string
    "consumst thy self single life ah thou issueless shalt "
    "ainted counterfeit lines life life repair times pencil"
    "d counterfeit lines life life repair times pencil pupi"
    " heaven knows tomb hides life shows half parts write b"
    "he eyes long lives gives life thee                    "
    "tender embassy love thee life made four two alone sink"
    "ves beauty though lovers life beauty shall black lines"
    "s shorn away live second life second head ere beautys "
    "e rehearse let love even life decay lest wise world lo"
    "st bail shall carry away life hath line interest memor"
    "art thou hast lost dregs life prey worms body dead cow"
    "           thoughts food life sweetseasond showers gro"
    "tten name hence immortal life shall though once gone w"
    " beauty mute others give life bring tomb lives life fa"
    "ve life bring tomb lives life fair eyes poets praise d"
    " steal thyself away term life thou art assured mine li"
    "fe thou art assured mine life longer thy love stay dep"
    " fear worst wrongs least life hath end better state be"
    "anst vex inconstant mind life thy revolt doth lie o ha"
    " fame faster time wastes life thou preventst scythe cr"
    "ess harmful deeds better life provide public means pub"
    "ate hate away threw savd life saying                  "
    " many nymphs vowd chaste life keep came tripping maide"

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Ищите биграмму «dost thou.»

ngram = ["dost" "thou"];
tbl = context(documents,ngram);
head(tbl)
ans=8×3 table
                               Context                               Document      Word  
    _____________________________________________________________    ________    ________

    "unthrifty loveliness why dost thou spend upon thy self thy "        4        4     5
    "ee beauteous niggard why dost thou abuse bounteous largess "        4       25    26
    "ve profitless usurer why dost thou great sum sums yet canst"        4       35    36
    "eavy eyelids weary night dost thou desire slumbers broken s"       61       10    11
    "            sweet lovely dost thou make shame like canker f"       95        3     4
    "hy budding name o sweets dost thou thy sins enclose tongue "       95       19    20
    "ruth beauty love depends dost thou therein dignified make a"      101       16    17
    "    thou blind fool love dost thou mine eyes behold know be"      137        5     6

Просмотр вхождений в массиве строк.

tbl.Context
ans = 10x1 string
    "unthrifty loveliness why dost thou spend upon thy self thy "
    "ee beauteous niggard why dost thou abuse bounteous largess "
    "ve profitless usurer why dost thou great sum sums yet canst"
    "eavy eyelids weary night dost thou desire slumbers broken s"
    "            sweet lovely dost thou make shame like canker f"
    "hy budding name o sweets dost thou thy sins enclose tongue "
    "ruth beauty love depends dost thou therein dignified make a"
    "    thou blind fool love dost thou mine eyes behold know be"
    "h rebel powers array why dost thou pine suffer dearth paint"
    "y large cost short lease dost thou upon thy fading mansion "

Загрузите данные примера. Файл sonnetsPreprocessed.txt содержит предварительно обработанные версии сонетов Шекспира. Файл содержит один сонет на строку со словами, разделенными пробелом. Извлечь текст из sonnetsPreprocessed.txtразделите текст на документы с новыми символами, а затем пометьте документы.

filename = "sonnetsPreprocessed.txt";
str = extractFileText(filename);
textData = split(str,newline);
documents = tokenizedDocument(textData);

Поиск слова «life» и возврат каждого вхождения с 15-символьным контекстом до и после.

tbl = context(documents,"life",15);
head(tbl)
ans=8×3 table
                  Context                   Document    Word
    ____________________________________    ________    ____

    "hy self single life ah thou issuel"        9        10 
    "nterfeit lines life life repair ti"       16        35 
    "eit lines life life repair times p"       16        36 
    "ows tomb hides life shows half par"       17        14 
    "ng lives gives life thee          "       18        69 
    "assy love thee life made four two "       45        23 
    " though lovers life beauty shall b"       63        50 
    "ay live second life second head er"       68        27 

Просмотр вхождений в массиве строк.

tbl.Context
ans = 23x1 string
    "hy self single life ah thou issuel"
    "nterfeit lines life life repair ti"
    "eit lines life life repair times p"
    "ows tomb hides life shows half par"
    "ng lives gives life thee          "
    "assy love thee life made four two "
    " though lovers life beauty shall b"
    "ay live second life second head er"
    " let love even life decay lest wis"
    "all carry away life hath line inte"
    "ast lost dregs life prey worms bod"
    " thoughts food life sweetseasond s"
    "hence immortal life shall though o"
    "te others give life bring tomb liv"
    "ing tomb lives life fair eyes poet"
    "self away term life thou art assur"
    "t assured mine life longer thy lov"
    "t wrongs least life hath end bette"
    "nconstant mind life thy revolt dot"
    "er time wastes life thou preventst"
    "l deeds better life provide public"
    "way threw savd life saying        "
    "hs vowd chaste life keep came trip"

Укажите исходный текст для отображения контекста.

Загрузить sonnets.txt данные и разбить их на отдельные документы.

txt = extractFileText("sonnets.txt");
paragraphs = split(txt,[newline newline]);

Извлеките сонеты из paragraphs. Первый сонет является пятым элементом параграфов, а остальные сонеты появляются в каждом втором элементе после.

sonnets = paragraphs(5:2:end);
documents = tokenizedDocument(sonnets);

Нормализовать текст, затем искать слово «жизнь».

documentsNormalized = normalizeWords(documents);
T = context(documentsNormalized,"life")
T=23×3 table
                            Context                             Document    Word
    ________________________________________________________    ________    ____

    "sum'st thy self in singl life ? ah ! if thou issueless"        9        18 
    " : so should the line of life that life repair , which"       16        73 
    "ld the line of life that life repair , which thi , tim"       16        75 
    "s a tomb which hide your life , and show not half your"       17        34 
    " live thi , and thi give life to thee .               "       18       128 
    "ssi of love to thee , my life , be made of four , with"       45        53 
    "eauti , though my lover' life : hi beauti shall in the"       63       100 
    " awai , to live a second life on second head ; er beau"       68        59 
    "t your love even with my life decai ; lest the wise wo"       71       118 
    "shall carri me awai , my life hath in thi line some in"       74        18 
    "ast but lost the dreg of life , the prei of worm , my "       74        83 
    "to my thought as food to life , or as sweet-season'd s"       75        10 
    "ur name from henc immort life shall have , though i , "       81        42 
    " , when other would give life , and bring a tomb . the"       83       108 
    "a tomb . there live more life in on of your fair ey th"       83       118 
    "yself awai , for term of life thou art assur mine ; an"       92        13 
      ⋮

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

T = context(documentsNormalized,"life",'Source',sonnets)
T=23×3 table
                            Context                             Document    Word
    ________________________________________________________    ________    ____

    "um'st thy self in single life? Ah! if thou issueless s"        9        18 
    ": So should the lines of life that life repair, Which "       16        73 
    "d the lines of life that life repair, Which this, Time"       16        75 
    " a tomb Which hides your life, and shows not half your"       17        34 
    "ves this, and this gives life to thee.                "       18       128 
    "assy of love to thee, My life, being made of four, wit"       45        53 
    "eauty, though my lover's life: His beauty shall in the"       63       100 
    "n away, To live a second life on second head; Ere beau"       68        59 
    "t your love even with my life decay; Lest the wise wor"       71       118 
    " shall carry me away, My life hath in this line some i"       74        18 
    "st but lost the dregs of life, The prey of worms, my b"       74        83 
    "o my thoughts as food to life, Or as sweet-season'd sh"       75        10 
    "name from hence immortal life shall have, Though I, on"       81        42 
    ", When others would give life, and bring a tomb. There"       83       108 
    "a tomb. There lives more life in one of your fair eyes"       83       118 
    "hyself away, For term of life thou art assured mine; A"       92        13 
      ⋮

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

свернуть все

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

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

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

N-грамм для поиска в контексте, определяемом как строковый массив или массив ячеек символьных векторов.

ngram имеет размер 1около-N , где N - число слов в n-грамме. Значение ngram(j) является jВосьмое слово n-грамма.

Функция игнорирует конечные пустые строки в ngram.

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

Длина контекста, заданная как положительное целое число.

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

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

Пример: 'Solver','avb' определяет использование аппроксимации вариационного Байеса в качестве решателя.

Исходный текст, указанный как разделенная запятыми пара, состоящая из 'Source' и строковый массив или массив ячеек символьных векторов. Если входные документы предварительно обработаны и имеется исходный текст, можно использовать эту опцию, чтобы сделать вывод более читаемым.

Исходный текст должен быть того же размера, что и documents.

Параметр для игнорирования регистра, заданного как разделенная запятыми пара, состоящая из 'IgnoreCase' и одно из следующих:

  • false - поиск вхождений, точно соответствующих слову или n-грамму.

  • true - поиск вхождений, соответствующих слову или регистру с игнорированием n-gram.

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

свернуть все

Таблица контекстов со следующими столбцами:

ContextСтрока, содержащая запрашиваемое слово или n-грамм в контексте
DocumentЧисловой индекс документа, содержащего слово или n-грамм
WordЧисловые индексы слова или n-грамма в документе

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