# On premise Arabic chatbot

**URL:** <https://forum.rasa.com/t/on-premise-arabic-chatbot/1550>\
**Category:** Getting Started with Rasa\
**Created:** [October 1, 2018, 2:10pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550 "2018-10-01T14:10:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![raoshivaprasad](https://avatars.discourse-cdn.com/v4/letter/r/7ab992/32.png) [@raoshivaprasad](https://forum.rasa.com/u/raoshivaprasad)\
**Post date:** [October 1, 2018, 2:10pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/1 "2018-10-01T14:10:11Z")

</div>

I want to build an on premise Arabic AI chatbot with RASA. I understand RASA supports on premise deployments. But how about support for Arabic. Do I need to use any external translators?

---

<div class="post-metadata">

**Author:** ![souvikg10](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/souvikg10/32/93_2.png) [@souvikg10](https://forum.rasa.com/u/souvikg10)\
**Post date:** [October 1, 2018, 2:24pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/2 "2018-10-01T14:24:08Z")

</div>

You can train with your NLU data in arabic using the embedding classifier.

Keep in mind you will need a lot of examples

---

<div class="post-metadata">

**Author:** ![raoshivaprasad](https://avatars.discourse-cdn.com/v4/letter/r/7ab992/32.png) [@raoshivaprasad](https://forum.rasa.com/u/raoshivaprasad)\
**Post date:** [October 3, 2018, 1:36pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/3 "2018-10-03T13:36:35Z")

</div>

Dear Souvik,

In my case user will type in Arabic script and bot needs to reply in Arabic unlike English to Bengali(Tumi kemn acho? — How are you?) 🙂

Hope following your approach with Rasa NLU Chatbot with spaCy and FastText should work?

> **[Build a Rasa NLU Chatbot with spaCy and FastText](https://medium.com/strai/build-a-rasa-nlu-chatbot-with-spacy-with-fasttext-240e192082bd)**
>
> The intention of this write-up is to show the way to build a chatbot using 3 most popular open-source technologies in the market. Yes, now…

Thanks, Shivaprasad

---

<div class="post-metadata">

**Author:** ![souvikg10](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/souvikg10/32/93_2.png) [@souvikg10](https://forum.rasa.com/u/souvikg10)\
**Post date:** [October 3, 2018, 1:54pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/4 "2018-10-03T13:54:05Z")

</div>

Yeah it will still work with the embedding classifier even if your script is arabic

Here’s how the classifier actually works

Each word in your NLU training data is first tokenised ( now in arabic a whitespace tokeniser should actually work meaning like English - I am going to eat can be tokenised as [“I”, “am”, “going”,“to”,“eat”] using a whitespace in between. I am not sure if that is possible in Arabic or not. )

After tokenisation, keeping one word as an initial vector , it will create vectors for all the words in your training data including your intent name and using the vector for the intent, it will create a non-linear classifier. based on Facebook’s starspace algorithm. there is a paper on that

However for Out of vocabulary words, it won’t give a useful answer unless you have a lot of training data. This is one way to making a classifier completely language independent.

The second approach is using the vectors generated by FastText. You can convert the vectors from FastText to Spacy’s and use them to create a sklearn\_classifier. However this won’t work for entity extraction as we don’t have any tagger or parser .

> **[Components](https://rasa.com/docs/rasa/components/)**

Check this documentation on different components

---

<div class="post-metadata">

**Author:** ![datistiquo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/datistiquo/32/124_2.png) [@datistiquo](https://forum.rasa.com/u/datistiquo)\
**Post date:** [October 4, 2018, 9:32am UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/5 "2018-10-04T09:32:33Z")

</div>

> [@souvikg10](#):
>
> However for Out of vocabulary words, it won’t give a useful answer unless you have a lot of training data. This is one way to making a classifier completely language independent.

Aren’t those words just 0 then and if all are none the intent is `None`?

> [@souvikg10](#):
>
> However this won’t work for entity extraction as we don’t have any tagger or parser .

Could you use this fasttext then together with a custom NER\_CRF?

---

<div class="post-metadata">

**Author:** ![souvikg10](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/souvikg10/32/93_2.png) [@souvikg10](https://forum.rasa.com/u/souvikg10)\
**Post date:** [October 6, 2018, 8:23pm UTC](https://forum.rasa.com/t/on-premise-arabic-chatbot/1550/6 "2018-10-06T20:23:23Z")

</div>

I haven’t tested the language agnostic CRF and you are right for OOV, where the Intent should come as None
