cachedStopWords = stopwords.words('english')rowsasList = [x.lower() for x in rowsasList]rowsasList = [''.join(c for c in s if c not in string.punctuation) for s in rowsasList]rowsasList = [' '.join([word for word in p.split() if word not in cachedStopWords]) for p in rowsasList]
将这些全部合并为一个理解陈述更有效吗?我从可读性的角度来看,它可能是一堆乱七八糟的代码.
解决方法 您可以简单地定义2个函数并在一个列表理解中使用它们,而不是在同一个列表上迭代3次:cachedStopWords = stopwords.words('english')def remove_punctuation(text): return ''.join(c for c in text.lower() if c not in string.punctuation)def remove_stop_words(text): return ' '.join([word for word in p.split() if word not in cachedStopWords])rowsasList = [remove_stop_words(remove_punctuation(text)) for text in rowsasList]
我从来没用过停字.如果它返回一个列表,你最好先将它转换为一个集合,以加速不在cachedStopWords测试中的单词.
最后,NLTK
软件包可以帮助您处理文本.见@alvas’ answer.
以上是内存溢出为你收集整理的在Python中执行多个列表推导的最有效方法全部内容,希望文章能够帮你解决在Python中执行多个列表推导的最有效方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)