Literature DB >> 35712009

EpiTopics: A dynamic machine learning model to predict and inform non-pharmacological public health interventions from global news reports.

Zhi Wen1, Jingfu Zhang1, Guido Powell2, Imane Chafi1, David L Buckeridge2, Yue Li1.   

Abstract

Non-pharmacological interventions (NPIs) are important for controlling infectious diseases such as COVID-19, but their implementation is currently monitored in an ad hoc manner. To address this issue, we present a three-stage machine learning framework called EpiTopics to facilitate the surveillance of NPI. In this protocol, we outline the use of transfer-learning to address the limited number of NPI-labeled documents and topic modeling to support interpretation of the results. For complete details on the use and execution of this protocol, please refer to Wen et al. (2022).
© 2022 The Authors.

Entities:  

Keywords:  Computer sciences; Health Sciences

Mesh:

Substances:

Year:  2022        PMID: 35712009      PMCID: PMC9189439          DOI: 10.1016/j.xpro.2022.101463

Source DB:  PubMed          Journal:  STAR Protoc        ISSN: 2666-1667


Before you begin

Protocol overview

This protocol will guide you through a series of steps to develop a machine learning model called EpiTopics. The method was developed to enable automatic detection from news reports of changes in the status of non-pharmacological interventions (NPI) for COVID-19. The method can be divided into 3 stages. At stage 1, EpiTopics learns country-dependent topics from a large number of COVID-19 news reports that do not have NPI labels (i.e., AYLIEN news dataset in Wen et al. (2022)). At stage 2, EpiTopics learns accurate connections between these topics and changes in NPI status from a set of labeled news reports (i.e., WHO news dataset in (Wen et al., 2022)). At stage 3, EpiTopics learns to predict country-dependent NPI changes by combining the knowledge learned from the previous two stages.

Acquiring datasets

Timing: 1 h Download the WHO dataset from https://www.who.int/emergencies/diseases/novel-coronavirus-2019/phsm. To replace the WHO dataset with other datasets of the user’s choice, please ensure that the dataset of interest includes, for each sample, the text, the text’s source location, the text’s publication time, and the NPIs associated with the text. In addition, it is preferable to use datasets whose location and time coverages overlap significantly with the AYLIEN dataset, since only samples with overlapping locations and times can directly benefit from the topics learned during pre-training on the AYLIEN dataset. Request access to the AYLIEN dataset on https://aylien.com/resources/datasets/coronavirus-dataset. To replace the AYLIEN dataset with other datasets of the user’s choice, please ensure that the dataset of interest includes, for each sample, the text, the text’s source location, and the text’s publication time. In addition, as this dataset is used for pre-training, generally it is preferable to use large datasets, for instance those that have more than 1 million training documents. Also, it is preferable to use datasets with significant location and time coverages overlap with the WHO dataset (i.e., the NPI-labeled documents).

Software installation

Timing: 2–4 h Clone the code repository https://github.com/li-lab-mcgill/covid-npi. Install packages according to the requirements file. CRITICAL: Request to access the AYLIEN dataset might take days to be processed. We strongly recommend the usage of Graphical Processing Unit (GPU) Although it is not required, GPUs will greatly expedite training on a large corpus over CPUs. It is also desirable to have a virtual environment set up for this experiment.

Key resources table

Step-by-step method details

Data preprocessing

Timing: 10 min This section describes 1) The removal of white spaces, special characters and non-English words 2) The removal of stop words as in (Dieng et al., 2020) 3) The extraction of information that is relevant to us from AYLIEN and WHO datasets 4) The removal from WHO dataset of documents whose country or source are not observed in the AYLIEN data. Preprocess AYLIEN data. modify the script run_data_process.sh to include the correct path to the AYLIEN dataset, stop words file, and country NPIs file. set ‘aylien_flag’ to 1 and ‘label_harm’ to 1. execute ‘run_data_process.sh’ from the command line. Preprocess WHO data. modify the script run_data_process.sh to include the correct path to the WHO dataset, stop words file, and country NPIs file. set ‘label_harm’ to 1. execute ‘run_data_process.sh’ from the command line. The program will store the processed data (e.g., bag-of-words) in the output directory specified by save_dir. Take note that this should also be the input directory for running MixMedia (Li et al., 2020) (see below). More specifically, check that the output directory contains: Text file that contains the mappings between labels and their ids. Text file that contains countries and their assigned ids. Time_stamps and their ids. 43 pickle (.pkl) files that mainly feature the pickled vocabulary and embeddings and bag-of-word representations of tokens.

