Sai*_*ran 2 python classification machine-learning nltk python-3.x
问题:
\n\n查找域名的二元组、三元组和二元组分数。我有一个数据集,我想使用一些简单的分类来区分它们是否是 dga 域。所以我想从使用二元组、三元组和熵开始。
\n\n我尝试过的:
\n\nfrom nltk import ngrams\nsentence = 'some big sentence'\nn = 2\nsixgrams = ngrams(sentence.split(), n)\nfor grams in sixgrams:\nprint grams\n
Run Code Online (Sandbox Code Playgroud)\n\n这里我得到了一个句子的二元组。但我的意图不是这个。
\n\n我想转换
\n\n示例域:google.co.in
\n\nbigrams\n\n[\xe2\x80\x98$g\xe2\x80\x99, \xe2\x80\x98go\xe2\x80\x99, \xe2\x80\x98oo\xe2\x80\x99, \xe2\x80\x98og\xe2\x80\x99, \xe2\x80\x98gl\xe2\x80\x99, \xe2\x80\x98le\xe2\x80\x99, \xe2\x80\x98e$\xe2\x80\x99, \xe2\x80\x98$c\xe2\x80\x99, \xe2\x80\x98co\xe2\x80\x99, \xe2\x80\x98o$\xe2\x80\x99, \xe2\x80\x98$i\xe2\x80\x99, \xe2\x80\x98in\xe2\x80\x99, \xe2\x80\x98n$\xe2\x80\x99]\ntrigrams\n\n[\xe2\x80\x98$go\xe2\x80\x99, \xe2\x80\x98goo\xe2\x80\x99, \xe2\x80\x98oog\xe2\x80\x99, \xe2\x80\x98ogl\xe2\x80\x99, \xe2\x80\x98gle\xe2\x80\x99, \xe2\x80\x98le$\xe2\x80\x99, \xe2\x80\x98$co\xe2\x80\x99, \xe2\x80\x98co$\xe2\x80\x99, \xe2\x80\x98$in\xe2\x80\x99, \xe2\x80\x98in$\xe2\x80\x99]\n
Run Code Online (Sandbox Code Playgroud)\n\n然后计算 bigrams_score。从中我可以用它来预测模块并进行分析。
\n\n谁能帮助我了解如何解决这个问题?
\n>>> from nltk import word_tokenize, ngrams
>>> s = "foo bar sentence"
# Word ngrams.
>>> list(ngrams(word_tokenize(s), 2))
[('foo', 'bar'), ('bar', 'sentence')]
# Character ngrams.
>>> list(ngrams(s, 2))
[('f', 'o'), ('o', 'o'), ('o', ' '), (' ', 'b'), ('b', 'a'), ('a', 'r'), ('r', ' '), (' ', 's'), ('s', 'e'), ('e', 'n'), ('n', 't'), ('t', 'e'), ('e', 'n'), ('n', 'c'), ('c', 'e')]
Run Code Online (Sandbox Code Playgroud)