atilika_logo_horizontal

Hiện tại có rất nhiều công việc liên quan đến xử lý văn bản tiếng Nhật. Bạn muốn lấy danh sách các danh từ, muốn lấy cách đọc chữ Hán hay muốn đổi động từ, tính từ về dạng từ điển để thuận lợi cho việc tìm kiếm. Tất cả các công việc này đều có thể thực hiện dễ dàng với Atikila Kuromoji.

Atilika Kuromoji  là phần mở rộng hơn dựa trên nền tảng Mecab, 1 trong những engine phân tích ngôn ngữ học tiếng Nhật phổ biến nhất. Mecab lúc đầu phát triển dựa theo ChaSen nên có tên là ChaSenTNG,nhưng về sau đã được tách ra phát triển độc lập.

1.Atilika Kuromoji

Mô tả:

Việc lựa chọn từ điển phụ thuộc vào ứng dụng của bạn. Đặc biệt đối với các ứng dụng cần danh sách từ vựng mới thì có thể sử dụng từ điển như mecab-unidic-NEologd ( được cập nhật 2 lần mỗi tuần , crawl từ dữ liệu trên internet và 1 số nguồn khác. Chi tiết xem tại unidic-neologd )

Các chức năng chính:

  • Phân tích đoạn văn bản thành từ vựng
  • Phân nhóm từ vựng
  • Nhận dạng sự biến đổi của từ
  • Hỗ trợ cách đọc chữ Hán

2.Example:

Cài đặt

Thêm nội dung bên dưới vào file pom.xml

com.atilika.kuromoji kuromoji-ipadic 0.9.0

Example 1:  In ra các từ vựng trong câu “日本は最高の国です。”

import org.atilika.kuromoji.Token; import org.atilika.kuromoji.Tokenizer; public class KuromojiExample {     public static void main(String[] args) {         Tokenizer tokenizer = Tokenizer.builder().build();         for (Token token : tokenizer.tokenize("日本は最高の国です。")) {             System.out.println(token.getSurfaceForm());         }     } }

Output

日本 は 最高 の 国 です 。

Example 2: In ra các danh từ trong câu “母は息子をほこりに思っている”

import org.atilika.kuromoji.Token; import org.atilika.kuromoji.Tokenizer; public class KuromojiExample { public static void main(String[] args) { Tokenizer tokenizer = Tokenizer.builder().build(); for (Token token : tokenizer.tokenize("母は息子をほこりに思っている")) { String pos = token.getPartOfSpeech().split(",")[0]; if ("名詞".equals(pos)) { System.out.println(token.getSurfaceForm()); } } } }

Output

母 息子 ほこり

Example 3:  In ra các từ vựng và toàn bộ các thông tin có thể lấy được  “日本は最高の国です。”

import org.atilika.kuromoji.Token; import org.atilika.kuromoji.Tokenizer; public class KuromojiExample { public static void main(String[] args) { Tokenizer tokenizer = Tokenizer.builder().build(); for (Token token : tokenizer.tokenize("日本は最高の国です。")) { System.out.println(token.getSurfaceForm() + "\t" + token.getAllFeatures()); } } }

Output

日本 名詞,固有名詞,地域,国,,,日本,ニッポン,ニッポン は 助詞,係助詞,,,,,は,ハ,ワ 最高 名詞,一般,,,,,最高,サイコウ,サイコー の 助詞,連体化,,,,,の,ノ,ノ 国 名詞,一般,,,,,国,クニ,クニ です 助動詞,,,,特殊・デス,基本形,です,デス,デス 。 記号,句点,,,,*,。,。,。

3. Định dạng Output


Ví dụ kết quả ứng với từ 日本

名詞,固有名詞,地域,国,,,日本,ニッポン,ニッポン

