推荐开源神器:Toxy —— .NET平台上的数据/文本提取框架

推荐开源神器:Toxy —— .NET平台上的数据/文本提取框架

1、项目介绍

在数字化的世界里,我们需要处理各种各样的文件格式,从文档到表格,再到PDF和HTML。面对这些杂乱无章的数据,高效地提取信息至关重要。Toxy,一个灵感源自Apache Tika的.NET数据/文本提取框架,就是为此而生的利器。它支持众多流行格式,如.docx、.xlsx、.pdf、.csv等,让你轻松应对不同类型的文件解析任务。

Toxy 支持的文件类型

2、项目技术分析

Toxy的设计目标是跨平台,不仅限于Windows,同时也兼容Linux环境。这得益于它对.NET Standard 2.0的支持,使得它可以无缝融入.NET生态中的各类项目。与依赖IFilter的传统方法不同,Toxy无需关心文件扩展名,它能智能识别文件类型并进行有效提取。它提供的数据结构(如ToxyDocument、ToxySpreadsheet)让信息提取后的组织和管理变得简单直观。

3、项目及技术应用场景

Toxy在多个领域都有广泛的应用场景:

  • 文档管理:快速抽取大量文档的关键信息,实现文档元数据的自动化处理。
  • 数据分析:处理Excel或CSV文件,将数据转化为可分析的形式,助力数据科学家的工作。
  • 搜索引擎优化:为搜索引擎提供更友好的文本信息,提升网站索引效率。
  • 电子邮件处理:批量读取邮件内容,用于日志分析或其他业务逻辑处理。
  • 文件审计:提取文件元数据以满足合规性和安全性需求。

4、项目特点

  • 跨平台:基于.NET Standard 2.0,可在多操作系统环境下运行。
  • 智能识别:自动识别并适配多种文件格式,简化开发流程。
  • 友好API:易于理解和使用的数据结构,减少开发者的学习成本。
  • 统一接口:无论哪种文件类型,都通过统一的API进行操作,提高代码复用性。
  • 社区支持:持续更新维护,有良好的社区氛围和问题反馈机制。

如果你正在寻找一种能够方便快捷地处理各种格式文件的工具,Toxy无疑是你的理想选择。立即加入这个项目,开启高效的信息提取之旅吧!

NuGet Badge

