我以某种方式训练了我的rasa nlu模型,该模型将方括号之间的内容识别为 pst 实体。在培训部分,我用超过50个示例介绍了这两种情况。
有两种情况(只有空间差异):
我通过http://www.google.comm, 1283923, [9283911,9309212,9283238]
时,仅考虑将[
括号作为pst实体。
当我通过http://www.google.comm, 1283923, [9283911, 9309212, 9283238]
时,它工作正常,并按预期将[9283911, 9309212, 9283238]
识别为pst实体。
对于场景1,我已经尝试了所有可能的管道,但是它只将第一个方括号[识别为pst实体
在响应中,我得到以下输出:
{
'intent': {
'name': None,
'confidence': 0.0
},
'entities': [
{
'start': 0,
'end': 22,
'value': 'http://www.google.comm',
'entity': 'url',
'confidence': 0.8052099168500071,
'extractor': 'ner_crf'
},
{
'start': 24,
'end': 31,
'value': '1283923',
'entity': 'defect_id',
'confidence': 0.8334249141074151,
'extractor': 'ner_crf'
},
{
'start': 33,
'end': 34,
'value': '[',
'entity': 'pst',
'confidence': 0.5615805162522188,
'extractor': 'ner_crf'
}
],
'intent_ranking': [],
'text': 'http://www.google.comm, 1283923, [9283911,9309212,9283238]'
}
那么,有人可以告诉我配置中缺少的内容吗?问题是仅由于间距而发生的,在为这两种情况提供训练数据时,我的模型应该具有间距的知识。
答案 0 :(得分:0)
出于您的目的使用Regex是个好主意。 Rasa NLU支持Regex提取实体。正常的NLU训练数据如下所示
{
"rasa_nlu_data": {
"common_examples": [
{
"text": "Hi",
"intent": "greet",
"entities": []
}]
}
}
您可以在NLU json文件中提供正则表达式数据进行培训,如下所示。
{
"rasa_nlu_data": {
"regex_features": [
{
"name": "pst",
"pattern": "\[..*\]"
},
]
}
}