ネガポジ判定の点数がうまく反映されない。

実現したいこと

下記サイトを参考にネガポジ判定システムを完成させたいです。
ですが、scoreの部分が辞書側のJSONファイルの割り振りを変えても「0」のままで行き詰っています。
参考サイト様:https://tetraup.com/feed/development/backend/nlp-train/

前提

前回の質問でJSONファイル作成、読み込みは完了しており形態素分割まではうまくいきました。
前回の質問サイト:https://teratail.com/questions/ul1ur2ntttdj6n

  • 使ってる辞書

JSON

1[2{"私":"p"},3{"は":"p"},4{"オオカミ":"p"},5{"で":"p"},6{"ない":"p"},7{"ので":"p"},8{"信じ":"p"},9{"て":"p"},10{"ください":"p"}11]12

  • 出力結果
評価するテキスト: 私はオオカミではないので信じてください。 **score: 0** 形態素解析結果 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ は 助詞,係助詞,*,*,*,*,は,ハ,ワ オオカミ 名詞,一般,*,*,*,*,オオカミ,オオカミ,オーカミ で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ ので 助詞,接続助詞,*,*,*,*,ので,ノデ,ノデ 信じ 動詞,自立,*,*,一段,連用形,信じる,シンジ,シンジ て 助詞,接続助詞,*,*,*,*,て,テ,テ ください 動詞,非自立,*,*,五段・ラ行特殊,命令i,くださる,クダサイ,クダサイ 。 記号,句点,*,*,*,*,。,。,。 EOS

出力結果の「score」の部分が今の辞書ではわざとすべて「p」にしているのでscore=10になることを期待していました...

ソースコード

Python

1import json 2import MeCab 3 4# 辞書読み込む5with open('word_dic.json', mode='r',encoding="utf-8") as wd:6 word_dic = json.load(wd)7#MeCab準備8tagger = MeCab.Tagger()9 10#ファイル読み込む11texts= ["私はオオカミではないので信じてください。"]12for text in texts:13 print("評価するテキスト:", text)14 point = 015# MeCab16 s = tagger.parse(text)17 18# スペースで分割して品詞側を取得19 for line in s.split("\n"):20# EOSだったらループを抜ける21 if line == "EOS": break22# さらにカンマで分割23 params = line.split("\t")[1].split(",")24# 品詞を取得25 hinshi = params[0]26# 単語の原型を取得27 word = params[6] 28 if not (hinshi in ['名詞', '動詞', '形容詞']): continue29# 取得した単語の原型が辞書に含まれているか調べて点数をつける30 if word in word_dic:31 negaposi = word_dic[word]32 if negaposi == 'n':33 point -= 134 elif negaposi == 'p':35 point += 136 else:37 point += 038 print(word, negaposi)39 40 print("score:", point)41 print("形態素解析結果")42 print(s)

試したこと

  • 辞書をすべて「p」に書き換える

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

些細なことでも構いませんので、ご教授いただけますと幸いです。

コメントを投稿

0 コメント