从两列(标签,文本)数据源的文本分类开始?

时间:2018-07-17 03:39:09

标签: python machine-learning

我们收到来自第三方的滥用投诉。我已经以XML格式导出了一大堆投诉,然后将其编译为pandas DataFrame(),同时清除了诸如以下的电子邮件地址,主机名,URL和IP地址之类的内容。

文件“ learning_data.txt”由数千行组成,每行如下所示:

<label>:<a long string of text>

到目前为止的脚本

#!/usr/bin/env python

import pandas as pd


def main():
    data = open('learning_data.txt').readlines()

    print('Loading data...')
    labels, texts = ([], [])
    for line in data:
        label, text = line.split(':', 1)
        labels.append(label)
        texts.append(text)

    print('Adding to pandas DataFrame()')
    trainDF = pd.DataFrame()
    trainDF['label'] = labels
    trainDF['text'] = texts

    print(trainDF)


if __name__ == '__main__':
    main()

输出

                                                   label                                               text
8            Attacks and Reconnaissance__SSH Brute Force   Abuse from ... Dear Administrator,  We have d...
9                        Malicious Code/Traffic__Unknown    - [ Vulnerable Host in Canada] In support of...
10               Fraud__Copyright/Trademark Infringement   Unauthorized Use of Copyrights RE: TC--b--- *...
...                                                  ...                                                ...
43635                    Malicious Code/Traffic__Unknown   tdss report about ... last detected -- :: Sec...
43636                                    Fraud__Phishing   Issue : phishing attack at /// Dear Sir or Ma...

标签格式为__,因为我不希望进行多种分类(如果有的话)。

我所见过的所有有关机器学习和文本分类的演示都使用了一些黑匣子数据源,例如20个新闻组等。由于我是从自己的数据开始的,因此很难将其包含在示例中/教程。

编辑:我正在使用Python 3.6.6

我从这里去哪里?

我应该使用sklearn还是其他图书馆?火炬?如何使用文字制作功能并将其添加到标签中?如何写出学习到的数据,以便随后可以使用另一个脚本使用该数据集来预测新文本的标签?

我从零开始着手进行机器学习,但是我在Python中做了很多与机器学习无关的工作。

1 个答案:

答案 0 :(得分:1)

您可以使用SKLearn name age gender curse round time bet result finalresult rafael de siqueira campos gil lemos 19 m economia 1 0 30.00 PERDEU NA ... rafael de siqueira campos gil lemos 19 m economia 19 0 20.00 PERDEU 1879.00 CountVectorizer。这是该方法的粗略支出:

TF-IDF