Giter VIP home page Giter VIP logo

contancts-in-item's Introduction

Описание

Данный проект позволяет определять, содержит ли то или иное объявление контактную информацию в каких-либо полях, а также выделить точное местонахождение этой информации в предположении, что она находится в описании.

Формат входных данных

Ожидается, что датасеты с объявлениями представляют собой csv-файлы со следующим набором полей:

  • title - заголовок (текст),
  • description - описание (текст),
  • category - категория (одна строка из списка допустимых категорий),
  • price - цена (неотрицательное вещественное число),
  • is - целевая переменная (0 или 1). Может отсутствовать в тестовых наборах данных.

Также в датасетах могут присутствовать другие поля, которые не будут использоваться для получения результатов.

Формат выходных данных

Часть 1

Первый из сгенерированных файлов содержит оценки вероятности наличия контактных данных в каждом из объявлений в тестовом датасете.

Пример выходного файла:

index prediction
0 0.42
1 0.05
2 0.94

Часть 2

Второй из сгенерированных файлов содержит оценки положения контактной информации в описаниях объявлений. Положение задается индексами первого и последнего символов, относящихся к искомой подстроке. В случаях, когда контактная информация в поле description отсутствует, в качестве обоих индексов используется значением NaN.

Пример выходного файла:

index start end
0 3 15
1 40 52
2 nan nan
3 152 166

Использование проекта

Для запуска проекта требуется задать следующие переменные окружения:

# Путь к директории, содержащей файл train.csv
DATA_ROOT=/path/to/train/data
# Путь к директории, содержащей файл test.csv
TEST_DATA_ROOT=/path/to/test/data
# Директория для записи выходных данных (необязательно)
OUTPUT_ROOT="$TEST_DATA_ROOT"
# Метка, используемая в имени выходных файлов (необязательно)
MODEL=cii_net

Обучение

Результатом стадии обучения являются словарь токенов (файл weights/vocabulary.json) и веса обученной модели (файл weights/model-50.pth). Эти файлы создаются при помощи следующих команд:

  1. Создание словаря:
python3 lib/preprocess.py --input $DATA_ROOT/train.csv --output weights/vocabulary.json
  1. Обучение модели и создание словаря токенов (если он не был создан отдельно):
python3 lib/network.py

Тестирование/инференс

Для тестирования необходимо предварительно создать словарь токенов (файл weights/vocabulary.json) и веса обученной модели (файл weights/model.pth).

Для генерации выходных данных используется следующая команда:

python3 lib/run.py

contancts-in-item's People

Watchers

Dmitrii Sokol avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.