对英文文本预处理?

clipboard.png
如何去掉里面的数字、标点、特殊字符、停用词等?用python实现

阅读 6.9k
3 个回答

既然加了nltk的tag,大概是想问怎么调nltk的api吧

from nltk.stem import PorterStemmer
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords

tokenizer = RegexpTokenizer(r'\w+')
stemmer = PorterStemmer()
stop_words = set(stopwords.words('english'))


input_str = input_str.lower()
raw_tokens = tokenizer.tokenize(input_str)
stemmed_tokens = [stemmer.stem(token) for token in raw_tokens]
stemmed_tokens = map(stemmer.stem, raw_tokens)
stemmed_tokens_without_stopword = filter(lambda i: i not in stop_words, stemmed_tokens)

直接split(' ')然后过滤停用词。对于单字符标点符号,可以用translate方法去除

使用正则来去除不想要的字符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题