1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Prose-Go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проза — это библиотека обработки естественного языка (на данный момент только на английском языке) на чистом Go. Она поддерживает токенизацию, сегментацию, тегирование частей речи и извлечение именованных сущностей.

Более подробное описание производительности библиотеки можно найти здесь: «Представляем прозу v2.0.0: привносим NLP в Go».

Установка

$ go get github.com/jdkato/prose/v2

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

Содержание

  • Обзор
  • Токенизация
  • Сегментация
  • Тегирование
  • NER

Обзор

package main

import (
    "fmt"
    "log"

    "github.com/jdkato/prose/v2"
)

func main() {
    // Создать новый документ с конфигурацией по умолчанию:
    doc, err := prose.NewDocument("Go — это открытый язык программирования, созданный в Google.")
    if err != nil {
        log.Fatal(err)
    }

    // Перебрать токены документа:
    for _, tok := range doc.Tokens() {
        fmt.Println(tok.Text, tok.Tag, tok.Label)
        // Go NNP B-GPE
        // is VBZ O
        // an DT O
        // ...
    }

    // Пройтись по именованным сущностям документа:
    for _, ent := range doc.Entities() {
        fmt.Println(ent.Text, ent.Label)
        // Go GPE
        // Google GPE
    }

    // Итерировать по предложениям документа:
    for _, sent := range doc.Sentences() {
        fmt.Println(sent.Text)
        // Go — это открытый язык программирования, созданный в Google.
    }
}

Процесс создания документа следует следующей последовательности шагов:

токенизация -> тегирование POS -> извлечение NE
            \
             сегментация

Каждый шаг может быть отключен (при условии, что последующие шаги не требуются) путем передачи соответствующего функционального параметра. Чтобы отключить извлечение именованной сущности, например, вы должны сделать следующее:

doc, err := prose.NewDocument(
        "Go — это открытый язык программирования, созданный в Google.",
        prose.WithExtraction(false))

Токенизация

«Проза» включает токенайзер, способный обрабатывать современный текст, включая промежутки без слов, показанные ниже.

Тип Пример
Адреса электронной почты Jane.Doe@example.com
Хештеги #trending
Упоминания @jdkato
URL-адреса https://github.com/jdkato/prose
Смайлики :-), >:(, o_0 и т. д.
package main

import (
    "fmt"
    "log"

    "github.com/jdkato/prose/v2"
)

func main() {
    // Создать новый документ с конфигурацией по умолчанию:
    doc, err := prose.NewDocument("@jdkato, go to http://example.com thanks :).")
    if err != nil {
        log.Fatal(err)
    }

    // Перебирать токены документа:
    for _, tok := range doc.Tokens() {
        fmt.Println(tok.Text, tok.Tag)
        // @jdkato NN
        // , ,
        // go VB
        // to TO
        // http://example.com NN
        // thanks NNS
        // :) SYM
        // . .
    }
}

Сегментация Проза v2.0.0 включает значительно улучшенную версию пакета chunk версии 1.0.0, которая по умолчанию может идентифицировать людей (PERSON) и географические/политические объекты (GPE).

package main

import (
    "github.com/jdkato/prose/v2"
)

func main() {
    doc, _ := prose.NewDocument("Lebron James plays basketball in Los Angeles.")
    for _, ent := range doc.Entities() {
        fmt.Println(ent.Text, ent.Label)
        // Lebron James PERSON
        // Los Angeles GPE
    }
}

Однако, чтобы сделать эту функцию более полезной, мы упростили процесс обучения собственных моделей для конкретных случаев использования. Руководство по работе см. в статье «Prodigy + проза: радикально эффективное машинное обучение на Go» (https://medium.com/@errata.ai/prodigy-prose-radically-efficient-machine-teaching-in-go-93389bf2d772).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Prose — это библиотека для обработки текста на языке Go, которая поддерживает токенизацию, частеречную разметку и распознавание именованных сущностей. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-Prose-Go.git
git@api.gitlife.ru:oschina-mirror/mirrors-Prose-Go.git
oschina-mirror
mirrors-Prose-Go
mirrors-Prose-Go
master