2014-03-04 56 views
8

我正在寻找一些关于Unicode文字在文本文档中使用情况的统计数据(带有任何标记)。谷歌搜索没有带来任何结果。Unicode字符使用情况统计信息

背景:我目前正在开发一个基于有限状态机的文本处理工具。角色的统计数据可能有助于搜索正确的过渡。例如,拉丁字符可能是最常用的,所以首先检查这些字符是有意义的。

有没有偶然的机会聚会或看到这样的统计数据?

(我不是集中在特定的语言或地区想想通用解析器像XML解析器。)

+3

你需要说明你正在寻找在域或种文本。有很多不同的文本语料库。将法律文本与数学论文进行比较时,统计数字会大不相同。但是,我不知道我的头顶上的字符分析。 – Boldewyn

+0

你也可以在Linuistics StackExchange http://linguistics.stackexchange.com/上试试你的运气。 – Boldewyn

+0

您的意思是统计Unicode编码文档中的字符使用情况?还是在流行的“奇怪的角色”中使用“Unicode字符”? –

回答

4

综上所述目前的调查结果和观点:

  • 汤姆·克里斯汀森收集这类统计为PubMed开放获取语料库(参见this question)。我问他是否可以分享这些统计数据,等待答案。
  • 由于@Boldewyn和@nwellnhof建议,我可以运行完整的维基百科转储或CommonCrawl data的分析。我认为这些建议很好,我可能会使用CommonCrawl。

非常抱歉,这不是一个答案,而是一个很好的研究方向。

更新:我写了一个小的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

这是典型的英文字符频率,与ASCII或Latin-1没有多大区别。 OP不清楚他们是否只对英文或所有用法感兴趣。 – hippietrail

+0

@hippietrail:我想我很清楚“我不专注于特定语言或语言环境”。诚然,最重要的字眼就像英文。其他字母稍后出现。但是我不太确定,CommonCrawl中的段/文件是如何“随机”的。分析更多细分会有意义。 – lexicore

+0

哦,我不只是说拉丁字符集比中文或阿拉伯语更高,我的意思是字母的实际顺序是英文,而不是其他任何使用大多数字母的许多语言。仔细一看,也许它有点不同。典型的英语是''''''''''''''''''''''''''''''''''''''''但是对于Unicode,没有带有有趣口音或特殊符号的字符。唯一比纯ASCII更加统一的东西是不间断空间和0xfffd。 – hippietrail

1

链接到http://emojitracker.com/near-duplicate question我个人认为是最有前途的资源。我没有检查sources(我不会说Ruby),但是从字符频率的实时Twitter提要中,我会期望得到与静态网页完全不同的结果,并且可能是完全不同的语言分布(我看到很多Twitter上的阿拉伯语和土耳其语比我平常生活中的更多)。这可能不是你正在寻找的东西,但是如果我们只是看看你的问题的标题(可能大多数访问者会遵循这个问题来到这里),那么这就是我所建议的答案。

当然,这引出了一个问题,你试图建模什么样的用法。对于你似乎在后面的静态XML,可能Common Crawl集合毕竟是一个更好的起点。编辑过程中出现的文本(无论是非正式的)看起来与自发文本完全不同。

在目前为止的建议选项中,维基百科(和/或维基词典)可能是最简单的,因为它足够小以适应本地download,远比随机网络转储标准更好(所有UTF-8,其中大部分都用语言进行了恰当的标记,并对标记错误,正确拼写和偶尔的事实进行校对),并且足够大(可能已经过分杀伤了一个数量级或更多),以便为您提供可信的统计数据。但是,如果域名与你想要建模的域名不同,他们可能会错误。

+0

我对CommonCrawl非常感兴趣,这将是Hadoop和MapReduce等新的体验。你是对的,我正在开发基于状态机的XML解析器(是的,在2014年),但特别感兴趣的是基于状态机一般的解析器。 Twitter和emojis并不完全是我正在寻找的。 CommonCrawl的Wikipedia似乎更适合。 – lexicore

+0

让我重申一下,换句话说:如果您还没有尝试从大量实际网页中提取文本,那么您将面临一项令人生畏的复杂任务(或不完美的结果)。这并不是说这个问题很复杂(也是这样;在这个完整的万维网堆栈的规范的复杂迷宫中存在未定义的区域,含糊不清和矛盾),但笨拙的人类和接口不良的组件会产生编码错误,标记错误和其他污垢,这些污垢会控制许多您想要提取的有趣现象。 – tripleee

+0

顺便说一句,表情符号不是为什么Twitter的饲料是有趣的。他们是一个有趣的演示,但最好是切线。 – tripleee

相关问题