Поиск значений tf-idf в таблице объявлений - PullRequest
0 голосов
/ 18 мая 2019

Я хочу сделать анализ объявления. Мне нужно вычислить значения 'tf' и 'idf'. Но я думаю, что ценности не являются реалистичными. Есть ли проблема с кодом?

"stemming" строка объявлений. Первое объявление 'kars kayıt tarih progra giriş çıkış saat'

tf1 = (train['stemming'][0:1]).apply(lambda x: pd.value_counts(x.split(" "))).sum(axis = 0).reset_index()  #Term frequency
tf1.columns = ['words','tf']

for i,word in enumerate(tf1['words']):    #Inverse Document Frequency
  tf1.loc[i, 'idf'] = np.log(train.shape[0]/(len(train[train['stemming'].str.contains(word)])))

tf1['tf-idf'] = tf1['tf'] * tf1['idf'] # 3.4 Term Frequency – Inverse Document Frequency (TF-IDF)

Для первого слова (kurs) значение tf должно быть 1/7 согласно TF (t) = (Количество раз, когда термин t появляется в документе) / (Общее количество терминов в документе). Но результат таков:

1 Ответ

0 голосов
/ 18 мая 2019

Проблема в том, что когда вы вычисляете тф, вы только подсчитываете вхождения каждого слова. Вам нужно разделить это значение на общее количество разных слов.

...