最近在学习自然语言处理的主题模型部分,发现很多网上的主题模型相关的文章只有数据处理和模型训练部分,没有模型评估部分,通过查阅OCTIS(一个常用的主题模型评估库)的官方文档,学习了一些OCTIS的使用方法,这里以对BERTopic主题模型进行主题连贯性和主题多样性的评估、
**安装包版本:**
BERTopic:0.14.1 (三月份最新的版本)
OCTIS: 0.12.0(最新版本)
官方文档链接为(OCTIS)
通过具体查阅官方文档代码可知:
1、数据处理
如果要使用OCTIS,就需要对训练数据首先进行处理,这里的处理部分可以使用octis自带的preprocess
import os
import string
from octis.preprocessing.preprocessing import Preprocessing
os.chdir(os.path.pardir)
# Initialize preprocessing
preprocessor = Preprocessing(vocabulary=None, max_features=None,
remove_punctuation=True, punctuation=string.punctuation,
lemmatize=True, stopword_list='english',
min_chars=1, min_words_docs=0)
# preprocess
dataset = preprocessor.preprocess_dataset(documents_path=r'..\corpus.txt', labels_path=r'..\labels.txt')
# save the preprocessed dataset
dataset.save('hello_dataset')
Preprocessing大类中是一些对数据的处理操作,包括停用词去除,词形还原等。
调用Preprocessing类下的preprocess_dataset方法对文档进行处理,labels_path对应每个文档的主题标记的文件,不是必要的,可以只填文档文件。
该方法会初始化返回一个Dataset对象,里面有corpus语料,vocabulary词组文件,labels主题标记文件等。
Dataset自带一个save对象,会把Dataset对象中的数据保存在路径文件夹中,保存格式为:
corpus file: a .tsv file (tab-separated) that contains up to three c