###前提・実現したいこと
現在、指定したテキストファイルから一定値以上のTF-IDF値を持つ単語をkeywordとして抽出し、keywordとそのTF-IDF値をセットで入力データとして保持させるプログラムを作ろうとしています。
表示をさせることはできたのですが、どのようにすればデータを保持できるのかが分かりません。
表示をさせ、なおかつデータを保持したいです。
アドバイスをよろしくお願いします。
###該当のソースコード
# -*- coding: utf-8 -*- #keyword表示 #指定したテキストファイル(日本語は分かち書きされたもののみ)に対応 import numpy as np from sklearn.feature_extraction.text import CountVectorizer from sklearn.feature_extraction.text import TfidfTransformer #CountVectorizer():文書ごとの単語の出現頻度を取得 count = CountVectorizer() #文書を指定 docs = input('select file(ex,○○.txt):') docs_name = docs f = open(docs, encoding = 'utf-8') docs = f.readlines() f.close() #絞り込みの基準を設定 level = float(input('set level(0.0 < level < 1.0):')) #文書を表示 print('%s = %s\n' %(docs_name, docs)) #N種類の文字列を0からN-1までの整数に置き換える bag = count.fit_transform(docs) TF = bag.toarray() #ディクショナリを表示 dic = count.get_feature_names() print('dictionary = %s\n' %dic) #各単語のインデックスを表示 idx = count.vocabulary_ print('index = %s\n' %idx) #TfidfTransformer:(文書内の)TF-IDFを計算 tfidf = TfidfTransformer(use_idf = True, norm = 'l2', smooth_idf = True) np.set_printoptions(precision = 2) TF_IDF = tfidf.fit_transform(bag).toarray() #keywordを表示() for idx, word in zip(*np.where(level <= TF_IDF)): print('doc_num:%s, keyword:%s, TF-IDF:%s'%(idx, dic[word], TF_IDF[(idx, word)]))
###補足情報
pythonは触り始めたばかりなので、簡単な方法を教えていただけるとありがたいです。
「データを保持したい」という説明があいまいな気がします。具体的にどのようなことをおこないたいのでしょうか?(CSV形式等で保存したいということでしょうか?)
単語とTF-IDF値のデータセットを利用して、機械学習させたいと考えています。そのためのデータセットを作るプログラム作成したいです。