Khái niệm cơ bản

Machine learning là gì

Khái niệm: liên quan đến việc xây dựng các mô hình toán học để giúp hiểu tập dữ liệu cho trước, từ đó đưa ra các kết quả, dự đoán, xử lý phù hợp..  
Ví dụ:
- Làm cho máy tính có những khả năng nhận thức cơ bản của con người như nghe, nhìn, hiểu được ngôn ngữ, giải toán, lập trình, …
- Hỗ trợ con người trong việc xử lý một khối lượng thông tin khổng lồ mà chúng ta phải đối mặt hàng ngày, hay còn gọi là Big Data.

Hôm nay mình muốn giới thiệu về MeCab và cách dùng nó trong python 3.

Chú ý

Trong trường hợp máy tính của bạn ko hỗ trợ hiển thị tiếng Nhật trong command line. Bạn có thể làm theo cách sau:

1. open the Control Panel;

2. click Region and Language;

3. on the Administrative tab, under Language for non-Unicode programs, click "change system locale...";

4. set the Current system locale as "Japanese(Japan)".

Cài đặt anaconda

Để sử dụng python bạn cần cài đặt python và anaconda. ^^

https://www.continuum.io/downloads

python --version

Mecab là gì?

Mecab là một công cụ mã nguồn mở phân tích hình thái của từ, được phát triển bởi Taku Kudo. Tên của nó công cụ có nguồn gốc từ tên món ăn ưa thích của tác giả めかぶ (me-ka-bu) có nghĩa là củ cải.

Mecab được phát triển từ Chasen, một công cụ phân tích hình thái của từ cũng bắt nguồn từ Viện Khoa học và công nghệ sau đại học Nara, xuất thân của Taku Kudo. Tuy nhiên khi so sánh với Chasen, Mecab nhanh hơn từ 3~4 lần khi phân tích câu có cùng độ phức tạp. Mecab có thể sử dụng một số loại từ điển khác nhau, nhưng từ điển được sử dụng nhiều nhất là IPADIC. Mecab đã được sử dụng trong việc tạo ra dữ liệu n-gram quy mô lớn của Google.

Cài đặt MeCab

Link download có cả bản windows và linux:

https://github.com/ikegami-yukino/mecab/releases/tag/v0.996

Khi chạy trên windows bạn chỉ cần down file .exe về là cài đặt như bình thường(bạn nên để font khi cài đặt là utf-8).

Sau khi cài đặt xong và chạy thử MeCab, gõ dòng chữ: "私はベトナム人です" thì kết quả hiển thị như hình dưới.

Kết hợp MeCab và Python

pip install ipykernel
pip install mecab-python-windows

Chạy trên python và kết quả

>>> import sys
>>> import MeCab
>>> m = MeCab.Tagger ("-Ochasen")
>>> print(m.parse ("すもももももももものうち"))
すもも  スモモ  すもも  名詞-一般
も      モ      も      助詞-係助詞
もも    モモ    もも    名詞-一般
も      モ      も      助詞-係助詞
もも    モモ    もも    名詞-一般
の      ノ      の      助詞-連体化
うち    ウチ    うち    名詞-非自立-副詞可能
EOS

Ochasen là một trong 4 chế độ của mecab:

-mecabrc: (default)

-Ochasen: (hình thức hoán đổi ChaSen)

-Owakati: (chỉ output các viết)

-Oyomi: (Chỉ output cách đọc)

Mọi người có thể thử chi tiết xem 4 case đó khác nhau như thế nào nhé.

Ví dụ như hình dưới đây:

>>> m = MeCab.Tagger ()
>>> print m.parse ("今日もしないとね")
今日	名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
も	助詞(trợ từ),係助詞(hệ trợ từ),*,*,*,*,も,モ,モ
し	動詞(động từ),自立(đứng riêng),*,*,サ変・スル,未然形,する,シ,シ
ない	助動詞(trợ động từ),*,*,*,特殊(đặc thù)・ナイ,基本形(kiểu cơ bản),ない,ナイ,ナイ
と	助詞(trợ từ),接続助詞(trợ từ tiếp tục),*,*,*,*,と,ト,ト
ね	助詞(trợ từ),終助詞(trợ từ kết thúc),*,*,*,*,ね,ネ,ネ
EOS

Kết luận

Việc cài đặt và tách một câu tiếng Nhật với MeCab là khá dễ dàng, tuy nhiên để phân tích ý nghĩa của một câu tiếng Nhật. Chúng ta vẫn còn nhiều việc phải làm. Tuy nhiên sử dụng được MeCab hoặc những thư viện tương tự chính là phần việc không thể thiếu trong phân tích câu tiếng Nhật.

Chúng ta sẽ làm thế nào. Mong các bạn hãy chờ phần tiếp theo của loạt bài blog nhé.

Tham khảo

https://qiita.com/menon/items/f041b7c46543f38f78f7

http://taku910.github.io/mecab/

https://viblo.asia/p/phan-tich-ngon-ngu-tieng-nhat-voi-phan-mem-mecab-va-gem-natto-7rVRqpB9v4bP