python - 从两列(标签、文本)数据源进行文本分类从哪里开始?
问题描述
我们收到来自第三方的滥用投诉。我已经以 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 中做了很多与机器学习无关的事情。
解决方案
您可以使用 SKLearnCountVectorizer
或TF-IDF
. 这是一种方法的粗略支出:
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
count_vect = CountVectorizer()
text = ['text1', ..]
targets = ['abuse', ...]
matrix = count_vect.fit_transform(text)
encoder = LabelEncoder()
targets = encoder.fit_transform(targets)
randomForest = RandomForestClassifier()
randomForest.fit(matrix, targets)
推荐阅读
- apache-spark - spark数据帧写入HDFS的文件名
- php - CI_session 未保存在 Mozilla Firefox 中
- android - 在没有 Android Studio 的情况下从 Android 源代码生成签名的 APK
- python-3.x - 在 Python 中枚举和打印行。
- c# - System.ObjectDisposedException:“无法写入已关闭的 TextWriter。” 设置输出错误
- javascript - 从另一个类属性计算的类属性(ES6)
- excel - 从相同的 Excel 文件但在不同的工作表上迭代地从 Excel 中读取
- c# - INSERT 语句与 FOREIGN KEY 约束“FK_SalesProductTable_SalesMainTable”1 冲突
- go - type *url.URL 没有字段或方法 ParseRequestURI
- python - 如何从python中的4d矩阵切片?