正则表达式只能从文件中获取以字母开头的单词,并在python中仅删除带有数字和标点符号的单词

时间:2016-09-14 14:44:32

标签: python regex nltk regex-negation

我有一个文本文件,我正在通过nltk函数在python中阅读。 我只需要从文件开头只用字母开头,只删除带有数字和标点符号的单词。 例如: -

['Osteama pranay@123  123 !']

所以期望的输出是

Osteama pranay@123

请为此建议正则表达式

2 个答案:

答案 0 :(得分: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]))

它可能对你有帮助

答案 1 :(得分:-1)

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

与nltk.RegexpTokenizer一起使用的相同正则表达式

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