RASA NLU - я хочу извлечь что-либо (слова, цифры или специальные символы) как объект после слова - PullRequest
0 голосов
/ 09 мая 2019

Есть ли способ, которым мы можем извлечь что-либо после слова как сущности; например:

Я хочу извлечь что-либо после about или go to или learn как сущность.

##intent:navigate
-I want to learn about linear regression
-I want to read about SVM
-I want to go to Python 2.6
-Take me to logistic regression: eval

##regex:topic
-^[A-Za-z0-9 :_ -][A-Za-z0-9 :_ -][A-Za-z0-9 :_ -]$

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Да, вы можете, вам нужно будет определить сущности в ваших данных обучения, и они будут извлечены моделью.Например, в вашем примере тренировочные данные должны быть такими:со всеми возможными образцами.Например, «Я хочу поговорить о RasaNLU до конца дня».предлагает модель, согласно которой извлекаемая сущность не обязательно должна быть последним словом предложения (что имеет место в остальных примерах).

0 голосов
/ 10 мая 2019

Наивный способ может быть очень простым - использовать метод разделенной строки, например

sentences = ["I want to learn about linear regression", "I want to read about SVM", "I want to go to Python 2.6",
 "Take me to logistic regression: eval"]

split_terms = ["about", "go to", "learn"]

for sentence in sentences:
    for split_term in split_terms:
        try:
            print(sentence.split(split_term)[1])
        except IndexError:
            pass # split_term was not found in a sentence

Результаты:

 linear regression
 about linear regression
 SVM
 Python 2.6

Немного разумнее было бы найти сначала самый последний "термин разбиения", чтобы решить проблему с помощью обучения - изучения - о

for sentence in sentences:
    last_split_term_index = 0
    last_split_term = ""
    for split_term in split_terms:
        last_split_term_index_candidate = sentence.find(split_term)
        if last_split_term_index_candidate > last_split_term_index:
            last_split_term_index = last_split_term_index_candidate
            last_split_term = split_term
    try:
        print(sentence.split(last_split_term)[1])

    except:
        continue

Результаты:

 linear regression
 SVM
 Python 2.6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...