0

tf와 idf를 계산할 수있는 다양한 방법이 있습니다. LSA 모델에서 gensim이 어떤 수식을 사용하는지 알고 싶습니다. 나는 소스 코드 lsimodel.py을 살펴 보았지만 문서 - 용어 행렬이 만들어지는 곳은 분명하지 않다. (아마 메모리 최적화 때문에).tf-idf의 수식은 gensim의 LSA 모델을 사용합니까?

one LSA paper에서 I 문서 기간 행렬의 각각의 셀은 그 단어의 엔트로피로 나누어 그 문서 내의 그 단어의 로그 - 주파수이라고 읽어 그러나

tf(w, d) = log(1 + frequency(w, d)) 
idf(w, D) = 1/(-Σ_D p(w) log p(w)) 

,이 보인다 tf-idf의 아주 특별한 형식 일 수 있습니다. TF-IDF의 익숙한 형식은 다음과 같습니다

tf(w, d) = frequency(w, d) 
idf(w, D) = log(|D|/|{d ∈ D: w ∈ d}|) 

나는 또한 question on how the TfIdfModel itself is implemented in gensim이 있음을 알 수 있습니다. 그러나 을 가져 오는 lsimodel.py을 보지 못했기 때문에 lsimodel.py에 고유 한 tf-idf 구현이 있다고 가정 할 수 있습니다.

답변

1

내가 알고 있듯이 lsimodel.py은 tf-idf 인코딩 단계를 수행하지 않습니다. gensim의 API documentation에는 몇 가지 세부 정보가 있습니다. 전용 tf-idf 모델이 있습니다.이 모델은 나중에 LSA 모델에 입력 할 수있는 텍스트를 인코딩하는 데 사용할 수 있습니다. tfidfmodel.pysource code에서 나열한 tf-idf의 두 정의 중 후자가 뒤 따랐다는 것을 알 수 있습니다.

관련 문제