Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

分享一个自己生成的特征文件 char_meta.txt #33

Open
8 tasks done
Lijiachen1018 opened this issue Jul 24, 2020 · 24 comments
Open
8 tasks done

分享一个自己生成的特征文件 char_meta.txt #33

Lijiachen1018 opened this issue Jul 24, 2020 · 24 comments

Comments

@Lijiachen1018
Copy link

Lijiachen1018 commented Jul 24, 2020

char_meta.txt

约10MB大小,不能保证完全正确。

几行预览:

U+4E07	万	wan4,mo4;maan6,mak6;MAN,MWUK;MAN,BAN;vạn	⿱一⿰丿𠃌
U+4E08	丈	zhang4;zoeng6;CANG;JOU,CHOU;trượng	⿻一⿻㇇乀
U+4E09	三	san1;saam1,saam3;SAM;SAN;tam	⿱一⿱一一
U+4E0A	上	shang4,shang3;soeng5,soeng6;SANG;JOU,SHOU;thượng	⿱⿰丨一一
U+4E0B	下	xia4;haa5,haa6;HA;KA,GE;hạ	⿱一⿻丨丶
U+4E0C	丌	qi2,ji1;gei1;KI;KI,GI;null	⿱一⿰丿丨

生成过程

  • Unihan_Readings.txt获取汉字的各个语言发音
    • 汉语多音字kHanyuPinyin, kMandarin, kTGHZ2013, kXHC1983
    • 各语言kCantonese, kKorean, kJapaneseOn, kVietnamese
  • ids.txt遍历拆解汉字笔画,
    • 拆解复杂字,在ids.txt提供了部件笔画的
    • 部分简单字没有笔画,利用makemehanzi的笔画
    • 获取所有中文笔画的集合,cjklib分解后只有1画的
    • 还是部分简单字没有笔画,标注后再遍历(利用wiki dictionary和自己标)
@Lijiachen1018
Copy link
Author

前一阵还看到一个小米的小爱语音纠错 -> 微信文章

@huitang
Copy link

huitang commented Aug 4, 2020

多谢分享 是不是应该拼音在前 笔画在后

@Lijiachen1018
Copy link
Author

多谢分享 是不是应该拼音在前 笔画在后

确实反了,已经上传了新的😂

@TianWuYuJiangHenShou
Copy link

多谢分享

@mrb957600057
Copy link

感谢分享

1 similar comment
@michael-zhaoxy
Copy link

感谢分享

@lwsbox
Copy link

lwsbox commented Jun 5, 2021

fine-tuned/ 这目录下的文件有吗 可以分享否

@huitang
Copy link

huitang commented Jun 8, 2021 via email

@Lijiachen1018
Copy link
Author

fine-tuned/ 这目录下的文件有吗 可以分享否

Google Drive

@hudielv
Copy link

hudielv commented Jun 17, 2021

多谢分享 是不是应该拼音在前 笔画在后

确实反了,已经上传了新的😂

上传新的文件在哪呢

@hstk30
Copy link

hstk30 commented Jun 23, 2021

Hi, 这个特征文件你有自己测试过吗,我试了下,发现用这个文件输出的田 由的相似度只有0.33, 去文件里找了下,发现它们的ids 为田: ⿵⿰丨𠃌⿱⿻一丨一 由:⿻⿴⿱⿰丨𠃌一一丨, 它们的编辑距离变成了6,这和作者的数据有明显的出入

@hudielv
Copy link

hudielv commented Jun 23, 2021

我没用它这个文件,他这个IDS文件确实有问题

@hstk30
Copy link

hstk30 commented Jun 23, 2021

@hudielv 那你是怎么做的?

@hstk30
Copy link

hstk30 commented Jun 23, 2021

嗯,好像又是对的,因为 @Lijiachen1018 生成的是树形的ids, 而我使用的是 levenshtein 的编辑距离, 我再测试下

@wellhowtosay
Copy link

