用Python从文本到结构化数据的信息提取

2024-09-28 21:49:18 发布

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

我对编程几乎一无所知,只是对它感兴趣。 我在一家船舶经纪公司工作,需要在职位(哪艘船在哪里、什么时候开放)和订单(在哪里需要什么样的船,什么时候需要什么样的工作)之间进行匹配。 我们通过电子邮件向委托人和联合经纪人发送和接收此类信息(头寸和订单)。 每天都有成千上万封这样的电子邮件。 我们通过手动阅读电子邮件来进行匹配。在

我想建立一个应用程序为我们做匹配。在

这个应用程序的一个重要部分是从电子邮件文本中提取信息。在

==>;我的问题是如何使用Python将非结构化信息提取到结构化数据中。在

订单电子邮件示例[括号中有注释,但不包括在电子邮件中]:

Email Subject: 20k dwt requirement, 20-30/mar, Santos-Conti

    Content: 
    Acct ABC [Account Name]
    Abt 20,000 MT Deadweight [Size of Ship Needed]
    Delivery to make Santos [Delivery Point/Range, Owners will deliver the ship to Charterers here]
    Laycan 20-30/Mar [Laycan (the time spread in which delivery can be accepted]
    1 time charter with grains [What kind of Empolyment/Trade, Cargo]
    Duration about 35 days [Duration]
    Redelivery 1 safe port Continent [Redelivery Point/Range, Charterers will redeliver the ship back to Owners here.]

    Broker name/email/phone...

End Email

上面的同一封邮件可以用很多不同的方式写——有些写在一行,有些用信用证而不是普通信用证。。。 还有一些职位的电子邮件,上面写着船名、开放港口、日期范围、船载重量和其他规格。在

如何使用Python提取信息并将其放入结构化数据中? 假设我已将所有电子邮件内容放入文本文件中。 谢谢。在


Tags: oftheto数据订单信息应用程序电子邮件
1条回答
网友
1楼 · 发布于 2024-09-28 21:49:18

以下是一种可能的方法:

第1步:使用邮件中的主题和/或邮件对邮件进行分类。在

如你所说,一类是请求职位的邮件,另一类是订单邮件。 机器学习可用于分类。您可以使用以前的邮件集作为训练语料库。您可以考虑在Python中使用NLTK(自然语言工具包)。Here是使用NLTK进行文本分类的链接。在

第2步:一旦电子邮件被标识为订单邮件,处理它以获取详细信息(帐户名、大小、时间差等),正如您提到的,这里的挑战是这些数据没有固定的格式。为了解决这个问题,您可以考虑为每个标签准备一个详尽的同义词列表(like for account,该列表可以像['acct', 'a/c', 'account', 'acnt'])。这应该是一次,通过浏览固定数量的以前的邮件。在

为了使解决方案更有效,可以考虑为active learning实现选项 (即,如果在邮件中找到了在任何列表中都找不到的标签,则提示用户。E、 g.在邮件中,如果使用"accnt",它不会被解析,因此应该提示用户询问它属于哪个类别。)

一旦标识了标签,就可以使用基本的字符串操作,以结构化格式解析fetch相关数据中的电子邮件。在

您可以参考this讨论以获得更好的理解。在

相关问题 更多 >