https://github.com/RasaHQ/rasa_nlu/issues/1468#issue-370187480
Rasa NLU版本:0.13.6
操作系统(Windows,OSX,...):Windows
模型配置文件的内容: yml
language: "en"
pipeline:
- name: tokenizer_whitespace
- name: intent_entity_featurizer_regex
- name: ner_crf
- name: ner_synonyms
- name: intent_featurizer_count_vectors
- name: intent_classifier_tensorflow_embedding
intent_tokenization_flag: true
intent_split_symbol: "+"
path: ./models/nlu
data: ./data/training_nlu.json
问题:
如何提取实体。不是相邻的单词。下面是一个示例:
我需要培训我的NLU以了解公众的不满,例如街灯熄灭,街上的孔雀石,白天的街灯
我的实体值为STREET LIGHT OUT,表示某人要报告路灯不工作。 他/她将按照以下格式进行操作。
自一周以来,与路灯相邻的路灯已经融合。
路灯不是我的实体,或者融合不是我的实体。 融合的路灯是同义词。 是否有可能训练NLU从这句话中提取融合的路灯。如果是的话。
如果否,将路灯拆分并融合为不同的实体是唯一的解决方案吗? 但可以从上述句子中提取融合的路灯,因为它可以提取其中多个单词和tokenizer_whitespace只是在空白处中断的实体。
请建议是否有一种更好的方法来获取我的实体,而又不必拆分成多个实体。
这里,我在同一问题上有更多示例:
示例1:
过去10天未捡垃圾,需要立即引起注意以清除
。在这里我可以选择未选择垃圾。我可以训练我的NLU使用下面的训练代码片段来提取带有ner_crf的命名实体
{
"text": "Garbage not picked from past 10 days,need immediate attention for clearance",
"intent": "inform_grevience",
"entities": [
{
"start": 20,
"end": 38,
"value": "Garbage not picked",
"entity": "issue"
}
]
}
示例2:
在过去10天中未未拾取附近的第10个主要垃圾桶垃圾,需要立即采取行动
不同公民报告的问题相同,但句子不同。
我是否也可以使用ner_crf提取示例2中未选择的垃圾?
答案 0 :(得分:2)
我将提出两种替代方法,它们都依赖于意图。我相信您提供的语音中唯一的实体是地址信息。
因此,您可以将每个示例训练为完全不同的意图(出于简洁性,不包括实体):
## intent:streetLightOut
- The Street light adjacent to Dr Vasanth Shetty's Clinic , WH Hanumanthappa Layout, Ulsoor Road, Bangalore 42 is out.
- I'd like to report a street light that is burnt out
- street light out
## intent:streetLightAlwaysOn
- The Street light adjacent to Dr Vasanth Shetty's Clinic , WH Hanumanthappa Layout, Ulsoor Road, Bangalore 42 is always on.
- I'd like to report a street light that never turns off
- street light on constantly
## intent:potholeInStreet
- There's a pothole at the intersection of 10th and main
- pothole
- pothole on 11th street near Wal-Mart
或者,由于您使用的是张量流,因此可以使用heirrcachal intent:
## intent:streetLight+out
- The Street light adjacent to Dr Vasanth Shetty's Clinic , WH Hanumanthappa Layout, Ulsoor Road, Bangalore 42 is out.
- I'd like to report a street light that is burnt out
- street light out
## intent:streetLight+alwaysOn
- The Street light adjacent to Dr Vasanth Shetty's Clinic , WH Hanumanthappa Layout, Ulsoor Road, Bangalore 42 is always on.
- I'd like to report a street light that never turns off
- street light on constantly
## intent:potHole
- There's a pothole at the intersection of 10th and main
- pothole
- pothole on 11th street near Wal-Mart
我建议这些方法的主要原因是Rasa中的实体位置很高,对单词的重视程度不高(并且不包含单词向量)。由于路灯的所有问题都可能包含这些单词或类似单词,因此,单词本身似乎最具价值。
此博客文章包含有关TensforFlow和分层意图的一些信息:https://medium.com/rasa-blog/supervised-word-vectors-from-scratch-in-rasa-nlu-6daf794efcd8