如何使用 NLP 将非结构化文本内容分成不同的段落?

2023-12-30

以下非结构化文本具有三个不同的主题:史泰龙、费城和美国革命。但是您会使用哪种算法或技术将这些内容分成不同的段落?

分类器在这种情况下不起作用。我还尝试使用 Jaccard 相似度分析器来查找连续句子之间的距离,并尝试在连续句子之间的距离小于给定值时将它们分组为一个段落。有更好的方法吗?

这是我的文本示例:

西尔维斯特·加登齐奥·史泰龙,绰号“狡猾的史泰龙”,是一位美国演员、电影制片人和编剧。史泰龙以其男子气概和好莱坞动作角色而闻名。史泰龙的电影《洛奇》被纳入国家电影登记处,其电影道具也被放置在史密森尼博物馆。史泰龙在《洛奇》系列中使用了费城艺术博物馆的正门,使该地区被昵称为“洛基台阶”。费城是商业、教育和文化中心,曾是大英帝国第二大城市(仅次于伦敦) ),以及原13个美洲殖民地的社会和地理中心。它是美国早期历史的核心,孕育了许多催生美国革命和独立的思想和行动。美国革命是 18 世纪下半叶的政治剧变,北美 13 个殖民地加入其中共同摆脱大英帝国,合并成为美利坚合众国。他们首先拒绝了英国议会在没有代表的情况下从海外统治他们的权力,然后驱逐了所有王室官员。到 1774 年,每个殖民地都建立了省议会或同等的政府机构,以形成各自的自治国家。


我在 NLP 领域工作了很长时间,这是一个你想要解决的非常棘手的问题。您永远无法实现 100% 准确度的解决方案,因此您应该预先决定是做出假阴性决策(未能找到段落分割点)还是假阳性决策(插入虚假分段)更好点)。完成此操作后,收集文档语料库并注释您期望找到的真实分割点。

完成此操作后,您将需要一种查找 EOS(句尾)点的机制。然后,在每对句子之间,您需要做出二元决定:是否应该在此处插入段落边界?

您可以根据不同的分割点来衡量每个段落中概念的凝聚力。例如,在一个有五个句子的文档(ABCDE)中,有十六种不同的分段方法:

ABCDE   ABCD|E   ABC|DE   ABC|D|E   AB|CDE   AB|CD|E   AB|C|DE   AB|C|D|E
A|BCDE  A|BCD|E  A|BC|DE  A|BC|D|E  A|B|CDE  A|B|CD|E  A|B|C|DE  A|B|C|D|E

为了衡量衔接性,您可以使用句子到句子的相似性度量(基于为每个句子提取的一些特征集合)。为简单起见,如果两个相邻句子的相似度度量为 0.95,则将它们组合到同一段落中的“成本”为 0.05。文档分割计划的总成本是所有句子连接成本的总和。为了达到最终的细分,您选择总成本最低的计划。

当然,对于包含多个句子的文档,有太多不同的可能的分段排列,无法强力评估其所有成本。因此,您需要一些启发式方法来指导该过程。动态编程在这里可能会有所帮助。

至于实际的句子特征提取……嗯,这就是事情变得非常复杂的地方。

您可能想忽略高度句法的单词(介词、连词、助动词和从句标记等连接词),并将相似性建立在语义更相关的单词(名词和动词,以及较小程度上的形容词和副词)上。

简单的实现可能只是计算每个单词的实例数量,并将一个句子中的单词计数与相邻句子中的单词计数进行比较。如果一个重要的单词(如“费城”)出现在两个相邻的句子中,那么它们可能会获得很高的相似度得分。

但问题是两个相邻的句子可能具有非常相似的主题,即使这些句子具有完全不重叠的单词集。

因此,您需要评估每个单词的“含义”(在给定周围上下文的情况下,其具体含义)并将该含义概括为涵盖更广泛的领域。

例如,想象一个含有“greenish”一词的句子。在我的特征提取过程中,我当然会包含确切的词汇值(“绿色”),但我还会应用形态变换,将单词标准化为其根形式(“绿色”)。然后我会在分类中查找该单词,发现它是一种颜色,可以进一步概括为视觉描述符。因此,基于这个词,我可能会在我的句子特征集合中添加四种不同的特征(“绿色”、“绿色”、“[颜色]”、“[视觉]”)。如果文档中的下一个句子再次提到颜色“绿色”,那么这两个句子将非常相似。如果下一句话使用“红色”这个词,那么它们仍然有一定程度的相似性,但程度较小。