项目主页: https://github.com/tonyqus/toxy

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
toxy.NET平台上的文件抽取框架,主要解决各种格式的内容抽取问题,比如pdf, doc, docx, xls, xlsx等,尽管听上去支持了很多格式,但它的使用却是极其方便的,因为Toxy把复杂的抽取流程透明化,Toxy的用户根本不用知道内容是怎么抽出来的,这就是Toxy的重要意义。     另外Toxy的一大目标是取代IFilter成为跨平台.NET数据抽取解决方案,即支持Linux上的Mono。目前所有的测试用例都可以跑在Mono上,但是有少数没有过,正在逐步改进。从另一个层面讲,Toxy能将文件数据变成统一的结构化数据。目前Toxy支持的结构有string – 文本结构ToxyDom – Dom结构ToxySpreadsheet – 类似Excel的表单结构ToxyDocument – 类似Word的描述性文本结构ToxyEmail – 邮件结构,包括收件人、发件人、邮件内容、附件等ToxyBusinessCard – 名片结构ToxyMetadata – 元数据结构,主要包含文件的属性信息,比如作者、标题、照片大小、分辨率等。Toxy目前主要支持的文件格式及能抽取的内容此表更新至Toxy 1.4版本。文件格式支持抽取的结构化对象(抽取结果的类型)txtstringxmlToxyDomcsvstring, ToxySpreadsheetrtfstringpdfstring, ToxyDocumenthtm, htmlstring, ToxyDomvcfstring, ToxyBusinessCardzipstringmp3, ape, wav, flac, aifToxyMetadatajpeg, jpg, gif, tiff, pngToxyMetadataemlstring, ToxyEmailcnmToxyEmailxls, xlsxstring, ToxySpreadsheet, ToxyMetadatappt, pptxToxyMetadatadoc, docxstring, ToxyDocument, ToxyMetadata.vsd, .pub, .shw, .sldprt, pubx, vsdxToxyMetadata如何使用ToxyToxy的使用真的是极其简单,这里一点都不夸张,请看下面的例子:1234ParserContext context = new ParserContext("test.xlsx");ISpreadsheetParser parser = ParserFactory.CreateSpreadsheet(context);ToxySpreadsheet ss = parser.Parse();//处理抽取出来的数据这里的ToxySpreadsheet实例ss就是抽取出来的Excel数据,你可以直接用。ParserContext负责描述抽取上下文,告知Toxy要抽取的文件的路径,以及相关参数。ParserFactory是工厂模式类,负责所有解析器的实例化工作,它会根据传入文件的扩展名自动寻找合适的解析器。下面展示一下PDF文档的抽取代码,一样极其简单:123string path = TestDataSample.GetPdfPath("Sample1.PDF");var parser = new PDFTextParser(new ParserContext(path));string result = parser.Parse();这里返回的是string,也就是把PDF文档的内容直接抽取到string中,通常这种代码lucene.NET这样的搜索引擎用的比较多。再来个ToxyMetadata的抽取例子:1234string path = Path.GetFullPath(TestDataSample.GetOLE2Path("TestEditTime.doc"));ParserContext context = new ParserContext(path);IMetadataParser parser = ParserFactory.CreateMetadata(context);ToxyMetadata x = parser.Parse();这里抽取的是doc文件的元数据信息,比如文件由什么应用程序创建(并非一定是Word),作者、标题、公司等信息。只要是文件属性中详细信息列出来的东西,理论上都可以抽取出来。Toxy解析器的抽取参数Toxy的解析器不仅提供基本的抽取功能,同时也支持对抽取内容进行选择,这是通过ParserContext的Properties实现的。下面举一个Excel的抽取参数的例子:12345678ParserContext context = new ParserContext(TestDataSample.GetExcelPath(filename));ISpreadsheetParser parser = ParserFactory.CreateSpreadsheet(context);ToxySpreadsheet ss = parser.Parse();//抽取表的页头parser.Context.Properties.Add("ExtractSheetHeader", "1");//抽取表的页脚parser.Context.Properties.Add("ExtractSheetFooter", "1");ToxySpreadsheet ss2 = parser.Parse();这里的ExtractSheetHeader和ExtractSheetFooter是抽取器指定的参数,拼写不要出错,否则无效,后面的1表示开启,当然如果你喜欢,你也可以用on或者true,解析器能自动识别出这3种表示true的方式,如果想表示false,你可以用0, off或者false表示。另外SpreadsheetParser还支持是否填充空白单元格(FillBlankCells)、显示公式结果(ShowCalculatedResult)、包含批注(IncludesComments)等操作,有兴趣的可以玩玩。当然每个抽取器能够使用的参数是不一样的,本文就不详细一一列举了,在以后的文章中,我们会详细列举每个抽取器的参数及对应抽取内容。Toxy高级扩展功能Toxy除了提供基础的抽取功能,也提供一些高级的对象转换服务,比如ToxySpreadsheet转DataSet,可以直接把Excel的数据转换成DataSet,方便调用和处理。代码超级简单,如下所示:1234ParserContext c=new ParserContext(@"c:employee.xls");var parser=ParserFactory.CreateSpreadsheet(c);var spreadsheet= parser.Parse();DataSet ds = spreadsheet.ToDataSet();就这么4行代码,是不是超级爽呀!另外,ToxySpreadsheet的子结构ToxyTable支持ToDataTable操作,用法也是类似的,直接调用即可。Toxy功能展望Toxy 1.x的目标是支持足够多的文件格式,并转换成统一的结构进行抽取。而Toxy 2.x-3.x的目标是支持相似文件的互操作(相互转换),例如Excel转csv, Excel转html, Word转PDF等,当然这个路有点长,慢慢来。 标签:文件抽取框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴艺音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值