前提・実現したいこと
前回の質問とほとんど同じ内容ですが、一部異なるため、別の質問として質問いたします。
Mecabで形態素解析をしたあと、名詞・形容詞・動詞に該当する単語のみを抽出しようとしています。
具体的には以下のような出力が得たいです。
text = "日本・東京" ['日本', '東京'] text = "ドライ・アムネシア・バラ(切花)" ['ドライ', 'アムネシア', 'バラ', '切花']
発生している問題・エラーメッセージ
textが「日本・東京」の場合、出力が
text = "日本・東京" ['日本', '東京']
となるのですが、textが以下のような場合、
text = "ドライ・アムネシア・バラ(切花)" ['切花']
であったり、何も出力されないという問題が起こっています。
該当のソースコード
Python
1import Mecab 2def extractKeyword(text): 3 tagger = MeCab.Tagger('-Ochasen') 4 tagger.parse('') 5 node = tagger.parseToNode(text) 6 keywords = [] 7 while node: 8 if node.stat != 0: 9 node = node.next 10 continue 11 if node.feature.split(",")[0] == u"名詞": 12 keywords.append(node.surface) 13 elif node.feature.split(",")[0] == u"形容詞": 14 keywords.append(node.surface) 15 elif node.feature.split(",")[0] == u"動詞": 16 keywords.append(node.surface) 17 node = node.next 18 return keywords 19text = "日本・東京" 20extractKeyword(text)
試したこと
MeCabを使った場合は、カタカナが問題なのかと考え、
以下の入力も試しましたが、問題なく出力されたため、
起こっている問題の改善方法の検討がつかずに困っています。
text = "クリスマス・ローズ" ['クリスマス', 'ローズ']
###ご回答いただいたコードを完成させ実行した結果
ご回答いただいたコード
python
1import sys 2import MeCab 3import mojimoji 4 5STOP_POS = { 6 ('名詞', '副詞可能', '*'), 7 ('名詞', '非自立', '副詞可能'), 8 ('名詞', '非自立', '一般'), 9 ('名詞', '接尾', '副詞可能'), 10 ('名詞', '接尾', '助数詞'), 11 ('名詞', '数', '*'), 12} 13 14def han2zen(text): 15 text = mojimoji.han_to_zen(text) 16 return text 17 18def extractKeyword(text): 19 tagger = MeCab.Tagger('-Ochasen') 20 tagger.parse('') 21 node = tagger.parseToNode(han2zen(text)) 22 keywords = [] 23 while node: 24 features = tuple(node.feature.split(",")) 25 if features[0] == u"名詞" and features[:3] not in STOP_POS: 26 keywords.append(node.surface) 27 elif features[0] == u"形容詞" and features[1] == u"自立": 28 keywords.append(node.surface) 29 elif features[0] == u"動詞" and features[1] == u"自立": 30 keywords.append(node.surface) 31 node = node.next 32 return keywords 33 34text = "ドライ・アムネシア・バラ(切り花)" 35extractKeyword(text)
結果
['ドライ・アムネシア・バラ', '切り花']
補足情報(FW/ツールのバージョンなど)
Python3.6

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/07 04:40
退会済みユーザー
2018/08/07 05:20
2018/08/07 06:03 編集
退会済みユーザー
2018/08/07 12:59
退会済みユーザー
2018/08/31 23:10
2018/08/31 23:47
退会済みユーザー
2018/09/01 01:42
2018/09/01 02:45