我有一个文本文件,我正在通过nltk函数在python中阅读。 我只需要从文件开头只用字母开头,只删除带有数字和标点符号的单词。 例如: -
['Osteama pranay@123 123 !']
所以期望的输出是
Osteama pranay@123
请为此建议正则表达式
答案 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 !')