我正在寻找一些关于文本文档中Unicode字符用法的统计数据(带有任何标记)。谷歌搜索没有结果。
背景:我目前正在开发一种基于有限状态机的文本处理工具。字符的统计数据可能有助于搜索正确的过渡。例如拉丁字符可能是最常用的,因此首先检查它们是否有意义。
有没有人偶然收集或看到过这样的统计数据?
(我不专注于特定的语言或语言环境。认为通用解析器就像XML解析器一样。)
答案 0 :(得分:4)
总结当前的发现和想法:
很抱歉,这不是一个答案,而是一个很好的研究方向。
更新:我编写了一个小型Hadoop作业,并在其中一个CommonCrawl段上运行。我已将结果发布在电子表格here中。以下是前50个字符:
0x000020 14627262
0x000065 7492745 e
0x000061 5144406 a
0x000069 4791953 i
0x00006f 4717551 o
0x000074 4566615 t
0x00006e 4296796 n
0x000072 4293069 r
0x000073 4025542 s
0x00000a 3140215
0x00006c 2841723 l
0x000064 2132449 d
0x000063 2026755 c
0x000075 1927266 u
0x000068 1793540 h
0x00006d 1628606 m
0x00fffd 1579150
0x000067 1279990 g
0x000070 1277983 p
0x000066 997775 f
0x000079 949434 y
0x000062 851830 b
0x00002e 844102 .
0x000030 822410 0
0x0000a0 797309
0x000053 718313 S
0x000076 691534 v
0x000077 682472 w
0x000031 648470 1
0x000041 624279 @
0x00006b 555419 k
0x000032 548220 2
0x00002c 513342 ,
0x00002d 510054 -
0x000043 498244 C
0x000054 495323 T
0x000045 455061 E
0x00004d 426545 M
0x000050 423790 P
0x000049 405276 I
0x000052 393218 R
0x000044 381975 D
0x00004c 365834 L
0x000042 353770 B
0x000033 334689 E
0x00004e 325299 N
0x000029 302497 /
0x000028 301057 (
0x000035 298087 5
0x000046 295148 F
说实话,我不知道这些结果是否具有代表性。正如我所说,我只分析了一个部分。对我来说看起来很合理。人们也可以很容易地发现标记已被剥离 - 因此分发不直接适合我的XML解析器。但它提供了有关首先检查哪个字符范围的有价值的提示。
答案 1 :(得分:1)
我个人认为http://emojitracker.com/中near-duplicate question的链接是最有希望的资源。我没有检查sources(我不会说Ruby)但是从实时的Twitter字符频率提要中,我预计会有一些与静态网页截然不同的结果,并且可能完全不同语言分布(我在推特上看到的阿拉伯语和土耳其语比在我平常的生活中要多得多)。它可能不完全是你想要的,但如果我们只看你的问题的标题(这可能是大多数访问者将会跟随到这里),那么这就是我建议的答案。
当然,这引出了一个问题,即您尝试建模的用途。对于你似乎追求的静态XML,也许Common Crawl set毕竟是一个更好的起点。来自编辑过程的文本(无论是非正式的)与自发文本看起来完全不同。
到目前为止,在建议的选项中,维基百科(和/或维基词典)可能是最简单的,因为它对于本地download来说足够小,比随机网络转储(所有UTF)更加标准化。 -8,所有正确标记的,大部分正确标记语言和校对错误,拼写错误,偶然事件),但足够大(并且可能已经超过一个数量级或更多),为您提供可靠的统计数据。但同样,如果域名与您实际想要建模的域名不同,那么它们可能会出错。