对具有相同含义的单词进行分组。在LDA中

时间:2020-06-24 23:52:38

标签: python gensim lda

我想知道是否可以将LDA输出中包含的相同单词组合在一起,即由

生成的单词
doc_lda = lda_model[corpus]

例如

[(0,
  '0.084*"tourism" + 0.013*"touristic" + 0.013*"Madrid" + '
  '0.010*"travel" + 0.008*"half" + 0.007*"piare" + '
  '0.007*"turism"')]

我想将tourism, touristicturism组合在一起(拼写错误)。 有可能吗?

这是一些以前相关的代码:

lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
                                           id2word=id2word,
                                           num_topics=num_topics, 
                                           random_state=100,
                                           update_every=1,
                                           chunksize=100,
                                           passes=10,
                                           alpha=[0.01]*num_topics,
                                           per_word_topics=True,
                                           eta=[0.01]*len(id2word.keys())) 

谢谢

1 个答案:

答案 0 :(得分:2)

要理解的关键是,与线性回归不同,LDA需要大量调整和迭代才能正常工作。但这对于某些问题很有用。

您的直觉是正确的,因为“旅游”,“旅游”和“旅游”都应该是一个词。但是,解决方案不是在最后显示给您各自的负载,而是在开始时进行词干和词根化(aka,词干和词组),将不想要的词添加到停用词列表中,并进行某种程度的预处理或另一个。我将单独解决这些问题,但不要分组讨论,因为我认为这很明显。另外,由于您只给出了一组单词和负载,因此提供主题的数量并不是一件很有意义的事情,因为您可能这样做就很好。

茎/茎(第一个)

这是科学和经验部分的起点,也是沮丧的起点。但是,在这里您将获得最大,最轻松的收益。似乎“旅游”和“旅游”最好通过词干(作为游览)来组合。事实并非如此,因为在某些情况下一个人击败另一个人。在下面的示例中,PortaStemer遭受了明智的茎的折磨,但是定形化虽然准确地抓住了“哭泣”,但却无法抓住“研究”和学习的相同之处。

Using PorterStemer
studies is studi
studying is studi
cries is cri
cry is cri

Lemmatize
studies is study
studying is studying
cries is cry
cry is cry

有多个提取器,例如Porter2,Snowball,Hunspell和Paice-Husk。因此,显而易见的第一步是看看其中是否有任何更有用的东西。

如上所述,词法定理将为您提供相似但有所不同的结果集。

这里没有替代品。这就是将数据科学家与最喜欢的人或具有职称的数据分析师区分开来的原因。最好的时机是过去,因此您会直觉哪种方法最适合此类语料库。现在是第二好的时间。

迭代但满意

我认为您没有无限的资源;您必须satisfice。对于上述内容,您可以考虑对文本进行预处理,以更正或删除拼写错误的单词。使用非英语单词比较棘手。最简单的解决方案是删除它们或将它们添加到您的停用词列表中,但这可能不是最佳解决方案。自定义字典也是一种选择。

了解当前限制

截至2020年,没有人codeswitching方面做得很好;当然不是免费的开源资源。网格空间是我所了解的最好的知识,尽管他们的demo is pretty amazing不能很好地处理代码切换。现在,我在这里做一些归纳,因为我假设“ piare”是西班牙语中的“ I will”,至少是谷歌翻译所说的。如果真是这样,您的结果将感到困惑。但是,当您查看加载(.007)时,似乎比它值得的工作还要多。