diff --git a/README.kr.rst b/README.kr.rst
index dfbfd8f..9665d4c 100644
--- a/README.kr.rst
+++ b/README.kr.rst
@@ -305,6 +305,19 @@ tomotopy의 Python3 예제 코드는 https://github.com/bab2min/tomotopy/blob/ma
역사
-------
+* 0.12.3 (2022-07-19)
+ * 기능 개선
+ * 이제 `tomotopy.LDAModel.add_doc()`로 빈 문서를 삽입할 경우 예외를 발생시키는 대신 그냥 무시합니다. 새로 추가된 인자인 `ignore_empty_words`를 False로 설정할 경우 이전처럼 예외를 발생시킵니다.
+ * 유효하지 않은 토픽들을 모델에서 제거하는 `tomotopy.HDPModel.purge_dead_topics()` 메소드가 추가되었습니다.
+ * 버그 수정
+ * `tomotopy.SLDAModel`에서 `nuSq` 값을 지정할 때 발생하는 문제를 해결했습니다. (by @jucendrero)
+ * `tomotopy.utils.Coherence`가 `tomotopy.DTModel`에 대해서 작동하지 않는 문제를 해결했습니다.
+ * `train()` 호출 전에 `make_dic()`을 호출할 때 종종 크래시가 발생하는 문제를 해결했습니다.
+ * seed가 고정된 상태에서도 `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`를 호출할때 크래시가 발생하는 문제를 해결했습니다.
* `tomotopy.Document.get_topics`와 `tomotopy.Document.get_topic_dist`에 `from_pseudo_doc` 인자가 추가되었습니다.
diff --git a/README.rst b/README.rst
index f82291d..371752c 100644
--- a/README.rst
+++ b/README.rst
@@ -309,6 +309,18 @@ meaning you can use it for any reasonable purpose and remain in complete ownersh
History
-------
+* 0.12.3 (2022-07-19)
+ * New features
+ * Now, inserting an empty document using `tomotopy.LDAModel.add_doc()` just ignores it instead of raising an exception. If the newly added argument `ignore_empty_words` is set to False, an exception is raised as before.
+ * `tomotopy.HDPModel.purge_dead_topics()` method is added to remove non-live topics from the model.
+ * Bug fixes
+ * Fixed an issue that prevents setting user defined values for nuSq in `tomotopy.SLDAModel` (by @jucendrero).
+ * Fixed an issue where `tomotopy.utils.Coherence` did not work for `tomotopy.DTModel`.
+ * Fixed an issue that often crashed when calling `make_dic()` before calling `train()`.
+ * Resolved the problem that the results of `tomotopy.DMRModel` and `tomotopy.GDMRModel` are different even when the seed is fixed.
+ * The parameter optimization process of `tomotopy.DMRModel` and `tomotopy.GDMRModel` has been improved.
+ * Fixed an issue that sometimes crashed when calling `tomotopy.PTModel.copy()`.
+
* 0.12.2 (2021-09-06)
* An issue where calling `convert_to_lda` of `tomotopy.HDPModel` with `min_cf > 0`, `min_df > 0` or `rm_top > 0` causes a crash has been fixed.
* A new argument `from_pseudo_doc` is added to `tomotopy.Document.get_topics` and `tomotopy.Document.get_topic_dist`.
diff --git a/document/document_header.html b/document/document_header.html
index 3eb06d9..932b2d5 100644
--- a/document/document_header.html
+++ b/document/document_header.html
@@ -10,8 +10,9 @@
tomotopy
English 한국어
-
v0.12.2
+
v0.12.3
+ - v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
diff --git a/src/python/docs.h b/src/python/docs.h
index 378e6c4..6b01275 100644
--- a/src/python/docs.h
+++ b/src/python/docs.h
@@ -1617,6 +1617,23 @@ topic_threshold : float
기본값은 0이며, 이 경우 유효하지 않는 토픽을 제외한 모든 토픽이 LDA 모델에 포함됩니다.
)"");
+DOC_SIGNATURE_EN_KO(HDP_purge_dead_topics__doc__,
+ "purge_dead_topics(self)",
+ u8R""(.. versionadded:: 0.12.3
+
+Purge all non-alive topics from the model and return `new_topic_ids`. After called, `HDPModel.k` shrinks to `HDPModel.live_k` and all topics of the model become live.
+
+`new_topic_id` is an array of length `HDPModel.k` and `new_topic_id[i]` indicates a topic id of the new model, equivalent to topic `i` of previous HDP model.
+If topic `i` of previous HDP model is not alive or is removed in the new model, `new_topic_id[i]` would be `-1`.
+)"",
+u8R""(.. versionadded:: 0.12.3
+
+현재 모델에서 유효하지 않은 토픽을 모두 제거하고 `new_topic_ids`를 반환합니다. 호출 후에 `HDPModel.k`는 `HDPModel.live_k`값으로 줄어들며 모든 토픽은 유효한 상태가 됩니다.
+
+`new_topic_id`는 길이 `HDPModel.k`의 배열이며, `new_topic_id[i]`는 새 모델에서 기존 HDP 모델의 토픽 `i`와 동등한 토픽의 id를 가리킵니다.
+만약 기존 HDP 모델의 토픽 `i`가 유효하지 않거나, 새 모델에서 제거된 것이라면, `new_topic_id[i]`는 `-1`이 됩니다.
+)"");
+
DOC_VARIABLE_EN_KO(HDP_gamma__doc__,
u8R""(the hyperparameter gamma (read-only))"",
u8R""(하이퍼 파라미터 gamma (읽기전용))"");
diff --git a/src/python/py_HDP.cpp b/src/python/py_HDP.cpp
index 3fe370d..9503c69 100644
--- a/src/python/py_HDP.cpp
+++ b/src/python/py_HDP.cpp
@@ -116,7 +116,7 @@ static PyMethodDef HDP_methods[] =
{ "loads", (PyCFunction)HDP_loads, METH_STATIC | METH_VARARGS | METH_KEYWORDS, LDA_loads__doc__ },
{ "is_live_topic", (PyCFunction)HDP_isLiveTopic, METH_VARARGS | METH_KEYWORDS, HDP_is_live_topic__doc__ },
{ "convert_to_lda", (PyCFunction)HDP_convertToLDA, METH_VARARGS | METH_KEYWORDS, HDP_convert_to_lda__doc__ },
- { "purge_dead_topics", (PyCFunction)HDP_purgeDeadTopics, METH_NOARGS, HDP_convert_to_lda__doc__ },
+ { "purge_dead_topics", (PyCFunction)HDP_purgeDeadTopics, METH_NOARGS, HDP_purge_dead_topics__doc__ },
{ nullptr }
};
diff --git a/tomotopy/coherence.py b/tomotopy/coherence.py
index d060675..f96c944 100644
--- a/tomotopy/coherence.py
+++ b/tomotopy/coherence.py
@@ -150,7 +150,9 @@ def get_score(self, words=None, topic_id=None, timepoint=None):
This parameter is valid when `tomotopy.coherence.Coherence` was initialized using `corpus` as `tomotopy.LDAModel` or its descendants.
If this is omitted, the average score of all topics is returned.
timepoint : int
- A timepoint of the topic from which words are extracted. (Only for `DTModel`)
+ ..versionadded:: 0.12.3
+
+ A timepoint of the topic from which words are extracted. (Only for `tomotopy.DTModel`)
'''
import tomotopy as tp
if words is None and self._topic_model is None:
@@ -251,5 +253,9 @@ def get_score(self, words=None, topic_id=None, timepoint=None):
단어가 추출될 토픽의 id.
이 파라미터는 오직 `tomotopy.coherence.Coherence`가 `tomotopy.LDAModel`나 기타 토픽 모델의 인스턴스로 `corpus`를 받아 초기화된 경우에만 사용 가능합니다.
생략시 모든 토픽의 coherence 점수를 평균낸 값이 반환됩니다.
+timepoint : int
+ ..versionadded:: 0.12.3
+
+ 단어가 추출될 토픽의 시점 (`tomotopy.DTModel`에서만 유효)
'''
del os
\ No newline at end of file
diff --git a/tomotopy/documentation.kr.rst b/tomotopy/documentation.kr.rst
index 0ab1c42..dd260a9 100644
--- a/tomotopy/documentation.kr.rst
+++ b/tomotopy/documentation.kr.rst
@@ -386,6 +386,18 @@ tomotopy의 Python3 예제 코드는 https://github.com/bab2min/tomotopy/blob/ma
역사
-------
+* 0.12.3 (2022-07-19)
+ * 기능 개선
+ * 이제 `tomotopy.LDAModel.add_doc()`로 빈 문서를 삽입할 경우 예외를 발생시키는 대신 그냥 무시합니다. 새로 추가된 인자인 `ignore_empty_words`를 False로 설정할 경우 이전처럼 예외를 발생시킵니다.
+ * 유효하지 않은 토픽들을 모델에서 제거하는 `tomotopy.HDPModel.purge_dead_topics()` 메소드가 추가되었습니다.
+ * 버그 수정
+ * `tomotopy.SLDAModel`에서 `nuSq` 값을 지정할 때 발생하는 문제를 해결했습니다. (by @jucendrero)
+ * `tomotopy.utils.Coherence`가 `tomotopy.DTModel`에 대해서 작동하지 않는 문제를 해결했습니다.
+ * `train()` 호출 전에 `make_dic()`을 호출할 때 종종 크래시가 발생하는 문제를 해결했습니다.
+ * seed가 고정된 상태에서도 `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`를 호출할때 크래시가 발생하는 문제를 해결했습니다.
* `tomotopy.Document.get_topics`와 `tomotopy.Document.get_topic_dist`에 `from_pseudo_doc` 인자가 추가되었습니다.
diff --git a/tomotopy/documentation.rst b/tomotopy/documentation.rst
index 4bda2ff..01a484d 100644
--- a/tomotopy/documentation.rst
+++ b/tomotopy/documentation.rst
@@ -389,6 +389,18 @@ meaning you can use it for any reasonable purpose and remain in complete ownersh
History
-------
+* 0.12.3 (2022-07-19)
+ * New features
+ * Now, inserting an empty document using `tomotopy.LDAModel.add_doc()` just ignores it instead of raising an exception. If the newly added argument `ignore_empty_words` is set to False, an exception is raised as before.
+ * `tomotopy.HDPModel.purge_dead_topics()` method is added to remove non-live topics from the model.
+ * Bug fixes
+ * Fixed an issue that prevents setting user defined values for nuSq in `tomotopy.SLDAModel` (by @jucendrero).
+ * Fixed an issue where `tomotopy.utils.Coherence` did not work for `tomotopy.DTModel`.
+ * Fixed an issue that often crashed when calling `make_dic()` before calling `train()`.
+ * Resolved the problem that the results of `tomotopy.DMRModel` and `tomotopy.GDMRModel` are different even when the seed is fixed.
+ * The parameter optimization process of `tomotopy.DMRModel` and `tomotopy.GDMRModel` has been improved.
+ * Fixed an issue that sometimes crashed when calling `tomotopy.PTModel.copy()`.
+
* 0.12.2 (2021-09-06)
* An issue where calling `convert_to_lda` of `tomotopy.HDPModel` with `min_cf > 0`, `min_df > 0` or `rm_top > 0` causes a crash has been fixed.
* A new argument `from_pseudo_doc` is added to `tomotopy.Document.get_topics` and `tomotopy.Document.get_topic_dist`.