小地方的旅游網(wǎng)站怎么做網(wǎng)絡(luò)公司排名
🥰大家知道嗎,之前在給AI大模型"喂數(shù)據(jù)"的時(shí)候,我們往往需要把非結(jié)構(gòu)化數(shù)據(jù)(比如PDF、PPT、Excel等)自己手動(dòng)轉(zhuǎn)成結(jié)構(gòu)化的格式,這可真是太累人兒了。🥵
幸好現(xiàn)在有了Unstructured這個(gè)神級(jí)庫(kù),它內(nèi)置的數(shù)據(jù)提取函數(shù)可以幫我們快速高效地完成這個(gè)轉(zhuǎn)換過(guò)程。而且支持常見(jiàn)的多種文件格式!🐶
比如說(shuō),如果我們要從一個(gè)PPT文件里提取數(shù)據(jù),可以用partition_pptx
函數(shù):
from unstructured.partition.pptx import partition_pptxfilename = "example_files/msft_openai.pptx"
elements = partition_pptx(filename=filename)
這個(gè)函數(shù)會(huì)把PPT文件的內(nèi)容解析成一個(gè)elements
列表,每個(gè)元素都是一個(gè)Element
對(duì)象,分別代表PPT里的標(biāo)題、文字、圖片等內(nèi)容。
但是我們想要的是結(jié)構(gòu)化數(shù)據(jù)而不是對(duì)象呀,所以還需要再轉(zhuǎn)換一下:
element_dict = [el.to_dict() for el in elements]
print(json.dumps(element_dict, indent=2))
這兩行代碼的作用是:
- 遍歷
elements
列表,把每個(gè)Element
對(duì)象都轉(zhuǎn)換成字典(調(diào)用它們的to_dict
方法) - 把這些字典組成一個(gè)新列表
element_dict
- 使用
json.dumps
把element_dict
轉(zhuǎn)成Json格式的字符串,并指定indent=2
讓結(jié)果更加美觀
是不是很酷?現(xiàn)在我們就擁有了結(jié)構(gòu)化的數(shù)據(jù)啦!
如果是PDF文件的話,流程也差不多:
from unstructured.shared import Files, PartitionParameters
from unstructured.openai_api import SDKfilename = "example_files/CoT.pdf"
with open(filename, "rb") as f:files = Files(content=f.read(), file_name=filename)req = PartitionParameters(files=files, strategy='hi_res', pdf_infer_table_structure=True)s = SDK.get_instance()
resp = s.general.partition(req)
print(json.dumps(resp.elements, indent=2))
這里主要新的地方是用Files
對(duì)象來(lái)存PDF文件的內(nèi)容,然后定義一個(gè)PartitionParameters
來(lái)設(shè)置處理策略(比如識(shí)別表格等)。
最后就是創(chuàng)建SDK實(shí)例,調(diào)用partition
方法,傳入之前定義的參數(shù),就能獲取PDF里的結(jié)構(gòu)化數(shù)據(jù)啦!
對(duì)于Excel文件,官方文檔里也有介紹,應(yīng)該也是類似的操作。
有了這些技能,我們就能把海量的非結(jié)構(gòu)化數(shù)據(jù)高效地轉(zhuǎn)換成結(jié)構(gòu)化格式,喂給大模型"吃"啦!以后制作AI應(yīng)用的時(shí)候,效率和開(kāi)發(fā)體驗(yàn)都會(huì)更上一層樓~🚀