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 с помощью file datastore.

Создайте файл datastore для текстовых файлов сонета в качестве примера. Примеры сонетов имеют имена файлов "exampleSonnetN.txt, "где N - номер сонета. Задайте функцию read, которая будет 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

Закольцовывайте файлы в datastore и считывайте каждый файл. Токенизируйте текст в каждом файле и добавляйте документ в 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