Parsing (非)结构化文本文档的词法分析器/解析器

Parsing (非)结构化文本文档的词法分析器/解析器,parsing,document,lexer,Parsing,Document,Lexer,有很多用于脚本(即结构化计算机语言)的解析器和词法分析器。但我正在寻找一个可以将(几乎)非结构化文本文档分解为更大部分的文档,例如章节、段落等 对一个人来说,识别它们相对容易:目录、确认或主体从哪里开始,并且可以构建基于规则的系统来识别其中的一些(例如段落) 我并不期望它是完美的,但是有人知道这样一个广泛的“基于块的”词法分析器吗?或者你能给我指出一些有帮助的文献方向吗?许多轻量级标记语言,比如(顺便说一下,它们使用了)和(可以说)与你所说的类似。它们具有最小的语法,并将输入分解为可解析的语法片

有很多用于脚本(即结构化计算机语言)的解析器和词法分析器。但我正在寻找一个可以将(几乎)非结构化文本文档分解为更大部分的文档,例如章节、段落等

对一个人来说,识别它们相对容易:目录、确认或主体从哪里开始,并且可以构建基于规则的系统来识别其中的一些(例如段落)


我并不期望它是完美的,但是有人知道这样一个广泛的“基于块的”词法分析器吗?或者你能给我指出一些有帮助的文献方向吗?

许多轻量级标记语言,比如(顺便说一下,它们使用了)和(可以说)与你所说的类似。它们具有最小的语法,并将输入分解为可解析的语法片段。您可以通过阅读它们的实现来获得一些信息。

大多数程序都使用定义良好的语法。如果您可以用相似的格式(大多数解析器都接受相似的语法)定义语法,那么您可以使用其中任何一种格式。这可能是显而易见的。然而,你仍然可以对作为语法一部分的文本的“块”(标记)有点模糊。毕竟,您定义了令牌的规则

我过去曾在类似项目中使用过不同程度的成功案例

抱歉,这可能不是一个好答案,但更多的是分享我在类似项目中的经验

  • 定义注释标准,该标准指示要如何分解内容
  • 转到Amazon Mechanical Turk,让人们使用您的注释标准为10K文档添加标签
  • 在此训练数据上训练CRF(类似于HMM,但更好)
  • 如果你真的想走这条路,我可以详细说明细节。但这将是大量的工作。

    试试看,或者

    他们可以处理任何你扔给他们的东西,并且非常宽容你的语法和文档中的错误

    参考文献:
    吉托里厄斯使用美化,
    github使用pygments,

    rosettacode使用geshi,

    Lucene是一个索引器,不是吗?它真的“解析”了什么吗?你是对的。我想我更多考虑的是“Lucene Analyzer”会给你什么样的功能。。也许在这个问题背后假设的太多了。如果你认为这有误导性,请告诉我。我是想得出这个结论的,但作为最后的手段,我问了这个问题。我们可以用某种形式的BNF定义我们的文档,然后我们可以用它来解析它们。我已经忘记POD了!我真正需要的是POD、降价和重组文本的组合。他们肯定给了我一些建议。看起来好像我要建立自己的。你已经有文本了还是想从头开始?也许您可以将现有文档(如果有)转换为ReSt或其他格式,并使用stock解析器?问题是我们不知道新传入的文档会是什么样子。我们知道,我们设想的过程将只是半自动的。我想从原始文档的副本构建一个可解析文档会更容易,我们可以将其用作任何相关格式的源。那么,像我提到的那种轻量级格式将是您的正确起点。尝试使用其中一个进行解析,它可能会抱怨语法错误,但会进行一些处理。祝你好运