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 с помощью datastore файла.

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

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

                       Files: {
                              ' .../tp3a31d8eb/textanalytics-ex73762432/exampleSonnet1.txt';
                              ' .../tp3a31d8eb/textanalytics-ex73762432/exampleSonnet2.txt';
                              ' .../tp3a31d8eb/textanalytics-ex73762432/exampleSonnet3.txt'
                               ... and 1 more
                              }
                     Folders: {
                              ' .../mlx_to_docbook5/tp3a31d8eb/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