プログラム初心者です。
pythonで3000近くある.txtデータの中に入っているテキストデータの類似度を算出したいです。
いくつかのデータから類似度を算出することはできたのですが、多くのデータを扱うときはどのようにするのが良いのでしょうか…?
全てのデータから2通りを選ぶ全組み合わせを獲得し、全てのペアの類似度の算出を行いたいです。
ご協力をおねがいします。
python
1 2# -*-coding: utf-8 -*- 3import numpy as np 4from sklearn.feature_extraction.text import TfidfVectorizer 5from sklearn.metrics.pairwise import cosine_similarity 6from sklearn.feature_extraction.text import TfidfTransformer 7 8from janome.tokenizer import Tokenizer 9 10filenames=['output/aa0001.txt','output/aa0002.txt','output/aa0003.txt','output/aa0004.txt','output/aa0005.txt'] 11wakati_list = [] 12for filename in filenames: 13 with open(filename,mode='r',encoding = 'utf-8-sig') as f: 14 text = f.read() 15 wakati = '' 16 t = Tokenizer() 17 for token in t.tokenize(text): 18 hinshi = (token.part_of_speech).split(',')[0] 19 hinshi_2 = (token.part_of_speech).split(',')[1] 20 if hinshi in ['名詞']: 21 if not hinshi_2 in ['空白','*']: 22 word = str(token).split()[0] 23 if not ',*,' in word: 24 wakati = wakati + word +' ' 25 26 wakati_list.append(wakati) 27wakati_list_np = np.array(wakati_list) 28 29vectorizer = TfidfVectorizer(token_pattern=u'\b\w+\b') 30transformer = TfidfTransformer() 31tf = vectorizer.fit_transform(wakati_list_np) 32 33tfidf = transformer.fit_transform(tf) # TF-IDF 34 35tfidf_array = tfidf.toarray() 36cs = cosine_similarity(tfidf_array,tfidf_array) 37print(cs) 38
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/22 19:04