如何用AWS Textract .NET SDK C#从本地简历PDF提取指定信息
在C#中使用Amazon Textract的查询功能提取简历特定信息
要实现类似PHP版本的查询提取功能,你需要对原代码做以下几处修改:
- 扩展
FeatureTypes,加入QUERIES类型(这是启用查询功能的必要配置) - 为
AnalyzeDocumentRequest添加QueriesConfig,定义你需要查询的具体问题 - 修改响应处理逻辑,专门提取查询对应的结果
以下是修改后的完整C#代码:
using (var textractClient = new AmazonTextractClient(RegionEndpoint.APSouth1)) { FileStream fileStream = new FileStream(HostingEnvironment.MapPath("~/pdfresume.pdf"), FileMode.Open, FileAccess.Read); MemoryStream memoryStream = new MemoryStream(); await fileStream.CopyToAsync(memoryStream); await fileStream.FlushAsync(); var analyzeDocumentRequest = new AnalyzeDocumentRequest() { Document = new Document { Bytes = memoryStream }, FeatureTypes = new List<string> { "FORMS", "QUERIES" }, // 新增QUERIES类型 QueriesConfig = new QueriesConfig { Queries = new List<Query> { new Query { Text = "What is name" }, new Query { Text = "What is email" } // 可以继续添加更多查询 } } }; var analyzeDocumentResponse = await textractClient.AnalyzeDocumentAsync(analyzeDocumentRequest); // 遍历Block,提取查询结果 foreach (var block in analyzeDocumentResponse.Blocks) { // 匹配查询结果块 if (block.BlockType == "QUERY_RESULT") { // 找到对应的查询问题块 var queryBlock = analyzeDocumentResponse.Blocks.FirstOrDefault(b => b.Id == block.Relationships?.FirstOrDefault()?.Ids?.FirstOrDefault()); if (queryBlock != null) { HttpContext.Current.Response.Write($"查询问题:{queryBlock.Text}<br/>"); HttpContext.Current.Response.Write($"查询结果:{block.Text}<br/><br/>"); } } } }
关键说明:
- FeatureTypes必须包含QUERIES:只有添加这个类型,Textract才会处理你定义的查询请求
- QueriesConfig配置:通过
Queries集合添加需要查询的问题,每个问题对应一个Query对象,设置Text属性即可 - 响应结果处理:查询结果的BlockType是
QUERY_RESULT,它通过Relationships关联对应的QUERY类型的Block(即你定义的问题),所以需要通过Id关联来匹配问题和结果
内容的提问来源于stack exchange,提问作者Surensiveaya
相关产品推荐
相关产品推荐

