반응형
scikit-learn에서 CountVectorizer
클래스로 작업했습니다.
아래 표시된 방식으로 사용하면 최종 출력이 기능 또는 토큰 수를 포함하는 배열로 구성된다는 것을 이해합니다.
이러한 토큰은 키워드 세트에서 추출됩니다.
tags = [
"python, tools",
"linux, tools, ubuntu",
"distributed systems, linux, networking, tools",
]
다음 단계는 다음과 같습니다.
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data
우리가 얻는 곳
[[0 0 0 1 1 0]
[0 1 0 0 1 1]
[1 1 1 0 1 0]]
괜찮지 만 제 상황은 조금 다릅니다.
위와 같은 방식으로 기능을 추출하고 싶지만 data 의 행이 기능이 추출 된 문서와 동일하지 않기를 바랍니다.
즉, 다른 문서 세트의 수를 어떻게 얻을 수 있습니까?
list_of_new_documents = [
["python, chicken"],
["linux, cow, ubuntu"],
["machine learning, bird, fish, pig"]
]
그리고 얻다:
[[0 0 0 1 0 0]
[0 1 0 0 0 1]
[0 0 0 0 0 0]]
나는 CountVectorizer
클래스에 대한 문서를 읽었고, 용어를 특성 색인에 매핑하는 vocabulary
인수를 발견했습니다. 그러나 나는이 주장이 나를 도울 수있는 것 같지 않다.
조언을 주시면 감사하겠습니다.
해결 방법
어휘
가 당신이 원하는 것입니다. 다음과 같이 작동합니다.
>>> cv = sklearn.feature_extraction.text.CountVectorizer(vocabulary=['hot', 'cold', 'old'])
>>> cv.fit_transform(['pease porridge hot', 'pease porridge cold', 'pease porridge in the pot', 'nine days old']).toarray()
array([[1, 0, 0],
[0, 1, 0],
[0, 0, 0],
[0, 0, 1]], dtype=int64)
따라서 원하는 기능을 키로 사용하여 사전을 전달합니다.
한 문서 세트에서 CountVectorizer
를 사용한 다음 해당 문서의 기능 세트를 새 세트에 사용하려면 원래 CountVectorizer의 vocabulary _
속성을 사용하고 새 것으로 전달하십시오. 따라서 귀하의 예에서는
newVec = CountVectorizer(vocabulary=vec.vocabulary_)
첫 번째 어휘를 사용하여 새 토크 나이저를 만듭니다.
참조 페이지 https://stackoverflow.com/questions/22920801
반응형
'파이썬' 카테고리의 다른 글
파이썬 Django 문자열을 날짜 형식으로 (0)
2020.12.16
파이썬 아래 디렉토리를 파지 않고 os.walk (0)
2020.12.16
파이썬 시간과 분 단위로 두 열 간의 Pandas DataFrame 시간 차이 계산 (0)
2020.12.15
파이썬 OpenCV를 사용하여 Python의 이미지에 노이즈 (Gaussian / salt and pepper 등)를 추가하는 방법 (0)
2020.12.15
파이썬 Creating a zero-filled pandas data frame (0)
2020.12.15
댓글