gpt4 book ai didi

python - 使用 Python 从文本中提取信息到结构化数据

转载 作者:行者123 更新时间:2023-11-28 18:44:05 27 4
gpt4 key购买 nike

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

我想构建一个应用来为我们进行匹配。

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

==> 我的问题是如何使用 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

上面的同一封电子邮件可以用多种不同的方式编写 - 有些写在一行中,有些使用 l/c 而不是 laycan...并且有关于职位的电子邮件,其中包含船名、开放港口、日期范围、船舶载重量和其他规范。

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

最佳答案

下面是一种可能的方法:

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

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

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

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

识别标签后,您可以使用基本的字符串操作来解析电子邮件,以结构化格式获取相关数据。

可以引用this讨论以便更好地理解。

关于python - 使用 Python 从文本中提取信息到结构化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com