从文本中提取数据元组...正则表达式或机器学习?

问题描述 投票:0回答:6

解决以下问题的最佳方法是什么?我正在使用本质上相似的汽车分类列表示例来给出一个想法。

问题:从给定文本中提取数据元组。

以下是数据的一些特征。

  1. 文本中的词汇(单词)仅限于特定领域。假设最多 100-200 个单词。

  2. 需要解析的文本是标题,如下所示的汽车广告数据。所以每条记录对应一个元组(行)。

  3. 在某些情况下,某些属性可能会丢失。例如,在原始数据中,年份下方的第 5 行缺失。

  4. 有些单词组合在一起(二元组)。就像“低里程”。

  5. 可用历史数据 = 10,000 条记录

  6. 传入的新数据量 = 1000-1500 条记录/周

预期输出应采用(年份、品牌、型号、功能)的形式。所以输出应该是这样的

1 -> (2009, 福特, Fusion, SE)
2 -> (1997, 福特, 金牛座, 旅行车)
3 -> (2000, 三菱, Mirage, DE)
4 ->(2007 年,福特、Expedition、EL Limited)
5 -> ( , 本田, 雅阁, EX)
....
....

原始标题数据:


1 -> 2009 福特 Fusion SE - 7000 美元
2 -> 1997 年福特金牛座旅行车 - 800 美元(圣何塞东)
3 -> '00 三菱 Mirage DE - 2499 美元(萨拉托加)图片
4 -> 2007 福特 Expedition EL Limited - 7800 美元 (x)
5 -> 本田雅阁前低英里 - 2800 美元(都柏林/普莱西顿/利弗莫尔)图片
6 -> 2004 本田 ODASSEY LX 68K 英里 - 10800 美元(丹维尔 / 圣拉蒙)
7 -> 93 LINCOLN MARK - 2000 美元(奥克兰东部)图片
8 -> #######2006 雷克萨斯 GS 430 黑对黑 114KMI ####### - 19700 美元(圣拉斐尔)图片
9 -> 2004 奥迪 A4 1.8T FWD - 8900 美元(萨克拉门托)图片
10 -> #######2003 GMC C2500 HD EX-CAB 6.0 V8 EFI 白色 4X4 ####### - 10575 美元(圣拉斐尔)图片
11 -> 1990 款丰田卡罗拉运行良好!节省燃气! 5 速清洁! REG 2011 O.B.O - $1600(海沃德/卡斯特罗谷)pic img
12 -> 本田雅阁 EX 2000 - $4900(都柏林/普莱斯顿/利弗莫尔)图片
13 -> 2009 雪佛兰 Silverado LT Crew Cab - 23900 美元(都柏林/普莱斯顿/利弗莫尔)图片
14 -> 2010 Acura TSX - V6 - TECH - 29900 美元(都柏林/普莱西顿/利弗莫尔)图片
15 -> 2003 Nissan Altima - 1830 美元(旧金山)图片


可能的选择:

  1. 机器学习文本分类器(朴素贝叶斯等)
  2. 正则表达式

我想弄清楚的是,正则表达式对于这项工作来说是否太复杂,而文本分类器是否太过杀伤力?

如果选择使用文本分类器,那么您认为什么是最容易实现的?

regex machine-learning nlp classification extract
6个回答
4
投票

这是一个经过充分研究的问题,称为“信息提取”。做你想做的事情并不简单,也不像你听起来那么简单(即机器学习并不是一种矫枉过正)。有多种技术,您应该阅读研究领域的概述。


3
投票
this

IE库编写提取规则快速字典匹配。 < I think it will work best for you problem. There also example how to create


0
投票
ARX 或 Phoebus

系统可能会满足您的需求。他们的方法是信息提取和信息集成的结合。


0
投票
Apache opennlp

吗?


0
投票

我认为最好的选择是为每个车型编写一个 String -> Maybe Tuple 类型的函数。然后在每个输入上运行所有这些,并丢弃这些输入,导致零或太多元组。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.