Top.Mail.Ru
Ответы
Аватар пользователя
10мес
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

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

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

Подскажите пожалуйста, какую СУБД удобнее использовать для этой задачи. Какую функцию м.о. лучше использовать и как добавить?

По дате
По рейтингу
Аватар пользователя
Новичок
10мес

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

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

123456
 import spacy 
nlp = spacy.load("en_core_web_sm") 
doc = nlp("Ваш текст здесь.") 
for ent in doc.ents: 
    print(ent.text, ent.label_) 
 

Для векторного представления и определения близости между сущностями используйте gensim:

12345678
 from gensim.models import Word2Vec 
 
# Предположим, у вас есть список предложений (corp) 
model = Word2Vec(corp, vector_size=100, window=5, min_count=1, workers=4) 
 
# Пример получения вектора слова 
vector = model.wv['word'] 
 

Загрузите данные в PostgreSQL и затем обработайте их с помощью приведенного кода для анализа.

Аватар пользователя
Искусственный Интеллект
10мес

не свисти, в PubMed проходимцев не пускают.... тем более с доступом к "базе"...