sklearn의 순수한 만 텍스트로 채우기
8085 단어 Python
의 데이터 세트입니다.
분류 코드 내보내기
from pprint import pprint
pprint(list(newsgroups_train.target_names))
이것은 마치 보도의 유형인 것 같아서, 무엇을 쓰기 시작했는지 아직 분명하지 않다.['alt.atheism',
'comp.graphics',
'comp.os.ms-windows.misc',
'comp.sys.ibm.pc.hardware',
'comp.sys.mac.hardware',
'comp.windows.x',
'misc.forsale',
'rec.autos',
'rec.motorcycles',
'rec.sport.baseball',
'rec.sport.hockey',
'sci.crypt',
'sci.electronics',
'sci.med',
'sci.space',
'soc.religion.christian',
'talk.politics.guns',
'talk.politics.mideast',
'talk.politics.misc',
'talk.religion.misc']
조사 결과 인터넷 뉴스 프로토콜인 것으로 밝혀졌다.읽는 뉴스 그룹
fj.comp.applications.excel, fj.comp.oldies, fj.comp.misc, fj.os.ms-windows.win95, fj.os.msdos, fj.net.providers, fj.net.words, fj.life.hometown.hokkaido, fj.jokes.d, fj.rec.autos, fj.rec.motorcycles, fj.news.group.*, fj.news.policy, fj.news.misc, fj.news.adm, fj.news.net-abuse, fj.questions.fj, fj.questions.internet, fj.questions, misc, fj.sci.chem, fj.engr.misc
http://www2s.biglobe.ne.jp/~kyashiki/fj/arukikata/WonderfulFj.html
Network News Transfer Protocol은 프로토콜을 사용하는 fj(뉴스그룹)의 뉴스입니다.
sample.py
import numpy as np
from sklearn.datasets import fetch_20newsgroups
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
import nltk
from pprint import pprint
def stopwords():
symbols = ["'", '"', '`', '.', ',', '-', '!', '?', ':', ';', '(', ')', '*', '--', '\\']
stopwords = nltk.corpus.stopwords.words('english')
return stopwords + symbols
newsgroups_train = fetch_20newsgroups(subset='train', remove=('headers', 'footers', 'quotes'))
newsgroups_test = fetch_20newsgroups(subset='test', remove=('headers', 'footers', 'quotes'))
#ニュースカテゴリを表示
pprint(list(newsgroups_train.target_names))
#記事データ
#print(newsgroups_train.data)
#CountVectorizerクラスを作る
vectorizer = CountVectorizer(stop_words=stopwords())
#print(vectorizer)
#語彙辞書を作る
vectorizer.fit(newsgroups_train.data)
# Train
#ドキュメント用語マトリクスをXに代入
X = vectorizer.transform(newsgroups_train.data)
# print(newsgroups_train.target)
y = newsgroups_train.target
# print(X.shape)
clf = MultinomialNB()
clf.fit(X, y)
print(clf.score(X,y))
# Test
X_test = vectorizer.transform(newsgroups_test.data)
y_test = newsgroups_test.target
print(clf.score(X_test, y_test))
데이터: 정확도 60%
테스트 데이터: 정확도 80%
그런 것 같습니다.
참고했어.큰 도움이 됐습니다.
http://qiita.com/kotaroito/items/76a505a88390c5593eba
Reference
이 문제에 관하여(sklearn의 순수한 만 텍스트로 채우기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyamotok0105/items/dadbfaa37ab2da63e3e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)