名詞固有名詞地域**日本ニッポンニッポン
Từ loạiTừ loại chi tiết 1Từ loại chi tiết 2Từ loại chi tiết 3 Ctype(*2) Cform(*2)Nguyên gốcCách đọcPhát âm
Danh từDanh từ cố địnhĐịa danhQuốc gia
##### Format Output tiêu chuẩn
品詞品詞細分類1品詞細分類2品詞細分類3活用型活用形原形読み発音
Từ loạiTừ loại chi tiết 1Từ loại chi tiết 2Từ loại chi tiết 3 Ctype CformNguyên gốcCách đọcPhát âm
Chi tiết bảng từ loại tham khảo “Hệ thống từ loại IPA” (*1)

4. Kuromori Function:

Về cơ bản chỉ sử dụng 2 class Token và Tokenizer
Class Tokenizer phân tích văn bản thành các từ vựng ( token)
Class Token chứa các phương thức để lấy thông tin

getSurfaceForm() Trả lại từ vựng (token) getPartOfSpeech() Trả lại loại từ ( danh từ, động từ , tính từ …) getBaseForm() Trả lại dạng nguyên bản của từ. (Động từ thể từ điển) getReading() Trả lại cách đọc cho từ. isKnown()、isUnknown() Trả lại giá trị boolean, có hay không từ vựng này trong từ điển. isUser() Trả lại có từ này trong từ điển riêng của người dùng không. getAllFeatures()、getAllFeaturesArray() Trả lại toàn bộ thông tin dạng String hoặc String[]

5. Thay đổi Mode

Kujomoji hỗ trợ 3 hình thức phân tách dữ liệu
Mode.NORMAL  (default)
Mode.SEARCH
Mode.EXTENDED

Builder builder = Tokenizer.builder(); // Normal mode default builder.mode(Mode.NORMAL); Tokenizer normal = builder.build(); // Search mode builder.mode(Mode.SEARCH); Tokenizer search = builder.build(); // Extends mode builder.mode(Mode.EXTENDED); Tokenizer extended = builder.build();

6. Sử dụng từ điển** riêng**

Ngoài các từ điển được hỗ trợ sẵn, chúng ta cũng có thể sử dụng từ điển tự định nghĩa.

Builder builder = Tokenizer.builder(); builder.userDictionary("userdic.txt");

Kết luận

Atilika Kuromoji cực kỳ hữu ích với các yêu cầu trích xuất dữ liệu, phân tích văn bản. Khả năng tích hợp cũng như sử dụng dễ dàng. Đặc biệt hoàn toàn là mã nguồn mở. Hệ thống từ điển được hỗ trợ cũng đa dạng và vẫn tiếp tục được bổ sung, cập nhật.

Tuy nhiên do đặc thù từ vựng cũng như sự phức tạp của tiếng Nhật, dữ liệu output sẽ không thể 100% chính xác như mong đợi. Việc sót các cụm từ là tên riêng, các từ mới chưa được cập nhật hay nhận dạng từ không chuẩn là vẫn có. Vì thế nên khi sử dụng cũng cần chú ý cho phép có sai số ở mức độ nào đó.

** Thông tin tham khảo**

(*1) Hệ thống từ loại IPA

