#RFで学習 model.fit(x_train, y_train) #テストデータに対して推論を行う y_pred = model.predict(x_test) #推論結果と正解ラベルの精度を求める acc = metrics.accuracy_score(y_test, y_pred) #推論結果に対して'適合率(precision)'、'再現率(recall)'、 #'F値(f1-score=適合率と再現率の調和平均)'を求める #('support' is the number of occurrences of each class in y_true) rep = metrics.classification_report(y_test, y_pred) #精度の表示 print("精度=", acc) #classification_reportの結果を表示 print(rep) #入力したテキストに対して推論を結果をテスト LABELS = ["スポーツ", "IT", "映画", "国際"] test = "今日は野球の試合がありますね。" #辞書データの読み込み tfidf.load_dic("data/pkl/dic.pkl") #テキストをIF-IDFでベクトル化 preprocessed_input = tfidf.calc_text(test) #テキストのカテゴリを推論 y_pred = model.predict(np.array([preprocessed_input]))[0] #最尤推定値のインデックスを取得 mle_index = y_pred.argmax() #推論結果のカテゴリを表示 print("推論結果:", LABELS[mle_index])
週末によくNetflixで昔の映画を3作品ほど観賞しますが、 巨大なスクリーンと音響による臨場感に勝るものはありません。 """ text3 = """ 億万長者になれる方法を教えます。 すぐに以下のメールアドレスに返信して、稼ぐチャンスを モノにしましょう!まずは月100万以上を目指しましょう。 """ text4 = """ セキュリティ警告です。 お使いになっているPCがウィルスに感染されている危険があります。 今すぐこちらのサイトから無料の検証作業を行ってください。 """ # TF-IDFの辞書を読み込む tfidf.load_dic("./spam-tdidf.dic") # Kerasのモデルを定義&重みデータを読み込む nb_classes = 2 model = Sequential() model.add(Dense(512, activation='relu', input_shape=(6765,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(nb_classes, activation='softmax')) model.compile( loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) model.load_weights('./spam-model.hdf5')
from keras.layers import Dense, Dropout from keras.optimizers import RMSprop from keras.models import model_from_json # テキスト設定 text1 = """新しい冷蔵庫と炊飯器が発売されました。新生活を始めたいあなたに おすすめです。セールは12月までです。""" text2 = """システムエンジニアの派遣には法律の問題が大きく絡みます。プロジェ クトを立ち上げる時は注意が必要です。""" text3 = """トランプ大統領がホワイトハウスの記者を出入り禁止にしましたが、 発言回数の制限等を設け、解除されました。""" #TF-IDFの辞書を読み込み tfidf.load_dic("text/genre-tfidf.dic") #train_mlpで作成したもの # KerasのモデルをJSONで読み込む model = model_from_json(open('./text/genre-model.json').read()) # Kerasのモデルを定義して、重みデータを読み込む model.load_weights('./text/genre-model.hdf5') # テキスト判定 def check_genre(text): # ラベルの定義 LABELS = ["kaden-channel", "IT", "peachy", "topic-news"] # TF-IDFのベクトルに変換 data = tfidf.calc_text(text) # MLPで予測
from keras.optimizers import RMSprop from keras.models import model_from_json # 텍스트 준비하기 --- ( ※ 1) text1 = """ 대통령이 북한과 관련된 이야기로 한미 정상회담을 준비하고 있습니다. """ text2 = """ iPhone과 iPad를 모두 가지고 다니므로 USB를 2개 연결할 수 있는 휴대용 배터리를 선호합니다. """ text3 = """ 이번 주에는 미세먼지가 많을 것으로 예상되므로 노약자는 외출을 자제하는 것이 좋습니다. """ # TF-IDF 사전 읽어 들이기 --- (*2) tfidf.load_dic('source_output/news_category_tdidf.dic') # Keras 모델 정의하고 가중치 데이터 읽어 들이기 --- (*3) n_classes = 4 # 분류할 레이블 수 model = Sequential([ Dense(512, activation='relu', input_shape=(14806, )), Dropout(0.2), Dense(512, activation='relu'), Dropout(0.2), Dense(n_classes, activation='softmax'), ]) model.compile( optimizer=RMSprop(), loss='categorical_crossentropy', metrics=['accuracy'], )