使用Python从电子邮件中仅提取完整的句子?

时间:2013-06-25 07:39:09

标签: python nlp extract html-email text-processing

我有成千上万的电子邮件以纯文本或HTML格式存储。所有纯文本电子邮件的格式几乎相同,因此只提取实际的电子邮件消息很简单。

但HTML电子邮件到处都是,我发现很难想出一个只提取正文消息的方法。电子邮件中有很多其他垃圾>我不想要,例如“这封电子邮件是由...生成的”以及一堆其他非用户生成的文本,从电子邮件变为电子邮件。

Python是否有某种方法可以识别出类似于正文或完整句子的内容?

我已经尝试过使用此处的正则表达式: a Regex for extracting sentence from a paragraph in python

但问题在于我有很多看起来像这样的行:

标题*:先生

正则表达式认为是一个句子,我不想提取。

我也尝试将这个正则表达式与NLTK的POS标签器结合起来,只打印出同时具有名词和动词的句子,但我似乎并不好用,因为它只是内置的POS标签和未经过任何数据集培训。

所以我想我的问题是:如何解决我的问题?我错过了什么吗?

3 个答案:

答案 0 :(得分:0)

我希望html段落中您需要的所有句子,即<P></P>个标签所包围的句子。您可以先使用re来提取它们然后再处理它们。

答案 1 :(得分:0)

您可以使用BeautifulSoup来解析电子邮件的HTML标记,然后继续使用正则表达式

答案 2 :(得分:0)

请参阅NLTK's tokenizer package中的nltk.tokenize.sent_tokenize(text)。请注意,您必须在目标文本上自行尝试。当将文本标记为句子时,总会出现一些奇怪的情况,其中一个句子标记符或另一个句子生成错误的输出。