| name | scientific-text-mining-nlp |
| description | 科学テキストマイニング・NLP スキル。生物医学 NER(遺伝子/疾患/薬物/化合物)・
関係抽出(PPI / DDI / GDA)・文献ベースナレッジグラフ構築・
エビデンス要約・トピックモデリング・引用ネットワーク解析パイプライン。
PubTator / SemanticScholar / EuropePMC データ統合。
|
Scientific Text Mining & NLP
科学文献に対する自然言語処理(NLP)パイプラインを提供する。
生物医学エンティティ認識、関係抽出、ナレッジグラフ構築、
トピックモデリング、自動エビデンス要約を体系的に扱う。
When to Use
- 大量の科学文献から遺伝子・疾患・薬物名を自動抽出するとき
- タンパク質-タンパク質相互作用(PPI)等の関係を文献から抽出するとき
- 文献ベースのナレッジグラフを構築するとき
- 研究トレンドのトピックモデリングを行うとき
- 引用ネットワーク分析で影響力のある論文を同定するとき
Quick Start
1. 生物医学 NER(Named Entity Recognition)
import numpy as np
import pandas as pd
def biomedical_ner(texts, model="biobert", entity_types=None):
"""
生物医学テキストからのエンティティ認識。
model:
- "biobert": BioBERT — PubMed 事前学習 BERT
- "scispacy": SciSpaCy — 科学テキスト特化 spaCy
- "pubtator": PubTator3 API — NCBI の NER サービス
entity_types:
- Gene/Protein: 遺伝子・タンパク質名
- Disease: 疾患名(MESH / OMIM ID)
- Chemical/Drug: 化合物・薬物名(MeSH / DrugBank ID)
- Species: 生物種
- Mutation: 変異(tmVar 形式)
- Cell Line / Cell Type
"""
if entity_types is None:
entity_types = ["Gene", "Disease", "Chemical", "Species", "Mutation"]
if model == :
spacy
nlp = spacy.load()
scispacy.linking EntityLinker
nlp.add_pipe(, config={
: ,
:
})
all_entities = []
i, text (texts):
doc = nlp(text)
ent doc.ents:
all_entities.append({
: i,
: ent.text,
: ent.label_,
: ent.start_char,
: ent.end_char,
: ent._.kb_ents[][] ent._.kb_ents ,
: ent._.kb_ents[][] ent._.kb_ents ,
})
df = pd.DataFrame(all_entities)
()
df
model == :
transformers pipeline
ner_pipeline = pipeline(, model=,
aggregation_strategy=)
all_entities = []
i, text (texts):
entities = ner_pipeline(text)
ent entities:
all_entities.append({
: i, : ent[],
: ent[],
: ent[],
})
pd.DataFrame(all_entities)