在当今大数据时代,如何高效地提取和分类信息成为了许多开发者关注的重点。数据分类分级,也是数据安全和数据治理的基础。本文将介绍如何使用 Python 接入 DeepSeek API,实现对医疗病历和新闻数据的自动分类和分级。
DeepSeek 是一个国产的开源大模型,具备强大的自然语言处理能力,能够进行文本理解、信息抽取、问答等任务。作为一款基于深度学习的 AI 模型,DeepSeek 采用了先进的 Transformer 架构,能够处理各类复杂的文本信息,为开发者提供高效的智能化解决方案。
在实际应用中,我们常常需要对海量数据进行分类和分级,例如医疗记录的关键信息提取、新闻事件的自动摘要、企业文档的智能归档等。借助 DeepSeek 提供的 API,我们可以轻松实现这些任务,从而提高数据处理的自动化程度,减少人工干预,提高分析效率。
在开始之前,请确保你的 Python 环境已经安装了以下库:
pip install requests
我们需要准备 API 访问密钥(API_KEY
)并配置请求头。这里的API密钥使用的是硅基流动的API密钥。不会获取的朋友请查看本公众号文章“2分钟教你学会在Word中接入DeepSeek”。
import requests
import json
API_KEY = 'your_api_key_here' # 请替换为你的 API Key
API_URL = 'https://api.siliconflow.cn/v1/chat/completions'
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
我们创建一个 extract_information
函数,它可以根据不同类型的文本(如医疗病历或新闻)进行分类和信息提取。
def extract_information(text, extraction_type="medical"):
"""
使用 DeepSeek API 提取特定类别的信息
Args:
text (str): 需要分析的文本
extraction_type (str): 信息提取类型 ("medical" 或 "news")
Returns:
dict: 结构化的提取信息
"""
prompts = {
"medical": f"""请从以下患者病历信息中提取关键信息,并以JSON格式返回:
{{
"基本信息": {{
"年龄": "",
"性别": "",
"主要症状": ""
}},
"就医信息": {{
"就诊时间": "",
"就诊科室": ""
}},
"诊疗信息": {{
"诊断结果": "",
"检查结果": [],
"用药情况": []
}}
}}
病历:{text}""",
"news": f"""请从以下新闻内容中提取关键信息,并以JSON格式返回:
{{
"主人公": [],
"时间": "",
"地点": "",
"事件": "",
"影响": "",
"情感倾向": "正面/负面/中立"
}}
新闻内容:{text}"""
}
payload = {
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
"messages": [{"role": "user", "content": prompts.get(extraction_type, prompts["medical"])}],
}
response = requests.post(API_URL, headers=headers, json=payload)
try:
content = response.json()['choices'][0]['message']['content']
return json.loads(content) if content else {"error": "Empty response"}
except (KeyError, IndexError, json.JSONDecodeError):
return {"error": "Failed to parse response", "full_response": response.json()}
medical_text = "患者,男,45岁,因持续性胸闷、胸痛3小时于2023年10月15日急诊入院。既往有高血压病史5年,血脂异常2年。查体:BP 165/95mmHg,心电图示V1-V4导联ST段抬高。血清肌钙蛋白I升高。诊断为急性心肌梗死,给予阿司匹林、氯吡格雷和低分子肝素抗凝治疗,并行急诊冠脉造影+支架植入术。"
result = extract_information(medical_text, "medical")
print(json.dumps(result, ensure_ascii=False, indent=2))
示例输出:
{
"基本信息":{
"年龄":"45岁",
"性别":"男",
"主要症状":"持续性胸闷、胸痛"
},
"就医信息":{
"就诊时间":"2023年10月15日",
"就诊科室":"急诊科"
},
"诊疗信息":{
"诊断结果":"急性心肌梗死",
"检查结果":["心电图示V1-V4导联ST段抬高","血清肌钙蛋白I升高"],
"用药情况":["阿司匹林","氯吡格雷","低分子肝素抗凝"]
}
}
news_text = "2023年11月5日,台湾花莲县海域凌晨发生6.7级地震,震源深度10千米。当地居民李先生表示,地震持续了约20秒,震感强烈。目前已造成3人受伤,多处建筑物受损。当地政府已启动应急预案,救援人员正在受灾地区展开工作。"
result = extract_information(news_text, "news")
print(json.dumps(result, ensure_ascii=False, indent=2))
示例输出:
{
"主人公":[],
"时间":"2023年11月5日",
"地点":"台湾花莲县海域",
"事件":"发生6.7级地震,震源深度10千米",
"影响":"已造成3人受伤,多处建筑物受损,启动应急预案",
"情感倾向":"负面"
}
通过 DeepSeek API,我们可以轻松实现不同文本类型的信息提取和分类,进而应用于医疗、新闻、法律等多个领域。希望本文能帮助你更高效地处理文本数据!
欢迎关注公众号,获取大模型和网络安全前沿技术!