如何确定人物相似度?

我正在使用Levenshtein距离在OCR之后找到类似的字符串。但是,对于某些字符串,编辑距离是相同的,尽管视觉外观明显不同。

例如,字符串Co将返回以下匹配项:

CY (1)

CZ (1)

Ca (1)

考虑到,这Co是来自OCR引擎的结果,它Ca比那些更可能匹配。因此,在计算了Levenshtein距离之后,我想通过按视觉相似性排序来优化查询结果。为了计算这种相似度,我想使用标准的无衬线字体,例如Arial。

是否可以为此目的使用一个库,或者我自己可以实现该库?另外,还有其他字符串相似度算法比Levenshtein距离更精确吗?

回答:

如果您正在寻找一张表格,该表格可让您根据视觉相似性来计算各种“更换成本”,那么我一直在寻找这样的东西,但收效甚微,因此我开始将其视为新事物。问题。我不使用OCR,但我正在寻找一种方法来限制概率输入中

字符的搜索参数。由于由于人类在视觉上混淆了字符而导致键入错误,因此相同的原理也应适用于您。

我的方法是根据字母的笔画成分在8位字段中对字母进行分类。这些位从左到右是:

7: Left Vertical

6: Center Vertical

5: Right Vertical

4: Top Horizontal

3: Middle Horizontal

2: Bottom Horizontal

1: Top-left to bottom-right stroke

0: Bottom-left to top-right stroke

对于小写字符,左侧的降序记录在对角线中,而第1位则记录在对角线中。

通过该方案,我提出了以下值,这些值试图根据视觉相似性对字符进行排名。

m:               11110000: F0

g: 10111101: BD

S,B,G,a,e,s: 10111100: BC

R,p: 10111010: BA

q: 10111001: B9

P: 10111000: B8

Q: 10110110: B6

D,O,o: 10110100: B4

n: 10110000: B0

b,h,d: 10101100: AC

H: 10101000: A8

U,u: 10100100: A4

M,W,w: 10100011: A3

N: 10100010: A2

E: 10011100: 9C

F,f: 10011000: 98

C,c: 10010100: 94

r: 10010000: 90

L: 10000100: 84

K,k: 10000011: 83

T: 01010000: 50

t: 01001000: 48

J,j: 01000100: 44

Y: 01000011: 43

I,l,i: 01000000: 40

Z,z: 00010101: 15

A: 00001011: 0B

y: 00000101: 05

V,v,X,x: 00000011: 03

就目前而言,这对我而言太原始了,需要更多的工作。但是,您可以使用它,也可以对其进行调整以适合您的目的。该方案非常简单。此排名适用于等宽字体。如果使用的是Sans-

Serif字体,则可能必须重新处理这些值。

该表是一个混合表,包括所有大小写字符,但是如果将其分为大写和小写,则可能会更有效,并且还可以应用特定的大写字母。

请记住,这是早期实验。如果您想方设法改进它(例如,通过更改位序列),请随时进行改进。

以上是 如何确定人物相似度? 的全部内容, 来源链接: utcz.com/qa/414204.html

回到顶部