我已经训练了我的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]'
}
那么,有人能告诉我我在配置中遗漏了什么吗?问题的发生仅仅是因为间隔,我的模型应该有间距的知识,因为我提供了这两种场景的训练数据。
发布于 2018-11-12 15:48:15
将Regex用于您的目的是个好主意。Rasa NLU支持Regex提取实体。正常的NLU培训数据如下所示
{
"rasa_nlu_data": {
"common_examples": [
{
"text": "Hi",
"intent": "greet",
"entities": []
}]
}
}
您可以在NLU文件中提供用于培训的Regex数据,如下所示。
{
"rasa_nlu_data": {
"regex_features": [
{
"name": "pst",
"pattern": "\[..*\]"
},
]
}
}
参考资料:Rasal NLU中的正则表达式
https://stackoverflow.com/questions/53240241
复制相似问题