томотопия
Английский , 한국어.
Что такое томотопия?
Томотопия-это расширение Python томото (инструмент моделирования темы), который представляет собой библиотеку темы на основе Gibbs-Sampling, написанная в C ++. Он использует векторизацию современных процессоров для максимизации скорости. Текущая версия Tomoto поддерживает несколько основных тематических моделей, включая
- Скрытое распределение дирихле (томотопия. Lldamodel)
- Маркированный LDA (Tomotopy.lldamodel)
- Частично помеченный LDA (Tomotopy.pldamodel)
- Контролируемый LDA (Tomotopy.sldamodel)
- Dirichlet Multinomial регрессия (Tomotopy.dmrmodel)
- Генерализованная полиномиальная регрессия Dirichlet (томотопия.gdmrmodel)
- Иерархический процесс дирихлета (томотопия.hdpmodel)
- Иерархический LDA (томотопия .hldamodel)
- Multi Grain LDA (Tomotopy.mgldamodel)
- Распределение пачинко (томотопия.pamodel)
- Иерархический PA (томотопия. Hpamodel)
- Коррелированная тематическая модель (Tomotopy.ctmodel)
- Динамическая тематическая модель (Tomotopy.dtmodel)
- Тематическая модель на основе псевдодокументов (Tomotopy.ptmodel).
Пожалуйста, посетите https://bab2min.github.io/tomotopy, чтобы увидеть больше информации.
Начиная
Вы можете легко установить томотопию с помощью PIP. (https://pypi.org/project/tomotopy/)
$ pip install -обновление PIP
$ pip установить томотопию
Поддерживаемые версии ОС и Python:
- Linux (x86-64) с Python> = 3,6
- macos> = 10.13 с Python> = 3,6
- Windows 7 или более поздней версии (x86, x86-64) с Python> = 3,6
- Другая ОС с Python> = 3,6: Компиляция из необходимого исходного кода (с C ++ 14 совместимым компилятором)
После установки вы можете начать томотопию, просто импортируя.
импортировать томотопию как TP
print (tp.isa) # prints 'avx2', 'avx', 'sse2' или 'none'
В настоящее время томотопия может использовать набор инструкций AVX2, AVX или SSE2 SIMD для максимизации производительности. Когда пакет импортирован, он проверит доступные наборы инструкций и выберите лучший вариант. Если TP.ISA не говорит ни одного, итерации обучения могут занять много времени. Но, поскольку большинство современных процессоров Intel или AMD предоставляют набор инструкций SIMD, ускорение SIMD может показать большое улучшение.
Вот пример кода для простого обучения текстам LDA из файла sample.txt.
импортировать томотопию как TP
mdl = tp.ldamodel (k = 20)
Для строки в Open ('sample.txt'):
mdl.add_doc (line.strip (). split ())
для I в диапазоне (0, 100, 10):
mdl.train (10)
print ('iteteration: {} tlog-likelihood: {}'. format (i, mdl.ll_per_word)))
Для K в диапазоне (MDL.K):
Print ('10 лучших слов темы #{}'. Format (k))
print (mdl.get_topic_words (k, top_n = 10)))
mdl.summary ()
Выступление томотопии
Томотопия использует разрушенную Gibbs-Sampling (CGS), чтобы вывести распределение тем и распределение слов. Как правило, CGS сходится медленнее, чем вариационная байеса (VB), которую использует Ldamodel Gensim, но его итерация может быть вычислена гораздо быстрее. Кроме того, томотопия может воспользоваться многоядерными процессорами с набором инструкций SIMD, который может привести к более быстрым итерациям.
Следующая диаграмма показывает сравнение времени работы модели LDA между томотопией и gensim. Входные данные состоит из 1000 случайных документов из английской Википедии с 1506 966 слов (около 10,1 МБ). Томотопические поезда 200 итераций и поезда Gensim 10 итераций.
Производительность в Intel I5-6600, x86-64 (4 ядра)
Производительность в Intel Xeon E5-2620 V4, X86-64 (8 ядер, 16 потоков)
Хотя томотопия итерация в 20 раз больше, общее время работы было в 5 ~ 10 раз быстрее, чем gensim. И это дает стабильный результат.
Трудно сравнивать CGS и VB напрямую, потому что они являются общими различными методами. Но с практической точки зрения мы можем сравнить скорость и результат между ними. На следующей диаграмме показано логарифмическое правдоподобие на слово результата двух моделей.
Набор инструкций SIMD оказывает большое влияние на производительность. Ниже приведено сравнение между наборами инструкций SIMD.
К счастью, большинство недавних процессоров X86-64 предоставляют набор инструкций AVX2, поэтому мы можем насладиться производительностью AVX2.
Модель Сохранить и загрузить
Томотопия обеспечивает метод сохранения и загрузки для каждого класса модели темы, поэтому вы можете сохранить модель в файл, когда захотите, и повторно загрузить его из файла.
импортировать томотопию как TP
mdl = tp.hdpmodel ()
Для строки в Open ('sample.txt'):
mdl.add_doc (line.strip (). split ())
для I в диапазоне (0, 100, 10):
mdl.train (10)
print ('iteteration: {} tlog-likelihood: {}'. format (i, mdl.ll_per_word)))
# Сохранить в файл
mdl.save ('sample_hdp_model.bin')
# загрузить из файла
mdl = tp.hdpmodel.load ('sample_hdp_model.bin')
Для K в диапазоне (MDL.K):
Если не mdl.is_live_topic (k): продолжить
Print ('10 лучших слов темы #{}'. Format (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.
импортировать томотопию как 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 -порт 9999
Смотрите больше на модуле Tomotopy.viewer.
Документы в модели и вне модели
Мы можем использовать тематическую модель для двух основных целей. Основным является обнаружение тем из набора документов в результате обученной модели, и более продвинутым является вывод о распределении тем для невидимых документов с помощью обученной модели.
Мы назвали документ в первой цели (используемой для обучения модели) в качестве документа в модели , а документ в последующей цели (невидимый документ во время обучения) в качестве документа из модели .
В томотопии эти два разных вида документа генерируются по -разному. Документ в модели может быть создан с помощью метода Tomotopy.ldamodel.add_doc. add_doc можно вызвать до томотопии.ldamodel.train. Другими словами, после вызова поезда add_doc не может добавить документ в модель, потому что набор документа, используемый для обучения, стал фиксированным.
Чтобы получить экземпляр созданного документа, вы должны использовать томотопию.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)
TOMA_DIST, LL = MDL.INFER (DOC_INST)
Print («Распределение тем для невидимых документов:», Topic_dist)
Print ("log-celliashity от вывода:", ll)
Метод вывода может вывести только один экземпляр томотопии. Document или список экземпляров томотопии.document. Смотрите больше на Tomotopy.ldamodel.infer.
Корпус и трансформация
Каждая тематическая модель в томотопии имеет свой собственный внутренний тип документа. Документ может быть создан и добавлен в подходящую для каждой модели с помощью метода ADD_DOC каждой модели. Тем не менее, попытка добавить один и тот же список документов в разные модели становится довольно неудобной, потому что add_doc следует вызвать для одного и того же списка документов для каждой другой модели. Таким образом, томотопия обеспечивает томотопию. Utils.corpus класс, который содержит список документов. tomotopy.utils.corpus может быть вставлен в любую модель, передавая в качестве аргумента корпус в метод __init__ или add_corpus каждой модели. Итак, вставка томотопии. Utils.corpus просто имеет такой же эффект для вставки документов, которые хранит корпус.
Некоторые тематические модели требуют разных данных для его документов. Например, томотопия.dmrmodel требует метаданных аргументов в типе STR, но томотопия. Pldamodel требует меток аргументов в типе списка [STR]. Поскольку Tomotopy.utils.corpus владеет независимым набором документов, а не привязан к конкретной тематической модели, типы данных, требуемые тематической моделью, могут быть непоследовательными, когда корпус добавляется в эту тематическую модель. В этом случае различные данные могут быть преобразованы, чтобы быть установленной целевой темой модели с использованием преобразования аргумента. Смотрите более подробную информацию в следующем коде:
от импорта томотопии dmrmodel
от Tomotopy.utils Import Corpus
corpus = 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)
модель = dmrmodel (k = 10)
model.add_corpus (корпус)
# Вы теряете поле a_data` в `corpus`,
# и `metadata`, которые требуется` dmrmodel
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` в` metadata`
модель = dmrmodel (k = 10)
model.add_corpus (corpus, transform = transform_a_data_to_metadata)
# Теперь документы в `model` имеют не деко-по умолчанию` metadata`, которые генерируются из поля `a_data`.
Assert model.docs [0] .metadata == '1'
Assert model.docs [1] .metadata == '2'
Assert model.docs [2] .metadata == '3'
Алгоритмы параллельной выборки
Поскольку версия 0.5.0, томотопия позволяет вам выбрать алгоритм параллелизма. Алгоритм, предоставленный в версиях до 0.4.2, является copy_merge, который предусмотрен для всех тематических моделей. Новый алгоритм раздел, доступный с 0.5.0, делает обучение в целом быстрее и более эффективным для памяти, но оно доступно на не все тематические модели.
На следующей диаграмме показана разница скорости между двумя алгоритмами на основе количества тем и количества работников.
Производительность по версии
Изменения производительности по версии показаны на следующем графике. Было измерено время, необходимое для запуска модельного поезда LDA с 1000 итерацией. (Документы: 11314, Vocab: 60382, слова: 2364724, Intel Xeon Gold 5120 @2,2 ГГц)
Приколоть темы с использованием Priors Word
Со времени версии 0.6.0 был добавлен новый метод томотопии.ldamodel.set_word_prior. Это позволяет вам управлять Word Prore для каждой темы. Например, мы можем установить вес слова «церковь» на 1,0 в теме 0, а вес до 0,1 в остальных темах - с помощью кодов. Это означает, что вероятность того, что слово «церковь» присваивается теме 0, в 10 раз выше вероятности назначения на другую тему. Следовательно, большая часть «церкви» назначена в тему 0, поэтому тема 0 содержит много слов, связанных с «церковью». Это позволяет манипулировать некоторыми темами, которые будут размещены на определенном номере темы.
импортировать томотопию как TP
mdl = tp.ldamodel (k = 20)
# Добавить документы в `mdl`
# Настройка слова
mdl.set_word_prior ('church', [1.0, если k == 0 else 0.1 для k в диапазоне (20)])
См. Word_prior_example in example.py для получения более подробной информации.
Примеры
Вы можете найти пример кода томотопии Python по адресу https://github.com/bab2min/tomotopy/blob/main/examples/.
Вы также можете получить файл данных, используемый в примере кода по адресу https://drive.google.com/file/d/18opnijd4iwpyyz2o7pqoyetakexa71j/view.
Лицензия
Томотопия лицензирована в соответствии с Условиями лицензии MIT, что означает, что вы можете использовать ее для любой разумной цели и оставаться в полном владении всей документацией, которую вы производите.
История
- 0,13,0 (2024-08-05)
- Новые функции
- Основные функции тематической модели просмотра томотопии.viewer.open_viewer () готовы сейчас.
- Tomotopy.ldamodel.get_hash () добавляется. Вы можете получить 128 -битное хеш -значение модели.
- Добавьте аргумент ngram_list в Tomotopy.utils.simpletokenizer.
- Исправления ошибок
- Исправлена непоследовательная ошибка охватов после Corpus.concat_ngrams.
- Оптимизировал узкое место томотопии.ldamodel.load () и Tomotopy.ldamodel.save () и улучшил его скорость более 10 раз.
- 0,12,7 (2023-12-19)
- Новые функции
- Добавлена тема модели просмотра томотопии.viewer.open_viewer ()
- Оптимизируйте производительность томотопии. Utils.corpus.process ()
- Исправления ошибок
- Document.Span теперь возвращает диапазоны в блоке символов, а не в байтовом блоке.
- 0,12,6 (2023-12-11)
- Новые функции
- Добавлены некоторые удобные функции в Tomotopy.ldamodel.train и Tomotopy.ldamodel.set_word_prior.
- Ldamodel.train теперь имеет новые аргументы Callback, 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.
- Исправления ошибок
- Исправлена проблема, в которой томотопия.document.get_sub_topic_dist () повышает исключение плохого аргумента.
- Исправлена проблема, в которой поднятие исключений иногда вызывает аварии.
- 0,12,3 (2022-07-19)
- Новые функции
- Теперь вставка пустого документа с использованием tomotopy.ldamodel.add_doc () просто игнорирует его вместо того, чтобы поднять исключение. Если недавно добавленный аргумент игнорировать_ампти_ слов установлен на false, исключение поднимается, как и раньше.
- Tomotopy.hdpmodel.purge_dead_topics () добавляется метод для удаления неживых тем из модели.
- Исправления ошибок
- Исправлена проблема, которая предотвращает настройку определенных пользовательских значений для NUSQ в томотопии.
- Исправлена проблема, в которой томотопия.
- Исправлена проблема, которая часто разбилась при вызове make_dic () перед вызовом Train ().
- Решить проблему, что результаты томотопии.dmrmodel и tomotopy.gdmrmodel различны, даже когда семя фиксируется.
- Процесс оптимизации параметров томотопии.dmrmodel и Tomotopy.gdmrmodel был улучшен.
- Исправлена проблема, которая иногда разбилась при вызове Tomotopy.ptmodel.copy ().
- 0,12,2 (2021-09-06)
- Проблема, в которой вызов convert_to_lda of tomotopy.hdpmodel с min_cf> 0, min_df> 0 или rm_top> 0 Причина была исправлена аварий.
- Новый аргумент from_pseudo_doc добавляется в Tomotopy.document.get_topics и Tomotopy.document.get_topic_dist. Этот аргумент действителен только для документов PTModel, он позволяет управлять источником для распределения темт.
- Значение по умолчанию для аргумента p томотопии.ptmodel было изменено. Новое значение по умолчанию - K * 10.
- Использование документов, сгенерированных make_doc без вызова вывода, больше не вызывает сбою, а просто печатайте предупреждающие сообщения.
- Проблема, в которой внутренний код C ++ не скомпилирован в среде Clang C ++ 17, была исправлена.
- 0,12,1 (2021-06-20)
- Проблема, в которой томотопия.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 Поддерживаю несколько значений метаданных (см.
- Производительность томотопии. GDMRModel была улучшена.
- Метод Copy () был добавлен для всех тематических моделей, чтобы сделать глубокую копию.
- Была решена проблема, когда слова, которые исключены из обучения (MIN_CF, MIN_DF), имеют неверный идентификатор темы. Теперь все исключенные слова имеют -1 в качестве идентификатора темы.
- Теперь все исключения и предупреждения, созданные с помощью томотопии, следуют стандартным типам Python.
- Требования компилятора были подняты до C ++ 14.
- 0,11,1 (2021-03-28)
- Критическая ошибка асимметричной альфы была исправлена. Из -за этой ошибки версия 0.11.0 была удалена из выпусков.
- 0,11,0 (2021-03-26) (удалено)
- В пакет был добавлен новая тематическая модель Tomotopy.ptmodel для коротких текстов.
- Проблема была исправлена, когда томотопия.hdpmodel.infer иногда вызывает ошибку сегментации.
- Несоответствие версии Numpy API было исправлено.
- Теперь асимметричные априоры с тематическим документом поддерживаются.
- Поддерживается сериализация тематических моделей на байты в памяти.
- Аргумент, нормализованный, был добавлен в get_topic_dist (), get_topic_word_dist () и get_sub_topic_dist () для контроля нормализации результатов.
- Теперь томотопия.dmrmodel.lambdas и tomotopy.dmrmodel.alpha дают правильные значения.
- Были добавлены категориальные опоры метаданных для томотопии.
- Поддержка Python3.5 была отброшена.
- 0,10,2 (2021-02-16)
- Проблема была исправлена, когда томотопия.
- Была решена проблема, где томотопия. Utils.corpus теряет свои значения UID.
- 0,10,1 (2021-02-14)
- Проблема была исправлена там, где томотопия
- Была решена проблема, когда томотопия.ldamodel.infer поднимает исключение с действительным входом.
- Была решена проблема, когда томотопия.hldamodel.infer генерирует неправильную томотопию.document.path.
- Поскольку новый параметр freeze_topics для Tomotopy.hldamodel.train был добавлен, вы можете контролировать, создать ли новую тему или нет при обучении.
- 0,10,0 (2020-12-19)
- Интерфейс томотопии. Utils.corpus и томотопии.ldamodel.docs были объединены. Теперь вы можете получить доступ к документу в корпусе с таким же образом.
- __getItem__ of tomotopy.utils.corpus был улучшен. Не только индексация с помощью Int, но и итерационным [int], поддерживается нарезку. Также поддерживается индексация с помощью UID.
- Новые методы томотопия Они извлекают N-грамм-колокации с использованием PMI и объединяют их в одни слова.
- Был добавлен новый метод томотопии.ldamodel.add_corpus, и томотопия.ldamodel.infer может получать корпус в качестве ввода.
- Новый модульный томотопия. Была добавлена Coherence. Это обеспечивает способ расчета когерентности модели.
- Paramter window_size был добавлен в Tomotopy.label.ForeLevance.
- Проблема была решена, когда NAN часто встречается при тренировке томотопии. HDPModel.
- Теперь Python3.9 поддерживается.
- Зависимость от py-cpuinfo была удалена, и инициализация модуля была улучшена.
- 0,9,1 (2020-08-08)
- Утечки памяти версии 0.9.0 были исправлены.
- Tomotopy.ctmodel.summary () был зафиксирован.
- 0,9,0 (2020-08-04)
- Был добавлен метод томотопии.
- Генератор случайных чисел пакета был заменен на собственные. Он ускоряет генерацию случайных чисел и решает разницу в результатах между платформами.
- Из -за вышеупомянутого, даже если семена одинаковы, результат обучения модели может отличаться от версии до 0.9.0.
- Исправлена ошибка обучения в Tomotopy.hdpmodel.
- Tomotopy.dmrmodel.alpha теперь показывает Dirichlet prore в отношении распределения темы для закусок по метаданным.
- tomotopy.dtmodel.get_count_by_topics () был изменен, чтобы вернуть двухмерный Ndarray.
- Tomotopy.dtmodel.alpha был изменен, чтобы вернуть то же значение, что и томотопия.dtmodel.get_alpha ().
- Исправлена проблема, в которой значение метаданных не может быть получено для документа томотопии.gdmrmodel.
- Tomotopy.hldamodel.alpha теперь показывает Dirichlet перед распределением глубины для пердоцента.
- Tomotopy.ldamodel.global_step был добавлен.
- tomotopy.mgldamodel.get_count_by_topics () теперь возвращает количество слов как для глобальных, так и для локальных тем.
- Tomotopy.pamodel.alpha, tomotopy.pamodel.subalpha и томотопия.pamodel.get_count_by_super_topic () были добавлены.
- 0,8,2 (2020-07-14)
- Новые свойства Tomotopy.dtmodel.num_timepoints и Tomotopy.dtmodel.num_docs_by_timepoint были добавлены.
- Ошибка, которая вызывает разные результаты с различной платформой, даже если семена были одинаковыми, была частично исправлена. В результате этого исправления теперь томотопия в 32 -битном виде дает различные результаты обучения из более ранней версии.
- 0,8,1 (2020-06-08)
- Ошибка, в которой томотопия.ldamodel.used_vocabs вернул неверное значение, была зафиксирована.
- Теперь Tomotopy.ctmodel.prior_cov возвращает ковариационную матрицу с формой [k, k].
- Теперь Tomotopy.ctmodel.get_correlations с пустыми аргументами возвращает матрицу корреляции с формой [k, k].
- 0,8,0 (2020-06-06)
- Поскольку Numpy был представлен в томотопии, многие методы и свойства томотопии возврата не только списка, но и Numpy.ndarray сейчас.
- Томотопия имеет новую зависимость Numpy> = 1,10.0.
- Неправильная оценка томотопии.hdpmodel.infer была фиксирована.
- Был добавлен новый метод конвертации HDPModel в LDAmodel.
- Новые свойства, включая Tomotopy.ldamodel.used_vocabs, tomotopy.ldamodel.used_vocab_freq и Tomotopy.ldamodel.used_vocab_df, были добавлены в тематические модели.
- Была добавлена новая тематическая модель G-DMR (Tomotopy.gdmrmodel).
- Ошибка при инициализации томотопии.
- Ошибка, которая возникала при использовании томотопии. Utils.corpus, созданная без необработанных параметров, была исправлена.
- 0,7,1 (2020-05-08)
- Tomotopy.document.path был добавлен для томотопии .hldamodel.
- Ошибка коррупции памяти в Tomotopy.label.pmiextractor была исправлена.
- Ошибка компиляции в GCC 7 была исправлена.
- 0,7,0 (2020-04-18)
- Tomotopy.dtmodel была добавлена в упаковку.
- Ошибка в томотопии. Utils.corpus.save была исправлена.
- Новый метод томотопия.document.get_count_vector был добавлен в класс документов.
- Теперь Distributions Linux используют многие, и применяется дополнительная оптимизация.
- 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 class, который легко управляет несколькими документами.
- Tomotopy.ldamodel.set_word_prior, который управляет тематическими приорами тематических моделей.
- Новый аргумент min_df, который фильтрует слова, основанные на частоте документов, был добавлен в __init__ каждой темы.
- Tomotopy.label, был добавлен подмодуль о маркировке темы. В настоящее время предоставляется только томотопия.
- 0,5,2 (2020-03-01)
- Проблема разлома сегментации была исправлена в томотопии.lldamodel.add_doc.
- Была исправлена ошибка, что вывод о томотопии. HDPModel иногда сбой программы.
- Проблема с аварией была исправлена из томотопии.ldamodel.infer с ps = томотопия.parallelscheme.partition, вместе = true.
- 0,5,1 (2020-01-11)
- Была исправлена ошибка, что томотопия.sldamodel.make_doc не поддерживает отсутствующие значения для y.
- Теперь Tomotopy.sldamodel полностью поддерживает отсутствующие значения для переменных ответа y. Документы с отсутствующими значениями (NAN) включены в тему моделирования, но исключаются из регрессии переменных ответа.
- 0.5.0 (2019-12-30)
- Теперь Tomotopy.pamodel.infer Возвращает оба распределения темы и распределение подзаколов.
- Новые методы get_sub_topics и get_sub_topic_dist были добавлены в томотопию.document. (для Памодель)
- Новая параллельная параллель была добавлена для томотопии.ldamodel.train и Tomotopy.ldamodel.infer. Вы можете выбрать алгоритм параллелизма, изменив этот параметр.
- Tomotopy.parallelscheme.partition, новый алгоритм, был добавлен. Он работает эффективно, когда количество работников большое, количество тем или размер словарного запаса является большим.
- Ошибка, в которой RM_TOP не работала в min_cf <2, была исправлена.
- 0,4,2 (2019-11-30)
- Неправильные темы задания томотопии. Lldamodel и Tomotopy.pldamodel были зафиксированы.
- Читаемый __repr__ of tomotopy.document и tomotopy.dictionary был реализован.
- 0,4,1 (2019-11-27)
- Ошибка в функции init томотопии. Pldamodel была исправлена.
- 0.4.0 (2019-11-18)
- Новые модели, включая томотопию. Pldamodel и Tomotopy.hldamodel были добавлены в упаковку.
- 0,3,1 (2019-11-05)
- Проблема, в которой get_topic_dist () возвращает неверное значение, когда установлен MIN_CF или RM_TOP.
- Возвратное значение get_topic_dist () документа томотопии.
- Скорость оценки с TW = один был улучшен.
- 0,3,0 (2019-10-06)
- Новая модель, Tomotopy.lldamodel была добавлена в упаковку.
- Удашающая проблема HDPModel была исправлена.
- Поскольку была реализована оценка гиперпараметра для HDPModel, результат HDPModel может отличаться от предыдущих версий.
- Если вы хотите отключить оценку гиперпараметра HDPModel, установите Optim_Interval на ноль.
- 0,2,0 (2019-08-18)
- В пакет были добавлены новые модели, включая томотопию.
- Новый параметр параметров RM_TOP был добавлен для всех тематических моделей.
- Проблемы в методе сохранения и загрузки для Памоделя и HPamodel были исправлены.
- Время отказа при загрузке HDPModel была зафиксирована.
- Проблема, что LL_PER_WORD была рассчитана неправильно, когда min_cf> 0 была исправлена.
- 0,1,6 (2019-08-09)
- Компиляция ошибок в Clang с средой MacOS была зафиксирована.
- 0,1,4 (2019-08-05)
- Проблема, когда add_doc получает пустой список в качестве ввода, была исправлена.
- Проблема, которую томотопия.pamodel.get_topic_words не извлекает слово распределение подтопии, была исправлена.
- 0,1,3 (2019-05-19)
- Параметр MIN_CF и его функция, удаляющую стоп-слова, были добавлены для всех тематических моделей.
- 0,1,0 (2019-05-12)
Привязки для других языков
- Ruby: https://github.com/ankane/tomoto
Объединенные библиотеки и их лицензия
- Собственное: в этом приложении используются лицензированные MPL2 функции Eigen, библиотеку шаблонов C ++ для линейной алгебры. Копия лицензии MPL2 доступна по адресу https://www.mozilla.org/en-us/mpl/2.0/. Исходный код библиотеки собственного, можно получить по адресу http://eigen.tuxfamily.org/.
- Собственность: лицензия MIT
- Вариант Mapbox: лицензия BSD
Цитирование
@software {minchul_lee_2022_6868418,
Автор = {Minchul Lee},
title = {bab2min/томотопия: 0,12,3},
месяц = июль,
год = 2022,
Publisher = {zenodo},
версия = {v0.12.3},
doi = {10.5281/Zenodo.6868418},
url = {https://doi.org/10.5281/zenodo.6868418}
}