前提
json形式のファイルからtextを取り出して,その内容をMeCabを用いて品詞分解を目指しています.
しかし,エラーが出てしまい,その原因がわからないので教えていただけますと幸いです.
実現したいこと
- json形式の中身を形態素解析
発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\Users\subaru narahashi\graduation_research\mecab_2.py", line 59, in <module> main() File "C:\Users\subaru narahashi\graduation_research\mecab_2.py", line 31, in main m = mecab.parse(data) TypeError: in method 'Tagger_parse', argument 2 of type 'char const *' Additional information: Wrong number or type of arguments for overloaded function 'Tagger_parse'. Possible C/C++ prototypes are: MeCab::Tagger::parse(MeCab::Lattice *) const MeCab::Tagger::parse(char const *)
該当のソースコード
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 new_data = [] 15 m = [] 16 17 with open('pre_replace_kurashiki.json', "r", encoding = 'utf-8') as f: 18 j = json.load(f) 19 20 """ 21 for key in j: 22 i = print(neologdn.normalize(key["text"])) 23 p = print(key["day"]) 24 """ 25 26 27 for key in j: 28 data = {key["text"]} 29 print(data) 30 mecab = MeCab.Tagger() 31 m = mecab.parse(data) 32 node = m.parseToNode(data) 33 34 new_data.append(node) 35 36 print(new_data) 37 38 39 40 41 #print(new_data) 42 43 """ 44 mecab = MeCab.Tagger() 45 mecab.parse(new_data) 46 node = mecab.parseToNode(new_data) 47 48 49 50 m.append(mecab) 51 52 print(m) 53 """ 54 55 #for document in documents: 56 57 58if __name__ == "__main__": 59 main() 60
追加情報1:jsonファイルの中身
[ { "text": "全ての季節で情緒を感じることができる。古きを訪ね新しくを知る旅にもってこい。一人旅にも、家族、カップル、全てのシチュエーションにも満足がいく旅になると思います。", "day": "2021年9月" }, { "text": "何度か行ったことがあるのですが、いつ行っても綺麗な景観です。やっぱり日本の景色は良いですね。落ち着きます。", "day": "2022年10月1日" }, { "text": "建物の雰囲気がとても良かった。食べ歩きができ恋みくじ団子は美味しかった。スヌーピー倉敷限定商品がありました。", "day": "2022年9月" } ]
追加情報2:実施したこと
以下のようにコードを変更しました
import sys import MeCab import requests import urllib import re import json import pandas as pd from collections import Counter def main(): # ファイル読み込み new_data = [] data_1 = [] with open('pre_replace_kurashiki.json', "r", encoding = 'utf-8') as f: j = json.load(f) """ for key in j: i = print(neologdn.normalize(key["text"])) p = print(key["day"]) """ for key in j: data = key["text"] print(data) mecab = MeCab.Tagger() m = mecab.parse(str(data)) node = m.parseToNode(str(data)) new_data.append(node) print(new_data) #print(new_data) """ mecab = MeCab.Tagger() mecab.parse(new_data) node = mecab.parseToNode(new_data) m.append(mecab) print(m) """ #for document in documents: if __name__ == "__main__": main()
追加情報3:変更後のコードに対するエラーメッセージ
Traceback (most recent call last): File "C:\Users\subaru narahashi\graduation_research\mecab_2.py", line 61, in <module> main() File "C:\Users\subaru narahashi\graduation_research\mecab_2.py", line 34, in main node = m.parseToNode(str(data)) AttributeError: 'str' object has no attribute 'parseToNode'
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/10/21 10:05
2022/10/21 11:59