Cliquez ici jusqu'à hier
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-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.
«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.
référence: https://ja.wikipedia.org/wiki/Tf-idf
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.
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
HP d'Otsu py: http://www.otupy.net/
Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw
Twitter: https://twitter.com/otupython
Recommended Posts