TTechSpecs

Knowledge Extraction Skill

Knowledge Extraction 是 Graphify 中最重要的提取型 skills 之一,專注於使用 LLM 從非結構化文字中自動提取實體與關係。

何時使用

在以下情況中使用 Knowledge Extraction skill:

需要使用的情境

  • 從文件中提取專業術語和概念
  • 識別文本中的人員、組織、地點等實體
  • 建立概念之間的關係網絡
  • 將非結構化筆記轉為結構化知識

不適合的情境

  • 已經有結構化的數據(直接使用資料庫)
  • 簡單的關鍵字提取(使用傳統 NLP)
  • 不需要關係的單一實體提取

提取流程

第一步:識別實體

識別文本中的實體類型:

// 輸入文本
"張三是 Graphify 專案的核心開發者,負責後端架構設計"

// 識別實體
{
  "entities": [
    { "text": "張三", "type": "Person" },
    { "text": "Graphify", "type": "Project" },
    { "text": "後端架構設計", "type": "Role" }
  ]
}

第二步:提取關係

建立實體之間的關係:

// 識別關係
{
  "relationships": [
    { "from": "張三", "relation": "WORKS_ON", "to": "Graphify" },
    { "from": "張三", "relation": "HAS_ROLE", "to": "後端架構設計" }
  ]
}

第三步:附加屬性

為實體附加詳細屬性:

// 附加屬性
{
  "attributes": [
    { "entity": "張三", "key": "role", "value": "核心開發者" }
  ]
}

如何使用 Knowledge Extraction Skill

觸發詞

「使用 knowledge-extraction skill 從這段文字提取知識」

實際範例

使用者輸入

使用 knowledge-extraction skill 從這段文字提取知識:

「Graphify 是一個將大型語言模型(LLM)與圖譜結合的工具。它由 Graphify-Labs 開發,主要用於構建知識圖譜和應用。核心開發者包括張三和李四,分別負責後端和前端開發。」

AI 回應

正在使用 Knowledge Extraction skill 提取知識...

**識別的實體**:
1. **Graphify** - Product
   - 描述:LLM 與圖譜結合的工具
   - 用途:構建知識圖譜和應用

2. **Graphify-Labs** - Organization
   - 角色:開發組織

3. **張三** - Person
   - 角色:核心開發者
   - 負責:後端開發

4. **李四** - Person
   - 角色:核心開發者
   - 負責:前端開發

**建立的關係**:
1. Graphify-Labs → DEVELOPS → Graphify
2. 張三 → WORKS_ON → Graphify
3. 李四 → WORKS_ON → Graphify
4. 張三 → RESPONSIBLE_FOR → 後端開發
5. 李四 → RESPONSIBLE_FOR → 前端開發

✓ 知識已提取到圖譜中!

提取策略

1. 上下文感知提取

考慮文本的語意上下文:

輸入:「我們使用了 React 18 和 Next.js 14」

提取結果:
- React 18(Technology, Version: 18)
- Next.js 14(Technology, Version: 14)
- 關係:兩者都是技術棧的一部分

2. 層次關係提取

識別層次結構:

輸入:「深度學習是機器學習的一個分支,基於神經網絡」

提取結果:
- 深度學習(Concept)
- 機器學習(Concept)
- 神經網絡(Concept)
- 關係:深度學習 → IS_PART_OF → 機器學習
- 關係:深度學習 → BASED_ON → 神經網絡

3. 時序關係提取

識別時間相關關係:

輸入:「Graphify 1.0 於 2024 年發布,2.0 於 2025 年發布」

提取結果:
- Graphify 1.0(Product, ReleaseDate: 2024)
- Graphify 2.0(Product, ReleaseDate: 2025)
- 關係:Graphify 2.0 → SUCCEEDS → Graphify 1.0

處理挑戰

挑戰一:實體歧義

同一詞彙可能指不同實體:

「Apple 發布了新手機」vs「Apple 是一種水果」

解決:使用上下文消歧
- 前者:Apple(Technology Company)
- 後者:Apple(Fruit)

挑戰二:關係推斷

明確與隱含的關係:

明確:「張三參與了 Graphify 專案」
隱含:「張三了解 Graphify 的架構」

解決:只提取明確陳述的關係,隱含關係可由查詢時推斷

挑戰三:資訊不完整

「我們的後端使用 Go 開發」

缺少:哪個專案的後端?

解決:使用當前上下文或標記為「未知專案」

最佳實踐

1. 定義實體類型

提前定義要提取的實體類型:

const entityTypes = [
  'Person', 'Organization', 'Project',
  'Technology', 'Concept', 'Location'
];

2. 使用標準化關係

使用一致的關係類型:

const relationshipTypes = [
  'WORKS_ON', 'PARTICIPATES_IN', 'DEPENDS_ON',
  'OWNS', 'USES', 'RELATES_TO'
];

3. 驗證提取結果

提取後查詢確認:

graphify extract document.md
graphify query "提取了哪些實體?"
graphify query "它們之間有什麼關係?"

與其他 Skills 組合

推薦組合

Knowledge Extraction + Semantic Query

knowledge-extraction → semantic-query

提取後立即查詢驗證

Knowledge Extraction + Graph Visualization

knowledge-extraction → graph-visualization

提取後視覺化結果


Knowledge Extraction 是建立知識圖譜的核心技能,掌握它你就能從任何文字來源中提取結構化知識!