入力された文章を分解してリストにしたい
初心者質問で申し訳ありません。
Python3.7でPyCharmを使いプログラムの勉強をしてる者です。
入力した文章を単語ごとに分けてリストに入れる、という処理を作ろうと思いました。
そこで、色々とウェブサイトを調べていたら、どうやらnode.surfaceで文章の単語を取得できるようだ、と理解したのですが、どうもそのように動作しないのです。
そこで、単にnode.surfaceを変数に格納してその変数をprintで出力してみたところ、単語ではなく文章全体が出てきました。
これは、もともとこういうものなのでしょうか? また、何かやり方を変えればnode.surfaceで単語だけを抽出できるのでしょうか? 誰か、教えていただけると幸いです。
処理結果
おしゃべりください:世界で一番人口の多い国は中国です。 世界で一番人口の多い国は中国です。 世界で一番人口の多い国は中国です。 で一番人口の多い国は中国です。 一番人口の多い国は中国です。 人口の多い国は中国です。 の多い国は中国です。 多い国は中国です。 国は中国です。 は中国です。 中国です。 です。 。
該当のソースコード
import MeCab tagger = MeCab.Tagger ('-d /usr/local/lib/mecab/dic/ipadic') text = input("おしゃべりください:") tagger.parseToNode('') node =tagger.parseToNode(text) while node: word = node.surface print(word) node = node.next
試したこと
色々とウェブサイトを巡りましたが、同じコードを入れてるのに違う結果が出てきた時点でどうしようもなく、質問させていただきました。
補足情報(FW/ツールのバージョンなど)
mecab-python3 0.996.1
mecab-0.996
tagger.parse(text)は何を返しますか?
上記のコードに以下の部分を追加(whileの上に)しましたところ、このような結果になりました。
x = tagger.parse(text)
print(x)
世界 名詞,一般,*,*,*,*,世界,セカイ,セカイ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
一番 名詞,副詞可能,*,*,*,*,一番,イチバン,イチバン
人口 名詞,一般,*,*,*,*,人口,ジンコウ,ジンコー
の 助詞,格助詞,一般,*,*,*,の,ノ,ノ
多い 形容詞,自立,*,*,形容詞・アウオ段,基本形,多い,オオイ,オーイ
国 名詞,一般,*,*,*,*,国,クニ,クニ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
中国 名詞,固有名詞,地域,国,*,*,中国,チュウゴク,チューゴク
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS
解析そのものはちゃんと行えているようですが、node.surfaceの値が変という状態ですね。githubでissue上がってたので回答します
回答1件
あなたの回答
tips
プレビュー