[PYTHON] Vous deviendrez ingénieur dans 100 jours --Jour 68 --Programmation --A propos de TF-IDF

Cliquez ici jusqu'à hier

Vous deviendrez ingénieur dans 100 jours - Jour 66 - Programmation - À propos du traitement du langage naturel

Vous deviendrez ingénieur dans 100 jours - Jour 63 - Programmation - À propos de la probabilité 1

Vous deviendrez ingénieur dans 100 jours - Jour 59 - Programmation - À propos des algorithmes

Vous deviendrez ingénieur dans 100 jours --- Jour 53 --Git --À propos de Git

Vous deviendrez ingénieur dans 100 jours - Jour 42 --Cloud --À propos des services cloud

Vous deviendrez ingénieur dans 100 jours - Jour 36 --Base de données --À propos de la base de données

Vous deviendrez ingénieur dans 100 jours-24 jours-Python-Bases du langage Python 1

Vous deviendrez ingénieur dans 100 jours --Jour 18 --Javascript --Les bases de JavaScript 1

Vous deviendrez ingénieur dans 100 jours - Jour 14 --CSS --CSS Basics 1

Vous deviendrez ingénieur dans 100 jours - Jour 6 --HTML - Bases du HTML 1

Cette fois sur TF-IDF.

Qu'est-ce que TF-IDF

«TF-IDF» est la fréquence des mots d'index et la fréquence inverse du document. TF (Term Frequency) fréquence de mot et ʻIDF (Inverse Document Frequency) `La rareté des mots Ce sera un produit.

