如何在将语料库中的异常文档传递给LDA之前将其删除?
我正在使用LDA进行主题建模。我有大量来自不同网站的数据。我想将它们分为5类,但是异常文档的存在会导致结果不准确。
任何人都可以帮助解决这个问题。我只希望分类后出现与任何5个类别相关的文章。
答案 0 :(得分:0)
您需要将当前数据集的一部分作为模型中的输入。文章中是否有与众不同的特殊特征?例如,如果某些文章的长度太长,则可以通过以下方式进行子集划分:
corpus = corpus[corpus['text'].str.len() < 1000]
或者,如果您手动找到一些异常值,则可以通过以下方式手动将其删除:
corpus = corpus[corpus['title'] != 'Stackoverflow saved my life']
答案 1 :(得分:0)
简便的方法:扔掉太频繁的单词,以至于很少告诉我们关于该主题的信息,以及太少出现在<15行中的单词,然后将100,000个单词排在最前面
dictionary_15.filter_extremes(no_below=15, no_above=0.5, keep_n=100000)
硬方法:如果只希望某个主题中的文档,则可以构建一个两层LDA,该LDA通常首先分配主题,然后通过将分类在第一层中的那些文档过滤到目标主题并进行分配来构建第二个lda。我将用五个主题构建一个LDA,然后将它们输出到一个csv中,然后通过在Alteryx中进行排序和过滤来创建一个新文档,甚至excel可能比python更容易,并使用该文档执行第二步。