CodingLover Ответов: 2

Сопоставление компелетных слов строки со списком


Я хочу сопоставить слова полного предложения со списком слов, а если они не содержат, то перейти к следующему шагу. Тем не менее, он соответствует частично, а также.

Например, если мой список содержит слово "я", а в предложении есть слово "некоторые", он терпит неудачу.

Что я уже пробовал:

что я сделал,

if not any(word in text_sentence.lower().strip() for word in banned_words):
    # Proceed to next level, as a valid sentence


Как только я передаю "кто-то вроде тебя", это терпит неудачу, так как мой список содержит слово "я". Проверено просто печатанием слов.

for item in banned_words:
    if item in slbot_tweet:
        print(item)

2 Ответов

Рейтинг:
20

OriginalGriff

Вам нужно разбить ваше предложение на отдельные словесные лексемы, используя все формы пунктуации в качестве разделителей: кавычки, двойные кавычки, запятую, пробел, точку, двоеточие, точку с запятой, скобки, восклицание, дефис и все остальное, что ваш пользователь может ввести, чтобы замаскировать его: я бы предложил разбить его на все, что не является буквой числа!

После того, как у вас есть строка в виде массива токенов word, вы можете проверить, есть ли какой-либо из них в списке "запрещенных".


CodingLover

Спасибо за комментарий.

Я думал, что следующий сегмент разделяет предложение пробелом.

слово в text_sentence.нижняя().полоса()

Рейтинг:
0

Richard MacCutchan

Текст вашего твита-это не набор слов, а набор символов. Как говорит OriginalGriff, сначала вам нужно разбить его на правильный массив токенов (слов). Используйте строку.сплит()[^] метод.


CodingLover

Да, это работает, как только токанизируется. Был промах с раздеванием() и расколом().