magic-html : 通用HTML数据提取器!DocAI:从非结构化文档中提取结构化数据!强大、快速、开源的微信机器人底层框架:wcf.js!
magic-html : 通用HTML数据提取器
magic-html提供了一套工具,能够轻松地从HTML中提取主体区域内容。无论您处理的是复杂的HTML结构还是简单的网页,这个库都旨在为您的HTML抽取需求提供一个便捷高效的接口。
特点
返回主体区域html结构,可自定义输出纯文本/markdown
支持多模态抽取
支持多种版面extractor,文章/论坛
支持latex公式提取转换
安装
pip install https://github.com/opendatalab/magic-html/releases/download/magic_html-0.1.2-released/magic_html-0.1.2-py3-none-any.whl
使用
from magic_html import GeneralExtractor
# 初始化提取器
extractor = GeneralExtractor()
url = "http://example.com/"
html = """
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
"""
# 文章类型HTML提取数据
data = extractor.extract(html, base_url=url)
# 论坛类型HTML提取数据
# data = extractor.extract(html, base_url=url, html_type="forum")
# 微信文章HTML提取数据
# data = extractor.extract(html, base_url=url, html_type="weixin")
print(data)
benchmark report
根据html页面类型,文章/论坛,对比不同开源通用抽取框架抽取准确性
文章类型:选取头部新闻、博客站点共标注158个html页面
╒══════════════════════╤═════════════╤════════════╤═══════════╕
│ func │ prec_mean │ rec_mean │ f1_mean │
╞══════════════════════╪═════════════╪════════════╪═══════════╡
│ magic_html │ 0.908865 │ 0.95032 │ 0.92913 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura │ 0.833434 │ 0.912384 │ 0.871124 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura_fallback │ 0.831229 │ 0.933713 │ 0.879496 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ readability-lxml │ 0.86587 │ 0.861391 │ 0.863625 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ newspaper3k │ 0.409585 │ 0.372083 │ 0.389935 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ goose3 │ 0.525717 │ 0.457669 │ 0.489339 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ justext │ 0.224945 │ 0.117092 │ 0.154014 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ gne │ 0.828849 │ 0.629112 │ 0.715299 │
╘══════════════════════╧═════════════╧════════════╧═══════════╛
论坛类型:选取头部论坛、问答站点与开源建站框架搭建站点共103个html页面
╒══════════════════════╤═════════════╤════════════╤═══════════╕
│ func │ prec_mean │ rec_mean │ f1_mean │
╞══════════════════════╪═════════════╪════════════╪═══════════╡
│ magic_html │ 0.796252 │ 0.826819 │ 0.811248 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura │ 0.716009 │ 0.695947 │ 0.705835 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura_fallback │ 0.730304 │ 0.691328 │ 0.710282 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ readability-lxml │ 0.788018 │ 0.445087 │ 0.568867 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ newspaper3k │ 0.596976 │ 0.298322 │ 0.397837 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ goose3 │ 0.675835 │ 0.312969 │ 0.427821 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ justext │ 0.175889 │ 0.0517628 │ 0.0799863 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ gne │ 0.81003 │ 0.389709 │ 0.526241 │
╘══════════════════════╧═════════════╧════════════╧═══════════╛
项目链接
http://github.com/opendatalab/magic-html
DocAI:从非结构化文档中提取结构化数据!
使用 Answer.AI 的Byaldi 、OpenAI gpt-4o和Langchain 的结构化输出从非结构化文档中提取结构化数据。
安装
pyenv virtualenv 3.10.6 docai
pyenv activate docai
poetry install
环境变量
确保您在环境变量中设置了 OPENAI_API_KEY 和 HF_TOKEN。
export OPENAI_API_KEY=<your key>
export HF_TOKEN=<your token>
使用示例
从 pdfs/ 文件夹构建索引:
python scripts/build_index.py --folder "pdfs/" --index_name "application"
样本输出
What losses have occurred in the past 5 years?
LossHistory(
losses=[
Loss(loss_date='2/20/21', loss_amount=7003.0, loss_description='Claimant was in his sleeper when his truck got hit by insured driver on the left', date_of_claim='4/19/21'),
Loss(loss_date='2/4/21', loss_amount=92584.0, loss_description='The IV was attempting to merge on the highway when the IV lost control and struck', date_of_claim='4/30/21'),
Loss(loss_date='9/14/21', loss_amount=5583.0, loss_description='IV was in the fast lane, when IV tire flew off and struck OV1, OV2, OV3, OV4', date_of_claim='9/15/21'),
Loss(loss_date='9/14/21', loss_amount=6299.0, loss_description='IV was in the fast lane, when IV tire flew off and struck OV1, OV2, OV3, OV4', date_of_claim='9/15/21')
]
)
What is the basic application information?
Application(
insured_name='Greentown Burgers LLC',
insured_address='Not provided',
insured_phone='Not provided',
insured_email='Not provided',
effective_date='07/22/2024'
)
项目链接
https://github.com/madisonmay/docai
强大、快速、开源的微信机器人底层框架:wcf.js!
再一次让 Wechaty 免费协议(PC Hook)重放荣光 - @wechatferry/puppet
安装
pnpm add wechatferry
Packages
免责声明
使用本项目则表示您同意并认可以下声明
使用目的
本项目仅供学习交流使用,请勿用于非法用途,请勿用于非法用途,请勿用于非法用途,否则后果自负。
用户理解并同意,任何违反法律法规、侵犯他人合法权益的行为,均与本项目及其开发者无关,后果由用户自行承担。
-
使用期限
您应该在下载保存,编译使用本项目的24小时内,删除本项目的源代码和(编译出的)程序;超出此期限的任何使用行为,一概与本项目及其开发者无关。 -
操作规范
本项目仅允许在授权情况下对数据库进行备份与查看,严禁用于非法目的,否则自行承担所有相关责任;用户如因违反此规定而引发的任何法律责任,将由用户自行承担,与本项目及其开发者无关。
严禁用于窃取他人隐私,严禁用于窃取他人隐私,严禁用于窃取他人隐私,否则自行承担所有相关责任。
严禁进行二次开发,严禁进行二次开发,严禁进行二次开发,否则自行承担所有相关责任。
-
免责声明接受
下载、保存、进一步浏览源代码或者下载安装、编译使用本程序,表示你同意本警告,并承诺遵守它; -
禁止用于非法测试或渗透
禁止利用本项目的相关技术从事非法测试或渗透,禁止利用本项目的相关代码或相关技术从事任何非法工作,如因此产生的一切不良后果与本项目及其开发者无关。
任何因此产生的不良后果,包括但不限于数据泄露、系统瘫痪、侵犯隐私等,均与本项目及其开发者无关,责任由用户自行承担。
-
免责声明修改
本免责声明可能根据项目运行情况和法律法规的变化进行修改和调整。用户应定期查阅本页面以获取最新版本的免责声明,使用本项目时应遵守最新版本的免责声明。 -
其他
除本免责声明规定外,用户在使用本项目过程中应遵守相关的法律法规和道德规范。对于因用户违反相关规定而引发的任何纠纷或损失,本项目及其开发者不承担任何责任。
请用户慎重阅读并理解本免责声明的所有内容,确保在使用本项目时严格遵守相关规定。
致谢
wechatferry 之所以成为可能,得益于以下项目的灵感:
WeChatFerry
wcf-client-rust
node-wcferry
wechaty
项目链接
https://github.com/wechatferry/wechatferry