Type1Type2Type3Type4ExamplesDescription
連体詞「この」、「いろんな」、「おっきな」、「堂々たる」
接頭詞形容詞接続「お」、「まっ」、「クソ」高い」「クソ高い」「まっ赤」
数接続「No.」、「計」、「毎分」あとに数値がくるもの。
動詞接続「ぶっ」、「引き」あとに動詞がくるもの。「ぶったたく」
名詞接続「もと」、「アンチ」、「最」、「総」あとに名詞がくるもの。
名詞引用文字列「いわく」のみ
サ変接続「苦労」、「終了」、「アピール」、「くしゃみ」「~する」の形をとれるもの。
ナイ形容詞語幹「申し訳」、「とんでも」、「おとなげ」「~ない」の形をとれるもの。
形容動詞語幹「あからさま」、「ミステリアス」、「決定的」、「無人」「~な」の形をとれるもの。
動詞非自立的「ごらん」、「ちょうだい」のみ「~してごらん」「~してちょうだい」
副詞可能「10月」、「せんだって」、「当分」おもに時相名詞。
一般「大根」、「シエスタ」、「加速度」、「ありさま」一般名詞。
「ゼロ」、「億」数値。
接続詞的「VS」、「対」、「兼」のみ
固有名詞一般「北穂高岳」、「電通銀座ビル」、「G1」下のカテゴリにあてはまらないもの。山・川・商品名など。
人名一般「グッチ裕三」、「紫式部」芸能人名など。
「山田」、「ビスコンティ」
「B作」、「アントニオ」、「右京太夫」
組織「いすゞ自動車」、「ニチレイ」、「統一アイルランド党」
地域一般「北海道」、「やながわ工業団地」、「ラムサール」
「露西亜」、「バングラデシュ」
接尾サ変接続「化」、「入り」「巨大」「キャンプ入り
一般「ぎみ」、「ゆかり」、「枚」、「不可」
形容動詞語幹「がち」、「的」、「同然」
助数詞「オクターブ」、「%」、「ヶ国」単位。
助動詞語幹「そ」、「そう」のみ「~してそう」「~そうだ」で使われる。
人名「君」、「はん」
地域「州」、「市内」、「港」
特殊「ぶり」、「み」、「方」
副詞可能「いっぱい」、「前後」、「次第」
代名詞一般「そこ」、「俺」、「こんちくしょう」
縮約「わたしゃ」、「そりゃあ」
非自立一般「こと」、「きらい」、「くせ」、「もの」
形容動詞語幹「ふう」、「みたい」のみ
助動詞語幹「よ」、「よう」のみ
副詞可能「限り」、「さなか」、「うち」
特殊助動詞語幹「そ」、「そう」のみ
動詞自立「いがみ合う」、「たてつく」、「垢抜ける」
接尾「する」、「られる」、「させる」、「がかる」
非自立「しまう」、「ちゃう」、「願う」「行ってしまう」「やっちゃったね」「ご遠慮願う
形容詞自立「けたたましい」、「分別臭い」、「めでたい」
接尾「ったらしい」、「っぽい」
非自立「づらい」、「がたい」、「よい」「聞きづらい」「見よい
副詞一般「たいそう」、「人一倍」、「いけしゃあしゃあ」
助詞類接続「あまり」、「いつも」、「ぱさぱさ」同一文節内に付属語がこれるもの。
接続詞「けれども」、「たとえば」、「反面」
助詞格助詞一般「の」、「から」、「を」
引用「と」のみ
連語「について」、「とかいう」解析ミスを防ぐためのマクロ。
係助詞「は」、「こそ」、「も」、「や」
終助詞「かしら」、「ぞ」、「っけ」、「わい」
接続助詞「て」、「つつ」、「および」、「ので」
特殊「かな」、「けむ」、「にゃ」「せにゃならん」 これ以外の用途は不明。
副詞化「と」、「に」のみ
副助詞「くらい」、「なんか」、「ばっかり」
副助詞/並立助詞/終助詞「か」のみ
並立助詞「とか」、「だの」、「やら」
連体化「の」のみ
助動詞「らしい」、「ござる」、「っす」、「じゃん」「そうでございます」
感動詞「うむ」、「お疲れさま」、「トホホ」
記号句点「。」、「.」のみ
読点「、」、「,」のみ
空白「 」のみ
アルファベット「A」
一般「?」、「!」、「¥」
括弧開「(」、「【」
括弧閉「”」、「>」
フィラー「えーと」、「なんか」(たぶん)音声認識用。
その他間投「あ」、「ア」のみ「そんな
未知語「オマエモナー」「NULLPO」
**(*2) 活用型 – 活用形 (ctype and cform) **

Ví dụ

**活用型(ctype)****活用形(cform)**
形容詞・イ段基本形
五段・バ行基本形
五段・マ行基本形
五段・ラ行特殊基本形
五段・ワ行促音便基本形
Chi tiết xem tại: [http://hayashibe.jp/tr/mecab/dictionary/ipadic](http://hayashibe.jp/tr/mecab/dictionary/ipadic)

Tham khảo

[4. http://manapedia.jp/text/1364 ](http://manapedia.jp/text/1364)