将具有相同含义的单词分组。在低密度脂蛋白

Grouping words with same meaning. in 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())) 

谢谢

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

您的直觉是正确的,'tourism'、'touristic' 和 'turism' 应该都是一个词。然而,解决方法并不是在最后为您呈现它们各自的负载,而是在早期进行词干提取和词形还原(又名词干提取和词条化),将不需要的词添加到停用词列表,以及某种程度上的预处理或其他。我将单独解决它们,但不会作为一个整体来解决,因为我认为这很明显。此外,因为您只提供了一组单词和负载,所以提供主题数量并不是很有成效,因为您可能做得很好。

Stemming/Lemming(选一个)

这是科学和经验部分的起点,也是挫败感的起点。但是,这是您将获得最大和最简单收益的地方。似乎 'tourism' 和 'touristic' 最好通过词干提取(如游览)结合起来。事实并不那么明确,因为在某些情况下,一个人会打败另一个人。在下面的示例中,PortaStemer 遇到了制作合理词干的问题,但词形还原未能捕捉到 'studies' 和学习是如何相同的,尽管它准确地捕捉到了 'cry'.

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; certainly not a free and opensource resource. Gridspace is about the best I know of, and while their demo is pretty amazing 方面做得很好,他们无法很好地处理语码转换。现在,我在这里做一些归纳,因为我假设 'piare' 是西班牙语 'I will',至少 google 翻译是这么说的。如果是这样的话,您的结果将会很混乱。但是当您查看负载 (.007) 时,它似乎比它值得做的更多。