我已经从一些瑞典文的风格化文档中使用OCR提取了文本。现在我想整理这些数据并提取城市名称。由于OCR工作得不完美,名称有时拼写错误,并且在文本中以半随机的位置出现。因此,正则表达式不起作用。
将文本转换为词袋,并训练算法对词汇进行城市与非城市的二元分类,这种做法是否可行或合适?
考虑以下示例数据集:
Col1 Col2['Hi', 'there', 'Haag'] ['Haag'][‘Paris, ‘is’, ‘better’, ‘than’, ‘Osloe] [‘Paris’, ‘Oslo’]['My', 'hometown', 'is', 'New York'] ['New York']...
我想使用Col1作为X变量,Col2作为Y变量。这种方法是否合适,或者我应该使用其他方法?
回答:
处理拼写错误的一种可能方法是首先收集你的词汇表(语料库中的所有词),然后通过它们的单个术语频率来选择可能的OCR错误(假设像"Osloe"
这样的错误很少见)。在第二步中,你可以使用编辑距离将可能的拼写错误与其正确的词形联系起来。
要提取城市名称,你可以例如查看spacy的预训练模型,用于命名实体识别。
像"New York"
这样的搭配,你可以通过对比它们一起出现的频率与单个术语的频率来识别(取决于你的语料库,"York"
可能经常与"New"
一起出现,远比假设"New"
和"York"
独立出现的频率要高)。