-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMeCab test.py
83 lines (77 loc) · 5.24 KB
/
MeCab test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#-*- coding: utf-8 -*-
import MeCab
# With MeCab original dictionary
# MeCab のデフォルト辞書で
mecab_tagger = MeCab.Tagger('')
# To specify dictionary use:
# 特定の辞書を使う場合:
# mecab_tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/ipadic')
# change path to where dictionary is
# 辞書があるパスに当然変えること
text = 'これは日本語の形態素解析のテストです。動詞の形も一般化できるようになっています。'
parsed = [[chunk.split('\t')[0], tuple(chunk.split('\t')[1].split(','))] for chunk in mecab_tagger.parse(text).splitlines()[:-1]]
lemmatized = [i[1][6] for i in parsed]
# parsed --> [[surface, feature] for word in text]
# surface = 'surface'
# feature = ('part-of-speech,sub-class 1,sub-class 2,sub-class 3,inflection,conjugation,root-form,reading,pronunciation')
# 特徴 = ('品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音')
# >>> for i in parsed: print(i)
# ...
# ['これ', ('名詞', '代名詞', '一般', '*', '*', '*', 'これ', 'コレ', 'コレ')]
# ['は', ('助詞', '係助詞', '*', '*', '*', '*', 'は', 'ハ', 'ワ')]
# ['日本語', ('名詞', '一般', '*', '*', '*', '*', '日本語', 'ニホンゴ', 'ニホンゴ')]
# ['の', ('助詞', '連体化', '*', '*', '*', '*', 'の', 'ノ', 'ノ')]
# ['形態素', ('名詞', '一般', '*', '*', '*', '*', '形態素', 'ケイタイソ', 'ケイタイソ')]
# ['解析', ('名詞', 'サ変接続', '*', '*', '*', '*', '解析', 'カイセキ', 'カイセキ')]
# ['の', ('助詞', '連体化', '*', '*', '*', '*', 'の', 'ノ', 'ノ')]
# ['テスト', ('名詞', 'サ変接続', '*', '*', '*', '*', 'テスト', 'テスト', 'テスト')]
# ['です', ('助動詞', '*', '*', '*', '特殊・デス', '基本形', 'です', 'デス', 'デス')]
# ['。', ('記号', '句点', '*', '*', '*', '*', '。', '。', '。')]
# ['動詞', ('名詞', '一般', '*', '*', '*', '*', '動詞', 'ドウシ', 'ドーシ')]
# ['の', ('助詞', '連体化', '*', '*', '*', '*', 'の', 'ノ', 'ノ')]
# ['形', ('名詞', '一般', '*', '*', '*', '*', '形', 'カタチ', 'カタチ')]
# ['も', ('助詞', '係助詞', '*', '*', '*', '*', 'も', 'モ', 'モ')]
# ['一般', ('名詞', '一般', '*', '*', '*', '*', '一般', 'イッパン', 'イッパン')]
# ['化', ('名詞', '接尾', 'サ変接続', '*', '*', '*', '化', 'カ', 'カ')]
# ['できる', ('動詞', '自立', '*', '*', '一段', '基本形', 'できる', 'デキル', 'デキル')]
# ['よう', ('名詞', '非自立', '助動詞語幹', '*', '*', '*', 'よう', 'ヨウ', 'ヨー')]
# ['に', ('助詞', '格助詞', '一般', '*', '*', '*', 'に', 'ニ', 'ニ')]
# ['なっ', ('動詞', '自立', '*', '*', '五段・ラ行', '連用タ接続', 'なる', 'ナッ', 'ナッ')]
# ['て', ('助詞', '接続助詞', '*', '*', '*', '*', 'て', 'テ', 'テ')]
# ['い', ('動詞', '非自立', '*', '*', '一段', '連用形', 'いる', 'イ', 'イ')]
# ['ます', ('助動詞', '*', '*', '*', '特殊・マス', '基本形', 'ます', 'マス', 'マス')]
# ['。', ('記号', '句点', '*', '*', '*', '*', '。', '。', '。')]
# With ChaSen format
# ChaSen のフォーマットで
mecab_tagger = MeCab.Tagger('-Ochasen')
text = 'これは日本語の形態素解析のテストです。動詞の形も一般化できるようになっています。'
parsed = [chunk.split('\t') for chunk in mecab_tagger.parse(text).splitlines()[:-1]]
# output = ['surface','reading','root-form','"part-of-speech"-"sub-class 1"-"sub-class 2"-"sub-class 3"','inflection','conjugation']
# 出力 = ['表層形','読み','原形,'品詞-品詞細分類1-品詞細分類2-品詞細分類3',活用型,活用形']
lemmatized = [i[2] for i in parsed]
# >>> for i in parsed: print(i)
# ...
# ['これ', 'コレ', 'これ', '名詞-代名詞-一般', '', '']
# ['は', 'ハ', 'は', '助詞-係助詞', '', '']
# ['日本語', 'ニホンゴ', '日本語', '名詞-一般', '', '']
# ['の', 'ノ', 'の', '助詞-連体化', '', '']
# ['形態素', 'ケイタイソ', '形態素', '名詞-一般', '', '']
# ['解析', 'カイセキ', '解析', '名詞-サ変接続', '', '']
# ['の', 'ノ', 'の', '助詞-連体化', '', '']
# ['テスト', 'テスト', 'テスト', '名詞-サ変接続', '', '']
# ['です', 'デス', 'です', '助動詞', '特殊・デス', '基本形']
# ['。', '。', '。', '記号-句点', '', '']
# ['動詞', 'ドウシ', '動詞', '名詞-一般', '', '']
# ['の', 'ノ', 'の', '助詞-連体化', '', '']
# ['形', 'カタチ', '形', '名詞-一般', '', '']
# ['も', 'モ', 'も', '助詞-係助詞', '', '']
# ['一般', 'イッパン', '一般', '名詞-一般', '', '']
# ['化', 'カ', '化', '名詞-接尾-サ変接続', '', '']
# ['できる', 'デキル', 'できる', '動詞-自立', '一段', '基本形']
# ['よう', 'ヨウ', 'よう', '名詞-非自立-助動詞語幹', '', '']
# ['に', 'ニ', 'に', '助詞-格助詞-一般', '', '']
# ['なっ', 'ナッ', 'なる', '動詞-自立', '五段・ラ行', '連用タ接続']
# ['て', 'テ', 'て', '助詞-接続助詞', '', '']
# ['い', 'イ', 'いる', '動詞-非自立', '一段', '連用形']
# ['ます', 'マス', 'ます', '助動詞', '特殊・マス', '基本形']
# ['。', '。', '。', '記号-句点', '', '']