问题描述:有一些句子和一些关键词,现在想找出包含至少一个关键词的那些句子(文本嗅探),可以参考print('='*30)之前的代码。如果想进一步计算每个句子中的关键词占比(句子中所有关键词长度之和/句子长度),可以参考后面的代码。关键词占比是比较常用的一个文本分类标准,如果想根据关键词占比对句子进行分类的话,可以自行补充代码。
本文主要演示列表推导式、字符串对象用法以及生成器表达式和内置函数的用法。
from random import choice
from string import ascii_letters
def check(sentences, words):
'''返回包含至少一个关键词的句子列表'''
return [sentence \
for sentence in sentences\
if sum(sentence.count(word)\
for word in words)>0]
sentences = ['This is a test.',
'Beautiful is better than ugly.',
'Explicit is better than implicit.',
'Simple is better than complex.',
'Sparse is better than dense.',
'Readability counts.',
'Now is better than never.']
words = ['test', 'count&