- 想找出笔划差别细微的汉字。
- 比如 [余] 和 [佘] , [茶] 和 [荼] 。
- 一种思路是在给定字体下,渲染成固定尺寸的图片,然后 bitmap 比较汉明距离。
- 但这样碰到偏旁缩放的字可能会误判,比如 [侯] 和 [候] 。
- python 下有啥现成的轮子嘛?
- 或者大家还有啥别的思路嘛?
补充说明:
|
1
建一个映射表,把所有近似字都录入进去
|
|
x86Mar 14, 2019
3
参考下手写输入法
|
|
lastpassMar 14, 2019 via Android
4
常用字就 3 千,
字型相似的汉字有限且不多。 直接映射。 简单粗暴还好用。 |
|
jingxyyMar 14, 2019
5
没毛病,1 楼靠谱
|
|
6
可以先对图片侵蚀和膨胀,最后对图片异或处理,简单的话就简单的判断 1 的比重用阈值处理,复杂就扔到神经网络,做一批训练样本,学习下
|
|
8
@vJianZhen 我就想问怎么建映射表
你说的方法手动一个个比? |
|
9
@lastpass 我就是想问映射表哪儿来?
|
|
povvoqMar 14, 2019 via Android
10
五笔?
|
|
ifxoMar 14, 2019
11
没办法的,用嘴当然好做了
|
|
lastpassMar 14, 2019 via Android
12
另外:别去分析图片。
直接通过区位码读点阵字库的点阵内容就好。 |
|
13
@lastpass 区位码我去看看哦
而且因为是找近似字,范围应该不限于常用字,而是常用的 unicode 大字库了,比如微软雅黑 /思源 /萍方的交集,差不多这个范围里找。 |
|
lastpassMar 14, 2019 via Android
14
回复 @JCZ2MkKb5S8ZX9pq 搜索了一下。有对应的书籍。是否全面就不知道了。人工穷举也是个办法啊。比你花费时间去写程序跑出来结果更快更简单呀。
|
|
15
@lastpass 查了下
[GB 2312 - 维基百科,自由的百科全书]( https://zh.wikipedia.org/wiki/GB_2312) 16~55 区( 3755 个):常用汉字(也称一级汉字),按拼音排序; 56~87 区( 3008 个):非常用汉字(也称二级汉字),按部首 /笔画排序; 按拼音排序,好像并不适合用来做识别。 |
|
16
JCZ2MkKb5S8ZX9pq 非常好找。直接鄙视链最底端的百度文库都有。
https://m.baidu.com/sf_edu_wenku/view/35840bfebe23482fb5da4c04.html?re=view |
|
ebingtelMar 14, 2019
17
别用图片比较吧……每个汉字都有自己的笔画(网上很多开源的),感觉可以根据笔画向量来查找
|
|
18
@lastpass 人工穷举不太可能啊,字太多了,排序又不规则,两两比较就算只有 3000 个,这也太夸张了。况且很多近似字都是冷门生僻字,字库范围就不能按 3000 来算。
|
|
19
@lastpass 感谢提供的百度链接,但这个不大符合我的预期。
一方面近似度差了点,一方面不够量化,多近多远没个准。 |
|
20
|
|
21
|
|
tyrealgrayMar 14, 2019 via Android
22
介意问一下楼主打算做一个什么系统用于哪方面吗?
|
|
23
|
|
24
@tyrealgray 我在 append 里补充了一下
|
|
shyrockMar 14, 2019
25
可以用字型输入法的编码来比较吧,比如五笔。
|
|
gliyechenMar 14, 2019
26
1 楼方法不是挺好的嘛 还可以用在不同字体
|
|
lneoiMar 14, 2019
27
如果说找相近汉字, 不能只在常用汉字表里面互相比对吧,还得看异体字,国外汉字什么的?
|
|
28
|
|
acrossMar 14, 2019
29
除了暴力计算(感觉 CUDA 派上用场了?),估计只能靠输入法收集用户数据了.
做好了估计还能当个商业库呢~~ |
|
jdhaoMar 14, 2019 via Android
30
计算图像相似度?(一个猜想,不一定对
|
|
tusjMar 14, 2019
31
我一直好奇十几年前流行的火星文字,是怎么搞出来的。
有没可能用它来做混淆? |
|
c4f36e5766583218Mar 14, 2019
32
按一定规则,混淆文字,以最小影响阅读体验的代价,做内容保护和溯源???
按你这方法混淆了那文章含义不是变样了?句子不通了啊~ |
|
33
emmmm,你这需求不就是火星文?
|
|
glacerMar 14, 2019
34
能否拿到汉字的像素值?比如在 8x8 的矩阵中,空白点像素为 0,笔画点像素为 1,得到一个 64 位的向量。然后通过一些相似度算法计算即可。
|
|
nccerMar 14, 2019
35
火星文?
|
|
rekulasMar 14, 2019
36
直接导入深度学习文字识别库,准确率>60 的就是
|
|
mxtobMar 14, 2019 via iPhone
37
之前在思否看过一个解答。用 gd 库绘画需要 2 个比对文字,然后用图片相似度算法
|
|
38
@c4f36e5766583218 我觉得这个主要还是看比例,比如五千字的文章里换掉五个字,应该问题不大。再比如我这段话里就焕掉了—个字,但对阅読的影响应该不会很大。
|
|
39
黑色占比 0.13484312996031747 黑色占比 0.16272941468253968 差别比例 0.48925163811932404 ===== 进展汇报 试了几种图形识别的方式,都不大完美。 即便用点阵字体+bitmap 纯黑白,也不大理想。 况且我希望的结果是混淆人眼识别,有些比如 [辛] 和 [幸] 和 [亲] ,程序会觉得 13 更接近。 所以感觉这个问题比预想的还复杂一点。 笔划近似的确是一个思路,但还没想好怎么量化。 |
|
kuangwinnieMar 15, 2019
40
卷积神经网络?
|
|
akiraMar 15, 2019
41
找以前的汉字库 16x16 像素的 ,然后随便做个图片相似度算法 应该就能满足你了
|
|
c4f36e5766583218Mar 15, 2019
42
|
|
secsilmMar 15, 2019 via Android
44
@JCZ2MkKb5S8ZX9pq 我第一次读你的话就看出来了,而且很不舒服。另外我觉得你这样混淆不利于读者记住正确的字,甚至都分不清你这是故意的(有特殊含义)还是打错字了,也有可能让读者觉得你这个文章水平不行。
如果在你的使用场景对于这些都无关紧要。当我没说。 |
|
DamingMar 15, 2019
45
垚(yao)壵(zhuang),这两个字算是比较难分清楚的了
|
|
46
@JCZ2MkKb5S8ZX9pq 我写过一个小工具,可以分解分解单字成偏旁部首和笔画,并且带部件结构信息,我想你会产生重复是因为没有结构信息导致。https://github.com/vincentzlt/textprep
|
|
yufei02Mar 15, 2019
47
在分词领域,有一种解决方法是进行规划,如何你要区别的是"佘"和"余",需要事先人工做个穷举,发音和字形穷举,然后满足相同的分词要求即可。并且把该词标识为规则词。
|
|
yingfengiMar 15, 2019 via Android
48
低配版火星文?
|
|
51
|
|
a632027512Mar 15, 2019
52
坐等现成的车。 打字输入倒是可以用手写输入。
|
|
chinvoMar 15, 2019 via iPhone
53
量化出来的结果不一定符合人识读的感官体验
拿你举例的 [余] 和 [佘] , [茶] 和 [荼] , [侯] 和 [候],对于认识这些字的人来说,人识读的时候基本能一眼看出差别,对阅读体验还是很不友好的 不如用异体字和繁体字替代法,因为大部分人不能“看懂”异体字和繁体字,只能“猜测”其含义 |
|
ihciahMar 15, 2019
54
一个简单的思路,不一定对:训练一个分类器识别汉字,然后丢进去一个随机干扰后的“余”,那么 TopN 里除掉“余”本身就是和它相似的字了?
|
|
55
@chinvo 繁体因为映射表比较完整,很容易被破解吧。日韩越等异体汉字倒是可以,那块有空也想搞搞。
|
|
MichaelssssMar 15, 2019
56
首先。。你先得定义什么是“近似”,然后提出量化标准。。
|
|
loadingMar 15, 2019 via Android
57
不用,这种字,高中语文老师手里都有……
|
|
58
@vincentzlt 我觉得你这个不错。
我之前一直觉得,可以用 unicode 这个拼字的特性,做一套自动字体生成的东西。根据横竖笔划密度,自动调整磅数、中宫、转折和尾端处理等等。 |
|
Arnie97Mar 15, 2019 via Android
59
单就使用目的而言,这个方法远不如插零宽字符。这不就是故意在文章里制造错别字?而且文章里还不见得有相关的字出现。
|
|
60
@bghtyu 这个不错,看上去接近我的预期。
|
|
61
@Arnie97 插零宽字符一个 replace 就全白插了
|
|
hellobannyMar 15, 2019
62
这样错别字满天飞的文章谁要看啊,哪个产品想出来的破主意。
|
|
encroMar 15, 2019
63
结构。将字拆成结构,然后比较结构,然后再比较结构的笔画
|
|
sheeprain0627Mar 15, 2019 via Android
64
@danielmiao 好思路啊!
|
|
MortyPMar 15, 2019
65
有没有人做大家来找茬的插件呀
|
|
neterosterMar 15, 2019 via Android
66
|
|
galaxyzAug 11, 2020 via Android
67
这是人为造成错别字?
|