2016-07-27 3 views
2

저는 선으로 주어진 텍스트를 분석하려고합니다. 파이썬에서 sckit-learn 패키지의 TF-IDF- 벡터화를 사용하여 라인을 벡터화하고 싶습니다. 문제는 벡터화가 단어 또는 n-gram으로 수행 될 수 있지만 라인에 대해 수행되기를 바랄 뿐이며, 각 라인을 단일 단어로 벡터화하는 작업을 이미 배제했기 때문입니다. 단어와 그 의미는 고려되지 않을 것이다).Tf-Idf 벡터 라이저는 단어 대신에 라인의 벡터를 분석합니다.

문서를 살펴보면서 나는 그 방법을 찾지 못했습니다. 그런 옵션이 있습니까?

답변

1

TF-IDF 벡터화가하는 일을 오해하고있는 것처럼 보입니다. 각 단어 (또는 N- 그램)에 대해 단어의 빈도 (TF)와 문서의 다른 용어의 역 빈도 (IDF)의 함수 인 단어에 가중치를 할당합니다. 단어 (예 : "피자"라는 단어의 빈도를 아는 경우) 또는 N 그램의 경우 (예 : 2 그램의 경우 "치즈 피자")

이제는 단어 , 무슨 일이 일어날 것? 행이 정확히 반복되는 코퍼스 (예 : '파이썬에서 도움이 필요함')가 없으면 각 문장이 문서에 정확히 한 번 표시되므로 TF-IDF 변환은 쓰레기가됩니다. 그리고 문장이 실제로 구두점과 항상 비슷한 경우, 모든 의도와 목적을 위해 문장에있는 문장이 아니라 단어입니다. 이것이 TF-IDF에 문장을 사용하는 옵션이없는 이유입니다. 실용적이거나 이론적 인 의미는 없습니다.

+0

그래, 나는 그것을 이해하고 정확하게하고 싶다. 거의 정확하게 반복되는 선이 있습니다. – snufsan

+0

그것이 요점입니다. 정확히 똑같이 반복한다면, 단어에 대한 TF-IDF 변환이 "단어"와 "작업"을 완전히 다른 단어로 취급하는 것과 같은 방식으로, Scikit의 관점에서 완전히 다른 것입니다. 원하는 단어가 동일한 단어를 반복하여 유사성을 분석하면 단어 (또는 N 그램)의 콘텐츠를 벡터화 한 다음 벡터 또는 한 문장을 다른 단어의 벡터와 비교해야합니다. 전체 문서를 다른 문서와 비교하려는 경우 문서 간의 평균 코사인 차이를 비교합니다. – Andreq

+0

저는 n-gram 분석과 같은 것을하고 싶습니다. 문제는 내 줄이 길이가 다르다는 것입니다. – snufsan