将文本分成逻辑块

时间:2018-11-21 11:00:19

标签: python nlp natural-language-processing

我有一系列要自动处理的(保险)合同(.docx格式)。

当前的任务是将每份合同分成所谓的条款-合同的一部分,描述某些特定的风险或排除在承保范围之外。

例如,可能只有一句话–“该合同涵盖因火灾造成的损失或损坏”,或几段文字提供了更多详细信息,并解释了该合同涵盖的火灾类型以及所应赔偿的损失。

好消息是,合同通常以某种方式格式化。在最佳情况下,整个合同是一个带有项目和子项目的编号列表,我们可以简单地按一定级别的列表层次结构将其拆分。

糟糕的是,情况并非总是如此,列表也不能编号,而是按字母顺序或根本不按单词列出:每行以数字或用户手动键入的字母开头。或者它根本不是字母或数字,而是一定数量的空格或制表符。或子句可以通过在所有大写字母中键入的标题来分隔。

因此结构的视觉表示因合同而异。

所以我的问题是完成此任务的最佳方法是什么?正则表达式?一些ML算法?也许有开源脚本可以用来处理此任务或类似任务?任何帮助将是最欢迎的!

1 个答案:

答案 0 :(得分:0)

此任务的最佳做法是使用依赖于字词样式的注释来改进文档中找到的语义信息。例如:

  • 为合同添加块样式
  • 为合同标题添加段落样式
  • 为合同的特征添加段落样式

您可以在内联级别下钻取并添加内联样式,这些样式可以提取更多粒度信息,例如关键字内联样式。

然后,您可以使用python库处理.docx文件,也可以将其转换为libreoffice,然后进行处理。

这是文本文档的经典注释任务。设置替代方法(例如使用特定的(网络)应用程序来输入所需的不同功能)更容易,成本也更低。