Как вытащить подстроку из распознавания речи Python - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь вытащить строку из того, что говорит пользователь; однако, я столкнулся с проблемой с моим текущим решением, используя - re.

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

if "about the movie" in command:
    about_the_movie(command)

def about_the_movie(command):
    m = re.match(r'(.*) about the movie (.*)', command)
    movie = m.group(2)
    movie.replace(" ", "+")
    url = ('http://www.omdbapi.com/?t=' + movie + '&apikey=********')
    r = requests.get(url).json()

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что если пользователь скажет «о фильме« Темный рыцарь », он выдаст AttributeError: 'NoneType' object has no attribute 'group'. Я понимаю, что это потому, что в этот момент m.group (2) не не существует, но я не уверен, что я могу сделать для обхода.

Я также хотел бы добавить возможность поиска определения слова, но столкнулся бы с той же проблемой, если бы пользователь сказал «определение автомобиля» против «что такое определение автомобиля»

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Так что я продолжал возиться с этим и понял, что он выдаст эту ошибку, если будет пробел:

m = re.match(r'(.*) about the movie (.*)', command)

против

m = re.match(r'(.*)about the movie (.*)', command)

Я ценю ответ, хотя!

0 голосов
/ 15 января 2019

Если ваша строка содержит кавычки, то:

>> m = re.match(r"about the movie .(.*).", "about the movie 'The Dark Knight'")
>> print(m.group(1))
The Dark Knight
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...