Рубрики
Без рубрики

Машинное обучение Серия проекта: Часть 1 – Python Именованное распознавание объекта

Эта статья была первоначально опубликована в https://programbterballbackpack.com. Заинтересованы в большем количестве историй … Теги с Python, Machinelearning, программированием, NLP.

Серия проекта машинного обучения: создание персональных знаний системы управления знаниями (3 части серии)

Эта статья была первоначально опубликована в https://programmerbackpack.com .

Заинтересованы в большем количестве историй? Следуй за мной в Twitter в @b_dmarius. И я опубликую туда каждую новую статью.

В более ранней статье Я говорил о начале путешествия по изучению машины, начиная с личного проекта – личная система управления знаниями, которая может помочь мне отслеживать то, что я учусь.

Определяя свои требования к приложению, как это, я также смотрю на новые вещи и поделись их здесь, может быть, кто-то еще также найдет их полезным.

Допустим, я пойман на исследовательской сессии, и я наткнулся на имя исследователя, который звучит мне знакомо. Конечно, я могу посмотреть, что человек в Google, но что, если я хочу знать, откуда я знаю это имя? Я прочитал что-то, опубликованное этим автором или я прочитал немного новостей о нем/нее? Было бы полезно иметь мою историю исследований в истории где-то и посмотреть этот человек в этой истории и выяснить, что мне понравилось немного работы авторской работы раньше.

Что называется признание сущности

Извлечение информации является очень сложной проблемой. Задача преобразования естественного языка – так что-то, что очень нюансировано и может иметь тонкие различия от человека к человеку – к чему-то, что все компьютеры могут понять безумно сложно и является проблемой, которую мы все еще очень далеки от решения. Еще программисты используются для принятия большой проблемы и решать его кусочко, пока, надеюсь, вся задача решается.

Именованное распознавание сущности представляет собой подзадачу от поля экстракции информации, которое отвечает за идентифицирующие объекты в непереданном тексте и присвоении их списку предопределенных объектов. Список объектов может быть стандартным или определенным, если мы тренируем нашу собственную лингвистическую модель к определенному набору данных. Но большую часть времени организации, которые обычно определяются, являются лицами, организациями, местами, время, денежные ценности и так далее.

Именованное распознавание сущности состоит в том, что на самом деле две подсчет: Названная идентификация сущности и Названная классификация сущности И это означает, что мы впервые найдете сущности, упомянутые в данном тексте, и только тогда мы назначаем их определенному классу в нашем списке предопределенных объектов.

Например, давайте имеем следующее предложение: «Билл Гейтс был генеральным директором Microsoft до 2000 года».

Здесь мы можем определить, что Билл Гейтс , Microsoft и 2000 наши сущности. Затем мы правильно классифицируем их как лицо, организацию и дату соответственно. Мы должны позаботиться, чтобы мы не идентифицировали счет и ворота как два разных допуска, так как мы используем оба слова для разговоров о том же человеке!

Как работает названное распознавание сущности

Честно говоря, это действительно зависит от того, кто построил модель. Я знаю, что это звучит поверхностно, но это правда. Существует много исследований для поиска идеальной модели NER, а исследователи придумывают различные методы и подходы. Я также уверен, что существует много исследований, которое не было опубликовано, но это потому, что компании используют запатентованные технологии для обеспечения того, чтобы они построили лучшую модель.

Но, конечно, есть несколько шагов, которые следует принимать каждую модель NER, и это то, о чем мы будем говорить сейчас.

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

  • Сегментация границы предложения
  • Слово токенизация
  • Часть метки речи

Второй шаг в именованном распознавании сущности будет искать токены, которые мы получили с предыдущего шага, снова появляются база знаний. База знаний может быть онтологией со словами, их значением и отношениями между ними.

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

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

Python по имени Учебное пособие по распознаванию сущности с Spacy

К счастью, нам не нужно тратить годы исследования, чтобы иметь возможность использовать модель NER. На данный момент мы можем использовать один из лучших в отрасли, и это Spacy Отказ Я очень поощряю вас открыть эту ссылку и посмотрите на это. У него много функциональных возможностей для основных и продвинутых задач NLP. И делать нерно легко легко, как вы увидите.

Сначала давайте установим SPAcy и скачайте английскую модель.

pip3 install spacy
python3 -m spacy download en_core_web_sm

Затем откройте свой любимый редактор. Мы будем использовать два экстракта с страницы Wikipedia о Vue.js Отказ

import spacy
from spacy import displacy

if __name__ == "__main__":

    nlp = spacy.load('en_core_web_sm')
    doc = nlp("Vue is an open-source Model–view–viewmodel "
              "JavaScript framework for building user interfaces and single-page applications."
              " It was created by Evan You, and is maintained by him and the rest of the active core team members coming"
              " from various companies such as Netlify and Netguru."
              " Vue was created by Evan You after working for Google using AngularJS in a number of projects. "
              " He later summed up his thought process: \"I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight\""
              " The first source code commit to the project was dated July 2013, and Vue was first released the following February, in 2014. ")


    for entity in doc.ents:
        print(entity.text, entity.label_)

Это даст нам следующие объекты:

Vue ORG
JavaScript ORG
Evan You PERSON
Netlify and Netguru ORG
Google ORG
Angular ORG
first ORDINAL
July 2013 DATE
Vue ORG
first ORDINAL
February DATE
2014 DATE

Мы видим, что большинство объектов были определены правильно. Нет неправильной ошибки (без сущности, которое было определено как что-то, когда это должно было быть чем-то другим), но все же у нас есть один пример существа, который вообще не был идентифицирован («angularjs»).

Но все, что нам нужно было 4 строки кода, и мы получили нашу названную систему распознавания сущности! Вы можете проверить здесь Все объекты, которые Spacy могут идентифицировать.

Визуализация нашего именованных результатов распознавания сущности

Мы можем визуализировать результаты, которые мы получаем, добавив только одну строку кода:

displacy.serve(doc, style="ent")

Упаковка

Таким образом, в современной статье мы немного обсуждали о именованном распознавании сущности, и мы увидели простой пример того, как мы можем использовать SPAcy для создания и использования нашей модели распознавания объекта. Большое спасибо за прочтение этой статьи, я надеюсь, что вам понравилось так сильно, как я написал!

Заинтересованы в большем количестве? Следуй за мной в Twitter в @b_dmarius. И я опубликую туда каждую новую статью.

Серия проекта машинного обучения: создание персональных знаний системы управления знаниями (3 части серии)

Оригинал: “https://dev.to/b_dmarius/machine-learning-project-series-part-1-python-named-entity-recognition-41hb”