python - 使用机器学习来解析包含化学数据的复杂字符串?

标签 python parsing machine-learning

我的化学信息数据非常差(脏?),其格式如下:

ID  Chemicals
1701    3 Tanks - 1 - Benzoyl Chloride and 2 - Benzoflex
1840    Two 520 Class IIIB inside and Two 16,800 Condensate tanks
1840    Two 520 Class IIIB inside and Two 16,800 Condensate tanks
1938    2 tanks - 1,100 gallons diesel & 1,100 gallons gasoline
1888    4 tanks - 3 - 20,000 gallon and 1 - 10,000 gallon  Gas, Diesel and K-1

我需要解析这些数据以搜索每个 super 字符串中可识别的化学物质。解析这些数据后,我可以在常用的化学数据库中搜索子集,以返回每个子集的命中(不同质量)。主要问题是我不知道如何开始以有效且结构化的方式解析这些数据。我正在考虑几个想法:

  1. 将每个超字符串解析为所有子字符串组合,使用空格作为子字符串的分隔符,然后搜索子字符串的所有组合。
  2. 执行上述操作,但只有在删除我知道没有用的关键词(tanks、class、inside 等)之后才可以
  3. 使用带有监督学习的机器学习算法来解析数据 - 监督学习是我的反馈,判断解析的数据是否有助于从外部化学数据库提供有用的匹配

在实现方法 1 并获得可怕的结果之后,现在我正在尝试方法 2,但我发现构建和维护要忽略的“键”列表实在太麻烦了。

如果我想遵循选项三,哪些 python 机器学习库可以提供此功能?

最佳答案

您可能会考虑:

  • 从全面的化学词汇开始。
  • 对 super 字符串执行 n 元语法(可能是 3 个或 4 个?)解析
  • 仅保留那些至少包含化学词汇表中的一个术语的 ngram
  • 对每个超弦内的化学相关结果进行进一步分析

您将缩小输入数据范围,仅关注化学相关元素:因此随后可能会应用许多分析工具/算法。

关于python - 使用机器学习来解析包含化学数据的复杂字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883313/

相关文章:

python - matplotlib:我可以创建 AxesSubplot 对象,然后将它们添加到 Figure 实例吗?

python - 使用 Paramiko 递归目录下载?

c - 在C语言中将IP地址截断为/24的最简单方法是什么?

algorithm - 排名算法

machine-learning - 随机森林的交叉验证

python - 删除 "?"python 之后的所有内容

python - 计算 pandas df 中的非空值

swift - 将 PFObject 指针转换为解析中的子类(swift)

Python ElementTree 不喜欢处理指令名称中的冒号

python - 如何在 python 中对 PMML 模型进行超参数调优?