如何使用非相邻单词的RASA NLU提取实体

时间:2018-10-15 14:30:03

标签: rasa-nlu

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中未选择的垃圾?

1 个答案:

答案 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