質問: t2 - t0 print('合計時間:%f秒'%total_time) ``` まとめると、やりたいと思っているのは 1テキストファイルにタグを付ける 2複数のテキストファイル(1つのディレクトリ内)を同時に入力とする この2つです。 できれば2つとも意見をいただきたいのですが、 1か2どちらか片方についてのご意見、またその他の部分についてのご意見 でも非常にありがたいです。 ### 実行環境 OS:ubuntsu 言語:python3
回答: 指定したディレクトリ内の複数のファイルを指定する方法ですが、`glob`を使用すると良いかと思います。 これにより、 ``` import glob files = glob.glob('TARGET_DIR/*.txt') ``` のようにワイルドカードを使用したファイルの選択することが出来ますので、その結果(ファイルのリスト)にてループ処理を行い、各ファイルの単語リストを生成すると良いのではないでしょうか。 質問のコードに以上を箇所の修正を加えましたので参考にしてください ``` import time import MeCab import glob from gensim import corpora, models, similarities from xlwt import Workbook # ファイル指定 files = glob.glob('*.txt') mecab = MeCab.Tagger ("-Ochasen") # 文章(ファイル)毎の単語リストを登録するためのリスト words_list = [] # ファイル毎の処理 for file in files: f = open(file, "r",encoding = "utf-8") text = f.read() f.close() #文字列を改行位置で区切って分割する(形態素解析) chunks = mecab.parse(text).splitlines() #絞り結果を格納 sels = [] #絞り込み for chunk in chunks: #chunk:形態素解析結果(1行の文字列) #タブ(\t)で区切り、文字列リストを作成 cols = chunk.split('\t') if len(cols) >= 4: #parts[0]:品詞の種類 parts = cols[3].split('-') #指定した品詞で始まっている場合 → 真 if parts[0].startswith('名詞') or parts[0].startswith('動詞'): #要素(形態素)を追加 #sels:要素(形態素)のみの行列 sels.append(cols[2]) # 単語リストの登録 words_list.append(sels) #辞書作成 dictionary = corpora.Dictionary(words_list) ```