我正在尝试从使用Python的书中学习apriori机器学习算法,作为该学习的一部分,我目前仍然遇到以下问题:
以下代码构造似乎工作正常:
Ck = [[1], [2], [3], [4], [5]]
for tranid in range(10):
for candidate in Ck:
print("Printing candidate value: ", candidate)
Run Code Online (Sandbox Code Playgroud)
但是,以下不起作用:
Ck = [[1], [2], [3], [4], [5]]
Ck2 = map(frozenset, Ck)
for tranid in range(10):
for candidate in Ck2:
print("Printing candidate value: ", candidate)
Run Code Online (Sandbox Code Playgroud)
当我将原始迭代的每个元素映射到冻结集时,我注意到内部循环("对于Ck2中的候选者")仅执行一次.之后它永远不会执行.上面没有冻结集的代码正确地循环内循环10次.但是,使用frozenset映射,我可以让内循环只执行一次.
请帮我解决这个问题.本书已将可迭代值映射到frozenset,因为它们不希望它对于算法的目的是可变的.我只是想按原样跟随它.
我在Anaconda(Spyder)上使用Python 3.5.1.
请帮助,因为我不熟悉Python和机器学习.
谢谢和问候,Mahesh.
我正在研究一个问题,在这个问题中我列出了很多单词的出现频率.以下是我得到的样本:
drqsQAzaQ:1
OnKxnXecCINJ:1
QoGzQpg:1
cordially:1
Sponsorship:1
zQnpzQou:1
Thriving:1
febrero:1
rzaye:1
VseKEX:1
contributed:1
SNfXQoWV:1
hRwzmPR:1
Happening:1
TzJYAMWAQUIJTkWYBX:1
DYeUIqf:1
formats:1
eiizh:1
wIThY:1
infonewsletter:8
BusinessManager:10
MailScanner:12
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,像''cordially'这样的单词是实际的英语单词,而像'infonewsletter'这样的单词本身并不是真正的英语单词,但是我们可以看到它们实际上是英语并且意味着什么.然而,像'OnKxnXecCINJ'这样的词并不意味着什么(实际上它们是来自另一个字符集的词,但我在练习中忽略它们并且坚持英语) - 我可以将它们丢弃为垃圾
Python中检测和消除上述字典中的垃圾词的最佳方法是什么?
我尝试使用nltk.corpus.word.words()检查每个单词,但由于我的数据集非常庞大,因此它会影响我的性能.而且,我不确定这是否会给我一个像'infonewsletter'这样的词的真实
请帮忙.
谢谢,马赫什.