国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

高效打造知識圖譜,使用LlamaIndex Relik實現(xiàn)實體關聯(lián)和關系抽取 精華

發(fā)布于 2024-8-20 10:00
瀏覽
0收藏

文本信息轉化為知識圖譜的技術,自問世以來一直是研究界的寵兒。大型語言模型(LLMs)的興起讓這個領域受到更多關注,但LLMs的成本之高令人卻步。然而,通過對小型模型微調優(yōu)化,我們可以找到一種更經濟高效的解決方案。

今天向大家介紹Relik,這是由羅馬大學(Sapienza University of Rome)自然語言處理團隊精心研發(fā)的快速、輕量級信息提取框架。

1 信息提取流程

在不依賴LLMs的情況下,信息提取流程通常包括:

高效打造知識圖譜,使用LlamaIndex Relik實現(xiàn)實體關聯(lián)和關系抽取-AI.x社區(qū)

上圖呈現(xiàn)了信息提取的完整流程。始于一段簡單的文本輸入:“Tomaz likes to write blog posts. He is particularly interested in drawing diagrams.”。流程首先進行指代消解,將“Tomaz”和“He”識別為同一人。緊接著,命名實體識別(NER)技術辨識出“Tomaz”、“Blog”和“Diagram”等關鍵實體。

隨后,實體鏈接環(huán)節(jié)將這些識別出的實體與數(shù)據(jù)庫或知識庫中的相應條目相對應。例如,“Tomaz”對應到“Tomaz Bratanic (Q12345)”,“Blog”對應到“Blog (Q321)”。然而,"Diagram"在知識庫中未找到匹配項。

接下來,關系提取步驟進一步分析實體間的聯(lián)系,如識別出“Tomaz”與“Blog”之間存在“WRITES”關系,說明Tomaz撰寫博客;“Tomaz”與“Diagram”之間存在“INTERESTED_IN”關系,表明他對圖表有興趣。

最后,這些經過結構化的實體和關系信息被整合進知識圖譜中,為后續(xù)的數(shù)據(jù)分析或信息檢索提供了有序且易于訪問的資源。

在沒有大型語言模型(LLMs)支持的情況下,信息提取工作通常依賴一系列專業(yè)模型來分別處理指代消解、命名實體識別、實體鏈接和關系提取等任務。整合這些模型需要付出額外的工作和細致的調整,但這種方法能夠有效降低成本。通過使用和優(yōu)化這些小型、特定任務的模型,可以在整體上減少系統(tǒng)的構建和維護成本。

代碼可在 GitHub 上獲取:https://github.com/tomasonjo/blogs/blob/master/llm/llama_relik.ipynb

2 環(huán)境搭建與數(shù)據(jù)準備

推薦使用獨立的Python環(huán)境,例如Google Colab,以便管理項目依賴項。

