我正在尝试提出一种算法来查找同一句中产品的前3个最常用的形容词。我想使用关联规则挖掘(Apriori算法)。
为此,我计划使用推特数据。我可以或多或少地将twits分解为句子然后通过过滤我可以找到产品名称和形容词。
例如,过滤后我有像;
这样的数据ipad mini,很棒
ipad mini,可怕
三星galaxy s2,最好
... 等
以前定义了产品名称和形容词。所以我有一套产品名称和一组形容词,我正在寻找。
我已经阅读了几篇关于情感分析和规则挖掘的论文,他们都说使用了Apriori算法。但是他们没有说明他们是如何使用它的,也没有提供细节。
Therefore how can I reduce my problem to association rule mining problem?
What values should I use for minsup and minconf?
How can I modify Apriori algorithm to solve this problem?
我在想的是什么;
我应该为每种产品分别找到频繁的形容词。然后通过排序我可以获得前3个形容词。但我不知道它是否正确。
答案 0 :(得分:0)
为每个产品找到最常用的3个形容词不是关联规则挖掘。
为了让Apriori产生良好的效果,你必须对长度为4或更长的项目集感兴趣。 Apriori修剪从3开始,并开始在4长度产生主要收益。在长度2,它主要是列举所有对。如果你只对配对(产品,形容词)感兴趣,那么apriori就会做更多的工作而不是必要的。
相反,请使用计算。使用哈希表。如果您确实拥有Exabytes数据,请使用近似计数和重击球算法。 (但很可能,在提取这些对后,你没有exabytes数据......)
如果您只需解决这个更简单的问题,请不要费心去研究关联规则挖掘。
关联规则挖掘确实仅用于查找
等模式pasta, tomato, onion -> basil
更复杂的规则。 Apriori的贡献是当从长度n-1开始时减少候选者的数量 - > n为长度n> 2.当n>时,它变得更有效。 3。
答案 1 :(得分:0)
将您的问题减少到关联规则挖掘(ARM)
创建一个包含所有主题和形容词的特征向量。如果一个feed包含topic,那么为它放置1,否则为0。例如。让我们假设主题是三星和苹果。形容词很好而且很可怕。而饲料包含三星好。然后相应的元组是:
三星苹果好可怕1 0 1 0
需要对Apriori算法进行修改
生成“主题”类型的关联规则 - > '形容词'使用约束apriori算法。 '主题' - > '形容词'是一种约束。
如何设置MinSup和MinConf: 阅读题为“Minin top-k association rules”的论文。对于3个顶级形容词,用k = 3实现。