Running MixMedia

Timing: 5 h Pretraining of the MixMedia (Li et al., 2020) framework on the larger AYLIEN dataset as part of our transfer learning scheme. Modify the script run_MixMedia.sh. set K = 25 (the number of desired topics). set cuda = {the indices to the GPUs that are available to you}. set dataset = “AYLIEN”. set datadir = path to your AYLIEN files. set outdir = path to the output directory of your choice. set wemb = path to the output directory of your choice, this contains the embeddings that are needed for stage 3. set mode = “train”. set batch_size = “128”. set lr = “1e-3”. set epochs = “400”. set min_df = “10”. set train_embeddings = “1”. set eval_batch_size = “128”. set time_prior = “1”. set source_prior = “1”. Execute ‘./run_MixMedia.sh’ from the command line. The program will save the outputs to a folder under save_path: save_path/, and The timestamp records the time this script starts to run, and is in the format of {month}-{day}-{hour}-{minute}. The program saves the trained model. The program saves the learned topics (e.g., the topic embedding α, the word embedding ρ, LSTM weights for topic prior η, etc). Monitor the progress with Tensorboard or Weights & Biases by setting “logger”.

Transfer learning for NPI prediction

Timing: 1 h After MixMedia is trained on AYLIEN, we can use the learned topics for NPI prediction via transfer learning. This consists of three consecutive stages: inferring WHO documents’ topic mixtures, training a classifier on document-NPI prediction, transferring the classifier to country-NPI prediction. Infer WHO documents’ topic mixtures. Populate the ‘save_dir’, ‘data_dir’ and ‘model_dir’ entries of the ‘infer_theta.sh’ file according to the instructions within the file. The program saves the output to a folder under save_dir: save_dir/{timestamp}, where the timestamp records the time this script starts to run, and is in the format of {month}-{day}-{hour}-{minute}. The program also saves the document topic mixtures theta. Train a classifier on document-NPI prediction. Within classify_npi.sh, set ‘mode’ to zero-shot or finetune or from-scratch based on the type of result that currently needs to be reproduced. For document-level NPI prediction, set mode to “doc” and provide who_label_dir and theta_dir. For zero-shot transfer, set mode to zero_shot and provide cnpi_dir and ckpt_dir; For fine-tuning, set mode to finetune and provide cnpi_dir and ckpt_dir. Set eta_dir to the directory where you saved your outputs in step 5. Specify save_ckpt. When set, the program saves the results reported in Wen et al. (2022) to a subfolder under save_dir: save_dir/mode/{timestamp} The timestamp records the time this script starts to run, and is in the format of {month}-{day}-{hour}-{minute}. For each random seed, the program saves a trained linear classifier and the corresponding test predictions, with suffixes in filenames that specify the seed. The program also saves the aggregated results in AUPRC into a json file. Repeat the above steps for the other modes.

Expected outcomes

