全局目标:我正在使用NLTK和Gensim在Python中制作LDA产品评论模型.我想在不同的n-gram上运行它.
问题:对于unigrams来说,一切都很好,但是当我使用bigrams时,我会开始通过重复信息来获取主题.例如,主题1可能包含:['good product', 'good value'],而主题4可能包含:['great product', 'great value'].为了人类,这些都明显传达同样的信息,但显然'good product'和'great product'是不同的双字母组.我如何在算法上确定它'good product'并且'great product'足够相似,因此我可以将其中一个出现的所有出现转换为另一个(可能是在语料库中更常出现的那个)?
我尝试了什么:我玩过WordNet的Synset树,运气不佳.事实证明,这good是一个"形容词",但它great是一个"形容词卫星",因此返回None路径相似性.我的思考过程是做以下事情:
理想的情况是,我想一个算法,可以确定good和great类似在我的文集(也许在共现的意义上),所以它可以扩展到不属于普通英语语言的一部分的话,但出现在我的文集,所以它可以扩展到n克(也许Oracle和terrible我的文集是同义的,或feature engineering与feature creation类似).
有关算法的建议,或建议使WordNet synset行为?