Разработка алгоритма автоматической классификации комментариев на английском языке в соответствии с их токсичным тоном

Публикация - один из самых популярных форматов общения в социальной сети. Особенности векторного представления слов в двумерном пространстве. Архитектура рекуррентной нейронной сети. Модерация текста - инструмент борьбы с токсичностью в Интернете.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.09.2018
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

next_layer = Bidirectional(LSTM(args.lstm_size, return_sequences=True,

recurrent_dropout = args.recurrent_dropout, dropout = args.dropout))(concatenated_embeddings)

next_layer = Bidirectional(GRU(args.gru_size, recurrent_dropout = args.recurrent_dropout, dropout = args.dropout))(next_layer)

output = Dense(6, activation = 'sigmoid')(next_layer)

model = Model(inputs=input, outputs = output)

model.compile(loss='binary_crossentropy',

optimizer='adam', metrics = ['accuracy'])

best = 0

it = 0

while True:

model.fit(

X_train, y_train,

batch_size = args.batch_size,

epochs = 1

)

preds = pd.DataFrame(model.predict(X_valid), columns = classes)

valid_score = np.mean([roc_auc_score(valid_data[class_name], preds[class_name]) for class_name in classes])

print(valid_score)

if valid_score > best:

it = 0

best = valid_score

preds = pd.DataFrame(model.predict(X_test), columns = classes)

submit = pd.concat([test_data, preds], axis = 1)

submit[['id', 'toxic', 'severe_toxic', 'obscene', 'threat', 'insult', 'identity_hate']].to_csv('submission-neural.csv',index = None)

else:

it += 1

if it >= 10:

break

Приложение 5

import pandas as pd

import json

import logging

logging.basicConfig(filename = 'log.log', format='%(asctime)s %(message)s', level=logging.INFO)

from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.linear_model import LogisticRegression

from flask import Flask, request, Response

classes = ['toxic', 'severe_toxic', 'obscene', 'threat', 'insult', 'identity_hate']

print('Loading train data ...')

train_data = pd.read_csv('data/train.csv').fillna(' ')

vectorizer = TfidfVectorizer(

token_pattern=r'\w{1,}',

stop_words = 'english',

sublinear_tf = True,

max_features = 10000)

print('Fitting vectorizer ...')

vectorizer.fit(train_data['comment_text'])

print('Transforming into TF-IDF sequences ...')

X_train = vectorizer.transform(train_data['comment_text'])

models = {}

print('Training ...')

for class_name in classes:

y_train = train_data[class_name]

models[class_name] = LogisticRegression(penalty = 'l2', C = 0.1, solver = 'sag')

models[class_name].fit(X_train, y_train)

app = Flask("toxic")

def predict(text):

vec = vectorizer.transform([text])

results = {}

for class_name in classes:

results[class_name] = models[class_name].predict_proba(vec)[0][1]

return results

@app.route('/')

def index():

return '''

<h1 id="toxicapi">TOXIC API</h1>

<p>API создано в рамках выполнения выпускной квалификационной работы студента <strong>Ляшука Александра</strong>.</p>

<p><em>НИУ ВШЭ-НН <br />

факультет информатики <br />

математики и комьютерных наук <br />

направление - прикладная математика и информатика.</em> </p>

<h2 id="">Использование</h2>

<ul>

<li>Для определения токсичности комментария, выполните запрос: /toxic/?text=TEXT</li>

</ul>

'''

@app.route('/toxic/')

def pos_tagging():

string = request.args.get('text')

response = {}

if string is not None:

results = predict(string)

return Response(json.dumps(results,ensure_ascii=False, indent = 1), mimetype='application/json')

else:

return '''

<ul>

<li>Для определения токсичности комментария, выполните запрос: /toxic/?text=TOXIC COMMENT</li>

</ul>

'''

app.run(host = '0.0.0.0', port = 80)

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.