Giter Club home page Giter Club logo

models's Introduction

b-labs-models Build Status

Готовые к использованию статистические модели для русского языка
В качестве обучающего корпуса использовался словарь OpenCorpora (4,000+ документов на конец мая 2017 года, в основном - новости и художественная литература)

Установка

$ pip install b-labs-models

Определение границ предложений

Результат по F1-мере при кросс-валидации (1/3 данных использовались как тестовые): 0.99

from b_labs_models import SentenceSegmentator

text = '''
Разница цепей Маркова от сетей Маркова заключается в том, что первые генеративны (т.е. предсказывают вероятность следующего шага), а вторые — дискриминатины, т.е. рассчитывают вероятность текущего состояния.
Использовать тот или иной алгоритм зависит от решаемой задачи. А второе, и наиболее важное отличие — это то, что сети Маркова учитывают не только шаг (два и т.д.) вправо-влево по какому-либо из параметров, а по пучку взаимосвязанных параметров.
Скажем, для перевода это не только все его варианты, а и тематический контекст перевода, синтаксис и пр.
'''

segmentator = SentenceSegmentator()
sentences = segmentator.split(text)

assert len(list(sentences)) == 4

Токенизация

Результат по F1-мере при кросс-валидации (условия те же): 0.98
Здесь стоит отметить то, что у проекта OpenCorpora свой взгляд на токенизацию: например, токены могут содержать внутри себя точки (как Яндекс.Деньги) или одно слово может быть разбито на несколько токенов (например, Жан-Поль - это три токена)

from b_labs_models import Tokenizer

text = 'Плита дорожная железобетонная ПДН.м Серия 3.503.1-91, выпуск 1'
tokenizer = Tokenizer()

tokens = tokenizer.split(text)

assert list(tokens) == [
    'Плита',
    'дорожная',
    'железобетонная',
    'ПДН',
    '.м',
    'Серия',
    '3.503.1-91',
    ',',
    'выпуск',
    '1',
]

Частеречная разметка (part of speech tagging)

from b_labs_models import POSTagger

tagger = POSTagger()

tokens = ['Весело', 'стучали', 'храбрые', 'сердца']
labels = tagger.tag(tokens)

assert list(zip(tokens, labels)) == [
    ('Весело', 'ADJS'),
    ('стучали', 'VERB'),
    ('храбрые', 'ADJF'),
    ('сердца', 'NOUN'),
]

Обучение

TBD

License

Source code licensed under MIT license, but source data (OpenCorpora annotated corpus, for example) may have different license.

models's People

Contributors

dveselov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.