|
| 1 | +# Example with languages |
| 2 | + |
| 3 | +This example show how to handle the three kind of different scenarios with languages: |
| 4 | +1. The language has stemmer |
| 5 | +2. The language exists but has no stemmer |
| 6 | +3. The language does not exists (fantasy language) |
| 7 | + |
| 8 | +This example uses english, korean and klingon. |
| 9 | + |
| 10 | +```javascript |
| 11 | +const { NlpManager } = require('node-nlp'); |
| 12 | + |
| 13 | +const manager = new NlpManager({ languages: ['en', 'ko', 'kl'] }); |
| 14 | +// Gives a name for the fantasy language |
| 15 | +manager.describeLanguage('kl', 'Klingon'); |
| 16 | +// Train Klingon |
| 17 | +manager.addDocument('kl', 'nuqneH', 'hello'); |
| 18 | +manager.addDocument('kl', 'maj po', 'hello'); |
| 19 | +manager.addDocument('kl', 'maj choS', 'hello'); |
| 20 | +manager.addDocument('kl', 'maj ram', 'hello'); |
| 21 | +manager.addDocument('kl', `nuqDaq ghaH ngaQHa'moHwI'mey?`, 'keys'); |
| 22 | +manager.addDocument('kl', `ngaQHa'moHwI'mey lujta' jIH`, 'keys'); |
| 23 | +// Train Korean |
| 24 | +manager.addDocument('ko', '여보세요', 'greetings.hello'); |
| 25 | +manager.addDocument('ko', '안녕하세요!', 'greetings.hello'); |
| 26 | +manager.addDocument('ko', '여보!', 'greetings.hello'); |
| 27 | +manager.addDocument('ko', '어이!', 'greetings.hello'); |
| 28 | +manager.addDocument('ko', '좋은 아침', 'greetings.hello'); |
| 29 | +manager.addDocument('ko', '안녕히 주무세요', 'greetings.hello'); |
| 30 | +manager.addDocument('ko', '안녕', 'greetings.bye'); |
| 31 | +manager.addDocument('ko', '친 공이 타자', 'greetings.bye'); |
| 32 | +manager.addDocument('ko', '상대가 없어 남는 사람', 'greetings.bye'); |
| 33 | +manager.addDocument('ko', '지엽적인 것', 'greetings.bye'); |
| 34 | +manager.addDocument('en', 'goodbye for now', 'greetings.bye'); |
| 35 | +manager.addDocument('en', 'bye bye take care', 'greetings.bye'); |
| 36 | +manager.addDocument('en', 'okay see you later', 'greetings.bye'); |
| 37 | +manager.addDocument('en', 'bye for now', 'greetings.bye'); |
| 38 | +manager.addDocument('en', 'i must go', 'greetings.bye'); |
| 39 | +manager.addDocument('en', 'hello', 'greetings.hello'); |
| 40 | +manager.addDocument('en', 'hi', 'greetings.hello'); |
| 41 | +manager.addDocument('en', 'howdy', 'greetings.hello'); |
| 42 | + |
| 43 | +// Train also the NLG |
| 44 | +manager.addAnswer('en', 'greetings.bye', 'Till next time'); |
| 45 | +manager.addAnswer('en', 'greetings.bye', 'see you soon!'); |
| 46 | +manager.addAnswer('en', 'greetings.hello', 'Hey there!'); |
| 47 | +manager.addAnswer('en', 'greetings.hello', 'Greetings!'); |
| 48 | + |
| 49 | +// Train and save the model. |
| 50 | +await manager.train(); |
| 51 | +manager.save(); |
| 52 | + |
| 53 | +// English and Korean can be automatically detected |
| 54 | +manager.process('I have to go').then(console.log); |
| 55 | +manager.process('상대가 없어 남는 편').then(console.log); |
| 56 | +// For Klingon, as it cannot be automatically deteced, |
| 57 | +// you must provide the locale |
| 58 | +manager.process('kl', `ngaQHa'moHwI'mey nIH vay'`).then(console.log); |
| 59 | +``` |
0 commit comments