通过子类别识别关键术语

时间:2019-03-11 15:49:35

标签: python machine-learning nlp tf-idf

背景: 我知道所需的主题类别,其中大约有300种。这些包括子类别(例如,生物化学具有子类别,例如聚合酶链反应,分子生物学等,每猫约10个子类别)。我没有带有主题标签的文档的数据(因此我被迫使用无监督的方法)。我的目标是基本上将文档分类为子类别。我也更喜欢将文档分类为多达5个子类别,尽管人类最终会选择这5个子类别中最理想的一个(可能是多个)。我目前将其视为单层分类问题,这似乎是使用无监督方法最容易的,尽管如果有时间我可能会开发多级模型。

我发现,使用我的数据集进行分类的最有效方法之一是创建一组“主题” word2vec向量,这些向量对给定子主题的关键词进行平均并找到最接近的k-“主题”向量到我文档的平均word2vec向量。最简单的例子:对于我的生物化学子类别分子生物学主题/类别,我将平均用于生物化学和分子生物学的载体。然后,我将获取一些文档,将其转换为矢量,然后查看它也是最近的主题矢量。

问题: 我试图找到最佳的单词,以平均给定主题向量。我目前正在使用TFIDF分数和/或guidedLDA主题模型的输出来识别每个类别的关键字。但是,这些问题在于子类别中有重复的单词(即“单元格”这个词在我的整体语料库中并不经常出现,因为它包含诸如电气工程之类非常独立的主题,但在80%的生物化学类别中却出现了) -idf得分低,但在我的子类别中得分高,因此得分高就被标识为关键字)。本质上,我想知道是否存在一种很好的方法来识别重叠度不高的关键字。我的重叠大部分是子类别。

研究至今/可能的答案? 我已经注意到,计算tfidf向量的方法略有不同,因此我认为将tfidf修改为具有更多阈值可能是可以的(在8/10子类别中使用同一词不太理想,但在3 / 10可能还可以)。 我还考虑将模型分为两个级别-类别和子类别,在此假设我的初始分类是正确的,我会为子类别识别新的关键字(到目前为止,我还没有真正追求这一点,因为我没有监督数据,因此很难知道我从中提取关键字的子类别文档是否实际上属于该子类别/会产生好词)。

0 个答案:

没有答案
相关问题