Khai thác đặc trưng cho NLP bằng Python
Rounak Banik
Data Scientist
human ở 5 vị trí.human có trọng số 5.jupiter và universe xuất hiện 20 lần mỗi từ.jupiter hiếm khi xuất hiện ở tài liệu khác. universe thì phổ biến.jupiter vì tính đặc thù.$$\red{w_{i,j}} = tf_{i,j} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$\red{w_{i,j}} \rightarrow \text{trọng số của thuật ngữ } i \text{ trong tài liệu } j$$
$$w_{i,j} = \red{tf_{i,j}} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$w_{i,j} \rightarrow \text{trọng số của thuật ngữ } i \text{ trong tài liệu } j$$
$$\red{tf_{i,j}} \rightarrow \text{tần suất của thuật ngữ } i \text{ trong tài liệu } j $$
$$w_{i,j} = tf_{i,j} \cdot \red{\log\left(\frac{N}{df_{i}}\right)} $$
$$w_{i,j} \rightarrow \text{trọng số của thuật ngữ } i \text{ trong tài liệu } j$$
$$tf_{i,j} \rightarrow \text{tần suất của thuật ngữ } i \text{trong tài liệu } j $$
$$\red{N} \rightarrow \text{số tài liệu trong tập corpora} $$
$$\red{df_{i}} \rightarrow \text{số tài liệu chứa thuật ngữ } i$$
$$w_{i,j} = tf_{i,j} \cdot \log\left(\frac{N}{df_{i}}\right) $$
$$w_{i,j} \rightarrow \text{trọng số của thuật ngữ } i \text{ trong tài liệu } j$$
$$tf_{i,j} \rightarrow tần \; suất \; của \; thuật \; ngữ \; i \; trong \; tài \; liệu \; j $$
$$N \rightarrow số \; tài \; liệu \; trong \; corpora $$
$$df_{i} \rightarrow số \; tài \; liệu \; chứa \; thuật \; ngữ \; i $$
Ví dụ:
$\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. ]
...
Khai thác đặc trưng cho NLP bằng Python