列表中单词的二元分类器

Binary classifier of words in list

我使用 OCR 从大量瑞典语风格化文档中提取了文本。现在我想正式化数据并提取城市名称。由于 OCR 工作不完善,名称有时会拼写错误并出现在文本中的半随机位置。因此正则表达式不起作用。

将文本转换为词袋并训练算法将词二元分类为城市与非城市是否是一个很好的procedure/possible?

考虑示例数据集:

Col1                                          Col2
['Hi', 'there', 'Haag']                      ['Haag']
[‘Paris, ‘is’, ‘better’, ‘than’, ‘Osloe]     [‘Paris’, ‘Oslo’]
['My', 'hometown', 'is', 'New York']         ['New York']
...

我想使用 Col1 作为 X 变量,使用 Col2 作为 Y 变量。这是一个好的程序还是我应该使用其他方法?

处理拼写错误的一种可能方法是首先收集您的词汇表(语料库中的所有单词),然后根据各自的术语频率 select 个候选 OCR 错误(假设像 [=10 这样的错误=] 很少见)。在第二步中,您可以使用 Edit distance 到 link 候选拼写错误到正确的单词形式。

例如,要提取城市,您可以查看 spacy 用于命名实体识别的预训练模型。

"New York" 这样的搭配,您可以通过对比按顺序排列在一起的词的频率与单个词的频率(取决于您的语料库 "York" 可能经常与 [=13 一起出现)来识别=] 比人们假设 "New""York" 独立发生的假设要多得多。