You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
24 KiB
172 lines
24 KiB
# ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਪਰਿਚਯ
|
|
|
|
ਇਹ ਪਾਠ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ *, ਜੋ ਕਿ *ਕੰਪਿਊਟੇਸ਼ਨਲ ਲਿੰਗਵਿਸਟਿਕਸ* ਦਾ ਇੱਕ ਉਪਖੇਤਰ ਹੈ, ਦਾ ਇੱਕ ਸੰਖੇਪ ਇਤਿਹਾਸ ਅਤੇ ਮਹੱਤਵਪੂਰਨ ਸੰਕਲਪ ਕਵਰ ਕਰਦਾ ਹੈ।
|
|
|
|
## [ਪੂਰਵ-ਲੈਕਚਰ ਕਿਊਜ਼](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
## ਪਰਿਚਯ
|
|
|
|
NLP, ਜਿਵੇਂ ਕਿ ਆਮ ਤੌਰ 'ਤੇ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ, ਉਹ ਇਲਾਕਾ ਹੈ ਜਿੱਥੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਨੂੰ ਸਭ ਤੋਂ ਵਧੀਆ ਜਾਣਿਆ ਅਤੇ ਉਤਪਾਦਨ ਸਾਫਟਵੇਅਰ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਹੈ।
|
|
|
|
✅ ਕੀ ਤੁਸੀਂ ਕਿਸੇ ਅਜਿਹੇ ਸਾਫਟਵੇਅਰ ਦਾ ਸੋਚ ਸਕਦੇ ਹੋ ਜੋ ਤੁਸੀਂ ਹਰ ਰੋਜ਼ ਵਰਤਦੇ ਹੋ ਅਤੇ ਜਿਸ ਵਿੱਚ ਸੰਭਵਤ: ਕੁਝ NLP ਸ਼ਾਮਲ ਹੈ? ਤੁਹਾਡੇ ਵਰਡ ਪ੍ਰੋਸੈਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਜਾਂ ਮੋਬਾਈਲ ਐਪਸ ਬਾਰੇ ਕੀ ਜੋ ਤੁਸੀਂ ਐਕਸਰੇਗੂਲਰ ਵਰਤਦੇ ਹੋ?
|
|
|
|
ਤੁਸੀਂ ਸਿੱਖੋਗੇ:
|
|
|
|
- **ਭਾਸ਼ਾਵਾਂ ਦਾ ਖ਼ਿਆਲ**। ਭਾਸ਼ਾਵਾਂ ਕਿਵੇਂ ਵਿਕਸਿਤ ਹੋਈਆਂ ਅਤੇ ਅਧਿਐਨ ਦੇ ਮੁੱਖ ਖੇਤਰ ਕੀ ਹਨ।
|
|
- **ਪਰਿਭਾਸ਼ਾਵਾਂ ਅਤੇ ਸੰਕਲਪ**। ਤੁਸੀਂ ਇਹ ਵੀ ਸਿੱਖੋਗੇ ਕਿ ਕੰਪਿਊਟਰ ਟੈਕਸਟ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰੋਸੈਸ ਕਰਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ ਪਾਰਸਿੰਗ, ਵਿਆਕਰਣ ਅਤੇ ਨਾਂਵਾਂ ਅਤੇ ਕ੍ਰਿਆਵਾਂ ਦੀ ਪਛਾਣ ਸ਼ਾਮਲ ਹੈ। ਇਸ ਪਾਠ ਵਿੱਚ ਕੁਝ ਕੋਡਿੰਗ ਕਾਰਜ ਹਨ, ਅਤੇ ਕਈ ਮਹੱਤਵਪੂਰਨ ਸੰਕਲਪ ਤਿਆਰ ਕੀਤੇ ਗਏ ਹਨ ਜੋ ਤੁਸੀਂ ਅਗਲੇ ਪਾਠਾਂ ਵਿੱਚ ਕੋਡ ਕਰਨਾ ਸਿੱਖੋਗੇ।
|
|
|
|
## ਕੰਪਿਊਟੇਸ਼ਨਲ ਲਿੰਗਵਿਸਟਿਕਸ
|
|
|
|
ਕੰਪਿਊਟੇਸ਼ਨਲ ਲਿੰਗਵਿਸਟਿਕਸ ਉਹ ਖੇਤਰ ਹੈ ਜਿਸਨੇ ਕਈ ਦਹਾਕਿਆਂ ਤੱਕ ਖੋਜ ਅਤੇ ਵਿਕਾਸ ਕੀਤਾ ਹੈ ਕਿ ਕੰਪਿਊਟਰਾਂ ਨਾਲ ਭਾਸ਼ਾਵਾਂ ਨਾਲ ਕੰਮ ਕਿਵੇਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਸਮਝਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਨੁਵਾਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਸੰਚਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ (NLP) ਇੱਕ ਸੰਬੰਧਤ ਖੇਤਰ ਹੈ ਜੋ ਇਸ ਗੱਲ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕੰਪਿਊਟਰ 'ਕੁਦਰਤੀ' ਜਾਂ ਮਾਨਵ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰੋਸੈਸ ਕਰ ਸਕਦਾ ਹੈ।
|
|
|
|
### ਉਦਾਹਰਨ - ਫ਼ੋਨ ਡਿਕਟੇਸ਼ਨ
|
|
|
|
ਜੇ ਤੁਸੀਂ ਕਦੇ ਆਪਣੀ ਫ਼ੋਨ ਨੂੰ ਟਾਈਪ ਕਰਨ ਦੀ ਬਜਾਏ ਕਹਿਣਾ ਦਿਤਾ ਹੈ ਜਾਂ ਇੱਕ ਵਿਰਚੁਅਲ ਸਹਾਇਕ ਨੂੰ ਸਵਾਲ ਪੁੱਛਿਆ ਹੈ, ਤਾਂ ਤੁਹਾਡੀ ਬੋਲੀ ਇਕ ਟੈਕਸਟ ਰੂਪ ਵਿੱਚ ਬਦਲੀ ਗਈ ਅਤੇ ਫਿਰ ਤੁਹਾਡੇ ਬੋਲੇ ਭਾਸ਼ਾ ਤੋਂ ਪਾਰਸ ਕੀਤੀ ਗਈ। ਪਹਿਚਾਣ ਕੀਤੇ ਕੀਵਰਡਸ ਨੂੰ ਫਿਰ ਇੱਕ ਫਾਰਮੈਟ ਵਿੱਚ ਪ੍ਰੋਸੈਸ ਕੀਤਾ ਗਿਆ ਜੋ ਫ਼ੋਨ ਜਾਂ ਸਹਾਇਕ ਸਮਝ ਸਕਦਾ ਸੀ ਅਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦਾ ਸੀ।
|
|
|
|