The above commands will result in the following outcomes corresponding to Figure 1, Table 1, Table 2, Table 3 in Wen et al. (2022): Figure 1: Learned topics and the top words under each topic. The sizes of the words are proportional to their topic probabilities. The background colors indicate the themes we gave to the topics. Table 1: Area under the precision-recall curve (AUPRC) scores for document-level NPI prediction. The AUPRC scores are computed on individual NPIs, and then averaged without weighting (macro AUPRC) or weighted by NPIs’ prevalence (weighted AUPRC). Both BOW+linear and BOW+feed-forward use the normalized word vector (i.e., bag of words or BOW) for each document to predict NPI label. All methods are each repeated 100 times with different random seeds. Values in the brackets are standard deviations over the 100 experiments. Table 2: Area under the precision-recall curve (AUPRC) scores for country-level NPI prediction. Random baselines are each repeated 1000 times with different random seeds, and the rest are each repeated 100 times with different random seeds. Values in the brackets are standard deviations over the repeated experiments. Table 3: AUPRC scores for country-level NPI prediction from topics at document and country level. Values in the brackets are standard deviations. Random baselines are each repeated 1000 times with different random seeds, and the rest are each repeated 100 times with random seeds. All of the above will be saved to a subfolder under save_dir: save_dir/mode/{timestamp}.

Quantification and statistical analysis

Expected outcomes in this protocol are stochastic in nature, due to hardware, model initialization, etc. Uncertainty in the reported results is controlled and measured through repeated runs with different random seeds. For models involving training (i.e., except random baselines), the results are based on 100 runs, while results for random baselines are based on 1000 runs. To reduce the uncertainty, the user can choose to increase the number of runs subject to computational cost. Additionally, because of the large size of AYLIEN dataset, the topic model is trained once, and therefore one set of learned topics is used throughout all subsequent experiments. The user can explore training multiple versions of the topic model using different random seeds to obtain multiple sets of topics. The user can then study the variation, or consistency, of learned topics across runs, and explore how variations in learned topics can impact NPI predictions.

Limitations

To begin, using different library versions may have an impact on the results. As a result, the program might run into errors, or the results might not be able to be exactly reproduced. Please ensure to follow requirements as closely as possible. Also, the datasets used in this protocol, i.e., AYLIEN and WHO, may be updated or removed after they were accessed in this protocol. This may lead to differences in the results, or that some results could not be reproduced. In addition, this protocol assumes the user has direct access to the computational infrastructure, not through a set of centralized computing clusters such as SLURM. To use the protocol in such scenarios, minimal changes need to be made. For example, the user can use the protocol in an interactive session. Please refer to the instructions of the specific computing system on how to modify the protocol. Finally, the type of computational resources has an impact on the results. As an example, the batch sizes and the model sizes entail a certain amount of memory, and the availability of GPUs impact the amount of time needed for training.

Troubleshooting

Problem 1

Incompatible library versions (before you begin - software installation).

Potential solution

It is best to install libraries in a virtual environment specifically created for this protocol. For instructing on managing virtual environments, please refer to https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html. Follow the library versions in requirements as closely as possible.

Problem 2

The model with the provided hyperparameters cannot be reproduced due to GPU memory limits (any step). If the user does not have enough GPU memory, the user can reduce the batch size. While doing so, in order to approximate the protocol as closely as possible, the user can accumulate gradients (i.e., calculate gradients without updating optimizer or model) across multiple batches to maintain the identical effective batch size. For example, the user can use a batch size of 64 and accumulate gradients of 2 consecutive batches to approximate an effective batch size of 128. If the user needs to further reduce GPU memory usage, the user can reduce the model’s size, for example the numbers of layers or the hidden dimensions. Doing so would likely have a negative impact on performance.

Problem 3

AYLIEN or WHO data is updated or removed (before you begin - acquiring datasets). If the AYLIEN or WHO dataset is updated to include more data, the user can retrieve the same version as in this protocol by filtering according to Wen et al. (2022). The user can also choose to use the newer version instead and obtain a model trained on a wider coverage. If the dataset is removed, or the user wishes to obtain the exact same version as in this protocol for any other reason, the user can reach out to authors.

Problem 4

Data files or intermediate result files are not found or compatible (any step). Check the paths given to the script and make sure that the files exist and they match the script’s configuration.

Problem 5

Training progress cannot be correctly logged (running MixMedia - step 4). If the user is using Tensorboard as the logger, please follow the instructions here on using Tensorboard with PyTorch. If the user is using Weights and Bias for logging, by default it requires internet connection. For logging locally, or other functionalities, please refer to the instructions here.

