Считайте текст из PDF, Microsoft Word, HTML и файлов простого текста
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".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: { ' .../tpb40b811c/textanalytics-ex73762432/exampleSonnet1.txt'; ' .../tpb40b811c/textanalytics-ex73762432/exampleSonnet2.txt'; ' .../tpb40b811c/textanalytics-ex73762432/exampleSonnet3.txt' ... and 1 more } Folders: { ' .../mlx_to_docbook5/tpb40b811c/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"
filename
— Имя файлаИмя файла в виде строкового скаляра или вектора символов.
Типы данных: string
| char
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Pages',[1 3 5]
задает, чтобы считать страницы 1, 3, и 5 из файла PDF.'Encoding'
'CharacterEncoding' 'auto'
(значение по умолчанию) | 'UTF-8'
| 'ISO-8859-1'
| 'windows-1251'
| 'windows-1252'
| ...Кодировка символов, чтобы использовать в виде разделенной запятой пары, состоящей из 'Encoding'
и вектор символов или строковый скаляр. Вектор символов или строковый скаляр должны содержать имя схемы кодирования стандартного символа, такое как следующее.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Если вы не задаете схему кодирования, то функция выполняет эвристическое автоматическое обнаружение для кодирования, чтобы использовать. Если эта эвристика перестала работать, то необходимо задать тот явным образом.
Эта опция только применяется, когда вход является файлом простого текста.
Типы данных: char |
string
'ExtractionMethod'
— Метод экстракции'tree'
(значение по умолчанию) | 'article'
| 'all-text'
Метод экстракции в виде разделенной запятой пары, состоящей из 'ExtractionMethod'
и одно из следующего:
Опция | Описание |
---|---|
'tree' | Анализируйте дерево DOM и текстовое содержимое, затем извлеките блок абзацев. |
'article' | Обнаружьте текст статьи и извлеките блок абзацев. |
'all-text' | Извлеките весь текст в теле HTML, за исключением стилей CSS и скриптов. |
Эта опция поддерживает вход файла HTML только.
'Password'
— Пароль, чтобы открыть файл PDFПароль, чтобы открыть файл PDF в виде разделенной запятой пары, состоящей из 'Password'
и вектор символов или строковый скаляр. Эта опция только применяется, если входным файлом является PDF.
Пример: 'Password','skroWhtaM'
Типы данных: char |
string
'Pages'
— Страницы, чтобы читать из файла PDFСтраницы, чтобы читать из файла PDF в виде разделенной запятой пары, состоящей из 'Pages'
и вектор положительных целых чисел. Эта опция только применяется, если входной файл является файлом PDF. Функция, по умолчанию, читает все страницы из файла PDF.
Пример: 'Pages',[1 3 5]
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Чтобы считать текст непосредственно из кода HTML, используйте extractHTMLText
.
extractHTMLText
| readPDFFormData
| tokenizedDocument
| writeTextDocument
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.