How rasa_nlu using lookup_tables for entity extraction?

百般思念 提交于 2020-01-16 08:16:08

问题


I am trying to develop a chatbot using rasa nlu and rasa core. But I am not getting the link how rasa_nlu using lookup_tables for entity extraction. I had already go through (http://blog.rasa.com/improving-entity-extraction/) link but not getting it. How should lookup_table used for to extract the entity?


回答1:


Requirements:

If you want to use lookup tables, make sure:

  • you have the components intent_entity_featurizer_regex and ner_crf in your NLU pipeline
  • the entities you want to match fit have a well defined and narrow scope
    • entities like food names, company names, car brands are unlikely to appear in contexts you in which you don't want to match them. Hence, look up tables are a good use case for them.
    • entities like objects (e.g. "car", "house", "paper") appear in a variety of contexts in which you don't want to match them at all. Therefore, using look up tables might even lead to worse results.

In your training data

In order to use look up tables, you can either define them directly in the training data, e.g.:

## intent:check_balance
- what is my balance <!-- no entity -->
- Could I pay in [yen](currency)?  <!-- entity matched by lookup table -->

## lookup:currency   <!-- lookup table list -->
- Yen
- USD
- Euro

Or you can write them in a text file:

Yen
USD
Euro

And then include the path to the text file in your training data:

## intent:check_balance
   ... like before

## lookup:food
    <path to your look up table text file>.txt

Taking an input like Could I pay in Euro?, Rasa NLU then sets the value of the slot currency to Euro.

How they work

The single items in a look up table are added to a regular expression (regex) which is applied to the the messages which your users send to the bot. However, look up tables don't work if your user inserts typos, e.g. a look up table entry Pesos would not match Peesos. To also match these cases you can try fuzzy matching which is described in the blog article you linked. Make sure that your look up tables don't become too large as Rasa NLU has to check every sentence whether it matches one of your look up table entries.

Maybe the Rasa NLU documentation can also help you.



来源:https://stackoverflow.com/questions/53084656/how-rasa-nlu-using-lookup-tables-for-entity-extraction

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!