|
|
> ਅਸਲ ਭਾਸ਼ਾਈ ਸਮਝਣਾ ਮੁਸ਼ਕਲ ਹੈ! ਚਿੱਤਰ [Jen Looper](https://twitter.com/jenlooper) ਵੱਲੋਂ
|
|
|
|
### ਇਹ ਤਕਨਾਲੋਜੀ ਕਿਵੇਂ ਸੰਭਵ ਹੋਈ?
|
|
|
|
ਇਹ ਸੰਭਵ ਹੈ ਕਿਉਂਕਿ ਕਿਸੇ ਨੇ ਏਸ ਕੰਮ ਲਈ ਇੱਕ ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮ ਲਿਖਿਆ। ਕੁਝ ਦਹਾਕੇ ਪਹਿਲਾਂ, ਕੁਝ ਵਿਗਿਆਨੀ ਫਿਕਸ਼ਨ ਲੇਖਕਾਂ ਨੇ ਭਵਿੱਖਬਾਣੀ ਕੀਤੀ ਸੀ ਕਿ ਲੋਕ ਜ਼ਿਆਦਾਤਰ ਆਪਣੇ ਕੰਪਿਊਟਰਾਂ ਨਾਲ ਗੱਲਬਾਤ ਕਰਾਂਗੇ, ਅਤੇ ਕੰਪਿਊਟਰ ਸਦਾ ਠੀਕ ਸਮਝਣਗੇ ਕਿ ਉਹ ਕੀ ਮਤਲਬ ਹੈ। ਦੁੱਖਦਾਈ ਗੱਲ ਇਹ ਹੈ ਕਿ ਇਹ ਸਮੱਸਿਆ ਉਮੀਦ ਤੋਂ ਜ਼ਿਆਦਾ ਮੁਸ਼ਕਲ ਨਿਕਲੀ, ਅਤੇ ਅੱਜ ਇਹ ਬਹੁਤ ਵਧੀਆ ਸਮਝੀ ਗਈ ਹੈ, ਪਰ 'ਪੂਰਾ' ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਕਰਨਾ ਖਾਸ ਕਰਕੇ ਇੱਕ ਵਾਕ ਦੀ ਮਾਇਨੇ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਕਾਫੀ ਚੁਣੌਤੀ ਭਰਾ ਕੰਮ ਹੈ। ਇਹ ਖਾਸ ਕਰਕੇ ਹਾਸੇ ਨੂੰ ਸਮਝਣ ਜਾਂ ਵਿਅੰਗ ਨੂੰ ਪਛਾਣਣ ਵਿੱਚ ਮਸ਼ਕਲ ਹੈ।
|
|
|
|
ਇਸ ਸਥਿਤੀ 'ਚ, ਤੁਸੀਂ ਸਕੂਲ ਦੇ ਕਲਾਸਾਂ ਨੂੰ ਯਾਦ ਕਰ ਰਹੇ ਹੋ ਜਿੱਥੇ ਅਧਿਆਪਕ ਵਾਕ ਦੇ ਹਿੱਸਿਆਂ ਬਾਰੇ ਪੜ੍ਹਾਉਂਦੇ ਸਨ। ਕੁਝ ਦੇਸ਼ਾਂ ਵਿੱਚ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਵਿਆਕਰਣ ਅਤੇ ਲਿੰਗਵਿਸਟਿਕਸ ਇੱਕ ਵੱਖਰਾ ਵਿਸ਼ਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਪਰ ਕਈ ਥਾਵਾਂ ਤੇ ਇਹ ਵਿਸ਼ੇ ਇੱਕ ਭਾਸ਼ਾ ਸਿੱਖਣ ਦਾ ਹਿੱਸਾ ਹੁੰਦੇ ਹਨ: ਚਾਹੇ ਤੁਹਾਡੀ ਪਹਿਲੀ ਭਾਸ਼ਾ ਪ੍ਰਾਇਮਰੀ ਸਕੂਲ ਵਿੱਚ ਹੋਵੇ (ਪੜ੍ਹਨਾ ਅਤੇ ਲਿਖਣਾ ਸਿੱਖਣਾ) ਜਾਂ ਦੂਜੀ ਭਾਸ਼ਾ ਪੋਸਟ-ਪ੍ਰਾਇਮਰੀ ਜਾਂ ਹਾਈ ਸਕੂਲ ਵਿੱਚ। ਜੇ ਤੁਸੀਂ ਨਾਂਵ, ਕਿਰਿਆ ਜਾਂ ਕ੍ਰਿਆ ਵਿਸ਼ੇਸ਼ਣ ਵਿੱਚ ਫਰਕ ਜਾਣਣ ਵਿੱਚ ਮਾਹਰ ਨਹੀਂ ਹੋ, ਤਾਂ ਚਿੰਤਾ ਨਾ ਕਰੋ!
|
|
|
|
ਜੇ ਤੁਹਾਨੂੰ *ਸਰਲ ਵਰਤਮਾਨ* ਅਤੇ *ਵਰਤਮਾਨ ਪ੍ਰਗਟਿਵ* ਵਿੱਚ ਫਰਕ ਸਮਝਣ ਵਿੱਚ ਮੁਸ਼ਕਲ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਕੱਲੇ ਨਹੀਂ ਹੋ। ਇਹ ਕਈ ਲੋਕਾਂ ਲਈ ਚੁਣੌਤੀ ਹੈ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਮੂਲ ਬੋਲਣ ਵਾਲਿਆਂ ਲਈ ਵੀ। ਚੰਗੀ ਗੱਲ ਇਹ ਹੈ ਕਿ ਕੰਪਿਊਟਰ ਫਾਰਮਲ ਨਿਯਮਾਂ ਨੂੰ ਬਹੁਤ ਵਧੀਆ ਲਾਗੂ ਕਰਦੇ ਹਨ, ਅਤੇ ਤੁਸੀਂ ਕੋਡ ਲਿਖਣਾ ਸਿੱਖੋਗੇ ਜੋ ਇੱਕ ਮਨੁੱਖ ਦੀ ਤਰ੍ਹਾਂ ਵਾਕ ਦਾ *ਪਾਰਸ* ਕਰ ਸਕਦਾ ਹੈ। ਵੱਡੀ ਚੁਣੌਤੀ ਜੋ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਵੇਖੋਗੇ ਉਹ ਹੈ ਵਾਕ ਦਾ *ਅਰਥ* ਅਤੇ *ਭਾਵਨਾ* ਸਮਝਣਾ।
|
|
|
|
## ਮੂਲ ਜ਼ਰੂਰਤਾਂ
|
|
|
|
ਇਸ ਪਾਠ ਦੇ ਲਈ, ਮੁੱਖ ਮੂਲ ਜ਼ਰੂਰਤ ਇਸ ਪਾਠ ਦੀ ਭਾਸ਼ਾ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਸਮਝਣ ਦੀ ਸਮਰੱਥਾ ਹੈ। ਕੋਈ ਗਣਿਤ ਸਮੱਸਿਆਵਾਂ ਜਾਂ ਸਮੀਕਰਨਾਂ ਹੱਲ ਕਰਨ ਵੇਲੇ ਨਹੀਂ ਹਨ। ਜਦ ਕਿ ਮੂਲ ਲੇਖਕ ਨੇ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ ਇਹ ਪਾਠ ਲਿਖਿਆ ਸੀ, ਇਹ ਦੂਜੀਆਂ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਵੀ ਅਨੁਵਾਦਿਤ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਅਨੁਵਾਦ ਪੜ੍ਹ ਰਹੇ ਹੋ ਸਕਦੇ ਹੋ। ਕੁਝ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਕਈ ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾਵਾਂ ਵਰਤੀ ਗਈਆਂ ਹਨ (ਤੁਲਨਾ ਕਰਨ ਲਈ ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾਵਾਂ ਦੇ ਵਿਆਕਰਣ ਨਿਯਮਾਂ ਦੀ)। ਇਹ *ਅਨੁਵਾਦਿਤ ਨਹੀਂ* ਕੀਤੀਆਂ ਗਈਆਂ, ਪਰ ਵਿਆਖਿਆਤਮਕ ਪਾਠ ਹੈ, ਇਸ ਲਈ ਅਰਥ ਸਪਸ਼ਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
|
|
|
|
ਕੋਡਿੰਗ ਟਾਸਕ ਲਈ, ਤੁਸੀਂ ਪਾਇਥਨ ਵਰਤੋਂਗੇ ਅਤੇ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਪਾਇਥਨ 3.8 ਵਰਤ ਰਿਹਾ ਹੈ।
|
|
|
|
ਇਸ ਭਾਗ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਇਹ ਜ਼ਰੂਰਤ ਹੋਵੇਗੀ ਅਤੇ ਵਰਤੋਂ ਕਰਨੀ ਹੈ:
|
|
|
|
- **ਪਾਇਥਨ 3 ਸਮਝ ਬੁਝ**। ਪਾਇਥਨ 3 ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੀ ਸਮਝ, ਇਸ ਪਾਠ ਵਿੱਚ ਇੰਜਪੁੱਟ, ਲੂਪ, ਫਾਈਲ ਪੜ੍ਹਨਾ, ਐਰੇਜ਼ ਵਰਤੇ ਗਏ ਹਨ।
|
|
- **ਵਿਜ਼ੂਅਲ ਸਟੂਡੀਓ ਕੋਡ + ਵਧਾਉਣ**। ਅਸੀਂ ਵਿਜ਼ੂਅਲ ਸਟੂਡੀਓ ਕੋਡ ਅਤੇ ਇਸ ਦਾ ਪਾਇਥਨ ਐਕਸਟੈਂਸ਼ਨ ਵਰਤਾਂਗੇ। ਤੁਸੀਂ ਆਪਣਾ ਪਸੰਦੀਦਾ ਪਾਇਥਨ ਆਈਡੀਈ ਵੀ ਵਰਤ ਸਕਦੇ ਹੋ।
|
|
- **TextBlob**। [TextBlob](https://github.com/sloria/TextBlob) ਪਾਇਥਨ ਲਈ ਇੱਕ ਸਰਲ ਟੈਕਸਟ ਪ੍ਰੋਸੈਸਿੰਗ ਲਾਈਬ੍ਰੇਰੀ ਹੈ। TextBlob ਸਾਈਟ ਤੇ ਦਿੱਤੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਇਸ ਨੂੰ ਆਪਣੇ ਸਿਸਟਮ 'ਤੇ ਇੰਸਟਾਲ ਕਰੋ (ਕੋਪੋਰਾ ਵੀ ਇੰਸਟਾਲ ਕਰੋ, ਹੇਠਾਂ ਦਿਖਾਏ ਗਏ ਤਰੀਕੇ ਨਾਲ):
|
|
|
|
```bash
|
|
pip install -U textblob
|
|
python -m textblob.download_corpora
|
|
```
|
|
|
|
> 💡 ਸੁਝਾਅ: ਤੁਸੀਂ VS ਕੋਡ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਸਿੱਧਾ ਪਾਇਥਨ ਚਲਾ ਸਕਦੇ ਹੋ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ [ਡੌਕਸ](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) ਵੇਖੋ।
|
|
|
|
## ਮਸ਼ੀਨਾਂ ਨਾਲ ਗੱਲ ਕਰਨਾ
|
|
|
|
ਮਸ਼ੀਨਾਂ ਨੂੰ ਮਾਨਵ ਭਾਸ਼ਾ ਸਮਝਣਯੋਗ ਬਣਾਉਣ ਦਾ ਇਤਿਹਾਸ ਕਈ ਦਹਾਕਿਆਂ ਪੁਰਾਣਾ ਹੈ, ਅਤੇ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਵਿਚਾਰ ਸਭ ਤੋਂ ਪਹਿਲਾਂ *ਅਲਨ ਟੂਰਿੰਗ* ਦੇ ਮਨ ਵਿੱਚ ਆਇਆ ਸੀ।
|
|
|
|
### 'ਟੂਰਿੰਗ ਟੈਸਟ'
|
|
|
|
ਜਦ ਟੂਰਿੰਗ 1950 ਦੇ ਦਹਾਕੇ ਵਿੱਚ *ਕ੍ਰਿਤ੍ਰਿਮ ਬੁੱਧੀ* 'ਤੇ ਅਧਿਐਨ ਕਰ ਰਹੇ ਸਨ, ਤਾਂ ਉਹ ਇਹ ਸੋਚ ਰਹੇ ਸਨ ਕੀ ਕੋਈ ਗੱਲਬਾਤੀ ਪ੍ਰੀਖਿਆ ਮਨੁੱਖ ਅਤੇ ਕੰਪਿਊਟਰ ਨੂੰ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਹੈ (ਟਾਈਪ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਪੱਤਰਚਾਰਾ ਦੁਆਰਾ) ਜਿੱਥੇ ਗੱਲਬਾਤੀ ਮਨੁੱਖ ਨੂੰ ਇਹ ਪਤਾ ਨਹੀਂ ਕਿ ਉਹ ਕਿਸੇ ਹੋਰ ਮਨੁੱਖ ਨਾਲ ਗੱਲ ਕਰ ਰਿਹਾ ਹੈ ਜਾਂ ਕੰਪਿਊਟਰ ਨਾਲ।
|
|
|
|
ਜੇ, ਇੱਕ ਨਿਰਧਾਰਤ ਸਮੇਂ ਬਾਅਦ, ਮਨੁੱਖ ਇਹ ਨਿਰਧਾਰਿਤ ਨਾ ਕਰ ਸਕੇ ਕਿ ਜਵਾਬ ਕੰਪਿਊਟਰ ਵੱਲੋਂ ਆ ਰਹੇ ਹਨ ਜਾਂ ਨਹੀਂ, ਤਾਂ ਕੀ ਕੰਪਿਊਟਰ ਨੂੰ *ਸੋਚਣ ਵਾਲਾ* ਕਿਹਾ ਜਾ ਸਕਦਾ ਹੈ?
|
|
|
|
### ਪ੍ਰੇਰਣਾ - 'ਦ ਇਮੀਟੇਸ਼ਨ ਗੇਮ'
|
|
|
|
ਇਸ ਦਾ ਖ਼ਿਆਲ ਇੱਕ ਪਾਰਟੀ ਖੇਡ ਤੋਂ ਆਇਆ ਜਿਸਦਾ ਨਾਮ *ਦ ਇਮੀਟੇਸ਼ਨ ਗੇਮ* ਹੈ ਜਿੱਥੇ ਇੱਕ ਪੁੱਛਤਾਛ ਕਰਨ ਵਾਲਾ (ਇੰਟਰੋਗੇਟਰ) ਇਕ ਕਮਰੇ ਵਿੱਚ ਅਕੇਲਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਉਸਦਾ ਕੰਮ ਹੋਰ ਦੋ ਲੋਕਾਂ ਵਿੱਚੋਂ ਕਿਸ ਦੇ ਮਰਦ ਅਤੇ ਕਿਸ ਦੀ ਔਰਤ ਹੈ ਇਹ ਜਾਣਣਾ ਹੁੰਦਾ ਹੈ। ਇੰਟਰੋਗੇਟਰ ਨੋਟ ਭੇਜ ਸਕਦਾ ਹੈ ਅਤੇ ਆਪਣੇ ਸਵਾਲਾਂ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਸੋਚਣਾ ਪੈਂਦਾ ਹੈ ਕਿ ਲਿਖਤ ਜਵਾਬ ਮਿਸਟਰੀ ਵਿਅਕਤੀ ਦੀ ਲਿੰਗ ਦਰਸਾਉਣ। ਹੋਰ ਕਮਰੇ ਵਿੱਚ ਖਿਡਾਰੀ ਇੰਟਰੋਗੇਟਰ ਨੂੰ ਧੋਖਾ ਦੇਣ ਲਈ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਧੋਖਾ ਦੇਣ ਵਾਲੇ ਜਾਂ ਉਲਝਾਣ ਵਾਲੇ ਤਰੀਕੇ ਨਾਲ ਦਿੰਦੇ ਹਨ, ਪਰ ਸਾਥ ਹੀ ਈਮਾਨਦਾਰੀ ਨਾਲ ਜਵਾਬ ਦੇਣ ਦੀ ਛਾਪ ਵੀ ਦਿੰਦੇ ਹਨ।
|
|
|
|
### ਇਲਾਈਜਾ ਦਾ ਵਿਕਾਸ
|
|
|
|
1960 ਦੇ ਦਹਾਕੇ ਵਿੱਚ MIT ਦੇ ਇੱਕ ਵਿਗਿਆਨੀ *ਜੋਸਫ ਵੈਜ਼ਨਬਾਊਮ* ਨੇ [*ਇਲਾਈਜਾ*](https://wikipedia.org/wiki/ELIZA) ਬਣਾਇਆ, ਜੋ ਇੱਕ ਕੰਪਿਊਟਰ 'ਥੈਰੇਪਿਸਟ' ਸੀ ਜੋ ਮਨੁੱਖ ਤੋਂ ਸਵਾਲ ਪੁੱਛਦਾ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਜਵਾਬਾਂ ਨੂੰ ਸਮਝਣ ਦੀ ਛਾਪ ਦਿੰਦਾ। ਹਾਲਾਂਕਿ, ਜਦ ਕਿ ਇਲਾਈਜਾ ਇੱਕ ਵਾਕ ਨੂੰ ਪਾਰਸ ਕਰ ਸਕਦੀ ਸੀ ਅਤੇ ਕੁਝ ਵਿਆਕਰਣਕ ਸੰਰਚਨਾਂ ਅਤੇ ਕੀਵਰਡਜ਼ ਨੂੰ ਪਛਾਣ ਸਕਦੀ ਸੀ ਤਾਂ ਕਿ ਉਚਿਤ ਜਵਾਬ ਦੇ ਸਕੇ, ਪਰ ਇਹ ਕਹਿ ਨਹੀਂ ਸਕੀਤੀ ਸੀ ਕਿ ਇਹ ਵਾਕ ਨੂੰ *ਸਮਝਦੀ* ਹੈ। ਜੇ ਇਲਾਈਜਾ ਨੂੰ ਇੱਕ ਵਾਕ ਦਿੱਤਾ ਗਿਆ ਜੋ "**ਮੈਂ** <u>ਉਦਾਸ</u> ਹਾਂ" ਫਾਰਮੈਟ ਵਿੱਚ ਸੀ ਤਾਂ ਇਹ ਸ਼ਬਦ ਬਦਲ ਕੇ ਜਵਾਬ "ਤੁਸੀਂ ਕਿੰਨੇ ਸਮੇਂ ਤੋਂ <u>ਉਦਾਸ</u> ਹੋ?" ਦੇ ਸਕਦੀ ਸੀ।
|
|
|
|
ਇਸ ਨਾਲ ਇਹ ਛਾਪ ਪੈਦੀ ਸੀ ਕਿ ਇਲਾਈਜਾ ਬਿਆਨ ਨੂੰ ਸਮਝਦੀ ਹੈ ਅਤੇ ਫਾਲੋ-ਅਪ ਸਵਾਲ ਪੁੱਛ ਰਹੀ ਹੈ, ਪਰ ਹਕੀਕਤ ਵਿੱਚ ਇਹ ਟੈਨਸ ਬਦਲ ਰਹੀ ਸੀ ਅਤੇ ਕੁਝ ਸ਼ਬਦ ਜੋੜ ਰਹੀ ਸੀ। ਜੇ ਇਲਾਈਜਾ ਕਿਸੇ ਕੀਵਰਡ ਨੂੰ ਨਹੀਂ ਪਛਾਣਦੀ ਜਿਸਦਾ ਜਵਾਬ ਉਸ ਕੋਲ ਸੀ, ਤਾਂ ਇਹ ਕਿਸੇ ਵੀ ਵੱਖ-ਵੱਖ ਬਿਆਨਾਂ ਲਈ ਲਾਗੂ ਹੋ ਸਕਦਾ ਇੱਕ ਆਕਸਮੀਕ ਜਵਾਬ ਦਿੰਦੀ ਸੀ। ਇਲਾਈਜਾ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਧੋਖਾ ਦਿੱਤਾ ਜਾ ਸਕਦਾ ਸੀ, ਉਦਾਹਰਨ ਵਜੋਂ ਜੇ ਕੋਈ ਵਰਤੋਂਕਾਰ "ਤੁਸੀਂ ਇੱਕ <u>ਸਾਈਕਲ</u> ਹੋ" ਲਿਖਦਾ ਸੀ ਤਾਂ ਇਹ ਜਵਾਬ ਦੇ ਸਕਦੀ ਸੀ "ਮੈਂ ਕਿੰਨੇ ਸਮੇਂ ਤੋਂ ਇੱਕ <u>ਸਾਈਕਲ</u> ਹਾਂ?", ਬਜਾਏ ਕੋਈ ਹੋਰ ਤਰਕਸ਼ੀਲ ਜਵਾਬ ਦੇਣ ਦੇ।
|
|
|
|
[](https://youtu.be/RMK9AphfLco "ਇਲਾਈਜਾ ਨਾਲ ਗੱਲਬਾਤ")
|
|
|
|
> 🎥 ਉਪਰ ਦਿੱਤੇ ਚਿੱਤਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਅਸਲ ELIZA ਪ੍ਰੋਗਰਾਮ ਬਾਰੇ ਵੀਡੀਓ ਲਈ
|
|
|
|
> ਨੋਟ: ਤੁਸੀਂ 1966 ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) ਦੀ ਮੂਲ ਵਰਣਨਾ ਪੜ੍ਹ ਸਕਦੇ ਹੋ ਜੇ ਤੁਹਾਡੇ ਕੋਲ ACM ਖਾਤਾ ਹੈ। ਇਸਦੇ ਬਦਲੇ, [ਵਿਕੀਪੀਡੀਆ](https://wikipedia.org/wiki/ELIZA) 'ਤੇ ਵੀ ਇਲਾਈਜਾ ਬਾਰੇ ਪੜ੍ਹੋ।
|
|
|
|
## ਅਭਿਆਸ - ਇੱਕ ਆਧਾਰਭੂਤ ਗੱਲਬਾਤੀ ਬੌਟ ਕੋਡ ਕਰਨਾ
|
|
|
|
ਇੱਕ ਗੱਲਬਾਤੀ ਬੌਟ, ਇਲਾਈਜਾ ਦੀ ਤਰ੍ਹਾਂ, ਇੱਕ ਐਸਾ ਪ੍ਰੋਗਰਾਮ ਹੈ ਜੋ ਵਰਤੋਂਕਾਰ ਦੀ ਇਨਪੁੱਟ ਮੰਗਦਾ ਹੈ ਅਤੇ ਸਮਝਦਾਰੀ ਨਾਲ ਜਵਾਬ ਦੇਣ ਦਾ ਭਾਸ਼ਾ ਦਿੰਦਾ ਹੈ। ਇਲਾਈਜਾ ਤੋਂ ਵੱਖ, ਸਾਡਾ ਬੌਟ ਕਈ ਨਿਯਮਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰੇਗਾ ਜੋ ਇਹ ਭਾਸ਼ਾ ਦਿੰਦੇ ਹਨ ਕਿ ਇਹ ਸਮਝਦਾਰ ਗੱਲ ਕਰ ਰਿਹਾ ਹੈ। ਇਸ ਦੀ ਸਥਾਨ 'ਤੇ, ਸਾਡਾ ਬੌਟ ਸਿਰਫ ਇੱਕ ਸਮਰੱਥਾ ਵਾਲਾ ਹੋਵੇਗਾ, ਗੱਲਬਾਤ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਲਈ ਕੁਝ ਆਕਸਮੀਕ ਜਵਾਬ ਜੋ ਲਗਭਗ ਕਿਸੇ ਵੀ ਸਧਾਰਣ ਗੱਲਬਾਤ ਵਿੱਚ ਵਰਤਣਯੋਗ ਹੋ ਸਕਦੇ ਹਨ।
|
|
|
|
### ਯੋਜਨਾ
|
|
|
|
ਗੱਲਬਾਤੀ ਬੌਟ ਬਣਾਉਂਦੇ ਸਮੇਂ ਤੁਹਾਡੇ ਕਦਮ:
|
|
|
|
1. ਵਰਤੋਂਕਾਰ ਨੂੰ ਬੌਟ ਨਾਲ ਕਿਵੇਂ ਗੱਲ ਕਰਨੀ ਹੈ, ਇਸ ਬਾਰੇ ਹੁਕਮ ਪ੍ਰਿੰਟ ਕਰੋ
|
|
2. ਲੂਪ ਸ਼ੁਰੂ ਕਰੋ
|
|
1. ਵਰਤੋਂਕਾਰ ਇਨਪੁੱਟ ਲਵੋ
|
|
2. ਜੇ ਵਰਤੋਂਕਾਰ ਨੇ ਬਾਹਰ ਨਿਕਲਣ ਲਈ ਕਿਹਾ, ਤਾਂ ਬਾਹਰ ਨਿਕਲੋ
|
|
3. ਵਰਤੋਂਕਾਰ ਦੀ ਇਨਪੁੱਟ ਦਾ ਪ੍ਰੋਸੈਸ ਕਰੋ ਅਤੇ ਜਵਾਬ ਨਿਰਧਾਰਤ ਕਰੋ (ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਜਵਾਬ ਸੰਭਵ ਆਮ ਜਵਾਬਾਂ ਦੀ ਸੂਚੀ ਵਿੱਚੋਂ ਆਕਸਮੀਕ ਚੋਣ ਹੁੰਦਾ ਹੈ)
|
|
4. ਜਵਾਬ ਪ੍ਰਿੰਟ ਕਰੋ
|
|
3. ਚਰਨ 2 ਨੂੰ ਦੁਹਰਾਓ
|
|
|
|
### ਬੌਟ ਬਣਾਉਣਾ
|
|
|
|
ਅਸੀਂ ਅਗਲੇ ਕਦਮ 'ਚ ਬੌਟ ਬਣਾਵਾਂਗੇ। ਪਹਿਲਾਂ ਕੁਝ ਵਾਕ ਬਣਾਓ।
|
|
|
|
1. ਸਵੈ-ਵਿਕਸਿਤ ਬੌਟ ਬਣਾਓ ਪਾਇਥਨ ਵਿੱਚ, ਹੇਠਾਂ ਦਿੱਤੇ ਕੁਝ ਆਕਸਮੀਕ ਜਵਾਬਾਂ ਨਾਲ:
|
|
|
|
```python
|
|
random_responses = ["That is quite interesting, please tell me more.",
|
|
"I see. Do go on.",
|
|
"Why do you say that?",
|
|
"Funny weather we've been having, isn't it?",
|
|
"Let's change the subject.",
|
|
"Did you catch the game last night?"]
|
|
```
|
|
|
|
ਤੁਹਾਡੇ ਲਈ ਇੱਕ ਉਦਾਹਰਨ ਆਉਟਪੁੱਟ (ਵਰਤੋਂਕਾਰ ਦੀ ਇਨਪੁੱਟ `>` ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਲਾਈਨਾਂ ਵਿੱਚ):
|
|
|
|
```output
|
|
Hello, I am Marvin, the simple robot.
|
|
You can end this conversation at any time by typing 'bye'
|
|
After typing each answer, press 'enter'
|
|
How are you today?
|
|
> I am good thanks
|
|
That is quite interesting, please tell me more.
|
|
> today I went for a walk
|
|
Did you catch the game last night?
|
|
> I did, but my team lost
|
|
Funny weather we've been having, isn't it?
|
|
> yes but I hope next week is better
|
|
Let's change the subject.
|
|
> ok, lets talk about music
|
|
Why do you say that?
|
|
> because I like music!
|
|
Why do you say that?
|
|
> bye
|
|
It was nice talking to you, goodbye!
|
|
```
|
|
|
|
ਇਸ ਟਾਸਕ ਦਾ ਇੱਕ ਸੰਭਵ ਹੱਲ [ਇੱਥੇ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py) ਹੈ
|
|
|
|
✅ ਰੁਕੋ ਅਤੇ ਸੋਚੋ
|
|
|
|
1. ਕੀ ਤੁਹਾਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਆਕਸਮੀਕ ਜਵਾਬ ਕਿਸੇ ਨੂੰ ਇਹ ਸੋਚਣ 'ਚ ਧੋਖਾ ਦੇਣਗੇ ਕਿ ਬੌਟ ਨੇ ਅਸਲ ਵਿੱਚ ਉਹਨਾ ਨੂੰ ਸਮਝਿਆ ਹੈ?
|
|
2. ਬੌਟ ਨੂੰ ਹੋਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਣਾਉਣ ਲਈ ਕਿਹੜੀਆਂ ਖੂਬੀਆਂ ਦੀ ਲੋੜ ਹੋਵੇਗੀ?
|
|
3. ਜੇ ਕੋਈ ਬੌਟ ਇੱਕ ਵਾਕ ਦੇ ਮਾਇਨੇ ਨੂੰ ਸੱਚਮੁੱਚ 'ਸਮਝ' ਲੈਂਦਾ, ਤਾਂ ਕੀ ਉਸਨੂੰ ਗੱਲਬਾਤ ਵਿੱਚ ਪਿਛਲੇ ਵਾਕਾਂ ਦੇ ਮਾਇਨੇ ਨੂੰ ਵੀ 'ਯਾਦ' ਰੱਖਣਾ ਪੈਂਦਾ?
|
|
|
|
---
|
|
|
|
## 🚀ਚੁਣੌਤੀ
|
|
|
|
ਉਪਰ ਦਿੱਤੇ "ਰੁਕੋ ਅਤੇ ਸੋਚੋ" ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਅੰਗ ਨੂੰ ਚੁਣੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕੋਡ ਵਿੱਚ ਲਾਗੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਪੱਤਰ ਵਿੱਚ ਸੁਝਾਅ ਪੀਸੀਯੂਡੋ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਿਖੋ।
|
|
|
|
ਅਗਲੇ ਪਾਠ ਵਿੱਚ, ਤੁਸੀਂ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਨੂੰ ਪਾਰਸ ਕਰਨ ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਹੋਰ ਕਈ ਤਰੀਕਿਆਂ ਬਾਰੇ ਸਿੱਖੋਗੇ।
|
|
|
|
## [ਪੋਸਟ-ਲੈਕਚਰ ਕਿਊਜ਼](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
## ਸਮੀਖਿਆ ਅਤੇ ਸਵੈ ਅਧਿਐਨ
|
|
|
|
ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਸੰਦਰਭਾਂ ਨੂੰ ਵਾਧੂ ਪੜ੍ਹਾਈ ਦੇ ਮੌਕੇ ਵਜੋਂ ਵੇਖੋ।
|
|
|
|
### ਸੰਦਰਭ
|
|
|
|
1. ਸ਼ੂਬਰਟ, ਲੈਨਹਾਰਟ, "ਕੰਪਿਊਟੇਸ਼ਨਲ ਲਿੰਗਵਿਸਟਿਕਸ", *ਸਟੈਨਫੋਰਡ ਏਨਸੀਕਲੋਪੀਡੀਆ ਆਫ਼ ਫਿਲਾਸਫੀ* (ਵੇਸੰਤ 2020 ਸੰਪਾਦਨ), ਐਡਵਰਡ ਐਨ. ਜ਼ਾਲਟਾ (ਸੰਪਾਦਕ), URL = <https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/>।
|
|
2. ਪ੍ਰਿੰਸਟਰਾਨ ਯੂਨੀਵਰਸਿਟੀ "ਵਰਡਨੈੱਟ ਬਾਰੇ." [WordNet](https://wordnet.princeton.edu/). ਪ੍ਰਿੰਸਟਰਾਨ ਯੂਨੀਵਰਸਿਟੀ। 2010।
|
|
|
|
## ਅਸਾਈਨਮੈਂਟ
|
|
|
|
[ਬੌਟ ਲਈ ਖੋਜ](assignment.md)
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ਅਸਵੀਕਾਰੋਪਣ**:
|
|
ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |