我已经使用OCR从许多样式化文档中提取了文本。现在,我想对数据进行形式化并提取城市名称。由于OCR不能正常工作,因此有时将名称拼写错误并显示在文本的半随机位置。因此,正则表达式不起作用。
将文本转换成单词袋,并训练一种算法将单词二进制分类为城市与不是城市,这是一个很好的程序/可能吗?
考虑示例数据集:
Col1 Col2
['Hi', 'there', 'Haag'] ['Paris']
[‘Paris, ‘is’, ‘better’, ‘than’, ‘Osloe] [‘Paris’, ‘Oslo’]
['My', 'hometown', 'is', 'New York'] ['New York']
...
我想将Col1用作X变量,并将Col2用作Y变量。这是一个很好的过程,还是我应该使用其他方法?
处理拼写错误的一种可能方法是,首先收集您的词汇表(语料库中的所有单词),然后根据候选词的出现频率选择OCR候选错误(假设像"Osloe"
这样的错误很少见)。在第二步中,您可以使用Edit distance将候选拼写错误与正确的单词形式相关联。
例如,要提取城市,可以查看spacy的用于命名实体识别的预训练模型。
与"New York"
相似的排列,您可以通过对比按顺序排列在一起的术语的频率与各个术语的频率来进行识别。