2016-09-14 6 views
-2

У меня есть текстовый файл, который я читаю в python через функции nltk. Мне нужно получить только слова из файла, начинающиеся с буквы, и удаление слов только с номерами и пунктуацией. Для экс: -Регулярное выражение для получения только слов из файла, начинающегося с буквы, и удаления слов только с номерами и пунктуацией в python

['Osteama [email protected] 123 !'] 

так желаемая выход

Osteama [email protected] 

Пожалуйста, предложите регулярное выражение для этого

+3

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

+0

Я делал это много раз ... но я не получаю желаемого результата –

+0

покажите нам свои усилия – depperm

ответ

-1
import re 
' '.join(re.findall(r'\b[a-z][^\s]*\b', 'Osteama [email protected] 123 !', re.I)) 

же регулярное выражение используется с nltk.RegexpTokenizer

import nltk 
tokenizer = RegexpTokenizer(r'[a-zA-Z][^\s]*\b') 
nltk.tokenize('Osteama [email protected] 123 !') 
+0

он действительно работает, но он доцент удален '' оператор. Спасибо. –

+0

Я напишу отдельное регулярное выражение, чтобы удалить полные остановки после каждого предложения ... Спасибо! –

+0

Я изменил регулярное выражение на r '\ b [az] [^ \ s.] +' – gavriel

0

Чтобы использовать регулярные выражения вам нужна >>> импорта повторно первого

import nltk,re,pprint 
from __future__ import division 
from nltk import word_tokenize 

def openbook(self,book): 
    file = open(book) 
    raw = file.read() 
    tokens = nltk.wordpunct_tokenize(raw) 
    text = nltk.Text(tokens) 
    words = [w.lower() for w in text] 
    vocab = sorted(set(words)) 
    return vocab 
if __name__ == "__main__": 
    import sys 
    openbook(file(sys.argv[1])) 

Это может помочь вам

+0

он должен хранить знаки препинания и цифры, происходящие буквами ... это работает? –