python-3.x - 使用 Python 与句子形式的数据关联规则

标签 python-3.x sparse-matrix text-mining apriori market-basket-analysis

我想从数据集中的文本字段计算关联规则,例如下面的使用 Python:

ID  fav_breakfast
1   I like to eat eggs and bacon for breakfast.
2   Bacon, bacon, bacon!
3   I love pancakes, but only if they have extra syrup!
4   Waffles and bacon. Eggs too!
5   Eggs, potatoes, and pancakes. No meat for me!

请注意 Orange 2.7不是一个选项,因为我使用的是当前版本的 Python (3.6),所以 Orange 3是公平的游戏;但是,我似乎无法弄清楚该模块如何处理这种格式的数据。

在我看来,第一步是将上面的矩阵转换为稀疏矩阵,如下所示(截断的):

enter image description here

接下来,我们要删除停用词(即 I、to、and、for 等)、大小写问题、数字、标点符号、解释诸如马铃薯、土 bean 、土 bean 等单词(与词形还原)。

一旦稀疏矩阵就位,下一步就是计算稀疏矩阵中所有单词/字符串之间的关联规则。我已经在 R 中使用 arules 包完成了此操作;但是,我无法识别 Python 的“arules 等效项”。

我设想的最终解决方案将包括左侧和右侧参数的列表,以及按降序排列的规则的支持度、置信度和提升力,最高提升力规则位于顶部,最低提升力规则位于底部(同样,在 R 中使用arules很容易获得)。

此外,我希望能够指定“培根”的右侧,它还按降序显示规则的支持度、置信度和提升度,其中“培根”的提升度规则最高顶部和最低的升力规则与底部的“培根”相关。

使用 Orange3-Associate 可能是到达这里的途径;但是,我在网上找不到任何好的例子。提前感谢您的帮助!

最佳答案

这就是你的想法吗? Orange 应该能够传递一个附加组件的输出并将其用作另一个附加组件的输入。

enter image description here

[编辑] 我能够用代码重建这个案例,但它远没有那么性感:

import numpy as np
from orangecontrib.text
import Corpus, preprocess, vectorization
from orangecontrib.associate.fpgrowth import *

data = Corpus.from_file("deerwester")
p = preprocess.Preprocessor()
preproc_corpus = p(data)
v = vectorization.bagofwords.BoWPreprocessTransform(p, "Count", preproc_corpus)
N = 30
X = np.random.random((N, 50)) > .9
itemsets = dict(frequent_itemsets(X, .1))
rules = association_rules(itemsets, .6)
list(rules_stats(rules, itemsets, N))

关于python-3.x - 使用 Python 与句子形式的数据关联规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44635518/

相关文章:

algorithm - 需要一种更快、更有效的方法来将元素添加到 python 中的列表中

Python OpenCV 获取fitLine的角度方向

python - Pandas 数据帧索引 : KeyError:none of [columns] are in the [columns]

java - Mahout SparseMatrix 的密度

python - 如何从数字列表创建稀疏矩阵

sparse-matrix - Chapel 循环变量未声明

python - 在 Python 中使用正则表达式从文本中提取列表

python - 命令提示符不能一个字母一个字母地写?

python - 如何通过gensim在LDA分析中删除单词

R 文本挖掘 - 处理复数