
前提
pre.texの日本語文書をmecabで形態素解析を行い,一つの文章ごとに形容詞,名詞,動詞のみの抽出を目指しています.
しかし,今のプログラムでは一つの単語ごとにリストに格納されてしまいます.一文ごとに抽出するためにはどのようにすればよろしいでしょうか.
実現したいこと
- 一文ごとに動詞,形容詞,名詞を出力する.
例)
(文書)
「私は英語を勉強しました.」
「今日は数学の問題を解きました.」
(期待する出力結果)
[英語,勉強]
[今日,数学,問題,解き]
(現在の出力結果)
[英語]
[勉強]
[今日]
[数学]
[問題]
[解き]
該当のソースコード
python
1import sys 2import MeCab 3import requests 4import urllib 5import re 6import json 7import pandas as pd 8from collections import Counter 9 10 11 12def main(): 13 # ファイル読み込み 14 15 16 with open('pre.tex', "r", encoding = 'utf-8') as data: 17 documents = [document.strip() for document in data] 18 19 for document in documents: 20 mecab = MeCab.Tagger() 21 data = mecab.parse('\n'.join(documents)) 22 node = mecab.parseToNode('\n'.join(documents)) 23 24 while node: 25 f = node.feature 26 p = f.split(',')[0] 27 if p == '形容詞'or p == '名詞' or p == '動詞': 28 #print(node.surface) 29 30 seglist = node.surface 31 segList = seglist.split(' ') 32 print(segList) 33 34 node = node.next 35 36 segList = segList.split(' ') 37 38 39 40if __name__ == "__main__": 41 main() 42

あなたにとって”文”とはなんでしょうか
MeCabは基本的に品詞分解するもので文を解析するものではありません
文で分解したいのなら区点である「。」で区切れば良いです
区点がない文章を文で区切りたいと言う話であれば別な話です
pre.txtには観光地のレビュー文が保存されています.ですので,一文というより1レビューごとで品詞分解を行いたいです.つまり,「。」では区切れないです、、

実現したいことには「一文ごとに動詞,形容詞,名詞を出力する.」とあります
これは嘘ってことですか?
であれば質問を修正してください
ちなみにレビュー単位であれば、レビューの文章をMeCabに処理させて、
形態素解析の結果を出力すれば良いだけです

あなたの回答
tips
プレビュー