我想使用余弦相似度来识别意图并将其传递给RASA Core

时间:2019-01-03 09:34:36

标签: rasa-nlu rasa-core

我想使用余弦相似度来识别意图并将其传递给RASA Core。换句话说,我想用其他某种相似度计算方法代替NLU部分。 怎么做?

1 个答案:

答案 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继承并实现自己的。如果需要定义tfidfcosine,请阅读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"