我想使用余弦相似度来识别意图并将其传递给RASA Core。换句话说,我想用其他某种相似度计算方法代替NLU部分。 怎么做?
答案 0 :(得分:1)
当前,Rasa-NLU中实现了四个分类器:
如果默认情况下使用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"
有关更多详细信息,请参见here。
如何定义自己的组件?
从父对象Component
继承并实现自己的。如果需要定义tfidf
和cosine
,请阅读here,然后将代码与here进行比较。
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:
- name: "MyComponent"