У меня есть код для TF-IDF для моего набора данных новостей:
#Pake yang ini
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(text)
terms = vectorizer.get_feature_names()
# sum tfidf frequency of each term through documents
sums = vectors.sum(axis=0)
# connecting term to its sums frequency
data = []
for col, term in enumerate(terms):
data.append( (term, sums[0,col] ))
ranking = pd.DataFrame(data, columns=['term','rank'])
#print(ranking.sort_values('rank', ascending=False))
tfrank = ranking.sort_values('rank', ascending=False)
tf = tfrank['term'].values.tolist()
tflist = tfrank.values.tolist()
tflist
, и результат выглядит так:
[['kompascom', 1.4017648244641259],
['yang', 1.3134948993732996],
['lembaga', 0.9450441338264206],
['sumber', 0.9201203935242713],
['di', 0.8774768633619345],
['fakta', 0.7941379426583972],
['dan', 0.7820675768624364],
['ini', 0.7721892264143173],
['bisa', 0.7215355604434974],
['informasi', 0.7038273489379546],
['hoaks', 0.6443546898427824],
['ifcn', 0.6310537233704365],
['atau', 0.6094359873139008],
['penguji', 0.5945524698582002],
['internasional', 0.5945524698582002],
['rubrik', 0.5534905743539935],
['khusus', 0.5534905743539935],
['masyarakat', 0.5473499161901632],
['dalam', 0.5325014351825453],...]
У меня три комплекта, и я делал пересечение.
LDA_set = set(ldasort)
NMF_set = set(nmsort)
TFIDF_set = set(tf)
itrsect = LDA_set.intersection(NMF_set, TFIDF_set)
itrsect
и результат пересечения выглядит следующим образом:
{'14',
'2018',
'23',
'49',
'acara',
'ada',
'adalah',
'agar',
'antara',
'atas',
'atau',
'awal',
'banjir',
'baru',
'belum',
'beredar',
'berisi',
'beritanya',
'berpartisipasi',...}
На самом деле я ожидаю, что результат пересечения также будет с оценкой TF-IDF. Как мне сделать с циклом? Итак, ожидаемый результат будет, например:
[['14', 1.4017648244641259],
['2018', 1.3134948993732996],
['23', 0.9450441338264206],
['49', 0.9201203935242713],
['acara', 0.8774768633619345],
['ada', 0.7941379426583972],
['adalah', 0.7820675768624364],
['agar', 0.7721892264143173],
['atas', 0.7215355604434974],
['atau', 0.7038273489379546],
['awal', 0.6443546898427824],
['banjir', 0.6310537233704365],
['baru', 0.6094359873139008],
['belum', 0.5945524698582002],
['beredar', 0.5945524698582002],
['berisi', 0.5534905743539935],
['beritanya', 0.5534905743539935],
['berpartisipasi', 0.5473499161901632],...]