<jupyter_start><jupyter_text>목표  * 상품의 이름만으로 ['가전/디지털', '식품/건강', '화장품/이미용'] 3개의 카테고리를 분류해본다* Linear SVC 모델을 활용한다.<jupyter_code>cate_list = ['가전·디지털', '식품·건강', '화장품·이미용']<jupyter_output><empty_output><jupyter_text>학습데이터 준비<jupyter_code>import pandas as pd
df = pd.read_csv('clf.csv', index_col='name')
df[df.cate1==cate_list[0]][1:3]
df[df.cate1==cate_list[1]][1:3]
df[df.cate1==cate_list[2]][1:3]<jupyter_output><empty_output><jupyter_text>자연어 데이터를 벡터형태로 가공* sklearn.CountVectorizer 사용* 유니그램을 이용<jupyter_code>from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(min_df=1, tokenizer=lambda x: list(x))
corpus = [name.decode('utf-8') for name in df.index]
print corpus[0]
analyze = vectorizer.build_analyzer()
analyze(u'삼육 두유')<jupyter_output><empty_output><jupyter_text>학습데이터 변환<jupyter_code>X = vectorizer.fit_transform(corpus)
for el in cate_list:
    print el
for el in df.cate1[:3].tolist():
    print el
Y = map(cate_list.index, df.cate1.tolist())
print X.shape[0], len(Y)<jupyter_output>1500 1500<jupyter_text>모델 학습<jupyter_code>from sklearn.svm import LinearSVC
clf = LinearSVC(C=1.0)
clf.fit(X[:-200], Y[:-200])<jupyter_output><empty_output><jupyter_text>모델 평가* accuracy_score 를 이용하여 학습데이터와 정답을 비교<jupyter_code>from sklearn.metrics import accuracy_score
P = clf.predict(X[-200:])
print accuracy_score(Y[-200:], P) * 100
print cate_list[clf.predict(vectorizer.transform([u'자동 물걸레 청소기']))[0]]
print cate_list[clf.predict(vectorizer.transform([u'에센스 커버 팩트 리미티드 패키지']))[0]]
print cate_list[clf.predict(vectorizer.transform([u'야생 블루베리 무려 10박스']))[0]]<jupyter_output>식품·건강
{'fraction_non_alphanumeric': 0.1603480422622747, 'fraction_numerical': 0.031075201988812928, 'mean_word_length': 8.415204678362572, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '484539', 'license': 'MIT', 'n_tokens_mistral': 842, 'n_tokens_neox': 957, 'n_words': 113, 'path': 'CW_5th.ipynb', 'repo_name': 'haandol/svc', 'size': '1609'}