我正在尝试对具有混合数字和分类特征的大型数据集执行分类。数据集都是半结构化文本,所以一切都是字符串。有谁知道我可以用来自动识别数字特征的库(例如“宽度(英寸)”,对应于英寸的宽度)?这很重要,因为在我的分析管道中,数字和分类特征的编码/处理方式不同。我认为这基本上是一个命名实体识别问题,其中实体是数据集中作为字符串/文本存在的数字变量或特征。
识别数字实体
数据挖掘
特征提取
命名实体识别
2022-03-05 15:58:58
1个回答
有许多很好的库可以识别类似数字的值,但是识别相应的字段名比较棘手,而且可能非常特定于问题。
纯粹的数据驱动方法可能会寻找与数字同时出现的情况,例如:
if [*number-like* capacity] or [capacity: *number-like*] occurs in > x% of
出现“容量”的实例,则“容量”可以被猜测为类似数字的事物的标签。
甚至这些关系的性质(例如,是否应该在之前、之后、大写)都可以从现有的已知标签中学习。
这可以通过使用公共tri-gram 样本数据的Google BigQuery来完成。但我认为这超出了范围并且在这里不切实际。
一种实用的方法,可能旨在将这些字符串分类为numerical_units,categorical_units甚至unsure更多类,然后对后者进行人工审查。(有一些非常棘手的情况,例如,“容量”是数字,但“容量类型”不是。)
作为起始列表,您可以使用:
wiktionary:Category:en:Units_of_measure
wiktionary:Category:Symbols_for_SI_units
wiktionary:Category:en:Mathematics
请注意,它们是单数形式。对于您的域,考虑查找其他此类列表。
如果字符串与其中一个标签完全匹配,则可以将其视为numerical_unit. 您的下一个关注点是宽容的、模糊的匹配。你可以对待'。作为通配符(所以"in*"匹配"inch" ),或者找到像"inch"这样的单位的实际缩写。这些您可以标记为unsure然后查看。同样,如果单词仅包含在字符串中,例如"arch length"包含"length"。
我认为一旦你完成了这个,你就可以进行一些改进并添加一些特殊情况。甚至没有看到您的数据样本,很难说更多。如果您的大多数字符串都是数字单位,那么识别分类单位可能会更容易。