Извлечение целых слов

У меня есть большой набор реального текста, из которого мне нужно извлечь слова, чтобы ввести их в средство проверки орфографии. Я хотел бы извлечь как можно больше значимых слов без излишнего шума. Я знаю, что здесь много ниндзя с регулярными выражениями, так что, надеюсь, кто-нибудь может мне помочь.

В настоящее время я извлекаю все алфавитные последовательности с помощью '[az] +' . Это хорошее приближение, но оно тянет за собой много мусора.

В идеале Мне нужно какое-нибудь регулярное выражение (не обязательно красивое или эффективное), которое извлекает все алфавитные последовательности, разделенные естественными разделителями слов (например, [/ -_ ,.:] и т. д.), и игнорирует любые алфавитные последовательности с недопустимыми границами.

Однако я также был бы счастлив получить все алфавитные последовательности, НЕ смежные с числом. Так, например, 'pie21' НЕ извлекает 'pie' , но 'http://foo.com' извлекает ['http' , 'foo', 'com'] .

Я пробовал утверждения lookahead и lookbehind , но они применялись для каждого символа (например, re .findall ('(? вернет 'pi' , когда я хочу, чтобы он ничего не возвращал). Я попытался обернуть альфа-часть как термин ( (?: [Az] +) ), но это не помогло.

Подробнее: Данные представляют собой базу данных электронной почты, поэтому это в основном простой английский с нормальными числами, но иногда встречаются такие мусорные строки, как GIHQ4NWL0S5SCGBDD40ZXE5IDP13TYNEA и AC7A21C0 , которые я бы хотел полностью игнорировать. Я предполагаю, что любая алфавитная последовательность с числом в ней - мусор.

8
задан Templar 20 June 2014 в 18:55
поделиться