Вопрос или проблема
Я начинаю проект, в котором хочу извлекать ключевые слова из заданных сообщений. Ключевые слова, например, такие как: “жесткий диск”, “часы” или другие технические компоненты. Я работаю с набором данных, в котором техник написал небольшой текст, если он проводил обслуживание какого-либо объекта.
Сообщения часто очень отличаются по форме. Например, иногда сообщения начинаются с отремонтированного объекта, а иногда с текущей даты..
Я исследовал некоторые библиотеки NER, и не похоже, что они могут справляться с такими задачами. Особенно с немецким языком этим библиотекам трудно обнаруживать сущности.
У меня возникла идея использовать CRFsuite для обучения своей модели NER. Но я не уверен, насколько точным будет результат. Процесс будет включать в себя необходимость отметить ОЧЕНЬ много обучающих данных, и я не уверен, что результат оправдает затраченное время на маркировку этих ключевых слов.
Кто-нибудь имеет опыт с такими пользовательскими моделями NER? Насколько точно такая модель может извлекать нужные ключевые слова?
Буду признателен за любые отзывы! Привет всем!
Я бы рекомендовал вам использовать немецкий Bert для эмбеддингов:
https://huggingface.co/bert-base-german-cased
Вместе с косинусным сходством, как описано в этой статье:
https://towardsdatascience.com/keyword-extraction-with-bert-724efca412ea
Bert очень мощный для эффективного извлечения знаний из текста, благодаря этой библиотеке я достиг невероятных результатов.
Ответ или решение
Разработка модели обработки естественного языка (NER) для извлечения ключевых слов из текстов – это интересная, но сложная задача, особенно когда дело касается специфических технических терминов и различий в формулировках. Вот несколько рекомендаций и шагов, которые могут помочь вам в этом проекте.
Шаг 1: Сбор и аннотирование данных
Первое, что нужно сделать — это собрать достаточное количество текстовых данных из вашего набора. Если ваши данные уже содержат примеры сообщений о ремонте, вы можете использовать их в качестве основы. Однако, как вы отметили, важно провести аннотирование данных, чтобы ваша модель могла эффективно обучаться.
Рекомендуется создать аннотационные инструкции, чтобы унифицировать процесс и облегчить задачу. Вам нужно будет пометить любые интересующие вас ключевые слова, такие как "жесткий диск", "часы" и т.д. Этот процесс может быть трудоемким, но его нельзя избегать, так как количество и качество аннотированных данных напрямую влияют на производительность модели.
Шаг 2: Выбор модели
Как вы заметили, использование CRFsuite может быть одним из вариантов, однако, для более современных подходов стоит рассмотреть использование трансформеров, таких как BERT. Модель BERT, особенно в немецком варианте, может значительно повысить точность извлечения ключевых слов благодаря своей способности учитывать контекст слов в предложении.
Рекомендую вам использовать BERT на немецком языке для получения эмбеддингов. Вы можете настроить модель BERT для извлечения ключевых слов, используя после этого методы, такие как косинусное сходство для определения похожести слов и выбора наиболее подходящих.
Шаг 3: Обучение модели
После подготовки данных и выбора модели вам нужно приступить к обучению. Вы можете использовать фреймворки, такие как TensorFlow или PyTorch, чтобы реализовать вашу модель на основе BERT. При этом вам следует экспериментировать с гиперпараметрами, чтобы достичь наилучшего результата.
Шаг 4: Оценка и улучшение
После обучения модели вам нужно провести оценку ее производительности. Создайте тестовый набор данных, чтобы оценить, насколько точно модель извлекает ключевые слова. Используйте метрики, такие как F1-меры, точность и полнота, чтобы получить представление о её эффективности.
Если результаты не удовлетворительные, вы можете рассмотреть возможность увеличения объема аннотированных данных, дообучения модели или применения методов постобработки (например, использование правил для фильтрации извлеченных ключевых слов).
Заключение
Да, разработка собственной модели NER требует значительных временных затрат, особенно на этапе аннотирования данных. Однако, с использованием современных техник и моделей, таких как BERT, вы сможете достичь высоких результатов в извлечении ключевых слов. Это может окупить затраты времени, так как переобученные модели на ваших данных будут значительно более точны, чем производителей на "общих" наборах. Удачи в вашем проекте!