如何使用NLTK从文本中提取引语

2024-09-28 15:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从一套庞大的文章中摘录出大量的文章。在这里,我所说的引语是指人们说的话,例如:Alen说“要提取的文本”。我将NLTK用于其他与NLP相关的任务,因此使用NLTK或任何种类的Python库的解决方案都将非常有用。在

谢谢


Tags: 文本nlp文章解决方案种类nltkalen
2条回答

正如Mayur提到的,您可以使用regex来获取引号之间的所有内容

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

你会遇到的问题是,引号之间可能有大量的东西实际上不是引号。在

如果你在写学术文章,你可以在结束语后找一个数字来提取脚注编号。否则,对于非学术性的文章,您可以运行类似于:

^{pr2}$

可以更精确,但可能会丢失引号(例如块引号)(块引号无论如何都会导致问题,因为它们可以在结束引号之前包含新行)

也许除了用“网络”这个词,我想没什么用了。在

这限定为一个模式,即您要查找的数据总是在引号""之间。简单地说,您可以使用regex进行模式匹配。 让我们以这个例子she said " DAS A SDASD sdasdasd SADSD", " SA23 DSD " ASDAS "ASDAS1 3123$ %$%"

对您的基本示例有效的regex是-

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

List给我们['" DAS A SDASD SADASD SADSD"', '" SA23 DSD "', '"ASDAS1 3123$ %$%"']

在这里,.*?匹配任何字符(除了换行符),模式与引号(开始\"和结束\")完全匹配。在

请注意,引号内的引号会破坏此代码。你不会得到预期的输出。在

相关问题 更多 >