Как можно создать систему, в которой я могу добавлять новости через Python, просматривать их с возможностью фильтрации, поиска, ранжирования, оценивания, и ранжировать последующие новости на основе оценок, использовав метод ближайшего соседа через нечеткое сравнение? Какие технологии (с акцентом на Python) стоит рассмотреть для этого проекта, который будет развернут локально без больших вложений?
Для реализации подобной системы вы можете использовать следующие технологии с акцентом на Python: 1. Flask или Django для создания веб-приложения, через которое будет происходить добавление и просмотр новостей. 2. База данных SQLite или PostgreSQL для хранения новостей и оценок пользователей. 3. Python NLTK (Natural Language Toolkit) для нечеткого сравнения новостей на основе текстов. 4. Python библиотеки для работы с алгоритмами машинного обучения, такие как Scikit-learn или Tensorflow для реализации метода ближайшего соседа. 5. HTML, CSS и JavaScript для создания пользовательского интерфейса. Для развертывания проекта локально без больших вложений, вы можете использовать бесплатные хостинги для веб-приложений, такие как Heroku или PythonAnywhere. Также вы можете использовать бесплатные базы данных, такие как SQLite, или попробовать облачные варианты баз данных, такие как Google Cloud Firestore или Firebase Realtime Database.
1. pandas для манипуляций с данными и построения пайплайна.
2. nltk + scikit-learn для работы с текстом (ранжирования, трансформации в векторное пространство, алгоритмы сравнения для различных метрик и т.д)
3. plotly+dash (для веб интерфейса с возможностью собрать красивый фронт на python (react, html, css) на все это есть python обертка) + dash bootstrap components коллекция крутых готовых компонентов.
Примеры готовых качественных веб приложений Галерея код есть на гитхаб, там же найдешь.
БД тоже подсоединяется без проблем, примеры в документации. Вообще очень упрощая dash это способ превратить модели машинного обучения в веб приложение. Со всеми сопутствующими потребностями.
1. pandas для манипуляций с данными и построения пайплайна.
2. nltk + scikit-learn для работы с текстом (ранжирования, трансформации в векторное пространство, алгоритмы сравнения для различных метрик и т.д)
3. plotly+dash (для веб интерфейса с возможностью собрать красивый фронт на python (react, html, css) на все это есть python обертка) + dash bootstrap components коллекция крутых готовых компонентов.
Примеры готовых качественных веб приложений Галерея код есть на гитхаб, там же найдешь.
БД тоже подсоединяется без проблем, примеры в документации. Вообще очень упрощая dash это способ превратить модели машинного обучения в веб приложение. Со всеми сопутствующими потребностями.
б) через web интерфейс, могу всё просмотреть (с настройкой фильтрации, с поиском, ранжированием) и, главное(!), я могу оценить новость;Дополнительное поле
в) все последующие новости могут ранжироваться в зависимости от ранее поставленных оценокrank
б) сохранение оценки в хранилище
в) чтение из него
Добавляешь дополнительные критерии (фильтрация и дате, названию и пр.) и должно быть достаточно для поиска.
Сущности: новости, оценки.
категории (рубрики) , для простоты, можно сделать в качестве поля в "новости".
Sphinx Search, OpenSearch/ElasticSearch, Apache Solr - с одной стороны, они на слуху, но настройка и сопровождение могут быть обременительными.
Возможно, достаточно и Postgresql. Тут надо проверить насколько эффективно будет решение с точки зрения поиска.
Компоненты:
1. DB
2. шаблоны Django (для простоты) или REST API с веб-интерфейсом отдельными приложениями
Разворачивать решение можно на Docker Compose.
б) через web интерфейс, могу всё просмотреть (с настройкой фильтрации, с поиском, ранжированием) и, главное(!), я могу оценить новость;Дополнительное поле
в) все последующие новости могут ранжироваться в зависимости от ранее поставленных оценокrank
б) сохранение оценки в хранилище
в) чтение из него
Добавляешь дополнительные критерии (фильтрация и дате, названию и пр.) и должно быть достаточно для поиска.
Сущности: новости, оценки.
категории (рубрики) , для простоты, можно сделать в качестве поля в "новости".
Sphinx Search, OpenSearch/ElasticSearch, Apache Solr - с одной стороны, они на слуху, но настройка и сопровождение могут быть обременительными.
Возможно, достаточно и Postgresql. Тут надо проверить насколько эффективно будет решение с точки зрения поиска.
Компоненты:
1. DB
2. шаблоны Django (для простоты) или REST API с веб-интерфейсом отдельными приложениями
Разворачивать решение можно на Docker Compose.