Получить значение TF-IDF - PullRequest
       5

Получить значение TF-IDF

0 голосов
/ 18 января 2020

У меня есть код для 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],...]
...