接下來配置Neo4j圖數(shù)據(jù)庫以存儲解析出的數(shù)據(jù)。推薦使用Neo4j Aura(https://neo4j.com/cloud/platform/aura-graph-database/),它提供便捷的免費云服務,且與Google Colab筆記本完美兼容。

完成數(shù)據(jù)庫的搭建后,可通過LlamaIndex建立數(shù)據(jù)庫連接。

from llama_index.graph_stores.neo4j import Neo4jPGStore

username="neo4j"
password="rubber-cuffs-radiator"
url="bolt://54.89.19.156:7687"

graph_store = Neo4jPGStore(
    username=username,
    password=password,
    url=url,
    refresh_schema=False
)

數(shù)據(jù)集

這里使用一個新聞數(shù)據(jù)集進行分析,這個數(shù)據(jù)集是通過Diffbot API(https://www.diffbot.com/data/article/)獲取的。

import pandas as pd

NUMBER_OF_ARTICLES = 100
news = pd.read_csv(
    "https://raw.githubusercontent.com/tomasonjo/blog-datasets/main/news_articles.csv"
)
news = news.head(NUMBER_OF_ARTICLES)

3 技術實現(xiàn)

信息提取流程首先從指代消解著手,其任務是識別文本中指代相同實體的不同表述。

據(jù)了解,目前可用于指代消解的開源模型相對較少。經過嘗試比較,這里選擇使用spaCy的Coreferee(https://spacy.io/universe/project/coreferee)。需要注意的是,使用Coreferee可能會遇到一些依賴性問題。

加載spaCy中的指代消解模型,使用以下代碼實現(xiàn):

import spacy, coreferee

coref_nlp = spacy.load('en_core_web_lg')
coref_nlp.add_pipe('coreferee')

Coreferee模型能夠識別文本中指代相同實體或實體組的表達式集群。為了根據(jù)這些識別出的集群對文本進行重寫,需要自定義函數(shù)來實現(xiàn)這一過程。

def coref_text(text):
    coref_doc = coref_nlp(text)
    resolved_text = ""

    for token in coref_doc:
        repres = coref_doc._.coref_chains.resolve(token)
        if repres:
            resolved_text += " " + "and".join(
                [
                    t.text
                    if t.ent_type_ == ""
                    else [e.text for e in coref_doc.ents if t in e][0]
                    for t in repres
                ]
            )
        else:
            resolved_text += " " + token.text

    return resolved_text

測試下這個函數(shù),確保模型和依賴項設置正確:

print(
    coref_text("Tomaz is so cool. He can solve various Python dependencies and not cry")
)

在這個例子中,模型成功識別出“Tomaz”和“He”實際上指向同一實體。通過應用coref_text函數(shù),將“Tomaz”替換“He”。

請注意,這種重寫機制并不總能生成完全符合語法規(guī)則的句子,因為它采用了一種直接的替換邏輯來處理文本中的實體集群。盡管如此,對于大多數(shù)應用場景,這種方法已經足夠有效。

現(xiàn)在把這一指代消解技術應用于我們的新聞數(shù)據(jù)集,并將其轉換為LlamaIndex文檔格式:

from llama_index.core import Document

news["coref_text"] = news["text"].apply(coref_text)
documents = [
    Document(text=f"{row['title']}: {row['coref_text']}")
    for i, row in news.iterrows()
]

實體鏈接和關系提取

Relik庫集成了實體鏈接和關系提取兩大功能,能夠將這兩種技術融合應用。實體鏈接時,Relik以維基百科為依托,實現(xiàn)文本實體與百科條目的精準對應。

高效打造知識圖譜,使用LlamaIndex Relik實現(xiàn)實體關聯(lián)和關系抽取-AI.x社區(qū)

將實體鏈接到維基百科

在關系提取方面,Relik通過辨識和定義文本中實體間的關系,幫助我們將原始的非結構化數(shù)據(jù)轉化為有序的結構化信息。

高效打造知識圖譜,使用LlamaIndex Relik實現(xiàn)實體關聯(lián)和關系抽取-AI.x社區(qū)

關系提取

如果你使用的是Colab的免費版本,請選擇relik-ie/relik-relation-extraction-small模型,這個模型專門負責關系提取。如果有Colab Pro版本,或者打算在本地更高性能的機器上運行,那么可以嘗試relik-ie/relik-cie-small模型,它不僅包含關系提取,還能進行實體鏈接的功能。

from llama_index.extractors.relik.base import RelikPathExtractor

relik = RelikPathExtractor(
    model="relik-ie/relik-relation-extraction-small"
)

# 在Pro Collab上使用GPU
# relik = RelikPathExtractor(
#    model="relik-ie/relik-cie-small", model_cnotallow={"skip_metadata": True, "device":"cuda"}
# )

此外,我們必須定義將用于嵌入實體的嵌入模型,以及用于問答流程的LLM:

import os

from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI

os.environ["OPENAI_API_KEY"] = "sk-"

llm = OpenAI(model="gpt-4o", temperature=0.0)
embed_model = OpenAIEmbedding(model_name="text-embedding-3-small")

注意在構建知識圖譜的過程中,不會使用大型語言模型(LLM)。

4 知識圖譜的構建與應用

目前,一切準備工作已經就緒。接下來,可以創(chuàng)建PropertyGraphIndex實例,并將新聞文檔作為數(shù)據(jù)輸入,整合進知識圖譜中。

此外,為了提取文檔中的關系,需要將relik模型設置為kg_extractors參數(shù)的值。

from llama_index.core import PropertyGraphIndex

index = PropertyGraphIndex.from_documents(
    documents,
    kg_extractors=[relik],
    llm=llm,
    embed_model=embed_model,
    property_graph_store=graph_store,
    show_progress=True,
)

構建圖后,可以打開Neo4j瀏覽器來驗證導入的圖。通過運行以下Cypher語句獲得類似的可視化:

MATCH p=(:__Entity__)--(:__Entity__)
RETURN p LIMIT 250

結果:

高效打造知識圖譜,使用LlamaIndex Relik實現(xiàn)實體關聯(lián)和關系抽取-AI.x社區(qū)

5 問答功能實現(xiàn)

使用LlamaIndex,現(xiàn)在可以輕松地進行問答。只需利用系統(tǒng)自帶的圖檢索器,便能夠直接提出問題:

query_engine = index.as_query_engine(include_text=True)

response = query_engine.query("What happened at Ryanair?")
print(str(response))

這就是定義的 LLM 和嵌入模型發(fā)揮作用的地方。

6 總結

不依賴大型語言模型構建知識圖譜是切實可行,具有成本效益且效率高。通過優(yōu)化調整如Relik框架中的小型、任務專精的模型,檢索增強型生成應用便能高效提取信息。

實體鏈接作為關鍵步驟,確保了識別出的實體能夠準確映射到知識庫中的對應條目,從而維持了知識圖譜的完整性與實用性。

借助Relik框架和Neo4j平臺,我們能夠構建出功能強大的知識圖譜,這些圖譜可以助力復雜的數(shù)據(jù)分析和檢索任務,而且避免了部署大型語言模型所帶來的高昂成本。這種方法不僅讓先進的數(shù)據(jù)處理工具變得更加親民,也推動了信息提取流程的創(chuàng)新與效率。

本文轉載自 ??AI科技論談??,作者:小AI


收藏
回復
舉報
回復
相關推薦
丁香花高清在线观看完整版| 拍真实国产伦偷精品| 99精品国产福利在线观看免费| 中文亚洲视频在线| 天堂地址在线www| 亚洲午夜羞羞片| 国产野外作爱视频播放| 国产黄色精品视频| 青青影院一区二区三区四区| 国产精品毛片一区二区在线看| 欧美国产精品va在线观看| 亚洲美女尤物影院| 日韩一区二区精品| 日韩免费网站| 日本黄色一区二区| 最新在线观看av| 18成人在线观看| 一级在线免费视频| 久久久亚洲午夜电影| 国产真人做爰毛片视频直播| 老司机一区二区| 日韩福利二区| 久久久久久9| 欧美日韩一区二区三区在线观看免 | 亚洲人成伊人成综合网小说| 欧美视频免费播放| wwww国产精品欧美| 女人扒开屁股爽桶30分钟| 成人免费观看av| 国产高清www| 国产91丝袜在线播放0| 91成人在线视频观看| 国内久久精品视频| 国产免费xxx| 国产一区二区免费视频| 日本手机在线视频| 国产精品天干天干在线综合| 色婷婷综合网站| 一区二区三区成人| 四虎影视在线播放| 欧美日韩激情在线| 538在线精品| 日韩网站免费观看| 偷窥自拍亚洲色图精选| 国产美女高潮久久白浆| 最新亚洲视频| 亚洲免费av网| 国产拍欧美日韩视频二区| 日本电影免费看| 在线观看日韩一区| 国产色播av在线| 欧美激情一区二区三级高清视频| 国产一区二区欧美| 精品一区二区国产| 成人国产在线观看| y4480在线8影院| 宅男在线国产精品| 国产成+人+综合+亚洲欧美| 高清欧美一区二区三区| 欧美91视频| 人妻av无码专区| 亚洲国产日韩一级| 金瓶狂野欧美性猛交xxxx | 少妇高潮露脸国语对白| 色综合天天性综合| 九色porny自拍视频在线观看| 久久精品国产成人| 久久久久久久久久久妇女| 一区二区国产日产| 亚洲男人的天堂av| 久草中文在线| 日韩中文字幕在线视频| 日韩夫妻性生活xx| 在线精品亚洲一区二区| 亚洲欧美一区二区不卡| a级大胆欧美人体大胆666| 久久久久中文字幕| 乱码第一页成人| 先锋影音资源999| 日韩欧美www| 日韩av三区| 亚洲一区免费看| 亚洲国产成人精品视频| 性欧美hd调教| 国产91免费视频| 国产精品情趣视频| 美女扒开腿让男人桶爽久久软| 日本久久久久亚洲中字幕| 青青草91视频| 黑巨人与欧美精品一区| 日韩av在线一区| 国产精品毛片一区二区在线看| 日韩欧美不卡在线| 337p亚洲精品色噜噜噜| 免费视频一区三区| av在线观看地址| 欧美一二三四区在线| 精品不卡一区| 久久久久国产精品熟女影院| 精品久久国产字幕高潮| 国产精品私拍pans大尺度在线 | 九九热精品视频在线观看| 亚洲国产精品一区二区第一页 | 本田岬高潮一区二区三区| 国产va免费精品高清在线观看| 综合伊思人在钱三区| 在线观看一区二区三区三州| 国产午夜一区| 五月丁香综合缴情六月小说| 欧美精品v国产精品v日韩精品| 理论片一区二区在线| 亚洲小说欧美另类激情| 色哟哟国产精品| 伦理一区二区三区| www.在线观看av| 欧美zozo另类异族| 亚洲国产电影| 在线看中文字幕| 青青草99啪国产免费| 91麻豆6部合集magnet| 欲香欲色天天天综合和网| 国产精品对白一区二区三区| 久久影院午夜片一区| 四虎国产精品免费久久| 奇米精品一区二区三区| 岛国一区二区三区高清视频| 欧美一区二区三区免费观看视频| 欧美日韩视频免费看| 女人色极品影院| 亚洲欧美国产精品专区久久| 成人午夜激情在线| 欧洲视频一区| 欧美xxxx做受欧美护士| 欧美18xxxxx| 九九热精品在线播放| 日韩不卡av| 成人免费在线视频网址| 亚洲男人天堂网| 欧美亚洲高清一区| 国产精品久久久一本精品| 天天综合一区| 国产精品国产亚洲精品| 黄色大秀av大片| 日日噜噜噜夜夜爽爽| 国产精品手机在线| 日韩美女视频在线观看| 美女国内精品自产拍在线播放| 亚洲高清一区二| 日本高清成人免费播放| 99在线精品一区二区三区| 麻豆久久婷婷| 91精品短视频| 亚洲a∨精品一区二区三区导航| 午夜视频在线免费观看| 国产视频网站在线| 992tv免费直播在线观看| 免费在线一级视频| 美女被人操视频在线观看| 黄色国产一级视频| 免费看黄在线看| 一区二区三区欧美在线| 69视频在线播放| 福利视频导航一区| 99视频精品全部免费在线| 国产ts人妖一区二区| 精品一区二区在线看| 久久三级视频| 六月婷婷一区| 99精品久久只有精品| 91麻豆福利精品推荐| 欧美精品日韩精品| 97激碰免费视频| 国产91精品青草社区| 精品麻豆av| 男女视频网站免费观看| 日本性爱视频在线观看| 91精品国产色综合久久不卡粉嫩| 极品国产人妖chinesets亚洲人妖| 精品99视频| 久久久久久夜| 丁香六月综合激情| 精品高清一区二区三区| 亚洲乱码国产乱码精品精| 97欧美精品一区二区三区| 黄色片在线免费| 激情av综合| 国产精品九色蝌蚪自拍| 久久久日本电影| 色乱码一区二区三区在线| 欧美调教网站| 欧美日韩精品在线| 国产精品视频在线免费观看 | 成人免费网站www网站高清| 国模吧视频一区| 亚洲一区二区黄色| 国产日产欧美精品| 婷婷丁香六月天| 91精品婷婷色在线观看| 校园激情久久| 成人欧美一区二区三区白人|