반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 데이터전문기관
- paragraph
- CES 2O21 참여
- cudnn
- 자료구조
- 대이터
- java역사
- pycharm
- classification
- 웹 용어
- CES 2O21 참가
- web 개발
- broscoding
- web 사진
- tensorflow
- discrete_scatter
- 결합전문기관
- postorder
- KNeighborsClassifier
- vscode
- Keras
- bccard
- web
- inorder
- 머신러닝
- C언어
- mglearn
- html
- 재귀함수
- web 용어
Archives
- Today
- Total
bro's coding
sklearn.feature_extraction.text.TfidfTransformer 본문
반응형
https://ko.wikipedia.org/wiki/Tf-idf
tf-idf - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다. TF(단어 빈도,
ko.wikipedia.org
# tf-idf적용
# 단어빈도 _역문서빈도 적용
# 어떤 단어가 한 문서에서 많이 나온다. 그 이유가 있을것이다.
# 한 문서에 많이 나타나는 단어들에 가중치를 더준다.
# 특정 문서에는 잘 나타나는데 다른 문서에는 나타나지 않는다.
#tf : 나온 횟수
#nw : 단어가 나오는 문서 갯수
#N : 전체 문서 갯수
# 스케일 변경 후 각 문서(행)의 벡터곱이 1이 되도록 정규화 함(normalizer)
# 사용법
# 방법1 : CountVectorizer 쓰고 TfidfTransformer 적용
(from sklearn.feature_extraction.text import TfidfTransformer)
# 방접2 : TfidfVectorizer 바로 적용
(from sklearn.feature_extraction.text import TfidfVectorizer)
# idf(가중치)가 크면 특정 문서에서 많이 나타나고 다른 문서에서 잘 나타나지 않음을 의미
# idf(가중치)가 작으면 보통 관용어 같은 단어들
from sklearn.feature_extraction.text import TfidfTransformer
tfidf=TfidfTransformer()
X_train_tfidf=tfidf.fit_transform(X_train)
(X_train_tfidf[0].toarray()**2).sum() # normalization 확인(역)
0.9999999999999997
scores=cross_val_score(LogisticRegression(),X_train_tfidf,y_train)
scores
array([0.88312935, 0.88828894, 0.88334133])
scores=cross_val_score(BernoulliNB(),X_train_tfidf,y_train)
scores
array([0.8462923 , 0.83537317, 0.84541527])
# 가중치가 큰 단어 찾기 (TF-idf)
words=X_train_tfidf.max(axis=0).toarray().ravel()
indexer=words.argsort()
fn=np.array(vect.get_feature_names())
display(fn[indexer[:20]],fn[indexer[-20:]])
array(['dudleys', 'dudleymatch', 'clotheslining', 'riksihi', 'sprinted',
'brawled', 'strom', 'hardymatch', 'rollup', 'crossface', 'speared',
'superkicked', 'hurracanrana', 'gloated', 'turnbuckles', 'nwo',
'ganged', 'rvdmatch', 'wassup', 'stormmatch'], dtype='<U74')
array(['gadget', 'blah', 'sucks', 'lennon', 'demons', 'zatoichi', 'bye',
'botched', 'sasquatch', 'kibbutz', 'colombo', 'wei', 'steve',
'smallville', 'lupin', 'darkman', 'scanners', 'doodlebops', 'nr',
'pokemon'], dtype='<U74')
반응형
'[AI] > python.sklearn' 카테고리의 다른 글
sklearn.decomposition.LatentDirichletAllocation (0) | 2020.04.28 |
---|---|
sklearn.feature_extraction.text.CountVectorizer.ngram.LogisticRegression.2단어들만 출력 (0) | 2020.04.28 |
sklearn.feature_extraction.text.CountVectorizer.ngram_range적용 (0) | 2020.04.28 |
sklearn.feature_extraction.text.TfidfTransformer.LogisticRegression적용 (0) | 2020.04.28 |
sklearn.feature_extraction.text.CountVectorizer.stop_words적용 (0) | 2020.04.28 |
sklearn.feature_extraction.text.CountVectorizer.max_df변화 관찰 (0) | 2020.04.28 |
sklearn.feature_extraction.text.CountVectorizer.min_df변화 관찰 (0) | 2020.04.28 |
sklearn.textdata.BernoulliNB적용 (0) | 2020.04.28 |
Comments