Durch das Training des Textes mit vorhandenen Tags wird die Klassifizierung neuer Text realisiert.
2019.3.25: Das Projekt war ursprünglich ein Geschäft mit öffentlichen Meinungen des Unternehmens, aber später nahm es an einigen Wettbewerben teil und fügte einige kleine Funktionen hinzu. Zu dieser Zeit wollte ich nur einige einfache Modelle des maschinellen Lernens und Deep -Lernens integrieren, um meine technischen Fähigkeiten auszuüben. Nachdem ich mit einigen Internetnutzern kommuniziert hatte, hatte ich das Gefühl, dass es keine Notwendigkeit gab, ein allgemeines Modul zu erstellen (niemand benutzt es sowieso, haha ~). Ich war in letzter Zeit ziemlich gemächlich, deshalb habe ich alle nutzlosen schicken Parameter und Funktionen gelöscht, um einfacher zu sein, und es wurden nur Vorverarbeitung und Faltungsnetzwerke aufbewahrt.
Mehr als 4.000 E-Commerce-Daten mit einem Label und mehr als 15.000 Multi-Label-Daten für Justizkriminalität wurden erstellt. Die Daten dienen nur zur akademischen Forschung und die kommerzielle Verbreitung ist verboten.
from TextClassification . load_data import load_data
# 单标签
data = load_data ( 'single' )
x = data [ 'evaluation' ]
y = [[ i ] for i in data [ 'label' ]]
# 多标签
data = load_data ( 'multiple' )
x = [ i [ 'fact' ] for i in data ]
y = [ i [ 'accusation' ] for i in data ]

Wird verwendet, um die ursprünglichen Textdaten vorzubereiten, einschließlich Wortsegmentierung, Konvertierungscodierung, Länge Gleichmäßigkeit und anderen Methoden, die in Textklassifizierung eingekapselt wurden.py
preprocess = DataPreprocess ()
# 处理文本
texts_cut = preprocess . cut_texts ( texts , word_len )
preprocess . train_tokenizer ( texts_cut , num_words )
texts_seq = preprocess . text2seq ( texts_cut , sentence_len )
# 得到标签
preprocess . creat_label_set ( labels )
labels = preprocess . creat_labels ( labels ) Integrieren Sie Vorverarbeitungs-, Netzwerktraining und Netzwerkvorhersage. Bitte beachten Sie zwei Demo -Skripte für die Demo
Die Methode lautet wie folgt:
from TextClassification import TextClassification
clf = TextClassification ()
texts_seq , texts_labels = clf . get_preprocess ( x_train , y_train ,
word_len = 1 ,
num_words = 2000 ,
sentence_len = 50 )
clf . fit ( texts_seq = texts_seq ,
texts_labels = texts_labels ,
output_type = data_type ,
epochs = 10 ,
batch_size = 64 ,
model = None )
# 保存整个模块,包括预处理和神经网络
with open ( './%s.pkl' % data_type , 'wb' ) as f :
pickle . dump ( clf , f )
# 导入刚才保存的模型
with open ( './%s.pkl' % data_type , 'rb' ) as f :
clf = pickle . load ( f )
y_predict = clf . predict ( x_test )
y_predict = [[ clf . preprocess . label_set [ i . argmax ()]] for i in y_predict ]
score = sum ( y_predict == np . array ( y_test )) / len ( y_test )
print ( score ) # 0.9288