{TF: Fréquence d'occurrence des mots spécifiés dans le document: \ frac {Nombre d'occurrences des mots spécifiés dans le document} {Nombre d'occurrences de tous les mots dans le document} \\ }
{IDF: Inverser la fréquence des documents (rareté du mot spécifié): log \ frac {nombre total de documents} {nombre de documents y compris le mot spécifié}}
{TFIDF (fréquence de document inversée de fréquence de mot d'index) = TF * IDF}

référence: https://ja.wikipedia.org/wiki/Tf-idf

Nombre de mots

Tout d'abord, comptons le nombre de mots dans la phrase.

Faites une phrase pour compter.

result_list = []
result_list.append('je suis un chat')
result_list.append('je suis un chat')
result_list.append('Je suis aussi')
result_list.append('S'il te plait, sois un chat')

Vous pouvez compter la fréquence des occurrences de mots avec le code suivant.

from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')

count_vectorizer = CountVectorizer(token_pattern='(?u)\\b\\w+\\b')

count_vectorizer.fit(result_list)
X = count_vectorizer.transform(result_list)

print(len(count_vectorizer.vocabulary_))
print(count_vectorizer.vocabulary_)

pd.DataFrame(X.toarray(), columns=count_vectorizer.get_feature_names())

8 {'I'm': 6, 'is': 4, 'cat': 7, 'in': 1, 'is': 0, 'also': 5, 'is': 2, 'please': 3}

y a-t-il alors est Voici Est Aussi je Chat
0 1 1 0 0 1 0 1 1
1 1 1 0 0 1 0 1 1
2 0 0 1 0 0 1 1 0
3 0 0 1 2 0 0 0 1

Vous pouvez compter le nombre de fois qu'un mot apparaît dans chaque phrase.

Ensuite, trouvons TF-IDF.

Vous pouvez le trouver avec le code suivant.

from sklearn.feature_extraction.text import TfidfVectorizer
import warnings
import numpy as np
import pandas as pd
warnings.filterwarnings('ignore')

tfidf_vectorizer = TfidfVectorizer(token_pattern='(?u)\\b\\w+\\b')
tfidf_vectorizer.fit(result_list)

print(len(tfidf_vectorizer.vocabulary_))
print(tfidf_vectorizer.vocabulary_)

X = tfidf_vectorizer.fit_transform(result_list)
pd.DataFrame(X.toarray(), columns=tfidf_vectorizer.get_feature_names())

8 {'I'm': 6, 'is': 4, 'cat': 7, 'in': 1, 'is': 0, 'also': 5, 'is': 2, 'please': 3}

y a-t-il alors est Voici Est Aussi je Chat
0 0.481635 0.481635 0 0 0.481635 0 0.389925 0.389925
1 0.481635 0.481635 0 0 0.481635 0 0.389925 0.389925
2 0 0 0.553492 0 0 0.702035 0.4481 0
3 0 0 0.35157 0.891844 0 0 0 0.284626

TF-IDF a une valeur comprise entre 0 et 1. La valeur de ce qui apparaît dans de nombreuses phrases est faible. Ce qui apparaît beaucoup dans une phrase est considéré comme un mot important.

Vous pouvez le considérer comme un mot qui est plus rare à mesure qu'il se rapproche de 1.

Résumé

Il existe une méthode de vectorisation des phrases et une méthode de calcul de la rareté des mots. Comme les phrases peuvent être quantifiées, vous pourrez effectuer divers calculs.

Parce que ces méthodes sont souvent utilisées dans l'apprentissage automatique, etc. Supprimons le nom et ainsi de suite.

32 jours avant de devenir ingénieur

Informations sur l'auteur

HP d'Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Vous deviendrez ingénieur dans 100 jours --Jour 68 --Programmation --A propos de TF-IDF
Vous serez ingénieur dans 100 jours ――Jour 71 ――Programmation ――À propos du scraping 2
Vous serez ingénieur dans 100 jours ――Jour 74 ――Programmation ――À propos du scraping 5
Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4
Vous serez ingénieur dans 100 jours ――Jour 70 ――Programmation ――À propos du grattage
Vous serez ingénieur dans 100 jours ――Jour 81 ――Programmation ――À propos de l'apprentissage automatique 6
Vous serez ingénieur dans 100 jours ――Jour 82 ――Programmation ――À propos de l'apprentissage automatique 7
Vous serez ingénieur dans 100 jours ――Jour 79 ――Programmation ――À propos de l'apprentissage automatique 4
Vous serez ingénieur dans 100 jours ――Jour 76 ――Programmation ――À propos de l'apprentissage automatique
Vous serez ingénieur dans 100 jours ―― Jour 80 ―― Programmation ―― À propos de l'apprentissage automatique 5
Vous serez ingénieur dans 100 jours ――Jour 84 ――Programmation ――À propos de l'apprentissage automatique 9
Vous serez ingénieur dans 100 jours ――Jour 83 ――Programmation ――À propos de l'apprentissage automatique 8
Vous serez ingénieur dans 100 jours ――Jour 77 ――Programmation ――À propos de l'apprentissage automatique 2
Vous serez ingénieur dans 100 jours ――Jour 85 ――Programmation ――À propos de l'apprentissage automatique 10
Vous serez ingénieur dans 100 jours ――Jour 63 ――Programmation ――À propos de la probabilité 1
Vous serez ingénieur dans 100 jours ――Jour 65 ――Programmation ――A propos de la probabilité 3
Vous serez ingénieur dans 100 jours ――Jour 64 ――Programmation ――À propos de la probabilité 2
Vous serez ingénieur dans 100 jours --Jour 86 --Base de données -
Vous serez ingénieur dans 100 jours ―― Jour 60 ―― Programmation ―― À propos de la structure des données et de l'algorithme de tri
Vous serez ingénieur dans 100 jours - Jour 27 - Python - Exercice Python 1
Vous serez ingénieur dans 100 jours - Jour 34 - Python - Exercice Python 3
Vous devenez ingénieur en 100 jours ――Jour 67 ――Programmation ――A propos de l'analyse morphologique
Vous serez ingénieur dans 100 jours ――Jour 24 ―― Python ―― Bases du langage Python 1
Vous serez ingénieur dans 100 jours ――Jour 30 ―― Python ―― Bases du langage Python 6
Vous serez ingénieur dans 100 jours ――Jour 25 ―― Python ―― Bases du langage Python 2
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4
Vous devez faire attention aux commandes que vous utilisez quotidiennement dans l'environnement de production.
Ce que les débutants pensent de la programmation en 2016