keyWords
более полезна, если это словарь, то это просто поиск словаря, чтобы получить оценку каждого слова. Каждое слово можно извлечь, используя split()
.
Вот несколько кодов для этого. Это предполагает, что пунктуация часть слова (в качестве примера результирующий список keySentences
означает):
listOfSentences = ['mary had a little lamb.',
'she also had a little pram.',
'bam bam bam she also loves ham.',
'she ate the lamb.']
keyWords= [('bam', 3), ('lamb', 2), ('ate', 1)]
keyWords = dict(keyWords)
keySentences = []
for sentence in listOfSentences:
score = sum(keyWords.get(word, 0) for word in sentence.split())
if score > 0:
keySentences.append((score, sentence))
keySentences = [sentence for score, sentence in sorted(keySentences, reverse=True)]
print(keySentences)
Выход
['bam bam bam she also loves ham.', 'she ate the lamb.']
Если вы хотите игнорировать знаки препинания вы можете удалить его из каждое предложение до обработки:
import string
# mapping to remove punctuation with str.translate()
remove_punctuation = {ord(c): None for c in string.punctuation}
listOfSentences = ['mary had a little lamb.',
'she also had a little pram.',
'bam bam bam she also loves ham.',
'she ate the lamb.']
keyWords= [('bam', 3), ('lamb', 2), ('ate', 1)]
keyWords = dict(keyWords)
keySentences = []
for sentence in listOfSentences:
score = sum(keyWords.get(word, 0) for word in sentence.translate(remove_punctuation).split())
if score > 0:
keySentences.append((score, sentence))
keySentences = [sentence for score, sentence in sorted(keySentences, reverse=True)]
print(keySentences)
Выход
['bam bam bam she also loves ham.', 'she ate the lamb.', 'mary had a little lamb.']
Теперь результирующий список также содержит «мэри был барашек». потому что полный конечный «ягненок» был удален str.translate()
.
это также будет соответствовать 'поздно ate' – The6thSense
OP только сказал, для слово, может быть, ему нужно точное совпадение – Hackaholic
, вот что я говорю, что вы делаете частичное совпадение здесь, и как вы пришли к этой логике, я не могу понять, что ОП задает – The6thSense