我有成千上万的电子邮件以纯文本或HTML格式存储。所有纯文本电子邮件的格式几乎相同,因此只提取实际的电子邮件消息很简单。
但HTML电子邮件到处都是,我发现很难想出一个只提取正文消息的方法。电子邮件中有很多其他垃圾>我不想要,例如“这封电子邮件是由...生成的”以及一堆其他非用户生成的文本,从电子邮件变为电子邮件。
Python是否有某种方法可以识别出类似于正文或完整句子的内容?
我已经尝试过使用此处的正则表达式: a Regex for extracting sentence from a paragraph in python
但问题在于我有很多看起来像这样的行:
标题*:先生
正则表达式认为是一个句子,我不想提取。
我也尝试将这个正则表达式与NLTK的POS标签器结合起来,只打印出同时具有名词和动词的句子,但我似乎并不好用,因为它只是内置的POS标签和未经过任何数据集培训。
所以我想我的问题是:如何解决我的问题?我错过了什么吗?
答案 0 :(得分:0)
我希望html段落中您需要的所有句子,即<P></P>
个标签所包围的句子。您可以先使用re来提取它们然后再处理它们。
答案 1 :(得分:0)
您可以使用BeautifulSoup来解析电子邮件的HTML标记,然后继续使用正则表达式
答案 2 :(得分:0)
请参阅NLTK's tokenizer package中的nltk.tokenize.sent_tokenize(text)
。请注意,您必须在目标文本上自行尝试。当将文本标记为句子时,总会出现一些奇怪的情况,其中一个句子标记符或另一个句子生成错误的输出。