如何分类看不见的文本数据?

时间:2020-01-16 06:41:35

标签: python machine-learning keras deep-learning text-classification

我正在训练用于地址的文本分类器,以使给定的句子是否是地址。

Sentence examples :- 
(1) Mirdiff City Centre, DUBAI United Arab Emirates 
(2) Ultron Inc. <numb> Toledo Beach Rd #1189 La Salle, MI <numb>
(3) Avenger - HEAD OFFICE P.O. Box <numb> India

由于地址可以是n个类型,因此很难进行此类分类。是否有以相同或任何其他非ML方式进行任何预训练的模型或数据库。

3 个答案:

答案 0 :(得分:2)

如前所述,验证地址是否有效-最好形式化为信息检索问题,而不是机器学习问题。 (例如,使用服务)。

但是,从您提供的示例来看,似乎您会再次遇到几种实体类型,例如组织和位置。

我建议使用诸如spacy之类的NER来丰富数据,并将实体类型用于功能或规则。

请注意,命名实体识别器比典型的词袋分类器更依赖于上下文,并且通常对看不见的数据更健壮。

答案 1 :(得分:0)

上次我这样做时,问题特别棘手。因为我有国际化的地址,而且各国之间的差异很大。加上人为增加的变异性,甚至对人类来说,问题也变得十分棘手。

我终于建立了一种启发式方法(包含PO BOX,可能包含国家名称(grep Wikipedia),也许还有城市名称),然后将剩下的所有地址都放入Google Maps API。 GM非常适合识别地址,但即使这样也会产生误报,因此很可能需要手动检查。

我没有使用ML,因为我的地址数据库“很大”,但不足以进行训练,尤其是。我们缺少标记的训练数据。

答案 2 :(得分:0)

正如Uri Goren提到的那样,问题在于命名实体识别,而市场上有很多训练有素的模型。尽管如此,最好的人选还是斯坦福大学的NER。

https://nlp.stanford.edu/software/CRF-NER.shtml 它是一个条件随机字段NER。它在Java中可用。

如果您正在寻找相同的python实现。看一下: How to install and invoke Stanford NERTagger?

您可以在此处从多个标签序列中收集信息,例如 ,或类似的其他顺序。如果没有为您提供正确的信息,它仍然会以某种方式使您更接近整个文档中的任何地址。这是一个很好的开端。

谢谢。