質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

669閲覧

[python]複数の文書ファイルから名詞の単語のみを抽出し、一つのnumpy配列に格納するプログラムを教えてください。

faaab

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/05/19 15:36

編集2019/05/19 16:12

前提・実現したいこと

複数の文書ファイルから名詞の単語のみを抽出し、以下の出力例のようにnumpy配列に格納するプログラムを考えているのですが頓挫している状態です。御助力をお願い致します。

文書ファイルは青空文庫から拾い、言語はPython、単語は分かち書きです。

出力例
([’名詞 名詞 名詞’, #文書1
’名詞 名詞’, #文書2
’名詞 名詞 名詞 名詞’]) #文書3

補足情報(FW/ツールのバージョンなど)

python

1import mecab 2import re 3import numpy as np 4 5with open(path) as f: 6   data = f.read() 7 8mecab = MeCab.Tagger() 9parse = mecab.parse(data) 10lines = parse.split('\n') 11items = (re.split('[\t,]', line) for line in lines) 12 13words = [item[0] 14 for item in items 15 if (item[0] not in ('EOS', '', 't', 'ー') and 16 item[1] == '名詞' and item[2] == '一般')] 17 18noun = np.array([]) 19 20for word in words: 21 noun = np.append(noun, word) 22 23noun = np.append(noun, np.array(noun), axis=0) 24print(noun)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

データが単に分かち書きされているだけだと「名詞だけ取り出す」のは無理です。もう一度、形態素解析器を使う必要があるでしょう。

たとえばmecabにそのまま通せば半角スペースは無視されますので、それで品詞タグの情報を取り出して名詞だけ抜き出す、というコードを書けば良いのではないでしょうか(mecabのpythonバインディングでやるのも、コマンドラインでやって他ファイルに吐いておいてpythonに読ませるのも、どちらも可能だと思います)。


上のような認識で回答してから「青空文庫から取ってきたそのままのテキストファイルがあるので、名詞のみ分かち書きのフォーマットで出力したい」という要件の可能性があるなぁ、と思いました。

だとすれば、こういう感じでやればいいのでは?

【Python】MeCabを使って文章を解析して名詞だけ取得する方法 - あずみ.net

投稿2019/05/19 15:43

編集2019/05/19 15:45
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faaab

2019/05/19 16:00

ご回答ありがとうございます。補足に書かせていた頂いたプログラムで、出力例のような結果を得たかったのですが、得られていない状態です。説明不足で申し訳ございません。
hayataka2049

2019/05/19 16:02 編集

とりあえず ```python コード ``` のようなもので囲わないとこのサイトではコードがうまく表示されないので、修正しておいてください。選択して<code>ボタンでも挿入できます。
faaab

2019/05/19 16:04

承知しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問