Я применяю команду согласования по каждому элементу в списке. Он отлично работает, но когда он не находит соответствия, он печатает No matches
. Я хотел бы, чтобы он проигнорировал эти и только распечатывал результаты для матчей.Остановить печать согласования «нет совпадений» в python
absol
является переменной, которая содержит список
Вот соответствующая часть сценария:
def get_all_phrases_containing_tar_wrd(target_word, tar_passage, left_margin = 10, right_margin = 10):
Ellis = nltk.word_tokenize(tar_passage)
text = nltk.Text(Ellis)
c = nltk.ConcordanceIndex(text.Ellis, key = lambda s: s.lower())
concordance_txt = ([text.Ellis[map(lambda x: x-5 if (x-left_margin)>[0] else 0, [offset])[0]:offset+right_margin]
for offset in c.offsets(target_word)])
return [''.join([x+' ' for x in con_sub]) for con_sub in concordance_txt]
Ellis = nltk.word_tokenize(raw)
text = nltk.Text(Ellis)
for t_word in absol:
text.concordance(t_word)
print
print 'Results from function'
results = get_all_phrases_containing_tar_wrd(absol, raw)
for result in results:
print result
У вас есть конкретный вопрос? –
да, я не уверен, как заставить этот скрипт игнорировать элементы, которые он не может сопоставить .. и распечатывать только совпадения. Список очень длинный ... почти 200 предметов и только несколько элементов на самом деле совпадают ... это означает, что я получаю очень длинный список «нет совпадений». –
Так в чем ваш вопрос? –