Sitemap
Anun Ganbat

Anun Ganbat

Natural Language Processing

3 min readDec 29, 2020
Press enter or click to view image in full size

Эх хэлний боловсруулалт (Natural Language Processing) гэж юу вэ?

Эх хэлний боловсруулалт нь хэл шинжлэл, компьютерийн шинжлэх ухаан болон хиймэл оюун ухаан ашиглаж хүний хэлийг ойлгох чадвартай программ бий болгох юм. Жишээ нь дуут хайлт болон тухайн нэг текстээс агуулга болон сэтгэл хөдлөлийг тодорхойлох нь NLP-ын нэг хэсэг юм.

NLP-ын давуу тал

Бид өдөр бүр вэбсайтаас мэдээлэл уншиж мөн хайж байдаг. Тэгвэл энэ бүх вэб хуудаснууд маань бидний тухай маш их хэмжээний дата цуглуулж байдаг. Энэ датаг бизнес эрхлэгчид үйлчлүүлэгчдэд чиглэсэн маркетинг болгож боловсруулдаг.

Нэг жишээ авч үзэе:

Сүхээ шинэ жилээр гэр бүлтэйгээ амрах амралтын газар интернэтээс хайж байлаа. Сүхээгийн хийсэн хайлтан дээр суурилж түүнд тохирох нислэгийн тийз, амралтын газар, машин түрээс болон үзэсгэлэнт газруудыг санал болгож сурталчилдаг.

Хайлтын систем нь NLP-ын цорын ганц давуу тал биш бөгөөд өөр маш олон хэрэглээ болон үйлчилгээ байгаа.

NLP хэрэглээ

  1. Speech engine буюу хүний хэл яриаг ойлгох систем: Apple Siri
  2. Google spam filter: имэйлийн агуулга дотор юу байгааг ойлгож, энэ нь спам мөн эсэхийг шалгах систем
  3. Search engine буюу хайлтын систем: Google, Yahoo, Facebook гэх мэт
  4. Social website feed: Facebook мэдээний алгоритм нь таны сонирхол дээр суурилсан зар сурталчилгаа болон нийтлэлийг харуулах зорилготой.
  5. Oрчуулга

Python ашиглан NLP програмыг яаж сурах вэ?

Get Anun Ganbat’s stories in your inbox

Join Medium for free to get updates from this writer.

Natural language toolkit (NLTK) нь Python дээр бичигдсэн NLP-ын хамгийн хялбар сан юм. NLTK-ыг суулгахдаа доорх зааврыг дагана уу:

  1. Windows, Linux, Mac үйлдлийн систем дээр nltk суулгах:

pip install nltk

2. NLTK зөв суулгасан эсэхийг шалгахын хүсвэл python терминалыг нээгээд дараах зүйлийг бичнэ үү.

Import nltk

Алдаа гарахгүй байвал NLTK санг амжилттай суулгасан гэсэн үг.

3. NLTK package-ыг суулгах:

nltk.download()

Press enter or click to view image in full size

Tokenization ба текст цэвэрлэгээ

Tokenization гэж юу вэ?

Токенизаци гэдэг нь том хэмжээний текстийг жижиг хэсгүүдэд хуваах процессыг хэлнэ. Үг болон өгүүлбэрлүү токенизаци хийж болно.

Үгсийн токенизаци

Өгүүлбэрийг үг болгоноор хуваахын тулд nltk дээр word_tokenize() функцыг ашигладаг. Эндээс гарсан үр дүн програмд текстийг илүү сайн ойлгоход тусалдаг учраас текст цэвэрлэх ажлын суурь нь байдаг.

Press enter or click to view image in full size

Өгүүлбэрийн токенизаци

Үг бүрээр токенизаци хийж байхад яагаад өгүүлбэрээр токенизаци хийх хэрэгтэй вэ? Жишээ нь өгүүлбэрт дунджаар хэдэн үг байгааг тоолоё гэвэл өгүүлбэрээр токенизаци хийх хэрэгтэй болох юм.

Press enter or click to view image in full size

Цэг таслал шүүж гаргах

Python isalpha() функцийг ашиглан текст дотор байгаа цэг таслалыг шүүж гаргана.

Stop words шүүх

Stop words нь тухайн текстийн утга агуулгад хэрэггүй үгсийг хэлнэ. Жишээ нь Англи хэлэнд ‘the’, ‘a’, ‘is’, ‘me’, ‘i’, ‘our’ , Монгол хэлэнд ‘нь’, ‘бол’, ‘минь’, ‘бөгөөд’, ‘ба’ гэх мэт үгс байдаг.

Stemming гэж юу вэ?

Үгийг нөхцөлөөс нь салгаж үндсэн үгрүү хувиргах процессыг стемминг гэнэ. Жишээ нь “нарлуу”, “нараас”, “нарны” үгсийн үндсэн үг “нар” болгож хувиргана.

Стемминг алгоритмуудаас хамгийн түгээмэл хэрэглэгддэг нь Porter Stemming.

Дээрх тайлбарууд бол текст цэвэрлэгээний үндсэн бөгөөд эхний процессууд юм. Төсөл болгоны текст өөр учраас, цэвэрлэх процесс нь хүртэл өөр байна. Хэрэв та үргэлжлүүлэн суралцмаар байвал NLP with Python номыг уншиж болно.

--

--