Вопрос или проблема
У меня есть задача классификации документов, где мне нужно определить, связан ли определённый документ с недвижимостью или нет. Я получаю URL веб-страницы, из которой извлекаю весь текст, а затем с помощью своей обученной модели, основанной на LSTM, классифицирую, относится ли она к объектам недвижимости. Здесь страница с объектом недвижимости означает, что страница должна говорить только об одном объекте, а не о нескольких.
Моя модель может получить один из следующих типов входных данных:
- URL, содержащий уникальное предложение по недвижимости и говорящий об этом конкретном объекте. Например, 1
- URL, содержащий список объектов недвижимости, соответствующий определённым критериям. Например, все объекты с тремя спальнями в определённом диапазоне арендной платы. Например, 2. Эти страницы я называю индексными страницами.
- Просто какой-то случайный URL с этих веб-сайтов брокеров, рассказывающий о их организации, достижениях, командах и т. д. Например, 3
Разные сайты показывают коллекции или списки объектов недвижимости по-разному. Некоторые сайты брокеров могут иметь список объектов недвижимости, где каждый объект является гиперссылкой и текстом (обычно заголовком объекта). В сценарии 2 элемент списка может содержать несколько дополнительных подробностей, помимо заголовка объекта. Первый случай моя модель классифицирует как не относящийся к недвижимости, но последний тип веб-страниц сбивает с толку, и модель имеет тенденцию классифицировать их как объекты недвижимости. В сценарии 3 модель также работает очень хорошо, пока размер текста на странице не слишком велик. Эти страницы могут говорить о проданном объекте недвижимости, о их видении и т. д.
Во время обучения моей модели я удалил все стоп-слова, знаки препинания, текст гиперссылок, текст полей формы с размером словаря 1000. Я не выполнял никакой лемматизации.
- Как я могу улучшить классификацию, когда модель имеет высокую тенденцию идентифицировать эти индексные страницы (которые содержат много деталей о нескольких объектах недвижимости) как тоже относящиеся к недвижимости?
- Должен ли я уменьшить размер словаря, поскольку, когда текст, извлечённый с веб-страницы, слишком большой, его идентифицируют как объект недвижимости?
Я обратился к этой ссылке, чтобы создать и обучить свою модель.
Я предпочёл бы использовать что-то вроде векторизации с помощью Sentence-BERT, чтобы вычислить коэффициент схожести текста целевой веб-страницы и некоторого эталонного набора данных. Эталонный набор данных должен содержать тексты для различных классов страниц.
Ответ или решение
Для улучшения классификации документов, особенно в случае, когда нужно различать похожие документы (например, страницы с уникальными объявлениями о недвижимости и индексные страницы с несколькими объявлениями), вам могут помочь несколько стратегий и подходов:
-
Улучшение предобработки текста:
- Лемматизация и стемминг: В дополнение к удалению стоп-слов и пунктуации, рассмотрите возможность использования лемматизации или стемминга, чтобы уменьшить разнообразие форм слов и улучшить обобщающую способность модели.
- Разделение на фразы: Вместо работы с целыми документами рассмотрите возможность разделения текста на более короткие фразы или предложения, что позволит модели лучше захватывать контекст.
-
Изменение архитектуры модели:
- Дальнейшее усложнение модели: Возможно, полезно использовать более сложную архитектуру, такую как модели на основе трансформеров (например, BERT или его варианты). Эти модели могут лучше справляться с контекстом и различать между собой схожие тексты.
- Многослойные LSTM: Если вы хотите остаться в рамках LSTM, попробуйте увеличить количество слоев и нейронов, а также использовать регуляризацию (например, Dropout) для предотвращения переобучения.
-
Обогащение обучающего датасета:
- Добавление контрарных примеров: Соберите больше примеров как для страниц о недвижимости, так и для индексных страниц. Это поможет улучшить способность модели различать разные классы.
- Использование семантических векторов: Рассмотрите возможность применения таких подходов, как Sentence-BERT для получения векторного представления текстов и вычисления схожести с примерами из вашего датасета.
-
Финетюнинг гиперпараметров:
- Настройка размера словаря: Экспериментируйте с размером словаря и включением или исключением определенных типовых слов (например, названия характеристики недвижимости) из анализа.
- Изменение порога классификации: Попробуйте различные пороги для принятия решения о том, что страница является страницей о недвижимости, это может помочь уменьшить число ложных срабатываний на индексных страницах.
-
Оценка и мониторинг производительности:
- Использование метрик: Регулярно оценивайте производительность вашей модели, используя метрики, такие как точность, полнота и F1-мера, для более подробного анализа классификации, особенно для прослеживания производительности на индексных страницах.
- Кросс-валидация: При обучении модели используйте методы кросс-валидации для проверки надежности модели. Это поможет выявить, как модель работает на различных подвыборках данных.
-
Интерактивное обучение:
- Получение обратной связи на выходе модели: Рассмотрите возможность интеграции системы, где пользователи могут предоставлять обратную связь на классификацию, и используйте эту информацию для дальнейшего улучшения модели.
Эти рекомендации помогут вам улучшить качество классификации и минимизировать путаницу между схожими документами. Не забывайте проводить регулярные тестирования и итеративно улучшать вашу модель на основе новых данных и обратной связи.