Problem 6

When using other custom datasets as alternatives to the WHO dataset, the NPI labels have an imbalanced distribution, resulting in poor performance on minority classes (transfer learning for NPI prediction – step 7). To mitigate the issue of data imbalance and improve performance on minority classes, the user can apply several techniques. For instance, the model can be more heavily regularized via weight decay. Also, the user can assign different weights to different classes such that the loss incurred on minority classes is amplified.

Problem 7

When using other custom datasets as alternatives to the AYLIEN dataset for learning topics, the optimal number of topics changes (running MixMedia – step 4). The optimal number of topics is usually specific to the dataset on which the model is trained, and therefore the user is advised to search for that number on new datasets. As an example, the user can search from 5 topics to 100 topics at an interval of 20, and then search within the best performing intervals using a small interval. The number of search steps is determined as a trade-off between the precision of the search and the compute budget.

Resource availability

Lead contact

Further information and requests for resources should be directed to and will be fulfilled by the lead contact, Yue Li (yueli@cs.mcgill.ca).

Materials availability

This study did not generate any reagents.
REAGENT or RESOURCESOURCEIDENTIFIER
Deposited data

WHO datasethttps://www.who.int/emergencies/diseases/novel-coronavirus-2019/phsmhttps://www.who.int/emergencies/diseases/novel-coronavirus-2019/phsm
AYLIEN datasethttps://aylien.com/resources/datasets/coronavirus-datasethttps://aylien.com/resources/datasets/coronavirus-dataset
Source code(Wen et al., 2022)https://github.com/li-lab-mcgill/covid-npi

Software and algorithms

