korean:mecab:python
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
korean:mecab:python [2021/11/05 23:12] – [MeCabの呼び出し] 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ほか,必要なモジュールがインストールされていることが前提です.HanDicはPythonスクリプトのあるディレクトリ下,'' | Pythonのバージョンは3.7.11,HanDicはhandic-mecab-20210116を用いました.MeCabを扱うためのモジュールmecab-python3ほか,必要なモジュールがインストールされていることが前提です.HanDicはPythonスクリプトのあるディレクトリ下,'' | ||
+ | |||
+ | なお,HanDicに含まれるファイルのうち'' | ||
==== 注意 ==== | ==== 注意 ==== | ||
行 15: | 行 17: | ||
HanDicでは完成型のハングルではなく,字母に分解した文字列を入力として用いるため,完成形ハングルを字母に分解するスクリプトを用意します. | HanDicでは完成型のハングルではなく,字母に分解した文字列を入力として用いるため,完成形ハングルを字母に分解するスクリプトを用意します. | ||
- | <code python> | + | <file python |
# k2jamo | # k2jamo | ||
- | # substitute_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> | ||
これを'' | これを'' | ||
行 49: | 行 60: | ||
<code python> | <code python> | ||
import MeCab | import MeCab | ||
- | from k2jamo | + | import |
tokenizer = MeCab.Tagger(' | tokenizer = MeCab.Tagger(' | ||
tokenizer.parse('' | tokenizer.parse('' | ||
行 56: | 行 67: | ||
===== 形態素解析の実行 ===== | ===== 形態素解析の実行 ===== | ||
+ | '' | ||
+ | |||
+ | <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> | + | {{indexmenu_n> |
korean/mecab/python.1636121549.txt.gz · 最終更新: 2021/11/05 23:12 by yoshi