実現したいこと
下記のサイトを参考にしてネガポジ判定を行いたいと考えています。
https://tetraup.com/feed/development/backend/nlp-train/
どうも、判定に必要な辞書の部分で詰まってしまい、どなたかご教授いただけますと幸いです。
(辞書の作り方は書いていないので、メモ帳で作りました...)←解決。
前提
一応辞書は作成し、アップロード済みです。
辞書の中身は以下です。
'私':'e', 'は':'e', 'オオカミ':'n', 'で':'e', 'は':'e', 'ない':'n', 'ので':'e', '信じ':'p', 'て':'e', 'ください':'e'
⇒テキストからJSONに書き改め済み。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "d:/selfpy/mining/m01.py", line 6, in <module> word_dic=json.load(f) File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 293, in load return loads(fp.read(), File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py", line 340, in decode raise JSONDecodeError("Extra data", s, end) json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 10) word_dic=json.load(f) File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 293, in load return loads(fp.read(), File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "C:\Users\81904\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py", line 340, in decode raise JSONDecodeError("Extra data", s, end) json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 10)PS D:\selfpy>
該当のソースコード
Python
1import json 2import MeCab 3 4# 辞書読み込む 5decorder=json.JSONDecoder() 6with open("word_dic.json",mode="r",encoding="utf-8_sig") as f: 7 word_dic=json.load(f) 8#MeCab準備 9tagger = MeCab.Tagger() 10 11#ファイル読み込む 12texts= ["私はオオカミではないので信じてください。"] 13for text in texts: 14 print("評価するテキスト:", text) 15 point = 0 16# MeCab 17 s = tagger.parse(text) 18 19# スペースで分割して品詞側を取得 20 for line in s.split("\n"): 21# EOSだったらループを抜ける 22 if line == "EOS": break 23# さらにカンマで分割 24 params = line.split("\t")[1].split(",") 25# 品詞を取得 26 hinshi = params[0] 27# 単語の原型を取得 28 word = params[6] 29 if not (hinshi in ['名詞', '動詞', '形容詞']): continue 30# 取得した単語の原型が辞書に含まれているか調べて点数をつける 31 if word in word_dic: 32 negaposi = word_dic[word] 33 if negaposi == 'n': 34 point -= 1 35 elif negaposi == 'p': 36 point += 1 37 else: 38 point += 0 39 print(word, negaposi) 40 41 print("score:", point) 42 print("形態素解析結果") 43 print(s)
試したこと
- 普通のJSONファイルの読み込みだとエラーが出たので、”utf-8”に設定
- 以下作成したJSONファイル
JSON
1{"私":"e"} 2{"は":"e"} 3{"オオカミ":"n"} 4{"で":"e"} 5{"ない":"e"} 6{"ので":"e"} 7{"信じ":"p"} 8{"て":"e"} 9{"ください":"e"}
補足情報(FW/ツールのバージョンなど)
些細なことでも構いませんので、𠮟咤激励お待ちしております...
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/08/04 06:11
2023/08/04 08:55
2023/08/04 08:56
2023/08/05 00:52
2023/08/05 01:03
2023/08/05 02:46