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

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

分类在这种情况下不会奏效.我也尝试使用Jaccard相似性分析器来找出连续句子之间的距离,如果它们之间的距离小于给定值,则尝试将连续的句子分组成一个段落.有没有更好的方法

这是我的文字示例:

Sylvester Gardenzio Stallone,nicknamed Sly Stallone,is an American actor,filmmaker and screenwriter. Stallone is kNown for his machismo and Hollywood action roles. Stallone’s film Rocky was inducted into the National Film Registry as well as having its film props placed in the Smithsonian Museum. Stallone’s use of the front entrance to the Philadelphia Museum of Art in the Rocky series led the area to be nicknamed the Rocky Steps.A commercial,educational,and cultural center,Philadelphia was once the second-largest city in the British Empire (after London),and the social and geographical center of the original 13 American colonies. It was a centerpiece of early American history,host to many of the ideas and actions that gave birth to the American Revolution and independence.The American Revolution was the political upheaval during the last half of the 18th century in which thirteen colonies in north America joined together to break free from the British Empire,combining to become the United States of America. They first rejected the authority of the Parliament of Great Britain to govern them from overseas without representation,and then expelled all royal officials. By 1774 each colony had established a Provincial Congress,or an equivalent governmental institution,to form individual self-governing states.

解决方法

所以我已经在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“成本”.文档分割计划的总成本是所有加入加盟费用的总和.要达成最终细分,您可以选择最低成本的计划.

当然,对于一个超过几句话的文档,对于暴力来说,有太多不同的可能的分割排列来评估他们的所有成本.所以你需要一些启发式来指导这个过程.动态规划可能会有所帮助.

对于实际的句子特征提取…好吧,这是真的很复杂的地方.

你可能想忽略高度语法词(连词性,如介词,连词,帮助动词和条款标记),并将你的相似性围绕更语义相关的词(名词和动词,在较小的程度上,形容词和副词).

一个天真的实现可能只是计数每个单词的实例数,并将一个句子中的单词计数与相邻句子中的单词计数进行比较.如果一个重要的词(如“费城”)出现在两个相邻的句子中,那么他们可能得到很高的相似度.

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

所以你需要评估每个单词的“意义”(其具体含义,给定周围环境),并将其涵义范围扩大到更广泛的领域.

例如,用“绿色”这个词形成一个句子.在我的特征提取过程中,我一定会包含确切的词法值(“绿色”),但是我也应用一个形态变换,将该单词归一化为其根形式(“绿色”).然后,我会在分类法中查找该词,并发现它是一种颜色,可以作为视觉描述符进一步推广.所以,根据这一个字,我可以在我的句子特征(“绿色”,“绿色”,“[颜色]”,“视觉”)的集合中添加四个不同的功能.如果文件中的下一句再次提到颜色“绿色”,那么这两句话就会非常相似.如果下一句使用“红色”这个词,那么他们仍然有一定程度的相似性,但是在一个较小的程度上.

所以,有几个基本的想法.您可以详细阐述这些广告无限制,并调整算法在您的特定数据集上表现良好.有一百万种不同的方式来攻击这个问题,但我希望其中一些建议有助于您的开始.

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...