如何确定人物相似度?
我正在使用Levenshtein距离在OCR之后找到类似的字符串。但是,对于某些字符串,编辑距离是相同的,尽管视觉外观明显不同。
例如,字符串Co
将返回以下匹配项:
CY (1)CZ (1)
Ca (1)
考虑到,这Co
是来自OCR引擎的结果,它Ca
比那些更可能匹配。因此,在计算了Levenshtein距离之后,我想通过按视觉相似性排序来优化查询结果。为了计算这种相似度,我想使用标准的无衬线字体,例如Arial。
是否可以为此目的使用一个库,或者我自己可以实现该库?另外,还有其他字符串相似度算法比Levenshtein距离更精确吗?
回答:
如果您正在寻找一张表格,该表格可让您根据视觉相似性来计算各种“更换成本”,那么我一直在寻找这样的东西,但收效甚微,因此我开始将其视为新事物。问题。我不使用OCR,但我正在寻找一种方法来限制概率输入中
字符的搜索参数。由于由于人类在视觉上混淆了字符而导致键入错误,因此相同的原理也应适用于您。
我的方法是根据字母的笔画成分在8位字段中对字母进行分类。这些位从左到右是:
7: Left Vertical6: 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: F0g: 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