2014-11-05 3 views
1

Я хочу проанализировать файлы 10-K (финансовые отчеты фирм). Пример Apple можно найти here (ищите файл .txt). Теперь я читал этот research paper (смотрите на странице 30-31) о том, как разбирать эти файлы. Первый шаг описывается как удаление всех ASCII-кодированных сегментов ... вот что я хочу выяснить, как их удалить.Удалить ASCII-закодированные blob-файлы из .txt-файлов

Я вижу несколько вопросов о StackOverflow о том, как удалить коды, отличные от ASCII, но это другое. ASCII-кодированные сегменты: все сегменты документов с <TYPE> тегами GRAPHIC, ZIP, EXCEL и PDF - Я хочу их удалить.

Так что, если я загрузить текстовый файл следующим образом:

fil = open('F:\\file.txt','r') 
x = fil.read() 

Как я могу удалить все ASCII, закодированные сегменты из этого текстового файла? Чтобы удалить теги HTML, я использую процедуру here, но как насчет сегментов ASCII Encoded?

+2

Что такое "ASCII tag"? –

+0

@ IgnacioVazquez-Abrams Извините, я обновил свой вопрос. Я не имел в виду теги, как в тегах HTML. – Plug4

+1

Приведите пример! –

ответ

1

Если вы правильно поняли, формат, который вы обрабатываете, каким-то образом связан с процессом SEC EDGAR.

Я не нашел времени, чтобы посмотреть его формально. Возможно, вам нужно.

От проверки утверждения Apple, на которое вы ссылаетесь, похоже, что вы хотите заменить все, что соответствует регулярному выражению <DOCUMENT>\s*<TYPE>(?:GRAPHIC|ZIP|EXCEL|PDF).*?</DOCUMENT> с пустой строкой.

Отказ от ответственности: Правильная реализация будет использовать синтаксический анализатор XML и извлечь нужные элементы, вместо того, чтобы пытаться лексически запрещать то, чего вы не хотите. Это не должно быть сложно в lxml.

Сначала я подумал, что это XBLR, но это не так. Попытка разобрать его с помощью ETree вызывает исключение, поскольку теги close для некоторых элементов (включая <TYPE>) кажутся необязательными. Лучшим путем было бы выяснить, какой формат это (EDGAR site имеет несколько спецификаций: один из них, возможно?) И найти правильное DTD, а затем перейти оттуда.

После того, как вы разобрались, вы хотите увидеть, как remove elements with XPath и, возможно, how to use regex in (lxml) XPath. Затем, возможно, повторите другие экстракции, которые вы уже сделали, используя XML и XPath.

+0

Стандартная библиотека также содержит синтаксические анализаторы XML, они также могут быть полезны. – EOL

+0

@ tripleee А я вижу. Так что я должен работать с файлами XBLR? Почему я несколько сомневаюсь в файлах XBLR, что существуют годы, когда доступны только файлы txt. Например, http://www.sec.gov/Archives/edgar/data/320193/0001047469-97-006960-index.html.Моя цель - захватить раздел «ОБСУЖДЕНИЕ И АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ И РЕЗУЛЬТАТОВ УПРАВЛЕНИЯ ОПЕРАЦИЙ» во всех этих файлах. Мне нужно будет усердно работать, чтобы получить это! – Plug4

+1

Возможно, вы можете использовать файлы '.txt', но вам нужно правильно понять, в каком формате они находятся. Есть веские причины не делать« ударов и запуска »регулярных выделений из четко определенных форматов XML, но если это быстро одноразовое, возможно, это то, что вы хотите сделать в конце. Тем не менее, все вещи считаются, на самом деле не больше работы (по модулю кривой обучения) делать это правильно, и конечный результат будет намного более понятным, надежным и четко определенным. – tripleee

Смежные вопросы