중요한 문자 식별 - itemgetter 및 TfidfVectorizer -
계기
메르카리 대회 1위 코드 에 나온 itemgetter와 TfidfVectorizer가 잘 모르기 때문에.
요약
itemgetter→이터러블(리스트, 캐릭터 라인 등 for문의 in에 기입할 수 있는 오브젝트)로부터 임의의 요소를 추출할 수 있다.
TfidfVectorizer → 문장의 중요한 문자를 계산할 때 사용합니다. 점수가 높을수록 문서 내의 출현 빈도가 높고, 다른 문서에는 출현하기 어려운 문자임을 나타낸다.
itemgetter
name 요소를 취득하는 호출 가능한 오브젝트가 1행째로 돌려주어지고 있다.
두 번째 줄은 name 요소만 추출합니다.
qiita.rbfrom operator import itemgetter
item=itemgetter("name")
item({'name':['taro','yamada'], 'age':[5,6]})
TfidfVectorizer
TF-IDF 을 계산할 때 사용한다.
TF-IDF는 문서에서 중요한 문자열은 무엇인가를 특정하는데 사용한다.
대회 내에서는, 출전되고 있는 상품의 브랜드명을 수치화하기 위해서 사용되고 있다.
이하의 예에서는 five, six, taro, yamada의 출현 빈도가 높고, 다른 문서에는 등장하지 않기 때문에, 스코어가 높아지고 있다.
qiita.rbimport numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
sample_string= np.array(['taro is five years old','yamada is six years old'])
tfidf=Tfidf(max_features=100000, token_pattern='\w+')
x=tfidf.fit_transform(sample_string)
pd.DataFrame(y.toarray(), columns=tfidf.get_feature_names())
itemgetter, TfidfVectorizer, Pipeline의 병용
itemgetter("name")의 인스턴스와 Tfidf의 인스턴스를 파이프라인화하고 있다.
.transform에서 name 요소를 추출한 후 name 요소 내에서 중요도를 계산합니다.
파이프라인화는 이쪽
qiita.rbfrom sklearn.pipeline import make_pipeline, make_union, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
from operator import itemgetter
from sklearn.preprocessing import FunctionTransformer
import pandas as pd
def on_field(f: str, *vec) -> Pipeline:
return make_pipeline(FunctionTransformer(itemgetter(f), validate=False), *vec)
df=pd.DataFrame({'string':['taro is five years old','yamada is six years old'], 'age':[5,6]})
Pipeline=on_field('string', Tfidf(max_features=100000, token_pattern='\w+'))
Pipeline.fit(df)
data=Pipeline.transform(df)
pd.DataFrame(data.toarray(),columns=tfidf.get_feature_names())
Reference
이 문제에 관하여(중요한 문자 식별 - itemgetter 및 TfidfVectorizer -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/07afc6898d8b7f44aca3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
itemgetter→이터러블(리스트, 캐릭터 라인 등 for문의 in에 기입할 수 있는 오브젝트)로부터 임의의 요소를 추출할 수 있다.
TfidfVectorizer → 문장의 중요한 문자를 계산할 때 사용합니다. 점수가 높을수록 문서 내의 출현 빈도가 높고, 다른 문서에는 출현하기 어려운 문자임을 나타낸다.
itemgetter
name 요소를 취득하는 호출 가능한 오브젝트가 1행째로 돌려주어지고 있다.
두 번째 줄은 name 요소만 추출합니다.
qiita.rbfrom operator import itemgetter
item=itemgetter("name")
item({'name':['taro','yamada'], 'age':[5,6]})
TfidfVectorizer
TF-IDF 을 계산할 때 사용한다.
TF-IDF는 문서에서 중요한 문자열은 무엇인가를 특정하는데 사용한다.
대회 내에서는, 출전되고 있는 상품의 브랜드명을 수치화하기 위해서 사용되고 있다.
이하의 예에서는 five, six, taro, yamada의 출현 빈도가 높고, 다른 문서에는 등장하지 않기 때문에, 스코어가 높아지고 있다.
qiita.rbimport numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
sample_string= np.array(['taro is five years old','yamada is six years old'])
tfidf=Tfidf(max_features=100000, token_pattern='\w+')
x=tfidf.fit_transform(sample_string)
pd.DataFrame(y.toarray(), columns=tfidf.get_feature_names())
itemgetter, TfidfVectorizer, Pipeline의 병용
itemgetter("name")의 인스턴스와 Tfidf의 인스턴스를 파이프라인화하고 있다.
.transform에서 name 요소를 추출한 후 name 요소 내에서 중요도를 계산합니다.
파이프라인화는 이쪽
qiita.rbfrom sklearn.pipeline import make_pipeline, make_union, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
from operator import itemgetter
from sklearn.preprocessing import FunctionTransformer
import pandas as pd
def on_field(f: str, *vec) -> Pipeline:
return make_pipeline(FunctionTransformer(itemgetter(f), validate=False), *vec)
df=pd.DataFrame({'string':['taro is five years old','yamada is six years old'], 'age':[5,6]})
Pipeline=on_field('string', Tfidf(max_features=100000, token_pattern='\w+'))
Pipeline.fit(df)
data=Pipeline.transform(df)
pd.DataFrame(data.toarray(),columns=tfidf.get_feature_names())
Reference
이 문제에 관하여(중요한 문자 식별 - itemgetter 및 TfidfVectorizer -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/07afc6898d8b7f44aca3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from operator import itemgetter
item=itemgetter("name")
item({'name':['taro','yamada'], 'age':[5,6]})
TF-IDF 을 계산할 때 사용한다.
TF-IDF는 문서에서 중요한 문자열은 무엇인가를 특정하는데 사용한다.
대회 내에서는, 출전되고 있는 상품의 브랜드명을 수치화하기 위해서 사용되고 있다.
이하의 예에서는 five, six, taro, yamada의 출현 빈도가 높고, 다른 문서에는 등장하지 않기 때문에, 스코어가 높아지고 있다.
qiita.rb
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
sample_string= np.array(['taro is five years old','yamada is six years old'])
tfidf=Tfidf(max_features=100000, token_pattern='\w+')
x=tfidf.fit_transform(sample_string)
pd.DataFrame(y.toarray(), columns=tfidf.get_feature_names())
itemgetter, TfidfVectorizer, Pipeline의 병용
itemgetter("name")의 인스턴스와 Tfidf의 인스턴스를 파이프라인화하고 있다.
.transform에서 name 요소를 추출한 후 name 요소 내에서 중요도를 계산합니다.
파이프라인화는 이쪽
qiita.rbfrom sklearn.pipeline import make_pipeline, make_union, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
from operator import itemgetter
from sklearn.preprocessing import FunctionTransformer
import pandas as pd
def on_field(f: str, *vec) -> Pipeline:
return make_pipeline(FunctionTransformer(itemgetter(f), validate=False), *vec)
df=pd.DataFrame({'string':['taro is five years old','yamada is six years old'], 'age':[5,6]})
Pipeline=on_field('string', Tfidf(max_features=100000, token_pattern='\w+'))
Pipeline.fit(df)
data=Pipeline.transform(df)
pd.DataFrame(data.toarray(),columns=tfidf.get_feature_names())
Reference
이 문제에 관하여(중요한 문자 식별 - itemgetter 및 TfidfVectorizer -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/07afc6898d8b7f44aca3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from sklearn.pipeline import make_pipeline, make_union, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf
from operator import itemgetter
from sklearn.preprocessing import FunctionTransformer
import pandas as pd
def on_field(f: str, *vec) -> Pipeline:
return make_pipeline(FunctionTransformer(itemgetter(f), validate=False), *vec)
df=pd.DataFrame({'string':['taro is five years old','yamada is six years old'], 'age':[5,6]})
Pipeline=on_field('string', Tfidf(max_features=100000, token_pattern='\w+'))
Pipeline.fit(df)
data=Pipeline.transform(df)
pd.DataFrame(data.toarray(),columns=tfidf.get_feature_names())
Reference
이 문제에 관하여(중요한 문자 식별 - itemgetter 및 TfidfVectorizer -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asparagasu/items/07afc6898d8b7f44aca3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)