このプロジェクトは、ESG(Environmental, Social, and Governance)ドメインの知識グラフを自動構築するためのツールセットです。最新の機械学習技術を活用して、テキストデータから概念間の関係を抽出し、Neo4jデータベースに格納します。また、GraphRAGを用いて生成AIの応答品質を向上させることを目指しています。
src/data/text_processor.py)src/models/knowledge_completion.py)src/knowledge_graph/neo4j_manager.py)src/knowledge_graph/ontology.py)src/rag/graph_rag.py)src/evaluation/metrics.py)src/data/text_processor.py)src/knowledge_graph/ontology.py)src/knowledge_graph/neo4j_manager.py)src/models/knowledge_completion.py)src/rag/graph_rag.py)git clone https://github.com/yourusername/esg_ontology.git
cd esg_ontology
uv venv
source .venv/bin/activate # Linuxの場合
.venv\Scripts\activate # Windowsの場合
uv pip install -e .
uv run python -m spacy download ja_core_news_lg
.envファイルを作成し、以下の内容を設定してください:NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
from src.data.text_processor import ESGTextProcessor
from src.knowledge_graph.ontology import ESGOntology
# テキストプロセッサの初期化
processor = ESGTextProcessor()
# テキストの処理
text = """
当社は2050年までにカーボンニュートラルの実現を目指しています。
温室効果ガスの削減に向けて、再生可能エネルギーの導入を進めるとともに、
取締役会での議論を通じてESG経営を強化しています。
"""
result = processor.process_text(text)
# オントロジーの構築
ontology = ESGOntology()
ontology.add_concept("排出量取引", "気候変動", relation="part_of")
ontology.add_instance("Jクレジット制度", "排出量取引", {"country": "日本", "established": 2013})
from src.models.knowledge_completion import ESGKnowledgeCompletion
# 知識補完モデルの初期化
model = ESGKnowledgeCompletion()
# LLMによる関係推論
relations = model.infer_relations_with_llm("気候変動")
# GNNによるリンク予測
predictions = model.predict_links(graph, "気候変動", top_k=5)
esg_ontology/
├── src/
│ ├── data/ # データ処理モジュール
│ ├── models/ # 機械学習モデル
│ ├── knowledge_graph/ # 知識グラフ関連
│ └── utils/ # ユーティリティ関数
├── tests/ # テストコード
├── notebooks/ # Jupyter notebooks
├── data/ # データファイル(.gitignore)
│ ├── raw/ # 生データ
│ └── processed/ # 処理済みデータ
├── pyproject.toml # プロジェクト設定
└── README.md
MITライセンス
プルリクエストは歓迎します。大きな変更を加える場合は、まずissueを作成して変更内容を議論してください。
このプロジェクトは、ESG(Environmental, Social, and Governance)ドメインの知識グラフを自動構築するためのツールセットです。最新の機械学習技術を活用して、テキストデータから概念間の関係を抽出し、Neo4jデータベースに格納します。また、GraphRAGを用いて生成AIの応答品質を向上させることを目指しています。
src/data/text_processor.py)src/models/knowledge_completion.py)src/knowledge_graph/neo4j_manager.py)src/knowledge_graph/ontology.py)src/rag/graph_rag.py)src/evaluation/metrics.py)src/data/text_processor.py)src/knowledge_graph/ontology.py)src/knowledge_graph/neo4j_manager.py)src/models/knowledge_completion.py)src/rag/graph_rag.py)git clone https://github.com/yourusername/esg_ontology.git
cd esg_ontology
uv venv
source .venv/bin/activate # Linuxの場合
.venv\Scripts\activate # Windowsの場合
uv pip install -e .
uv run python -m spacy download ja_core_news_lg
.envファイルを作成し、以下の内容を設定してください:NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
from src.data.text_processor import ESGTextProcessor
from src.knowledge_graph.ontology import ESGOntology
# テキストプロセッサの初期化
processor = ESGTextProcessor()
# テキストの処理
text = """
当社は2050年までにカーボンニュートラルの実現を目指しています。
温室効果ガスの削減に向けて、再生可能エネルギーの導入を進めるとともに、
取締役会での議論を通じてESG経営を強化しています。
"""
result = processor.process_text(text)
# オントロジーの構築
ontology = ESGOntology()
ontology.add_concept("排出量取引", "気候変動", relation="part_of")
ontology.add_instance("Jクレジット制度", "排出量取引", {"country": "日本", "established": 2013})
from src.models.knowledge_completion import ESGKnowledgeCompletion
# 知識補完モデルの初期化
model = ESGKnowledgeCompletion()
# LLMによる関係推論
relations = model.infer_relations_with_llm("気候変動")
# GNNによるリンク予測
predictions = model.predict_links(graph, "気候変動", top_k=5)
esg_ontology/
├── src/
│ ├── data/ # データ処理モジュール
│ ├── models/ # 機械学習モデル
│ ├── knowledge_graph/ # 知識グラフ関連
│ └── utils/ # ユーティリティ関数
├── tests/ # テストコード
├── notebooks/ # Jupyter notebooks
├── data/ # データファイル(.gitignore)
│ ├── raw/ # 生データ
│ └── processed/ # 処理済みデータ
├── pyproject.toml # プロジェクト設定
└── README.md
MITライセンス
プルリクエストは歓迎します。大きな変更を加える場合は、まずissueを作成して変更内容を議論してください。