将具有相同意思的单词分组。在LDA

2024-06-25 22:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有可能将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())) 

多谢各位


Tags: docmodelcorpus单词numldatopicstravel
1条回答
网友
1楼 · 发布于 2024-06-25 22:37:55

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

你的直觉是正确的,“旅游”、“旅游”和“旅游”应该是一个词。然而,修复方法并不是在最后给出它们各自的加载,而是在早期使用词干分析和柠檬化(又名词干分析和柠檬化),将不需要的单词添加到停止词列表中,并在某种程度上进行一些预处理。我将分别讨论它们,但不是作为一个整体,因为我认为这是相当明显的。另外,因为你只给出了一组单词和内容,所以提供大量的主题并不是很有成效,因为你可能做得很好

堵塞/旅鼠(挑一个)

这就是科学和经验部分以及挫折感的开始。但是,这是你获得最大和最容易的收益的地方。似乎“旅游”和“旅游”最好通过词干(如tour)结合起来。事实并不是那么清楚,因为在某些情况下,一方打败了另一方。在下面的例子中,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、Hunspill和Paice外壳。因此,显而易见的第一步是看看这些方法是否更有用

如上所述,柠檬化将得到一组类似但略有不同的结果

这里的工作是无可替代的。这就是一个数据科学家与一个业余爱好者或数据分析师之间的区别。做这件事的最佳时机是在过去,这样你就可以凭直觉知道什么最适合这种语料库;第二个最好的时机是现在

迭代但满足要求

我想你没有无限的资源;你必须satisfice。对于上述情况,您可以考虑预处理文本以纠正或删除拼写错误的单词。如何处理非英语单词更为棘手。最简单的解决方案是删除它们或将它们添加到你的停止语列表中,但这可能不是最好的解决方案。自定义词典也是一种选择

了解当前限制

截至2020年,没有人在codeswitching方面做得很好;当然不是免费的开源资源。Gridspace是我所知道的最好的,虽然它们的demo is pretty amazing,但它们不能很好地处理代码切换。现在,我在这里做一些归纳,因为我假设“piare”是西班牙语中“I will”的意思,至少谷歌翻译是这么说的。如果是这样的话,你的结果将是混乱的。但是,当您查看加载(.007)时,这似乎比值得做的工作要多

相关问题 更多 >