当前位置: 首页 > 知识库问答 >
问题:

如何使用NLTK[复制]从文本中提取引文

班浩皛
2023-03-14

我有一个项目,我需要从一大堆文章中提取引文。在这里,引用我的意思是人们所说的事情,例如:阿伦说“要提取的文本”我将NLTK用于其他与NLP相关的任务,因此任何使用NLTK或任何类型的Python库的解决方案都非常有用。

谢谢

共有2个答案

微生嘉
2023-03-14

这符合模式的要求,即您要查找的数据总是在引号之间。简单地说,您可以使用正则表达式进行模式匹配。让我们举个例子她说“DAS A SDASD SDASD SADSD”,“SA23 DSD”ASDAS“ASDAS1 3123$%%”

适用于基本示例的正则表达式是-

list = re.findall("\".*?\"", string)

List为我们提供了[“DAS A SDASD SADASD SADASD”、“SA23 DSD”、“ASDAS1 3123$%$%”]

这里,*匹配任何字符(除换行符外),并且模式按字面顺序匹配引号(开头\“和结尾\”)。

请注意,引号中的引号会破坏此代码。您将无法获得预期的输出。

贺善
2023-03-14

正如Mayur所提到的,你可以做一个正则表达式来拾取引号之间的所有内容

list = re.findall("\".*?\"", string)

您将遇到的问题是,引号之间可能有大量事实上不是引号的东西。

如果你写的是学术文章,你可以在结束语后找一个数字来选择脚注编号。对于非学术性文章,或许您可以运行以下内容:

"(said|writes|argues|concludes)(,)? \".?\""

可以更精确,但有丢失引号的风险,如块引号(块引号无论如何都会给你带来问题,因为它们可以在收盘引号前包含换行符)

至于使用NLTK,除了wordnet查找“said”的同义词外,我想不出还有什么比它更有帮助的了。

 类似资料:
  • 问题内容: 有更有效的方法吗?我的代码读取一个文本文件并提取所有名词。 如何减少此代码的时间复杂度?有没有办法避免使用嵌套的for循环? 提前致谢! 问题答案: 如果您不接受其他选项,请签出。它可以轻松提取所有名词和名词短语:

  • 句子的输入列表: 所需输出: 是否有一种方法可以使用内置或第三方标记器使用提取引用(可以以单引号和双引号显示)? 我曾尝试使用tokenizer作为值提供单引号和双引号,但结果与预期相差甚远,例如: 有类似这样和这样的线程,但它们都建议使用基于正则表达式的方法,但是,我很好奇这是否只能用来解决-听起来像是自然语言处理中的常见任务。

  • 我试图从docx中提取文本:tika-app做得很好,但当我试图在代码中做同样的事情时,结果是什么也没有,tika解析器说我的docx文件的内容类型是“application/zip”。 我该怎么办?我应该使用递归方法(像这样)还是有其他方法? java.lang.noClassDefFounderRor:org/apache/poi/openXML4j/exceptions/invalidFor

  • 我想知道如何从pdf中提取数据,通过使用python语言在py魅力。我试图通过从pypdf2导入使用py魅力编码,但它没有显示结果。

  • 我使用Apache pdfbox来提取文本。我可以从pdf中提取文本,但我不知道如何知道这个词是否加粗???(代码建议很好!!!)下面是从pdf中提取纯文本的代码,效果很好。

  • 问题内容: 我正在尝试使用提取此 PDF文件中包含的文本。 我正在使用PyPDF2模块,并具有以下脚本: 运行代码时,得到以下输出,该输出与PDF文档中包含的输出不同: 如何提取PDF文档中的文本? 问题答案: 要从PDF提取文本,请使用以下代码