Допустим, мы хотим парсить chicagomusiccompass.com.
Как видите, в нем есть несколько карточек, каждая из которых представляет какое-то событие. Теперь давайте проверим следующее:
Обратите внимание, что название мероприятия:
jazmin bean: the traumatic livelihood tour
Итак, теперь вопрос: Как извлечь имя исполнителя из текста?
Как человек, я могу «легко» сказать, что Джазмин Бин — художник — просто загляните на их вики-страницу. Но написать код для извлечения этого имени может оказаться непросто.
Мы могли бы подумать: «Эй, что-нибудь перед : должно быть именем исполнителя», что кажется умным, не так ли? В этом случае это работает, а как насчет этого:
happy hour on the patio: kathryn & chris
Здесь порядок перевернут. Мы могли бы продолжать добавлять логику для обработки разных случаев, но вскоре мы получим массу хрупких правил, которые, вероятно, не охватят всего.
Именно здесь могут пригодиться модели Распознавания именованных объектов (NER). Они имеют открытый исходный код и могут помочь нам извлекать имена из текста. Он не сможет отследить все случаи, но в большинстве случаев они предоставят нам необходимую информацию.
Благодаря такому подходу извлечение данных становится намного проще. Я выбираю Python, потому что сообщество, занимающееся машинным обучением на Python, просто непобедимо.
from gliner import GLiNER model = GLiNER.from_pretrained("urchade/gliner_base") text = "jazmin bean: the traumatic livelihood tour" labels = ["person", "bands", "projects"] entities = model.predict_entities(text, labels) for entity in entities: print(entity["text"], "=>", entity["label"])
Что генерирует выходные данные:
jazmin bean => person
Теперь давайте посмотрим на другой случай:
happy hour on the patio: kathryn & chris
Выход:
kathryn => person chris => person
источник-GLiNER
Потрясающе, правда? Больше никакой утомительной логики для извлечения имен, просто используйте модель. Конечно, он не охватывает все возможные случаи, но для моего проекта такой уровень гибкости вполне подходит. Если вам нужна большая точность, вы всегда можете:
Разработчику программного обеспечения настоятельно рекомендуется быть в курсе инструментов в области машинного обучения. Не все можно решить с помощью простого программирования и логики — некоторые задачи лучше решать с помощью моделей и статистики.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3