exponenta event banner

extractFileText

Чтение текста из файлов PDF, Microsoft Word, HTML и обычного текста

Описание

пример

str = extractFileText(filename) считывает текстовые данные из файла в виде строки.

пример

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

Примеры

свернуть все

Извлечь текст из sonnets.txt использование extractFileText. Файл sonnets.txt содержит сонеты Шекспира открытым текстом.

str = extractFileText("sonnets.txt");

Просмотр первого сонета.

i = strfind(str,"I");
ii = strfind(str,"II");
start = i(1);
fin = ii(1);
extractBetween(str,start,fin-1)
ans = 
    "I
     
       From fairest creatures we desire increase,
       That thereby beauty's rose might never die,
       But as the riper should by time decease,
       His tender heir might bear his memory:
       But thou, contracted to thine own bright eyes,
       Feed'st thy light's flame with self-substantial fuel,
       Making a famine where abundance lies,
       Thy self thy foe, to thy sweet self too cruel:
       Thou that art now the world's fresh ornament,
       And only herald to the gaudy spring,
       Within thine own bud buriest thy content,
       And tender churl mak'st waste in niggarding:
         Pity the world, or else this glutton be,
         To eat the world's due, by the grave and thee.
     
       "

Извлечь текст из exampleSonnets.pdf использование extractFileText. Файл exampleSonnets.pdf содержит сонеты Шекспира в PDF-файле.

str = extractFileText("exampleSonnets.pdf");

Просмотр второго сонета.

ii = strfind(str,"II");
iii = strfind(str,"III");
start = ii(1);
fin = iii(1);
extractBetween(str,start,fin-1)
ans = 
    "II 
      
       When forty winters shall besiege thy brow, 
       And dig deep trenches in thy beauty's field, 
       Thy youth's proud livery so gazed on now, 
       Will be a tatter'd weed of small worth held: 
       Then being asked, where all thy beauty lies, 
       Where all the treasure of thy lusty days; 
       To say, within thine own deep sunken eyes, 
       Were an all-eating shame, and thriftless praise. 
       How much more praise deserv'd thy beauty's use, 
       If thou couldst answer 'This fair child of mine 
       Shall sum my count, and make my old excuse,' 
       Proving his beauty by succession thine! 
         This were to be new made when thou art old, 
         And see thy blood warm when thou feel'st it cold. 
      
       "

Извлеките текст из страниц 3, 5 и 7 PDF-файла.

pages = [3 5 7];
str = extractFileText("exampleSonnets.pdf", ...
    'Pages',pages);

Просмотр 10-го сонета.

x = strfind(str,"X");
xi = strfind(str,"XI");
start = x(1);
fin = xi(1);
extractBetween(str,start,fin-1)
ans = 
    "X 
      
       Is it for fear to wet a widow's eye, 
       That thou consum'st thy self in single life? 
       Ah! if thou issueless shalt hap to die, 
       The world will wail thee like a makeless wife; 
       The world will be thy widow and still weep 
       That thou no form of thee hast left behind, 
       When every private widow well may keep 
       By children's eyes, her husband's shape in mind: 
       Look! what an unthrift in the world doth spend 
       Shifts but his place, for still the world enjoys it; 
       But beauty's waste hath in the world an end, 
       And kept unused the user so destroys it. 
         No love toward others in that bosom sits 
         That on himself such murd'rous shame commits. 
      
       X 
      
       For shame! deny that thou bear'st love to any, 
       Who for thy self art so unprovident. 
       Grant, if thou wilt, thou art belov'd of many, 
       But that thou none lov'st is most evident: 
       For thou art so possess'd with murderous hate, 
       That 'gainst thy self thou stick'st not to conspire, 
       Seeking that beauteous roof to ruinate 
       Which to repair should be thy chief desire. 
     
     
      
       "

Если текстовые данные содержатся в нескольких файлах папки, можно импортировать текстовые данные в MATLAB с помощью хранилища данных файла.

Создайте хранилище данных файла для текстовых файлов примера сонета. Примеры сонетов имеют имена файлов "exampleSonnetN.txt", где N - номер сонета. Укажите функцию чтения, которая должна быть extractFileText.

readFcn = @extractFileText;
fds = fileDatastore('exampleSonnet*.txt','ReadFcn',readFcn)
fds = 
  FileDatastore with properties:

                       Files: {
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet1.txt';
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet2.txt';
                              ' .../tpd66a0468/textanalytics-ex73762432/exampleSonnet3.txt'
                               ... and 1 more
                              }
                     Folders: {
                              ' .../mlx_to_docbook5/tpd66a0468/textanalytics-ex73762432'
                              }
                 UniformRead: 0
                    ReadMode: 'file'
                   BlockSize: Inf
                  PreviewFcn: @extractFileText
      SupportedOutputFormats: [1x16 string]
                     ReadFcn: @extractFileText
    AlternateFileSystemRoots: {}

Создайте пустую модель пакета слов.

bag = bagOfWords
bag = 
  bagOfWords with properties:

          Counts: []
      Vocabulary: [1x0 string]
        NumWords: 0
    NumDocuments: 0

Закольцовывайте файлы в хранилище данных и считывайте каждый файл. Пометить текст в каждом файле и добавить документ в bag.

while hasdata(fds)
    str = read(fds);
    document = tokenizedDocument(str);
    bag = addDocument(bag,document);
end

Просмотр обновленной модели сумки слов.

bag
bag = 
  bagOfWords with properties:

          Counts: [4x276 double]
      Vocabulary: [1x276 string]
        NumWords: 276
    NumDocuments: 4

Для извлечения текстовых данных непосредственно из кода HTML используйте extractHTMLText и укажите HTML-код в виде строки.

code = "<html><body><h1>THE SONNETS</h1><p>by William Shakespeare</p></body></html>";
str = extractHTMLText(code)
str = 
    "THE SONNETS
     
     by William Shakespeare"

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

свернуть все

Имя файла, указанное как строковый скалярный или символьный вектор.

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

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

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

Пример: 'Pages',[1 3 5] определяет чтение страниц 1, 3 и 5 из PDF-файла.

Кодировка символов для использования, указанная как разделенная запятыми пара, состоящая из 'Encoding' и вектор символов или строковый скаляр. Вектор символов или строковый скаляр должен содержать стандартное имя схемы кодирования символов, например следующее.

'Big5'

'ISO-8859-1'

'windows-874'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

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

Этот параметр применяется только в том случае, если входным файлом является обычный текстовый файл.

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

Метод извлечения, указанный как разделенная запятыми пара, состоящая из 'ExtractionMethod' и одно из следующих:

ВыборОписание
'tree'Проанализируйте дерево DOM и содержимое текста, а затем извлеките блок абзацев.
'article'Обнаружение текста статьи и извлечение блока абзацев.
'all-text'Извлеките весь текст в тексте HTML, за исключением сценариев и стилей CSS.

Этот параметр поддерживает только ввод файлов HTML.

Пароль для открытия PDF-файла, указанный как разделенная запятыми пара, состоящая из 'Password' и вектор символов или строковый скаляр. Этот параметр применяется только в том случае, если входной файл является PDF.

Пример: 'Password','skroWhtaM'

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

Страницы для чтения из PDF-файла, указанные как разделенная запятыми пара, состоящая из 'Pages' и вектор положительных целых чисел. Этот параметр применяется только в том случае, если входной файл является файлом PDF. По умолчанию функция считывает все страницы из PDF-файла.

Пример: 'Pages',[1 3 5]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Совет

  • Для чтения текста непосредственно из HTML-кода используйте extractHTMLText.

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2020b

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