【发布时间】:2018-10-17 12:32:09
【问题描述】:
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、POTHOLE IN STREET、STREET LIGHTS ON DAYS
我的实体值为 STREET LIGHT OUT ,这意味着有人想报告路灯不工作。 他/她将按照以下格式进行。
班加罗尔 42 号 Ulsoor 路 WH Hanumanthappa Layout 的 Vasanth Shetty 医生诊所附近的路灯已融合一周以来。
路灯单独不是一个实体或融合单独不是我的实体。 路灯融合是同义词。 有没有可能,训练 NLU 从这句话中提取融合的路灯。如果是的话怎么做。
如果不是,那么拆分路灯并融合为不同的实体是唯一的解决方案吗? 但是可以从上面的句子中提取 street light fused ,因为它可以提取其中包含多个单词的实体,并且 tokenizer_whitespace 只是在空白处中断。
请建议是否有更好的方法来获取我的实体而无需拆分为多个实体。
这里我有更多关于同一问题的示例:
示例 1:
过去 10 天内没有捡到的垃圾,需要立即清理。
这里我可以挑出垃圾未选是问题所在。我可以训练我的 NLU 用 ner_crf 提取这个命名实体,训练如下 sn-p
{
"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 中未提取的垃圾?
【问题讨论】:
标签: rasa-nlu