Ingineria caracteristicilor pentru NLP în Python
Rounak Banik
Data Scientist
human în cinci locuri.human are ponderea 5.jupiter și universe de câte 20 de ori.jupiter apare rar în celelalte documente. universe este comun.jupiter datorită exclusivității.$$\red{w_{i,j}} = tf_{i,j} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$\red{w_{i,j}} \rightarrow \text{ponderea termenului } i \text{ în documentul } j$$
$$w_{i,j} = \red{tf_{i,j}} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$w_{i,j} \rightarrow \text{ponderea termenului } i \text{ în documentul } j$$
$$\red{tf_{i,j}} \rightarrow \text{frecvența termenului } i \text{ în documentul } j $$
$$w_{i,j} = tf_{i,j} \cdot \red{\log\left(\frac{N}{df_{i}}\right)} $$
$$w_{i,j} \rightarrow \text{ponderea termenului } i \text{ în documentul } j$$
$$tf_{i,j} \rightarrow \text{frecvența termenului } i \text{în documentul } j $$
$$\red{N} \rightarrow \text{numărul de documente din corpus } $$
$$\red{df_{i}} \rightarrow \text{numărul de documente care conțin termenul } i$$
$$w_{i,j} = tf_{i,j} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$w_{i,j} \rightarrow \text{ponderea termenului } i \text{ în documentul } j$$
$$tf_{i,j} \rightarrow frecvența \; termenului \; i \; în \; documentul \; j $$
$$N \rightarrow numărul \; de \; documente \; din \; corpus $$
$$df_{i} \rightarrow numărul \; de \; documente \; care \; conțin \; termenul \; i$$
Exemplu:
$\red{w_{library, document}} = 5 \cdot log(\frac{20}{8}) \approx 2 $
# Import TfidfVectorizer from sklearn.feature_extraction.text import TfidfVectorizer# Create TfidfVectorizer object vectorizer = TfidfVectorizer()# Generate matrix of word vectors tfidf_matrix = vectorizer.fit_transform(corpus) print(tfidf_matrix.toarray())
[[0. 0. 0. 0. 0.25434658 0.33443519
0.33443519 0. 0.25434658 0. 0.25434658 0.
0.76303975]
[0. 0.46735098 0. 0.46735098 0. 0.
0. 0.46735098 0. 0.46735098 0.35543247 0.
0. ]
...
Ingineria caracteristicilor pentru NLP în Python