[Python] J'ai essayé de calculer TF-IDF régulièrement

Mémo TF-IDF. Il est beaucoup plus facile d'utiliser TfidfVectorizer , mais c'est aussi pour étudier. Si quelque chose est étrange, merci de me le dire.

Document à calculer

hoge.txt


white black red
white white black
white black black black
white
#Préparation
print(word_set)
['black', 'red', 'white']

print(doc_words)
[['white', 'black', 'red'], ['white', 'white', 'black'], ['white', 'black', 'black', 'black'], ['white']]
def tokenizer(word_set, doc_words):
    token_doc = []
    for words in doc_words:
        temp = []
        for w in words:
            temp.append(word_set.index(w))
        token_doc.append(temp)
    return token_doc

token_doc = tokenizer(word_set, doc_words)
#print(token_doc)

doc_num = len(token_doc)
#print(doc_num)
IDF = []
count = 0

import math

for j in range(len(word_set)):
    count = 0
    for d_list in token_doc:
        if j in d_list:
            count += 1
    IDF.append(math.log(doc_num / count) + 1)

TF_set = []
for doc in token_doc:
    TF = [0] * len(word_set)
    for t in doc:
        TF[t] += 1
    TF_set.append(TF)

TF_IDF_set = []
TF_IDF = []
for temp_TF in TF_set:
    for m in range(len(word_set)):
        TF_IDF.append(temp_TF[m] * IDF[m])
    TF_IDF_set.append(TF_IDF)
    TF_IDF = []
#résultat
print(token_doc)
[[2, 0, 1], [2, 2, 0], [2, 0, 0, 0], [2]]

print(word_set)
['black', 'red', 'white']

print(TF_IDF_set)
[[1.2876820724517808, 2.386294361119891, 1.0], [1.2876820724517808, 0.0, 2.0], [3.8630462173553424, 0.0, 1.0], [0.0, 0.0, 1.0]]

Recommended Posts

[Python] J'ai essayé de calculer TF-IDF régulièrement
J'ai essayé de toucher Python (installation)
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé de toucher Python (syntaxe de base)
J'ai essayé Python> autopep8
J'ai essayé de déboguer.
J'ai essayé Python> décorateur
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé d'implémenter le tri sélectif en python
J'ai essayé de gratter avec Python
J'ai essayé de représenter graphiquement les packages installés en Python
Quand j'ai essayé d'introduire python3 dans atom, je suis resté coincé
J'ai essayé d'apprendre PredNet
J'ai essayé de résumer comment utiliser matplotlib de python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
Suite ・ J'ai essayé de créer Slackbot après avoir étudié Python3
J'ai essayé d'implémenter PCANet
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé d'implémenter le poker de Drakue en Python
J'ai essayé d'implémenter GA (algorithme génétique) en Python
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
J'ai essayé l'extension C de Python
J'ai essayé de présenter Pylint
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
[Python] J'ai essayé d'obtenir Json de squid ring 2
jupyter je l'ai touché
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé d'accéder aux feuilles de calcul Google en utilisant Python
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai essayé LeetCode tous les jours 13. Roman to Integer (Python, Go)
[Chaîne de Markov] J'ai essayé de charger des émotions négatives dans Python.
[Chaîne de Markov] J'ai essayé de lire les citations en Python.
J'ai essayé "Comment obtenir une méthode décorée en Python"
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Mayungo's Python Learning Episode 3: J'ai essayé d'imprimer des nombres
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé d'énumérer les différences entre java et python
J'ai fait un chronomètre en utilisant tkinter avec python