Python 3.6https://python.org/downloads/RRID: SCR_008394
absl-py 0.10.0https://pypi.org/project/absl-pyhttps://pypi.org/project/absl-py
aiohttp 3.7.4https://pypi.org/project/aiohttphttps://pypi.org/project/aiohttp
async-timeout 3.0.1https://pypi.org/project/async-timeouthttps://pypi.org/project/async-timeout
attrs 19.3.0https://pypi.org/project/attrshttps://pypi.org/project/attrs
backcall 0.1.0https://pypi.org/project/backcallhttps://pypi.org/project/backcall
bleach 3.1.5https://pypi.org/project/bleachhttps://pypi.org/project/bleach
bokeh 2.0.2https://pypi.org/project/bokehhttps://pypi.org/project/bokeh
cachetools 4.1.1https://pypi.org/project/cachetoolshttps://pypi.org/project/cachetools
calmsize 0.1.3https://pypi.org/project/calmsizehttps://pypi.org/project/calmsize
captum 0.2.0https://pypi.org/project/captumhttps://pypi.org/project/captum
certifi 2020.4.5.2https://pypi.org/project/certifihttps://pypi.org/project/certifi
chardet 3.0.4https://pypi.org/project/chardethttps://pypi.org/project/chardet
click 7.1.2https://pypi.org/project/clickhttps://pypi.org/project/click
configparser 5.0.1https://pypi.org/project/configparserhttps://pypi.org/project/configparser
country-list 0.1.5https://pypi.org/project/country-listhttps://pypi.org/project/country-list
cycler 0.10.0https://pypi.org/project/cyclerhttps://pypi.org/project/cycler
decorator 4.4.2https://pypi.org/project/decoratorhttps://pypi.org/project/decorator
defusedxml 0.6.0https://pypi.org/project/defusedxmlhttps://pypi.org/project/defusedxml
docker-pycreds 0.4.0https://pypi.org/project/docker-pycredshttps://pypi.org/project/docker-pycreds
dtw-python 1.1.6https://pypi.org/project/dtw-pythonhttps://pypi.org/project/dtw-python
entrypoints 0.3https://pypi.org/project/entrypointshttps://pypi.org/project/entrypoints
epiweeks 2.1.2https://pypi.org/project/epiweekshttps://pypi.org/project/epiweeks
et-xmlfile 1.0.1https://pypi.org/project/et-xmlfilehttps://pypi.org/project/et-xmlfile
fastdtw 0.3.4https://pypi.org/project/fastdtwhttps://pypi.org/project/fastdtw
fasttext 0.9.2https://pypi.org/project/fasttexthttps://pypi.org/project/fasttext
filelock 3.0.12https://pypi.org/project/filelockhttps://pypi.org/project/filelock
fsspec 0.8.4https://pypi.org/project/fsspechttps://pypi.org/project/fsspec
future 0.18.2https://pypi.org/project/futurehttps://pypi.org/project/future
gitdb 4.0.5https://pypi.org/project/gitdbhttps://pypi.org/project/gitdb
GitPython 3.1.9https://pypi.org/project/GitPythonhttps://pypi.org/project/GitPython
google-auth 1.21.0https://pypi.org/project/google-authhttps://pypi.org/project/google-auth
google-auth-oauthlib 0.4.1https://pypi.org/project/google-auth-oauthlibhttps://pypi.org/project/google-auth-oauthlib
grpcio 1.31.0https://pypi.org/project/grpciohttps://pypi.org/project/grpcio
idna 2.9https://pypi.org/project/idnahttps://pypi.org/project/idna
importlib-metadata 1.6.0https://pypi.org/project/importlib-metadatahttps://pypi.org/project/importlib-metadata
ipykernel 5.2.1https://pypi.org/project/ipykernelhttps://pypi.org/project/ipykernel
ipython 7.14.0https://pypi.org/project/ipythonRRID: SCR_001658
ipython-genutils 0.2.0https://pypi.org/project/ipython-genutilshttps://pypi.org/project/ipython-genutils
ipywidgets 7.5.1https://pypi.org/project/ipywidgetshttps://pypi.org/project/ipywidgets
jdcal 1.4.1https://pypi.org/project/jdcalhttps://pypi.org/project/jdcal
jedi 0.17.0https://pypi.org/project/jedihttps://pypi.org/project/jedi
jieba 0.42.1https://pypi.org/project/jiebahttps://pypi.org/project/jieba
Jinja2 2.11.2https://pypi.org/project/Jinja2https://pypi.org/project/Jinja2
joblib 0.14.1https://pypi.org/project/joblibhttps://pypi.org/project/joblib
jsonschema 3.2.0https://pypi.org/project/jsonschemahttps://pypi.org/project/jsonschema
jupyter-client 6.1.3https://pypi.org/project/jupyter-clientRRID: SCR_018413
jupyter-core 4.6.3https://pypi.org/project/jupyter-coreRRID: SCR_018416
kiwisolver 1.2.0https://pypi.org/project/kiwisolverhttps://pypi.org/project/kiwisolver
lmdb 0.98https://pypi.org/project/lmdbhttps://pypi.org/project/lmdb
marisa-trie 0.7.5https://pypi.org/project/marisa-triehttps://pypi.org/project/marisa-trie
Markdown 3.2.2https://pypi.org/project/Markdownhttps://pypi.org/project/Markdown
MarkupSafe 1.1.1https://pypi.org/project/MarkupSafehttps://pypi.org/project/MarkupSafe
matplotlib 3.2.1https://pypi.org/project/matplotlibRRID: SCR_008624
mistune 0.8.4https://pypi.org/project/mistunehttps://pypi.org/project/mistune
mkl-fft 1.0.15https://pypi.org/project/mkl-ffthttps://pypi.org/project/mkl-fft
mkl-random 1.1.0https://pypi.org/project/mkl-randomhttps://pypi.org/project/mkl-random
mkl-service 2.3.0https://pypi.org/project/mkl-servicehttps://pypi.org/project/mkl-service
multidict 5.1.0https://pypi.org/project/multidicthttps://pypi.org/project/multidict
mwparserfromhell 0.5.4https://pypi.org/project/mwparserfromhellhttps://pypi.org/project/mwparserfromhell
nbconvert 5.6.1https://pypi.org/project/nbconverthttps://pypi.org/project/nbconvert
nbformat 5.0.6https://pypi.org/project/nbformathttps://pypi.org/project/nbformat
nltk 3.5https://pypi.org/project/nltkhttps://pypi.org/project/nltk
notebook 6.0.3https://pypi.org/project/notebookhttps://pypi.org/project/notebook
numpy 1.18.1https://pypi.org/project/numpyRRID: SCR_008633
oauthlib 3.1.0https://pypi.org/project/oauthlibhttps://pypi.org/project/oauthlib
openpyxl 3.0.4https://pypi.org/project/openpyxlhttps://pypi.org/project/openpyxl
packaging 20.1https://pypi.org/project/packaginghttps://pypi.org/project/packaging
pandas 1.2.2https://pypi.org/project/pandasRRID: SCR_018214
pandocfilters 1.4.2https://pypi.org/project/pandocfiltershttps://pypi.org/project/pandocfilters
parso 0.7.0https://pypi.org/project/parsohttps://pypi.org/project/parso
pathtools 0.1.2https://pypi.org/project/pathtoolshttps://pypi.org/project/pathtools
pexpect 4.8.0https://pypi.org/project/pexpecthttps://pypi.org/project/pexpect
pickleshare 0.7.5https://pypi.org/project/picklesharehttps://pypi.org/project/pickleshare
Pillow 7.1.2https://pypi.org/project/Pillowhttps://pypi.org/project/Pillow
plotly 4.6.0https://pypi.org/project/plotlyRRID: SCR_013991
prometheus-client 0.7.1https://pypi.org/project/prometheus-clienthttps://pypi.org/project/prometheus-client
promise 2.3https://pypi.org/project/promisehttps://pypi.org/project/promise
prompt-toolkit 3.0.5https://pypi.org/project/prompt-toolkithttps://pypi.org/project/prompt-toolkit
protobuf 3.13.0https://pypi.org/project/protobufhttps://pypi.org/project/protobuf
psutil 5.7.2https://pypi.org/project/psutilhttps://pypi.org/project/psutil
ptyprocess 0.6.0https://pypi.org/project/ptyprocesshttps://pypi.org/project/ptyprocess
pyasn1 0.4.8https://pypi.org/project/pyasn1https://pypi.org/project/pyasn1
pyasn1-modules 0.2.8https://pypi.org/project/pyasn1-moduleshttps://pypi.org/project/pyasn1-modules
pybind11 2.5.0https://pypi.org/project/pybind11https://pypi.org/project/pybind11
Pygments 2.6.1https://pypi.org/project/Pygmentshttps://pypi.org/project/Pygments
pyparsing 2.4.7https://pypi.org/project/pyparsinghttps://pypi.org/project/pyparsing
pyrsistent 0.16.0https://pypi.org/project/pyrsistenthttps://pypi.org/project/pyrsistent
python-dateutil 2.8.1https://pypi.org/project/python-dateutilhttps://pypi.org/project/python-dateutil
pytorch-lightning 1.2.7https://pypi.org/project/pytorch-lightninghttps://pypi.org/project/pytorch-lightning
pytorch-memlab 0.1.0https://pypi.org/project/pytorch-memlabhttps://pypi.org/project/pytorch-memlab
pytz 2020.1https://pypi.org/project/pytzhttps://pypi.org/project/pytz
PyYAML 5.3.1https://pypi.org/project/PyYAMLhttps://pypi.org/project/PyYAML
pyzmq 19.0.0https://pypi.org/project/pyzmqhttps://pypi.org/project/pyzmq
regex 2020.6.8https://pypi.org/project/regexhttps://pypi.org/project/regex
requests 2.24.0https://pypi.org/project/requestshttps://pypi.org/project/requests
requests-oauthlib 1.3.0https://pypi.org/project/requests-oauthlibhttps://pypi.org/project/requests-oauthlib
retrying 1.3.3https://pypi.org/project/retryinghttps://pypi.org/project/retrying
rsa 4.6https://pypi.org/project/rsaRRID: SCR_006095
sacremoses 0.0.43https://pypi.org/project/sacremoseshttps://pypi.org/project/sacremoses
scikit-learn 0.22.1https://pypi.org/project/scikit-learnRRID: SCR_002577
scipy 1.4.1https://pypi.org/project/scipyRRID: SCR_008058
seaborn 0.10.1https://pypi.org/project/seabornRRID: SCR_018132
Send2Trash 1.5.0https://pypi.org/project/Send2Trashhttps://pypi.org/project/Send2Trash
sentencepiece 0.1.91https://pypi.org/project/sentencepiecehttps://pypi.org/project/sentencepiece
sentry-sdk 0.19.0https://pypi.org/project/sentry-sdkhttps://pypi.org/project/sentry-sdk
shortuuid 1.0.1https://pypi.org/project/shortuuidhttps://pypi.org/project/shortuuid
six 1.14.0https://pypi.org/project/sixhttps://pypi.org/project/six
smmap 3.0.4https://pypi.org/project/smmaphttps://pypi.org/project/smmap
subprocess32 3.5.4https://pypi.org/project/subprocess32https://pypi.org/project/subprocess32
tensorboard 2.2.0https://pypi.org/project/tensorboardhttps://pypi.org/project/tensorboard
tensorboard-plugin-wit 1.7.0https://pypi.org/project/tensorboard-plugin-withttps://pypi.org/project/tensorboard-plugin-wit
terminado 0.8.3https://pypi.org/project/terminadohttps://pypi.org/project/terminado
testpath 0.4.4https://pypi.org/project/testpathhttps://pypi.org/project/testpath
tokenizers 0.8.0rc4https://pypi.org/project/tokenizershttps://pypi.org/project/tokenizers
torch 1.5.0https://pypi.org/project/torchhttps://pypi.org/project/torch
torchmetrics 0.2.0https://pypi.org/project/torchmetricshttps://pypi.org/project/torchmetrics
torchvision 0.6.0https://pypi.org/project/torchvisionhttps://pypi.org/project/torchvision
tornado 6.0.4https://pypi.org/project/tornadohttps://pypi.org/project/tornado
tqdm 4.46.0https://pypi.org/project/tqdmhttps://pypi.org/project/tqdm
traitlets 4.3.3https://pypi.org/project/traitletshttps://pypi.org/project/traitlets
transformers 3.0.0https://pypi.org/project/transformershttps://pypi.org/project/transformers
typing-extensions 3.7.4.2https://pypi.org/project/typing-extensionshttps://pypi.org/project/typing-extensions
urllib3 1.25.9https://pypi.org/project/urllib3https://pypi.org/project/urllib3
wandb 0.10.25https://pypi.org/project/wandbhttps://pypi.org/project/wandb
watchdog 0.10.3https://pypi.org/project/watchdogRRID: SCR_018355
wcwidth 0.1.9https://pypi.org/project/wcwidthhttps://pypi.org/project/wcwidth
webencodings 0.5.1https://pypi.org/project/webencodingshttps://pypi.org/project/webencodings
Werkzeug 1.0.1https://pypi.org/project/Werkzeughttps://pypi.org/project/Werkzeug
widgetsnbextension 3.5.1https://pypi.org/project/widgetsnbextensionhttps://pypi.org/project/widgetsnbextension
wikipedia2vec 1.0.4https://pypi.org/project/wikipedia2vechttps://pypi.org/project/wikipedia2vec
yarl 1.6.3https://pypi.org/project/yarlhttps://pypi.org/project/yarl
zipp 3.1.0https://pypi.org/project/zipphttps://pypi.org/project/zipp
  1 in total

1.  Inferring global-scale temporal latent topics from news reports to predict public health interventions for COVID-19.

Authors:  Zhi Wen; Guido Powell; Imane Chafi; David L Buckeridge; Yue Li
Journal:  Patterns (N Y)       Date:  2022-02-01
  1 in total

北京卡尤迪生物科技股份有限公司 © 2022-2023.