所以,有一些基本的想法。您可以无限地详细说明这些并调整算法以在您的特定数据集上表现良好。有一百万种不同的方法可以解决这个问题,但我希望其中一些建议对您入门有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 NLP 将非结构化文本内容分成不同的段落? 的相关文章

  • nltk 标记化和缩写

    我用 nltk 对文本进行标记 只是将句子输入到 wordpunct tokenizer 中 这会拆分缩写 例如 don t 到 don t 但我想将它们保留为一个单词 我正在改进我的方法 以实现更精确的文本标记化 因此我需要更深入地研究
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 如何通过VBA宏遍历Word文档中的文本

    我想通过宏来计算 Word 文档中的字符 我不知道如何获取 Visual Basic 宏中文本的两个参考并浏览它 我想计算文档中每个字符的数量 例如文档中 ABZBB A x 1 B x 3 Z x 1 Sub Macro1 Dim Box
  • 如何让文字适合Button?

    在我的 Android 应用程序中 我有一个用于对照片进行投票的按钮 当用户选择这个按钮时 这个按钮上的文字变成 感谢您的投票 当他看到他之前投票过的照片时 按钮上会看到文字 您已经为这张照片投票 问题是它看起来像这样 http i55 t
  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到
  • 单击时突出显示文本(javascript jquery html)

    当您在所有浏览器中双击某个单词时 它们会自动突出显示单击下的单词 但是否有可能找到一种方法exact单击一下就会发生同样的事情吗 我想这涉及到的事情可能是 TextRange 的东西 对所有段落 或整个正文或 div 的 onclick 做
  • 如何区分哪些 unicode 字符是字母(单词)还是标点符号?

    我想检测文本中的单词 即我需要知道给定文本中的哪些字符是字母 即它们可以是 口语 单词的一部分 另一方面 哪些字符是标点符号等 例如 在上面的句子中 我 想要 和 i 和 e 是这方面的单词 而空格 和逗号则不是 这样做的困难在于我希望能够
  • 使用 setMessage() 在 AlertDialog 中显示多行文本和变量

    我需要在警报对话框中显示多行文本 如果我使用多个 setMessage 方法 则仅显示最后一个 setMessage 如下所示 final AlertDialog alertDialog new AlertDialog Builder th
  • 如何使用 lstm 执行多类多输出分类

    I have multiclass multioutput classification see https scikit learn org stable modules multiclass html https scikit lear
  • 批量大小不适用于带有deploy.prototxt的caffe

    我正在努力让我的分类过程更快一些 我想增加我的deploy prototxt中的第一个input dim 但这似乎不起作用 甚至比对每张图像进行分类还要慢一点 部署 prototxt input data input dim 128 inp
  • NLTK 可用的停用词语言

    我想知道在哪里可以找到 NLTK 停用词支持的语言 及其键 的完整列表 我找到一个列表https pypi org project stop words https pypi org project stop words 但它不包含每个国家
  • 在组合框中设置所选项目 - vb.net

    我正在使用此代码向与显示的不同的组合框添加一个值 如何为组合框项目添加值 https stackoverflow com questions 1887388 how to add value to combobox item 假设我的组合框
  • 如何从Python中的阿拉伯字符串中删除英文文本?

    我有一个带有英文文本和标点符号的阿拉伯字符串 我需要过滤阿拉伯文本 我尝试使用 sting 删除标点符号和英语单词 但是 我失去了阿拉伯语单词之间的空格 我哪里错了 import string exclude set string punc
  • 使用 Huggingface 变压器仅保存最佳权重

    目前 我正在使用 Huggingface transformers 构建一个新的基于 Transformer 的模型 其中注意力层与原始模型不同 我用了run glue py检查我的模型在 GLUE 基准测试上的性能 但是 我发现huggi
  • 如何使用 BeautifulSoup 只抓取可见的网页文本?

    基本上 我想用BeautifulSoup严格抓住可见文字在网页上 例如 这个网页 http www nytimes com 2009 12 21 us 21storm html是我的测试用例 我主要想获取正文 文章 甚至可能到处都有一些选项
  • 使用自定义层运行 Keras 模型时出现问题

    我目前正在攻读学士学位论文FIIT STU https www fiit stuba sk en html page id 749 其主要目标是尝试复制和验证以下结果study http arxiv org abs 2006 00885 这
  • 分词统计方法

    我想解决分词问题 从没有空格的长字符串中解析单词 例如我们想要从中提取单词somelongword to some long word 我们可以通过字典的动态方法来实现这一点 但我们遇到的另一个问题是解析歧义 IE orcore gt or
  • 地图应用的聚类算法

    我正在研究地图上的聚类点 纬度 经度 对于快速且可扩展的合适算法有什么建议吗 更具体地说 我有一系列纬度 经度坐标和一个地图视口 我正在尝试将靠近的点聚集在一起以消除混乱 我已经有了解决问题的方法 see here http bouldr
  • 神经网络 - 我的网络似乎训练得很好,但在分类报告中它是完全随机的

    我正在训练一个模型来对 3 种类型的车辆进行分类 一切看起来都很顺利 直到我尝试用我的模型预测任何事情 预测结果是完全随机的 我使用 3 个类别的 15000 张图像 每个类别 5000 个 进行训练 并使用 3 个类别的 6000 个图像
  • Keras:binary_crossentropy 和 categorical_crossentropy 混淆

    使用 TensorFlow 一段时间后 我阅读了一些 Keras 教程并实现了一些示例 我找到了几个使用卷积自动编码器的教程keras losses binary crossentropy作为损失函数 我想binary crossentro

随机推荐