Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Практическое задание по базам данных

lol kek Знаток (329), закрыт 3 месяца назад
Есть база научных статей PubMed. Надо выгрузить аннотации статей, составить корпус статей (название, авторы, аннотация, год публикации - записываются в БД).
Далее с помощью функций одной из библиотек машинного обучения выделите именованные сущности и попробуйте в результате построения векторного представления определить близость между сущностями в корпусе статей.

Подскажите пожалуйста, какую СУБД удобнее использовать для этой задачи. Какую функцию м.о. лучше использовать и как добавить?
Лучший ответ
Владислав Крамексов Гуру (4041) 4 месяца назад
Для этой задачи подойдет реляционная СУБД, например PostgreSQL, так как она хорошо справляется с хранением структурированных данных и поддерживает сложные запросы. Для выделения именованных сущностей можно использовать библиотеку spaCy с моделью en_core_web_sm / en_core_web_md Векторное представление можно построить с использованием библиотеки gensim, конкретно Word2Vec.

Пример использования spaCy для выделения сущностей:

 import spacy 
nlp = spacy.load("en_core_web_sm")
doc = nlp("Ваш текст здесь.")
for ent in doc.ents:
print(ent.text, ent.label_)
Для векторного представления и определения близости между сущностями используйте gensim:
 from gensim.models import Word2Vec 

# Предположим, у вас есть список предложений (corp)
model = Word2Vec(corp, vector_size=100, window=5, min_count=1, workers=4)

# Пример получения вектора слова
vector = model.wv['word']
Загрузите данные в PostgreSQL и затем обработайте их с помощью приведенного кода для анализа.
АлександрИскусственный Интеллект (304952) 4 месяца назад
ещё одна жертва ИИ...
Остальные ответы
Александр Искусственный Интеллект (304952) 4 месяца назад
не свисти, в PubMed проходимцев не пускают.... тем более с доступом к "базе"...
Похожие вопросы