Я хочу использовать косинусное сходство, чтобы определить намерение и передать его в RASA Core. Другими словами, я хочу заменить часть NLU каким-нибудь другим методом вычисления подобия. Как это сделать?
Я хочу использовать косинусное сходство, чтобы определить намерение и передать его в RASA Core
Ответы (1)
В настоящее время в Раса-НЛУ реализовано четыре классификатора:
- sklearn_intent_classifier
- mitie_intent_classifier
- keyword_intent_classifier
- embedding_intent_classifier
Если вы используете 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
Я хочу использовать векторизатор tf-idf, а затем косинусное сходство, чтобы найти лучшее совпадение. Как это сделать.
- person SUBHOJEET; 04.01.2019