入力文章から、俳句 短歌を抽出する。WEB画面の追加 自然言語処理(8)
index:
概要
前の、 自然言語処理 で TF-IDF 関係となりますが、
俳句、短歌を機械学習させて、入力文章と、
類似文章を抽出する。web画面の作成となります。
・ 画面は、前回と同じ Bot UIライブラリを
使用しています。
処理など
train.py
pandas で、CSV読み込み、
TfidfVectorizer で、学習、pickle で、保存して
flaskr/files/ に、配置
# csv_data = pd.read_csv("flaskr/files/bun_data.csv" ,encoding="SHIFT-JIS" ) #print(csv_data.head() ) tokens=[] for item in csv_data["bun"]: #print(item) token=get_token(item) tokens.append(token) #print(len(csv_data.columns) ) #print(tokens ) #quit() #print(tokens ) #quit() docs = np.array(tokens) vectorizer = TfidfVectorizer(use_idf=True, token_pattern=u'(?u)\\b\\w+\\b') print(tokens) #quit() vecs = vectorizer.fit_transform(docs ) print("#vecs :") print(vecs.shape ) ##print(vecs[0] ) #save file_name="params.pkl" with open(file_name, 'wb') as f: pickle.dump(vectorizer, f) print("#save vectorizer OK!")
views.py
入力文章を、評価して。
類似文章を抽出して、画面に出力
# @app.route('/test3', methods=['GET', 'POST']) def test3(): print("#test3") ret="sorry, nothing response." if(len(request.form ) > 0): text=request.form['intext'] print("text=",text ,"len=", len(text) ) if(len(text) >0): ret=vect.predict(text ) print (ret) return ret