Я хочу использовать косинусное сходство, чтобы определить намерение и передать его в RASA Core

Я хочу использовать косинусное сходство, чтобы определить намерение и передать его в RASA Core. Другими словами, я хочу заменить часть NLU каким-нибудь другим методом вычисления подобия. Как это сделать?


person SUBHOJEET    schedule 03.01.2019    source источник


Ответы (1)


В настоящее время в Раса-НЛУ реализовано четыре классификатора:

Если вы используете embedding_intent_classifier.py, по умолчанию используется косинус сходство:

"similarity_type": 'cosine',  # string 'cosine' or 'inner'

Как настроить конвейер?

language: "en"

pipeline:
- name: "tokenizer_whitespace"
- name: "ner_crf"
- name: "ner_synonyms"
- name: "intent_featurizer_count_vectors"
- name: "intent_classifier_tensorflow_embedding"

Дополнительные сведения см. здесь.

Как определить свои собственные компоненты?

Наследовать от родительского объекта Component и реализовать свой собственный. Если вам нужно определить tfidf и cosine, прочтите здесь, а затем сравните свой код с здесь.

from rasa_nlu.components import Component

class MyComponent(Component):
 def __init__(self, component_config=None):
     pass

 def train(self, training_data, cfg, **kwargs):
     pass

 def process(self, message, **kwargs):
     pass

 def persist(self, model_dir):
     pass

 @classmethod
 def load(cls, model_dir=None, model_metadata=None, cached_component=None,
          **kwargs):

Также не забудьте добавить его в pipeline:

pipeline:
- name: "MyComponent"
person Amir    schedule 03.01.2019
comment
Я хочу использовать векторизатор tf-idf, а затем косинусное сходство, чтобы найти лучшее совпадение. Как это сделать. - person SUBHOJEET; 04.01.2019