2015-05-16 3 views
2

Рассмотрите текст на this page. Если вы посмотрите на исходный код, вы увидите, что основной текст представлен точно так же, как на странице - без HTML-разделов или каким-либо другим способом явно найти абзацы/вкладки в разделах.Идентификация разделов, вложенных из исходного текста

Есть ли способ автоматически идентифицировать и удалить разделы, которые вставляются из необработанного текста?

Одна вещь, которую я замечаю, заключается в том, что когда я кодирую текст как text = unicode(raw_text).encode("utf-8"), я могу увидеть кучу \ n для линейных пропусков. Но нет. (Это может быть не полезным направлением мысли, а просто идеей).

Edit: Следующие работы

text = unicode(raw_text).encode("utf-8") 
y = [x for x in text.split("\n") if "  " not in x] 
final = " ".join(y) 
+0

Я бы сказал, что '\ п \ s \ s' раздел пункта, тогда как символ новой строки следуют более двух пространств является раздел с вкладками. Кажется, что RegEx - это путь. – slider

ответ

0

Ну, посмотрев на странице, они «закладки» в с пробелами, а не символом табуляции; поиск вкладок не будет полезен. Похоже, что раздел содержит 5 пробелов.

raw_text.replace('  ','') 

Чтобы заменить все возникновения 5 пространств ...

from re import sub 

... 

raw_text = sub(r'  .*\n', '', raw_text) 
+0

Хм, интересно. Я должен был это заметить. Полагаю, я могу попытаться найти первое и последнее предложения, которым предшествуют 5 пробелов. В конечном счете, я хочу удалить весь текст, который вставляется как таковой. – Craig

+0

Затем вы можете использовать регулярные выражения. Я обновлю свой ответ, чтобы показать, как это делается ... – markzz

+0

Хорошо, это было бы здорово. Я просто написал что-то быстрое, что сработало (не используя re). Я добавлю его на свой вопрос, но примите ваш ответ. Благодаря! – Craig