Как убрать конкретное слово из предложения пользователя и использовать его в дальнейшем?
Есть бот, который должен после сообщения пользователя, например: "Загугли Мадонну" достать статью из википедии по запросу "Мадонна". Прописал так:
def filter(message):
if "загугли".lower() in message.text.lower():
bot.send_message(message.chat.id, getwiki(message.text))
но, тут бот гуглит по всему сообщению пользователя, если там есть слово "загугли"
Ответы (2 шт):
Автор решения: AlekseyZvr
→ Ссылка
Нашёл ответ в функции "re.sub"
if "загугли".lower() in message.text.lower():
result = re.sub(r'загугли', '',message.text)
bot.send_message(message.chat.id, getwiki(result))
теперь другая проблема - убирает это слово только в точном соответствии. Как сделать, чтоб в любом регистре убирало?
result = re.sub(r'загугли'**.lower()**, '',message.text)
добавление lower не помогает
UPD: Таки нашёл ответ:
@bot.message_handler(content_types=['text'])
def handle_text(message):
if "загугли".lower() in message.text.lower():
result = re.sub(r'загугли', '',message.text.lower())
Автор решения: Vad Sim
→ Ссылка
Сначала вам нужно убрать слово "загугли". Для этого:
import re
def remove__googleit(s):
return re.sub('\bзагугли\b', '', re.I)
А дальше – приведите слова в начальную форму. Для этого можно сделать одно из двух:
- По словарю.
- С помощью NLTK.