토모토피
영어 , 한국어.
Tomotopy는 무엇입니까?
Tomotopy는 C ++로 작성된 Gibbs 샘플링 기반 주제 모델 라이브러리 인 Tomoto (주제 모델링 도구)의 파이썬 확장입니다. 속도를 극대화하기 위해 최신 CPU의 벡터화를 사용합니다. Tomoto의 현재 버전은 다음과 같은 몇 가지 주요 주제 모델을 지원합니다.
- 잠재적 인 Dirichlet 할당 (tomotopy.ldamodel)
- 라벨링 된 lda (tomotopy.lldamodel)
- 부분적으로 라벨링 된 LDA (tomotopy.pldamodel)
- 감독 된 LDA (Tomotopy.sldamodel)
- Dirichlet multinomial regression (tomotopy.dmrmodel)
- 일반화 된 Dirichlet Multinomial Regression (tomotopy.gdmrmodel)
- 계층 적 Dirichlet 프로세스 (tomotopy.hdpmodel)
- 계층 LDA (Tomotopy.hldamodel)
- 멀티 곡물 LDA (tomotopy.mgldamodel)
- Pachinko 할당 (Tomotopy.pamodel)
- 계층 적 PA (tomotopy.hpamodel)
- 상관 관계 주제 모델 (tomotopy.ctmodel)
- 동적 주제 모델 (tomotopy.dtmodel)
- 의사-문서 기반 주제 모델 (tomotopy.ptmodel).
자세한 내용을 보려면 https://bab2min.github.io/tomotopy를 방문하십시오.
시작하기
PIP를 사용하여 Tomotopy를 쉽게 설치할 수 있습니다. (https://pypi.org/project/tomotopy/)
$ PIP 설치 -업그레이드 핍
$ PIP 설치 토모토피
지원되는 OS 및 파이썬 버전은 다음과 같습니다.
- Python> = 3.6 인 Linux (x86-64)
- Python> = 3.6 인 MacOS> = 10.13
- Python> = 3.6 인 Windows 7 이상 (x86, x86-64)
- Python이있는 기타 OS> = 3.6 : 소스 코드에서 필요한 컴파일 (C ++ 14 호환 컴파일러 포함)
설치 후 가져 오기 만하면 Tomotopy를 시작할 수 있습니다.
tomotopy를 tp로 가져옵니다
print (tp.isa) # 'avx2', 'avx', 'sse2'또는 'none'인쇄
현재 Tomotopy는 성능을 극대화하기 위해 AVX2, AVX 또는 SSE2 SIMD 명령어를 이용할 수 있습니다. 패키지가 가져 오면 사용 가능한 명령 세트를 확인하고 최상의 옵션을 선택합니다. TP.ISA가 아무에게도 말하지 않으면 훈련 반복이 오랜 시간이 걸릴 수 있습니다. 그러나 대부분의 최신 인텔 또는 AMD CPU가 SIMD 명령어 세트를 제공하기 때문에 SIMD 가속도는 크게 개선 될 수 있습니다.
다음은 'Sample.txt'파일의 간단한 LDA 교육을위한 샘플 코드입니다.
tomotopy를 tp로 가져옵니다
mdl = tp.ldamodel (k = 20)
Open ( 'sample.txt')의 라인의 경우 :
mdl.add_doc (line.strip (). split ())
범위 (0, 100, 10)의 i를 위해 :
mdl.train (10)
print ( '반복 : {} tlog-likelihood : {}'. 형식 (i, mdl.ll_per_word))
범위 (MDL.K)의 K의 경우 :
print ( '주제 #{}'의 10 가지 단어. 형식 (k))
print (mdl.get_topic_words (k, top_n = 10))
mdl.summary ()
토모토피의 성능
Tomotopy는 붕괴 된 깁스 샘플링 (CGS)을 사용하여 주제의 분포와 단어 분포를 유추합니다. 일반적으로 CGS는 Gensim의 ldamodel이 사용하는 Variational Bayes (VB)보다 더 느리게 수렴하지만 반복은 훨씬 더 빨리 계산할 수 있습니다. 또한, Tomotopy는 SIMD 명령 세트로 멀티 코어 CPU를 활용하여 반복이 더 빨라질 수 있습니다.
다음 차트는 Tomotopy와 Gensim 간의 LDA 모델의 실행 시간 비교를 보여줍니다. 입력 데이터는 1,506,966 단어 (약 10.1MB)의 영어 Wikipedia의 1000 개의 랜덤 문서로 구성됩니다. Tomotopy는 200 개의 반복을 훈련시키고 Gensim은 10 회 반복을합니다.
인텔 I5-6600, X86-64 (4 코어)의 성능
Intel Xeon E5-2620 V4, x86-64의 성능 (8 코어, 16 개의 스레드)
Tomotopy가 20 배 더 반복되었지만 전체 실행 시간은 Gensim보다 5 ~ 10 배 빠릅니다. 그리고 그것은 안정적인 결과를 얻습니다.
CGS와 VB를 완전히 다른 기술이기 때문에 직접 비교하는 것은 어렵습니다. 그러나 실제적인 관점에서, 우리는 속도와 결과를 비교할 수 있습니다. 다음 차트는 두 모델 결과의 단어 당 로그 유리성을 보여줍니다.
SIMD 명령 세트는 성능에 큰 영향을 미칩니다. 다음은 SIMD 명령 세트 간의 비교입니다.
다행히 최근 X86-64 CPU의 대부분은 AVX2 명령 세트를 제공하므로 AVX2의 성능을 즐길 수 있습니다.
모델 저장 및로드
Tomotopy는 각 주제 모델 클래스에 대한 저장 및로드 메소드를 제공하므로 원할 때마다 모델을 파일에 저장하고 파일에서 다시로드 할 수 있습니다.
tomotopy를 tp로 가져옵니다
mdl = tp.hdpmodel ()
Open ( 'sample.txt')의 라인의 경우 :
mdl.add_doc (line.strip (). split ())
범위 (0, 100, 10)의 i를 위해 :
mdl.train (10)
print ( '반복 : {} tlog-likelihood : {}'. 형식 (i, mdl.ll_per_word))
# 파일에 저장하십시오
mdl.save ( 'sample_hdp_model.bin')
# 파일에서로드
mdl = tp.hdpmodel.load ( 'sample_hdp_model.bin')
범위 (MDL.K)의 K의 경우 :
mdl.is_live_topic (k)이 아닌 경우 : 계속하십시오
print ( '주제 #{}'의 10 가지 단어. 형식 (k))
print (mdl.get_topic_words (k, top_n = 10))
# 저장된 모델은 HDP 모델입니다.
# 따라서 LDA 모델로로드하면 예외가 발생합니다.
mdl = tp.ldamodel.load ( 'sample_hdp_model.bin')
파일에서 모델을로드하면 파일의 모델 유형이 메소드 클래스와 일치해야합니다.
Tomotopy.ldamodel.save 및 tomotopy.ldamodel.load 방법을 참조하십시오.
대화식 모델 뷰어
interactive_model_viewer_demo.mp4
V0.13.0 이후 대화 형 뷰어를 사용하여 모델링 결과를 볼 수 있습니다.
tomotopy를 tp로 가져옵니다
model = tp.ldamodel (...)
# ... 일부 교육 코드 ...
tp.viewer.open_viewer (model, host = "localhost", port = 9999)
# 및 웹 브라우저에서 http : // localhost : 9999를 엽니 다!
저장된 모델 파일이있는 경우 다음 명령 줄을 사용할 수도 있습니다.
Python -m tomotopy.viewer a_trained_model.bin -host localhost -port 9999
Tomotopy.viewer 모듈에서 자세한 내용을 참조하십시오.
모델과 모델의 문서
두 가지 주요 목적으로 주제 모델을 사용할 수 있습니다. 기본적인 것은 훈련 된 모델의 결과로 문서 세트에서 주제를 발견하는 것이며, 더 발전된 것은 훈련 된 모델을 사용하여 보이지 않는 문서에 대한 주제 배포를 추론하는 것입니다.
우리는 이전 목적으로 문서 (모델 교육에 사용)를 모델의 문서 로, 후기 목적 (훈련 중에 보이지 않는 문서)의 문서를 모델의 문서 로 명명했습니다.
Tomotopy에서는이 두 가지 다른 종류의 문서가 다르게 생성됩니다. 모델의 문서는 tomotopy.ldamodel.add_doc 메소드에서 만들 수 있습니다. add_doc은 tomotopy.ldamodel.train이 시작되기 전에 호출 할 수 있습니다. 다시 말해, Train이 전화 한 후, Add_doc은 교육에 사용 된 문서 세트가 고정 되었기 때문에 모델에 문서를 추가 할 수 없습니다.
생성 된 문서의 인스턴스를 얻으려면 tomotopy.ldamodel.docs를 사용해야합니다.
mdl = tp.ldamodel (k = 20)
idx = mdl.add_doc (단어)
IDX <0 : runtimeerror를 높이면 ( "Doc을 추가하지 못했습니다")
doc_inst = mdl.docs [idx]
# doc_inst는 추가 된 문서의 인스턴스입니다
모델의 문서는 tomotopy.ldamodel.make_doc 메소드에 의해 생성됩니다. Make_doc은 기차가 시작된 후에 만 호출 할 수 있습니다. 훈련에 사용 된 문서 세트가 고정되기 전에 make_doc을 사용하면 잘못된 결과를 얻을 수 있습니다. make_doc은 인스턴스를 직접 반환하므로 다른 조작에 반환 값을 사용할 수 있습니다.
mdl = tp.ldamodel (k = 20)
# add_doc ...
mdl.train (100)
doc_inst = mdl.make_doc (unseen_doc) # doc_inst는 보이지 않는 문서의 인스턴스입니다.
보이지 않는 문서에 대한 추론
Tomotopy.ldamodel.make_doc에 의해 새 문서가 작성되면 해당 주제 분포를 모델로 추론 할 수 있습니다. 보이지 않는 문서에 대한 추론은 tomotopy.ldamodel.infer 방법을 사용하여 수행해야합니다.
mdl = tp.ldamodel (k = 20)
# add_doc ...
mdl.train (100)
doc_inst = mdl.make_doc (unseen_doc)
Topic_dist, ll = mdl.infer (doc_inst)
print ( "보이지 않는 문서에 대한 주제 분포 :", topic_dist)
print ( "Log-log-likelihood of enterferent :", ll)
추론 방법은 하나의 인스턴스 인 tomotopy.document 또는 tomotopy.document의 인스턴스 목록 만 유추 할 수 있습니다. Tomotopy.ldamodel.infer에서 자세한 내용을 참조하십시오.
코퍼스와 변형
Tomotopy의 모든 주제 모델에는 고유 한 내부 문서 유형이 있습니다. 각 모델의 ADD_DOC 메소드를 통해 문서를 작성하여 각 모델에 적합하게 추가 할 수 있습니다. 그러나 서로 다른 모델에 동일한 문서 목록을 추가하려고 시도하는 것은 상당히 불편 해집니다. Add_doc은 각 다른 모델에 동일한 문서 목록을 요청해야하기 때문입니다. 따라서 Tomotopy는 문서 목록을 보유한 tomotopy.utils.corpus 클래스를 제공합니다. Tomotopy.utils.corpus는 각 모델의 인수 코퍼스로 인수 코퍼스로 전달하여 모든 모델에 삽입 할 수 있습니다. 따라서 tomotopy.utils.corpus를 삽입하면 코퍼스가 보유하는 문서를 삽입하는 것과 동일한 효과가 있습니다.
일부 주제 모델에는 문서에 대해 다른 데이터가 필요합니다. 예를 들어, tomotopy.dmrmodel은 str 유형의 인수 메타 데이터가 필요하지만 tomotopy.pldamodel은 목록 [str] 유형의 인수 레이블이 필요합니다. Tomotopy.utils.corpus는 특정 주제 모델에 연결되지 않고 독립적 인 문서 세트를 보유하고 있으므로 주제 모델에 필요한 데이터 유형이 해당 주제 모델에 추가 될 때 일치하지 않을 수 있습니다. 이 경우, 기타 데이터는 인수 변환을 사용하여 대상 주제 모델을 장착하도록 변환 할 수 있습니다. 다음 코드의 자세한 내용을 참조하십시오.
Tomotopy 가져 오기 DMRModel
tomotopy.utils import corpus에서
코퍼스 = 코퍼스 ()
corpus.add_doc ( "abcde".split (), a_data = 1)
corpus.add_doc ( "efghi".split (), a_data = 2)
corpus.add_doc ( "ijklm".split (), a_data = 3)
model = dmrmodel (k = 10)
model.add_corpus (코퍼스)
# 당신은`corpus`에서`a_data` 필드를 잃습니다.
# 및`dmrmodel '이 요구하는'메타 데이터 '는 기본값 인 빈 str로 채워져 있습니다.
Assert Model.docs [0] .metadata == ''
Assert Model.docs [1] .metadata == ''
Assert Model.docs [2] .metadata == ''
def transform_A_DATA_TO_METADATA (MISC : DICT) :
return { 'metadata': str (misc [ 'a_data'])}
#이 함수는`a_data`를 '메타 데이터'로 변환합니다
model = dmrmodel (k = 10)
model.add_corpus (corpus, transform = transfer_A_DATA_TO_METADATA)
# 이제`model '의 문서에는`a_data` 필드에서 생성 된 비 디폴트`메타 데이터'가 있습니다.
Assert Model.docs [0] .metadata == '1'
Assert Model.docs [1] .metadata == '2'
Assert Model.docs [2] .metadata == '3'
병렬 샘플링 알고리즘
버전 0.5.0이므로 Tomotopy를 사용하면 병렬 처리 알고리즘을 선택할 수 있습니다. 0.4.2 이전 버전으로 제공된 알고리즘은 Copy_Merge이며 모든 주제 모델에 제공됩니다. 0.5.0 이후로 사용할 수있는 새로운 알고리즘 파티션은 교육을 일반적으로 더 빠르고 메모리 효율적으로 만들지 만 모든 주제 모델에서 사용할 수있는 것은 아닙니다.
다음 차트는 주제 수와 작업자 수를 기반으로 두 알고리즘 간의 속도 차이를 보여줍니다.
버전별 성능
버전별 성능 변경은 다음 그래프에 표시됩니다. 1000 개 반복으로 LDA 모델 트레인을 운영하는 데 걸리는 시간이 측정되었습니다. (문서 : 11314, 어휘 : 60382, 단어 : 2364724, Intel Xeon Gold 5120 @2.2GHz)
단어 사전을 사용하여 주제를 고정합니다
버전 0.6.0 이후 새로운 방법 Tomotopy.ldamodel.set_word_prior가 추가되었습니다. 각 주제에 대해 이전에 단어를 제어 할 수 있습니다. 예를 들어, 우리는 Topic 0에서 'Church'라는 단어의 무게를 1.0으로, 코드를 따라 나머지 주제에서 0.1로 설정할 수 있습니다. 이는 '교회'라는 단어가 주제 0에 할당 될 확률이 다른 주제에 할당 될 확률보다 10 배 높음을 의미합니다. 따라서 대부분의 '교회'는 주제 0에 할당되므로 주제 0에는 '교회'와 관련된 많은 단어가 포함되어 있습니다. 이를 통해 특정 주제 번호에 일부 주제를 조작 할 수 있습니다.
tomotopy를 tp로 가져옵니다
mdl = tp.ldamodel (k = 20)
#`mdl '에 문서를 추가하십시오
# 사전에 단어 설정
mdl.set_word_prior ( 'Church', [1.0 if k == 0이면 0.1 범위 (20))))))
자세한 내용은 example.py의 word_prior_example을 참조하십시오.
예
https://github.com/bab2min/tomotopy/blob/main/examples/에서 Tomotopy의 Python 코드 예제를 찾을 수 있습니다.
예제 코드에서 https://drive.google.com/file/d/18opnijd4iwpyz2o7pqopyetakeaxa71j/view에서 사용 된 데이터 파일을 얻을 수도 있습니다.
특허
Tomotopy는 MIT 라이센스의 조건에 따라 라이센스가 부여됩니다. 즉, 합리적인 목적으로 사용하고 생산 한 모든 문서의 전체 소유권을 유지할 수 있습니다.
역사
- 0.13.0 (2024-08-05)
- 새로운 기능
- 주제 모델 뷰어 Tomotopy.viewer.open_viewer ()의 주요 기능은 이제 준비되었습니다.
- tomotopy.ldamodel.get_hash ()가 추가됩니다. 모델의 128 비트 해시 값을 얻을 수 있습니다.
- Tomotopy.utils.simpletokenizer에 인수 NGRAM_LIST를 추가하십시오.
- 버그 수정
- Corpus.concat_ngrams가 호출 된 후 고정 된 불일치 스팬 버그.
- tomotopy.ldamodel.load () 및 tomotopy.ldamodel.save ()의 병목 현상을 최적화하고 속도가 10 배 이상 향상되었습니다.
- 0.12.7 (2023-12-19)
- 새로운 기능
- 추가 주제 모델 뷰어 Tomotopy.viewer.open_viewer ()
- tomotopy.utils.corpus.process ()의 성능을 최적화했습니다.
- 버그 수정
- document.span은 이제 바이트 장치가 아닌 문자 유닛의 범위를 반환합니다.
- 0.12.6 (2023-12-11)
- 새로운 기능
- tomotopy.ldamodel.train 및 tomotopy.ldamodel.set_word_prior에 몇 가지 편의 기능을 추가했습니다.
- ldamodel.train은 이제 새로운 인수 콜백, Callback_interval 및 Show_progres를 통해 교육 진행 상황을 모니터링합니다.
- ldamodel.set_word_prior는 이제 Dict [int, float] 유형을 이전의 인수로 받아 들일 수 있습니다.
- 0.12.5 (2023-08-03)
- 새로운 기능
- Linux ARM64 아키텍처에 대한 지원이 추가되었습니다.
- 0.12.4 (2023-01-22)
- 새로운 기능
- MacOS ARM64 아키텍처에 대한 지원이 추가되었습니다.
- 버그 수정
- tomotopy.document.get_sub_topic_dist ()가 잘못된 인수 예외를 제기하는 문제를 수정했습니다.
- 예외 제기로 인해 때때로 충돌이 발생하는 문제를 수정했습니다.
- 0.12.3 (2022-07-19)
- 새로운 기능
- 이제 tomotopy.ldamodel.add_doc ()을 사용하여 빈 문서를 삽입하면 예외를 제기하는 대신 무시합니다. 새로 추가 된 인수가 indore_empty_words가 False로 설정된 경우 이전과 같이 예외가 제기됩니다.
- tomotopy.hdpmodel.purge_dead_topics () 메소드가 추가되어 모델에서 비 라이브 주제를 제거합니다.
- 버그 수정
- tomotopy.sldamodel (@jucendrero)에서 NUSQ에 대한 사용자 정의 값을 설정하는 것을 방지하는 문제를 수정했습니다.
- tomotopy.utils.coherence가 tomotopy.dtmodel에 대해 작동하지 않는 문제를 수정했습니다.
- Train ()을 호출하기 전에 make_dic ()을 호출 할 때 종종 추락 한 문제를 수정했습니다.
- tomotopy.dmrmodel 및 tomotopy.gdmrmodel의 결과가 시드가 고정 된 경우에도 다르다는 문제를 해결했습니다.
- tomotopy.dmrmodel 및 tomotopy.gdmrmodel의 파라미터 최적화 프로세스가 개선되었습니다.
- tomotopy.ptmodel.copy ()를 호출 할 때 때때로 충돌하는 문제를 수정했습니다.
- 0.12.2 (2021-09-06)
- min_cf> 0, min_df> 0 또는 rm_top> 0으로 tomotopy.hdpmodel의 convert_to_lda를 호출하는 문제로 인해 충돌이 수정 된 문제.
- _pseudo_doc에서 새로운 인수는 tomotopy.document.get_topics 및 tomotopy.document.get_topic_dist에 추가됩니다. 이 인수는 ptmodel의 문서에만 유효하며 주제 분포를 계산하기위한 소스를 제어 할 수 있습니다.
- tomotopy.ptmodel의 인수 p에 대한 기본값이 변경되었습니다. 새로운 기본값은 k * 10입니다.
- ult를 호출하지 않고 make_doc에서 생성 한 문서를 사용하면 더 이상 충돌이 발생하지 않지만 경고 메시지 만 인쇄하십시오.
- Clang C ++ 17 환경에서 내부 C ++ 코드가 컴파일되지 않는 문제가 수정되었습니다.
- 0.12.1 (2021-06-20)
- tomotopy.ldamodel.set_word_prior ()가 충돌을 일으키는 문제.
- 이제 tomotopy.ldamodel.perplexity 및 tomotopy.ldamodel.ll_per_word 용어 중량이 하나가 아닌 경우 정확한 값을 반환합니다.
- tomotopy.ldamodel.used_vocab_weighted_freq가 추가되었으며, 이는 단어의 중량 주파수를 반환합니다.
- 이제 tomotopy.ldamodel.summary ()는 단어의 엔트로피뿐만 아니라 용어 가중 단어의 엔트로피를 보여줍니다.
- 0.12.0 (2021-04-26)
- 이제 tomotopy.dmrmodel 및 tomotopy.gdmrmodel은 메타 데이터의 여러 값을 지원합니다 (https://github.com/bab2min/tomotopy/blob/main/examples/dmr_multi_label.py 참조)
- tomotopy.gdmrmodel의 성능이 향상되었습니다.
- 모든 주제 모델에 대한 사본 () 메소드가 추가되어 깊은 사본을 수행했습니다.
- 훈련에서 제외 된 단어 (Min_CF, Min_DF)가 잘못된 주제 ID를 갖는 문제가 해결되었습니다. 이제 제외 된 모든 단어는 주제 ID로 -1을 가지고 있습니다.
- 이제 Tomotopy에 의해 생성 된 모든 예외와 경고는 표준 파이썬 유형을 따릅니다.
- 컴파일러 요구 사항은 C ++ 14로 올렸습니다.
- 0.11.1 (2021-03-28)
- 비대칭 알파의 중요한 버그가 고정되었습니다. 이 버그로 인해 버전 0.11.0이 릴리스에서 제거되었습니다.
- 0.11.0 (2021-03-26) (제거)
- 짧은 텍스트에 대한 새로운 주제 모델 Tomotopy.ptModel이 패키지에 추가되었습니다.
- tomotopy.hdpmodel.infer가 때때로 분할 오류를 일으키는 경우 문제가 해결되었습니다.
- Numpy API 버전의 불일치가 수정되었습니다.
- 이제 비대칭 문서 주제 사전이 지원됩니다.
- 메모리의 바이트로 주제 모델을 직렬화하는 것이 지원됩니다.
- 인수 정규화는 결과의 정규화를 제어하기 위해 get_topic_dist (), get_topic_word_dist () 및 get_sub_topic_dist ()에 추가되었습니다.
- 이제 tomotopy.dmrmodel.lambdas 및 tomotopy.dmrmodel.alpha는 올바른 값을 제공합니다.
- tomotopy.gdmrmodel에 대한 범주 형 메타 데이터 지원이 추가되었습니다 (https://github.com/bab2min/tomotopy/blob/main/examples/gdmr_both_categorical_and_numerical.py 참조).
- Python3.5 지원이 삭제되었습니다.
- 0.10.2 (2021-02-16)
- Tomotopy.ctmodel.Train이 큰 K에서 실패하는 경우 문제가 해결되었습니다.
- tomotopy.utils.corpus가 UID 값을 잃는 경우 문제가 해결되었습니다.
- 0.10.1 (2021-02-14)
- tomotopy.utils.corpus.extract_ngrams가 빈 입력으로 가득 차면 문제가 해결되었습니다.
- tomotopy.ldamodel.infer가 유효한 입력으로 예외를 제기하는 경우 문제가 해결되었습니다.
- tomotopy.hldamodel.infer가 잘못된 tomotopy.document.path를 생성하는 문제가 해결되었습니다.
- tomotopy.hldamodel.train에 대한 새로운 매개 변수 Freeze_topics가 추가되었으므로 교육시 주제를 만들 것인지 아닌지를 제어 할 수 있습니다.
- 0.10.0 (2020-12-19)
- tomotopy.utils.corpus 및 tomotopy.ldamodel.doc의 인터페이스는 통합되었습니다. 이제 같은 방식으로 코퍼스의 문서에 액세스 할 수 있습니다.
- tomotopy.utils.corpus의 __getItem__. INT의 인덱싱뿐만 아니라 반복 가능한 [int]에 의해서도 슬라이싱이 지원됩니다. 또한 UID의 인덱싱도 지원됩니다.
- 새로운 방법 Tomotopy.utils.corpus.extract_ngrams 및 tomotopy.utils.corpus.corpus.concat_ngrams가 추가되었습니다. 그들은 PMI를 사용하여 n- 그램 배치를 추출하고 그것들을 단일 단어로 연결합니다.
- 새로운 방법 tomotopy.ldamodel.add_corpus가 추가되었고 tomotopy.ldamodel.infer는 입력으로 코퍼스를받을 수 있습니다.
- 새로운 모듈 tomotopy.coherence가 추가되었습니다. 모델의 일관성을 계산하는 방법을 제공합니다.
- Paramter Window_Size가 Tomotopy.label.forelevance에 추가되었습니다.
- tomotopy.hdpmodel을 훈련시킬 때 NAN이 종종 발생하는 경우 문제가 해결되었습니다.
- 이제 Python3.9가 지원됩니다.
- PY-CPUINFO에 대한 종속성이 제거되고 모듈의 초기화가 개선되었습니다.
- 0.9.1 (2020-08-08)
- 버전 0.9.0의 메모리 누출이 고정되었습니다.
- tomotopy.ctmodel.summary ()가 고정되었습니다.
- 0.9.0 (2020-08-04)
- 인간이 읽을 수있는 모델의 요약을 인쇄하는 Tomotopy.ldamodel.summary () 메소드가 추가되었습니다.
- 패키지의 임의 번호 생성기는 Eigenrand로 대체되었습니다. 무작위 숫자 생성 속도를 높이고 플랫폼 간의 결과 차이를 해결합니다.
- 위로 인해 종자가 동일하더라도 모델 훈련 결과는 0.9.0 이전 버전과 다를 수 있습니다.
- tomotopy.hdpmodel에서 훈련 오류를 수정했습니다.
- tomotopy.dmrmodel.alpha는 이제 메타 데이터별로 문서 별 주제 분포 이전의 Dirichlet을 보여줍니다.
- tomotopy.dtmodel.get_count_by_topics ()는 2 차원 Ndarray를 반환하도록 수정되었습니다.
- tomotopy.dtmodel.alpha는 tomotopy.dtmodel.get_alpha ()와 동일한 값을 반환하도록 수정되었습니다.
- tomotopy.gdmrmodel의 문서에 대해 메타 데이터 값을 얻을 수없는 문제를 수정했습니다.
- tomotopy.hldamodel.alpha는 이제 문서 별 깊이 분포 이전에 Dirichlet을 보여줍니다.
- tomotopy.ldamodel.global_step이 추가되었습니다.
- tomotopy.mgldamodel.get_count_by_topics ()는 이제 글로벌 주제와 로컬 주제에 대한 단어 수를 반환합니다.
- tomotopy.pamodel.alpha, tomotopy.pamodel.subalpha 및 tomotopy.pamodel.get_count_by_super_topic ()이 추가되었습니다.
- 0.8.2 (2020-07-14)
- 새로운 속성 tomotopy.dtmodel.num_timepoints 및 tomotopy.dtmodel.num_docs_by_timepoint가 추가되었습니다.
- 씨앗이 동일하더라도 다른 플랫폼으로 다른 결과를 일으키는 버그는 부분적으로 고정되었습니다. 이 수정의 결과로, 이제 32 비트의 Tomotopy는 이전 버전과 다른 교육 결과를 산출합니다.
- 0.8.1 (2020-06-08)
- tomotopy.ldamodel.used_vocabs가 잘못된 값을 반환 한 버그가 고정되었습니다.
- 이제 tomotopy.ctmodel.prior_cov는 모양 [k, k]의 공분산 행렬을 반환합니다.
- 이제 tomotopy.ctmodel.get_correlations 비어있는 인수가있는 상관 관계는 [k, k] 모양의 상관 행렬을 반환합니다.
- 0.8.0 (2020-06-06)
- Numpy가 Tomotopy에 도입 된 이후, Tomotopy Return의 많은 방법과 특성은 목록뿐만 아니라 Numpy.ndarray 지금.
- Tomotopy는 새로운 의존성 Numpy> = 1.10.0을 갖습니다.
- tomotopy.hdpmodel.infer의 잘못된 추정이 고정되었습니다.
- HDPModel을 LDAMODEL로 변환하는 새로운 방법이 추가되었습니다.
- tomotopy.ldamodel.used_vocabs, tomotopy.ldamodel.used_vocab_freq 및 tomotopy.ldamodel.used_vocab_df를 포함한 새로운 특성이 주제 모델에 추가되었습니다.
- 새로운 G-DMR 주제 모델 (tomotopy.gdmrmodel)이 추가되었습니다.
- MACOS에서 Tomotopy.label.forelevance를 초기화하는 오류가 고정되었습니다.
- 원시 매개 변수없이 생성 된 Tomotopy.utils.corpus를 사용할 때 발생한 오류가 고정되었습니다.
- 0.7.1 (2020-05-08)
- tomotopy.document.path는 tomotopy.hldamodel에 추가되었습니다.
- tomotopy.label.pmiextractor의 메모리 손상 버그가 고정되었습니다.
- GCC 7의 컴파일 오류가 고정되었습니다.
- 0.7.0 (2020-04-18)
- tomotopy.dtmodel을 패키지에 첨가했습니다.
- tomotopy.utils.corpus.save의 버그가 고정되었습니다.
- 새로운 방법 Tomotopy.document.get_count_vector가 문서 클래스에 추가되었습니다.
- 이제 Linux 배포판은 manylinux2010을 사용하며 추가 최적화가 적용됩니다.
- 0.6.2 (2020-03-28)
- 저장 및로드와 관련된 중요한 버그가 고정되었습니다. 버전 0.6.0 및 0.6.1이 릴리스에서 제거되었습니다.
- 0.6.1 (2020-03-22) (제거)
- 0.6.0 (2020-03-22) (제거)
- 여러 문서를 쉽게 관리하는 tomotopy.utils.corpus 클래스가 추가되었습니다.
- TOMOTOPY.LDAMODEL.SET_WORD_PRIOR 메소드 주제 모델의 단어 주제 사전을 제어하는 메소드가 추가되었습니다.
- 문서 주파수를 기반으로 단어를 필터링하는 새로운 인수 Min_df는 모든 주제 모델의 __init__에 추가되었습니다.
- tomotopy.label, 주제 라벨링에 대한 하위 모듈이 추가되었습니다. 현재 tomotopy.label.forelevance 만 제공됩니다.
- 0.5.2 (2020-03-01)
- 세분화 오류 문제는 tomotopy.lldamodel.add_doc에서 고정되었습니다.
- tomotopy.hdpmodel이 프로그램에 충돌하는 버그가 고정되었습니다.
- 충돌 문제는 tomotopy.ldamodel.infer ps = tomotopy.parallelscheme.partition, 함께 = true로 고정되었습니다.
- 0.5.1 (2020-01-11)
- tomotopy.sldamodel.make_doc은 y의 결 측값을 지원하지 않는 버그가 고정되었습니다.
- 이제 tomotopy.sldamodel은 응답 변수 y의 결 측값을 완전히 지원합니다. 결 측값 (NAN)이있는 문서는 모델링 주제에 포함되지만 응답 변수의 회귀에서 제외됩니다.
- 0.5.0 (2019-12-30)
- 이제 tomotopy.pamodel.infer는 주제 분포를 모두 반환합니다.
- 새로운 방법 get_sub_topics 및 get_sub_topic_dist가 tomotopy.document에 추가되었습니다. (Pamodel 용)
- Tomotopy.ldamodel.train 및 Tomotopy.ldamodel.infer 방법에 대해 새로운 매개 변수 병렬을 추가했습니다. 이 매개 변수를 변경하여 병렬 처리 알고리즘을 선택할 수 있습니다.
- 새로운 알고리즘 인 Tomotopy.parallelelScheme.Partition이 추가되었습니다. 근로자 수가 많을 때 효율적으로 작동하고 주제의 수 또는 어휘의 크기가 큽니다.
- RM_TOP가 Min_CF <2에서 작동하지 않은 버그가 고정되었습니다.
- 0.4.2 (2019-11-30)
- tomotopy.lldamodel 및 tomotopy.pldamodel의 잘못된 주제 할당이 고정되었습니다.
- tomotopy.document and tomotopy.dictionary의 읽기 쉬운 __repr__가 구현되었습니다.
- 0.4.1 (2019-11-27)
- tomotopy.pldamodel의 init 기능에서의 버그가 고정되었습니다.
- 0.4.0 (2019-11-18)
- tomotopy.pldamodel 및 tomotopy.hldamodel을 포함한 새로운 모델을 패키지에 첨가했습니다.
- 0.3.1 (2019-11-05)
- min_cf 또는 rm_top이 설정되면 get_topic_dist ()가 잘못된 값을 반환하는 문제.
- tomotopy.mgldamodel 문서의 get_topic_dist ()의 반환 값은 로컬 주제를 포함하도록 수정되었습니다.
- TW = 1의 추정 속도가 개선되었습니다.
- 0.3.0 (2019-10-06)
- 새로운 모델 인 Tomotopy.lldamodel이 패키지에 추가되었습니다.
- HDPModel의 충돌 문제가 고정되었습니다.
- HDPModel에 대한 하이퍼 파라미터 추정이 구현되었으므로 HDPModel의 결과는 이전 버전과 다를 수 있습니다.
- HDPModel의 하이퍼 파라미터 추정을 끄려면 Optim_Interval을 0으로 설정하십시오.
- 0.2.0 (2019-08-18)
- tomotopy.ctmodel 및 tomotopy.sldamodel을 포함한 새로운 모델을 패키지에 첨가했습니다.
- 모든 주제 모델에 대한 새로운 매개 변수 옵션 RM_TOP가 추가되었습니다.
- Pamodel 및 Hpamodel의 저장 및로드 방법의 문제가 고정되었습니다.
- HDPModel을로드 할 때 발생하는 경우가 발생했습니다.
- min_cf> 0이 고정되었을 때 ll_per_word가 잘못 계산 된 문제.
- 0.1.6 (2019-08-09)
- MacOS 환경을 사용한 Clang의 컴파일 오류가 고정되었습니다.
- 0.1.4 (2019-08-05)
- add_doc이 입력이 수정 된 상태에서 빈 목록을 수신하는 문제.
- tomotopy.pamodel.get_topic_words가 하위 주제의 단어 분포를 추출하지 않는 문제는 고정되었습니다.
- 0.1.3 (2019-05-19)
- 모든 주제 모델에 대해 매개 변수 Min_CF 및 스톱워드 제거 기능이 추가되었습니다.
- 0.1.0 (2019-05-12)
다른 언어에 대한 바인딩
- 루비 : https://github.com/ankane/tomoto
번들로드 라이브러리 및 라이센스
- Eigen :이 응용 프로그램은 선형 대수를위한 C ++ 템플릿 라이브러리 인 Eigen의 MPL2- 라이센스 기능을 사용합니다. MPL2 라이센스 사본은 https://www.mozilla.org/en-us/mpl/2.0/에서 확인할 수 있습니다. Eigen 라이브러리의 소스 코드는 http://eigen.tuxfamily.org/에서 얻을 수 있습니다.
- Eigenrand : MIT 라이센스
- Mapbox 변형 : BSD 라이센스
소환
@software {minchul_lee_2022_6868418,
저자 = {Minchul Lee},
제목 = {bab2min/tomotopy : 0.12.3},
달 = 7 월,
년 = 2022,
게시자 = {Zenodo},
버전 = {v0.12.3},
doi = {10.5281/Zenodo.6868418},
url = {https://doi.org/10.5281/zenodo.6868418}
}