検索結果のダウンロード、データの取得
doc2vecを試してみる
Pythonを使用
import warnings warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') from gensim.models.doc2vec import Doc2Vec from gensim.models.doc2vec import TaggedDocument from gensim.utils import simple_preprocess as preprocess
PMID = [ line.rstrip("\n") for line in open("PMID.txt") ]
train_copus = [ TaggedDocument(preprocess(doc),[PMID[i]]) for i, doc in enumerate(open("Absts.txt")) ]
#モデル作成 model = Doc2Vec(size = 50) model.build_vocab(train_copus)
#学習 model.train(train_copus, total_examples = model.corpus_count, epochs=10)
#CQを想定して適当に単語を羅列 cq = "smoking cardiovascular disease CKD risk factor progression development"
result = model.infer_vector(preprocess(cq))
print(model.docvecs.most_similar([result]))
結果
[('10922320', 0.920274019241333), ('27529223', 0.9125033617019653), ('16413372', 0.9093979001045227), ('20586949', 0.903326690196991), ('18264634', 0.8981373906135559), ('8995019', 0.8950796723365784), ('7586787', 0.8943875432014465), ('1959342', 0.8922560214996338), ('24143353', 0.8917223811149597), ('8015652', 0.8913285732269287)]
まったくうまくいっていない。
アブストラクトが短い文献が上位にきている。
CQ同様に短いアブストラクトが似ていると判定?