korean:mecab:python
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| korean:mecab:python [2021/11/05 22:58] – [準備] yoshi | korean:mecab:python [2021/11/14 22:49] (現在) – [形態素解析の実行] yoshi | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| ===== はじめに ===== | ===== はじめに ===== | ||
| - | ここではHanDicをPythonで利用する方法について紹介します. | + | ここでは[[https:// |
| - | Pythonのバージョンは3.7.11,HanDicはhandic-mecab-20210116を用いました.MeCabを扱うためのモジュールmecab-python3ほか,必要なモジュールがインストールされていることが前提です. | + | Pythonのバージョンは3.7.11,HanDicはhandic-mecab-20210116を用いました.MeCabを扱うためのモジュールmecab-python3ほか,必要なモジュールがインストールされていることが前提です.HanDicはPythonスクリプトのあるディレクトリ下,'' |
| + | |||
| + | なお,HanDicに含まれるファイルのうち'' | ||
| ==== 注意 ==== | ==== 注意 ==== | ||
| 行 15: | 行 17: | ||
| HanDicでは完成型のハングルではなく,字母に分解した文字列を入力として用いるため,完成形ハングルを字母に分解するスクリプトを用意します. | HanDicでは完成型のハングルではなく,字母に分解した文字列を入力として用いるため,完成形ハングルを字母に分解するスクリプトを用意します. | ||
| - | <code python> | + | <file python |
| # k2jamo | # k2jamo | ||
| - | # convert_main(match) | + | # substitute(text) |
| import re | import re | ||
| - | initial | + | REGEX = '[가-힣]' |
| - | medial | + | pattern |
| - | final = ["", | + | |
| - | regex = u' | ||
| - | pattern = re.compile(regex) | ||
| def convert_main(match): | def convert_main(match): | ||
| + | ' | ||
| value = ord(match.group(0)) | value = ord(match.group(0)) | ||
| my_int = value - 44032 | my_int = value - 44032 | ||
| my_int_index = int(my_int / 588) | my_int_index = int(my_int / 588) | ||
| my_final_index = my_int % 28 | my_final_index = my_int % 28 | ||
| - | my_medial_index = int((my_int - (my_int_index * 588) - my_final_index) / 28) | + | my_medial_index = \ |
| - | result = initial[my_int_index] + medial[my_medial_index] + final[my_final_index] | + | |
| + | result = initial[my_int_index] + \ | ||
| + | | ||
| + | | ||
| return result | return result | ||
| - | def substitute_main(text): | + | |
| + | def substitute(text): | ||
| + | ' | ||
| result = re.sub(pattern, | result = re.sub(pattern, | ||
| return result | return result | ||
| - | </code> | + | |
| + | |||
| + | if __name__ == ' | ||
| + | for letters in [' | ||
| + | output = substitute(letters) | ||
| + | print(letters, | ||
| + | </file> | ||
| これを'' | これを'' | ||
| - | | + | ===== MeCabの呼び出し ===== |
| + | |||
| + | MeCabを使うためのモジュールと,'' | ||
| + | |||
| + | <code python> | ||
| + | import MeCab | ||
| + | import k2jamo | ||
| + | tokenizer = MeCab.Tagger(' | ||
| + | tokenizer.parse('' | ||
| + | </ | ||
| + | |||
| + | ===== 形態素解析の実行 ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | <code python> | ||
| + | input = u' | ||
| + | # 한겨레 2021年11月5日付け記事(https:// | ||
| + | input = k2jamo.substitute(input) | ||
| + | print(tokenizer.parse(input)) | ||
| + | </ | ||
| + | |||
| + | 結果は以下の通り. | ||
| + | |||
| + | <code bash> | ||
| + | 한 | ||
| + | 상혁 | ||
| + | 방송 | ||
| + | 통신 | ||
| + | 위원장 | ||
| + | 이 | ||
| + | 코로나 | ||
| + | 19 Symbol, | ||
| + | 확진 | ||
| + | 판정 | ||
| + | 을 | ||
| + | 받으 Verb, | ||
| + | 면서 Ending, | ||
| + | 김 | ||
| + | 부겸 Noun, | ||
| + | 국무 Noun, | ||
| + | 총리 Noun, | ||
| + | 를 | ||
| + | 비롯 Root, | ||
| + | 하 | ||
| + | ᆫ | ||
| + | 국무 Noun, | ||
| + | 위원 Noun, | ||
| + | 들 | ||
| + | 이 | ||
| + | 코로나 | ||
| + | 검사 Noun, | ||
| + | 대상 Noun, | ||
| + | 이 | ||
| + | 돼 | ||
| + | ᆻ | ||
| + | 다 | ||
| + | . | ||
| + | EOS | ||
| + | </ | ||
| + | |||
| + | うまくいっているようです. | ||
| + | |||
| + | ====== 参考にしたページ ====== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | {{indexmenu_n> | ||
korean/mecab/python.1636120698.txt.gz · 最終更新: 2021/11/05 22:58 by yoshi