嗯,好像又是对的,因为 @Lijiachen1018 生成的是树形的ids, 而我使用的是 levenshtein 的编辑距离, 我再测试下

为什么是树形的ids呢,难道不是和原论文一样的先序遍历序列嘛

@huangxin168
Copy link

huangxin168 commented Oct 11, 2021

这个ids文件是树结构,但是有一个问题,就是单纯以笔画顺序来做ids(@Lijiachen1018),例如 田、由,本来字形很近似,却得到较大距离=7,导致测试结果跟例子(距离=1)不同。FASPell应该是根据字形统一优化了ids。
因此,想要好的效果,ids需要再优化。

@huangxin168
Copy link

huangxin168 commented Oct 12, 2021

嗯,好像又是对的,因为 @Lijiachen1018 生成的是树形的ids, 而我使用的是 levenshtein 的编辑距离, 我再测试下

ids规范就是树形的, 虽然是树形,也可以用来计算 levenshtein,也是有效的。FASPell应该是根据字形统一优化了ids。
论文说了,FASPell用的是简单的levenshtein,没有用TED:
We do not use the tree-form IDS for two reasons even as it seems to make more sense intuitively.
Firstly, even with the most efficient algorithm (Pawlik and Augsten, 2015, 2016) so far, tree edit distance (TED) has far greater time complexity than edit distance of strings (O(mn(m + n)) vs. O(mn)).
Secondly, we did try TED in preliminary experiments, but there was no significant difference from using edit distance of strings in terms of spell checking performance.

@huangxin168
Copy link

huangxin168 commented Oct 18, 2021

fine-tuned/ 这目录下的文件有吗 可以分享否

Google Drive

这个fine-turned model试了下,效果不行,还没有直接用pretrained的好。
其实如果不是特定场景的应用,不需要fine-tuned model。
论文里说了: Note that we do not fine-tune the mask language model
for OCR data because we learned in preliminary experiments that fine-tuning worsens performance
for this type of data9.

@zejunwang1
Copy link

这个特征文件有问题啊,使用这个特征文件计算出来的“田”和“由”相似度:

For character pair (由, 田):
v-sim = 0.33333333333333337
p-sim = 0.09

使用作者提供的 char_meta.txt 部分数据计算得到:
For character pair (由, 田):
v-sim = 0.8888888888888888
p-sim = 0.09

是不是 stroke-level IDS 哪里出问题了啊?

@zejunwang1
Copy link

这个特征文件有问题啊,使用这个特征文件计算出来的“田”和“由”相似度:

For character pair (由, 田): v-sim = 0.33333333333333337 p-sim = 0.09

使用作者提供的 char_meta.txt 部分数据计算得到: For character pair (由, 田): v-sim = 0.8888888888888888 p-sim = 0.09

是不是 stroke-level IDS 哪里出问题了啊?

问题已解决,在计算编辑距离前可以先对这份特征文件的 stroke-level IDS 进行排序,排序后计算出来的字形相似度就正确了。

@huangxin168
Copy link

请详细说一下怎么操作可以吗?感谢!

@zejunwang1
Copy link

请详细说一下怎么操作可以吗?感谢!

对 田: ⿵⿰丨𠃌⿱⿻一丨一 和 由:⿻⿴⿱⿰丨𠃌一一丨 的 ids 先进行排序,再计算编辑距离

@huangxin168
Copy link

请详细说一下怎么操作可以吗?感谢!

对 田: ⿵⿰丨𠃌⿱⿻一丨一 和 由:⿻⿴⿱⿰丨𠃌一一丨 的 ids 先进行排序,再计算编辑距离

非常感谢!我试试看。

@JasonCZH4
Copy link

请详细说一下怎么操作可以吗?感谢!

对 田: ⿵⿰丨𠃌⿱⿻一丨一 和 由:⿻⿴⿱⿰丨𠃌一一丨 的 ids 先进行排序,再计算编辑距离

您好,可以解释一下怎么排序吗,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests