pemistahl / lingua-py

The most accurate natural language detection library for Python, suitable for short text and mixed-language text
Apache License 2.0
1.02k stars 43 forks source link

CHINESE detect error #202

Open simplew2011 opened 7 months ago

simplew2011 commented 7 months ago
from lingua import Language, LanguageDetectorBuilder
languages = [Language.ENGLISH, Language.JAPANESE, Language.CHINESE, Language.KOREAN]
# detector = LanguageDetectorBuilder.from_languages(*languages).build()
# detector = LanguageDetectorBuilder.from_all_languages().with_preloaded_language_models().build()
# detector = LanguageDetectorBuilder.from_languages(*languages).with_low_accuracy_mode().build()
detector = LanguageDetectorBuilder.from_languages(*languages).build()

s8 = "不想穷,就好好记住这篇文章 首次分享者:╰つ亮〆 颜 已被分享7次 评论(0) 复制链接 分享 转载 删除 无论你是男人,还是女人,做人,想成功,下面就是你必须要做到的: 1,这是个现实的社会,感情不能当饭吃,贫穷夫妻百事哀。不要相信电影里的故事情节,那只是个供许多陌生人喧嚣情感的场所。只有不理智和不现实的人才相信 2,给自己定目标,一年,两年,五年,也许你出生不如别人好,通过努力,往往可以改变70%的命运。破罐子破摔只能和懦弱做朋友。 3,朋友请你吃饭,不要觉得理所当然,请礼尚往来,否则你的名声会越来越差。 4,好朋友里面,一定要培养出一个知己,不要以为你有多么八面玲珑,到处是朋友,最后真心对你的,只有一个,相信我。 5,不要相信算卦星座命理,那是哄小朋友的,命运掌握在自己手中。坐在家里等什么房子,车子,还不如睡一觉做个好梦。 6,不喜欢的人少接触,但别在背后说坏话,说是非之人,必定是是非之人,谨记,祸从口出。 7,少玩游戏,这不是韩国,你打不出房子车子还有资本。可以有爱好,但要把握尺度,少玩农场,牧场,斗地主等一些高度吸引人思想的晋级游戏,也许你的级别很高,但不代表你有多么成功,反而会影响和占据你成功的时间。 8,是人都有惰性,这是与生俱来的,但是我们后天可以改变这种惰性,因为有很多人正在改变。对于某种事物或是生意不要等别人做到了,我才想到。不要等别人已经赚到钱了,我才想去做。没有人相信的是市场和机遇,大家都相信的叫做膨胀。 9,知道自己要干什么,夜深人静,问问自己,将来的打算,并朝着那个方向去实现。而不是无所事事和做一些无谓的事。 10,出路出路,走出去了,总是会有路的。困难苦难,困在家里就是难。《社会调查》普遍认为。 11,作为女人,不要以老卖老,认为事业跟自己没关系,以为自己就是洗衣服,做饭,看孩子,那就是大错特错。 12,做人,要做到;万事孝为先,教童品之道,夫妻和谐美,幸福万年长。但是这些不是拿来用嘴说说就能办到的,解放初期年代要做到这些,需要付出很大的努力和辛苦,当今现实的社会需要你付出很大的金钱,聪明的人都知道这个道理。 13,空闲时间不要经常上网做无聊的事和玩一些没有意义的游戏,读点文学作品,学习一些经营流程,管理规范,国际时事,法律常识。这能保证你在任何聚会都有谈资。 14,宁可错杀一千次来自各方面的信息,也不放过任何一个有可能成功的机会。只有这样你才不会去买后悔药。 15,要做一件事,成功之前,没有必要告诉其他人。成功之后不用你说,其他人都会知道的。这就是信息时代所带来的效应 16,头发,指甲,胡子,打理好。社会是个排斥性的接受体,这个星球所需要的艺术家极其有限,请不要冒这个险,就算你留长头发比较好看,也要尽量给人干净的感觉。 17,不要以为你是个男人,就不需要保养。至少饮食方面不能太随便,多吃番茄,海产品,韭菜,香蕉,都是对男性健康有益处的食物。你要是看不到价值,我可以告诉你。至少你能把看病节约下来的钱给你的女人多买几个化妆品. 18,力求上进的人,不要总想着靠谁谁,人都是自私的,自己才是最靠得住的人。 19,面对失败,不要太计较,天将降大任于斯人也,必先苦其心志,劳其筋骨,饿起体肤...但要学会自责,找到原因,且改掉坏习惯。 二十岁没钱,那很正常;三十岁没钱,可能是没有好的家境,需要更大的努力;四十岁没钱,只能自己找原因。穷人变成富人是可能的,而且很可能。穷人能穷一辈子,也是必然的,存在就是理由,只是有所选择。 20,每个人都有成功的机会!就看你给不给自己机会!"

for s in [s8]:
    confidence_values = detector.compute_language_confidence_values(s)
    for confidence in confidence_values:
        print(f"{confidence.language.name}: {confidence.value:.2f}")

output:

# lingua  
JAPANESE: 1.00
CHINESE: 0.00
ENGLISH: 0.00
KOREAN: 0.00

# langdetect:
[zh-cn:0.9999974142534823]

# fasttext:
(('__label__zh',), array([0.98179138]))

real language is CHINESE

simplew2011 commented 7 months ago
s8 = r"""原文地址:国人的孩子,输在了孝道教育的起点-日本启蒙教育的启示作者:弥勒内院看门人 京都大概是日本寺庙最多的城市,整个城市有一种晨钟暮鼓的氛围,田田的幼儿园每个月都要到寺庙里受一次教诲,园里最重要的节日一定要拜佛,佛诞日、涅槃日都有活动。 最近孩子们马上要毕业了,昨天就去了西本愿寺向佛许了愿,田田还代表班级给佛献了花。我问许了什么愿,她说:永远信任佛,永远对别人怀有感谢的心,永远认真倾听别人的话。 日本幼儿园 1.无数大大小小的包。 我们办理入园手续的第一天,幼儿园就向我们说明,要准备若干个大大小小的包。书包(统一)、装毛毯的包、装餐具的包、餐具盒、装衣服的包、装备换衣服的包、装换下来衣服的包、装鞋子的包,然后a包多少厘米长,b包多少厘米宽,c包放在d包里,e包放在f包里。我真是彻底崩溃了!搞不懂为什么日本人要弄出这么多复杂的名堂出来。有的幼儿园,甚至要求所有的包都要妈妈一针一线缝制!经过两年,我们都对此已经驾轻就熟了,孩子也可以非常有条理的分门别类。我常想,京都人可以对垃圾精细分类处理而不觉其烦,是否和从小所受教育有关。 2.大人空着手,所有的包都孩子肩背手拿着。 这是很震动我的一个场景,早晚接送孩子的时候,看到其他日本家长,无论是爸爸、妈妈,还是爷爷奶奶,手里一律空着,而上面所说的那些少说也有两三个大包外加书包都由那些花朵们肩背手拿着,而且还都跑得飞快。我们呢,自然还是咱国内的传统,田田空手,我拿包。过了两天,老师就来和我聊天了:"田田妈,tina在学校可是什么都自己做啊..." 日本人惯于只说半句话,后面的让你琢磨去。我立刻就明白是在问家里的情形了,看我还在想,老师就说了"比方说上学时拿包吧..."这就是委婉的提醒。从此就只好让田田自己拿了。等开家长恳谈会时,我和大家说"在中国幼儿园,习惯家长拿东西"-这回轮到日本妈妈目瞪口呆了,异口同声地问:"为什么?"为什么?是不是因为我们中国人爱孩子更多一点呢? 3.反复脱换的行头 田田的幼儿园是统一服装,春秋换装,全年登园时最外边都要穿幼儿园的套头衫,穿短裤,戴蓓蕾帽(夏天戴草帽),穿自己的鞋子;到了幼儿园,就要把套头衫脱下来,换一种玩耍时的罩衣,鞋子脱下来,换白色的芭蕾鞋,到操场玩的时候,自然再换自己的鞋子。这还不是最麻烦的,开学时老师要求拿一组换的衣服,在我们看来,那自然是防备孩子玩耍时弄脏备用的,然而,并不是。只要孩子们中午睡了午觉,起来必定要重新换一套。够多麻烦。(到田田在外边宿泊一个晚上的时候,光备用的换的衣服就要备好多套,真赶上那个爱新衣的皇帝了。)刚开始每天早上去送田田,都要重复那么一套换衣程序,田田在菊花班的时候,看她实在慢,我就不免代劳。但是不久就发现日本的妈妈们都是站在一旁看着孩子,从不伸手帮忙。慢慢体会到,日本幼儿园就是通过这个每天的穿衣换衣,让孩子练习独立生活的能力的。通过每天到校后,换衣服、放联系手册,自己帖当日的sticker,挂手绢等从2、3岁开始的训练,孩子们养成有条不紊做事的习惯。 4.大冬天穿短裤 日本幼儿园的孩子,冬天无论多么冷的天,都穿非常短的短裤上学。刚去的时候,北京的爷爷奶奶非常担心,说一定要和老师商量一下,因为我们是中国的孩子,受不了这个冻。这个...让我怎么说得出口。就算不重新唤起东亚病夫的记忆,起码也激活小皇帝的印象。没法子,只好入乡随俗地狠下心来,为国争个面子。不用说,刚入园那时候,三天两头就冻病了。和日本妈妈说呢,答案又叫人目瞪口呆"是啊,孩子送幼儿园就是来让他们得病的。" 看看一个个像小炮弹一样冲到我面前说"你好"的孩子,那个结实劲儿,我是觉得我们不能太金贵孩子了。 5.零岁参加运动会 刚到幼儿园,就看见很多老师怀里都抱着个小小孩,看上去也就几个月大吧,一问,是零岁。田田幼儿园的班都用花的名字命名,田田曾经是菊花,然后变成百合,现在已经是一株很有大姐姐风范的紫罗兰了。而0岁的小宝宝,就是"桃花"班,用日文叫"もも",和咱汉字的"毛毛"同音(日本的文字本来就来源于汉字),很是形象。这些0岁的毛毛,不光入托了,而且还要参加幼儿园的一切大型活动,比方运动会、演出发表会等。看这些0岁的毛毛哭着拼命向前爬,还是有点打动人的力量的。 6.女孩子踢足球 日本幼儿园到了年中组,开始上每周一次的j mping课,相当于我们的体育和形体课;到了年长组,就有了足球大会,孩子们成天不是练习打鼓,就是练习足球,那是真踢啊,而且不停有幼儿园之间的比赛,田田的身上青一块、紫一块的,但是体力和勇气都练出了。说实话,刚来日本时,田田的表现真是让人汗颜。日本的孩子一般从十三四岁开始,才往上蹿个儿,之前比中国孩子矮很多。田田在班里,那可是鹤立鸡群的"庞然大物",无奈实在是外强中干。日本孩子光着脚在外边跑,田田呢,榻榻米上有一点沙子,就恨不得踮着脚走路。 有一次远足爬山,最后一个不算,下来的时候,干脆由两个矮个子的日本孩子搀扶下山。这怨不得孩子,3岁的孩子,根本没有让她徒步爬山1小时的经验。现在好了,去年在香格里拉,在缺氧的环境下,徒步4个小时没有任何问题。 7.完全混班教育 在中国时,我们参观过几次田田的幼儿园,都是各班在各班上课,到了日本就不同,在9:30之前,3:30之后,全园的孩子都在一起玩,而且在院子里,大孩子抱小孩子,小孩子追大孩子,玩得狠疯狂。孩子们真正能体会到哥哥姐姐、弟弟妹妹的感觉。孩子们的成长感特别明显。比方,前些天田田年长组最后的发表会上,表演完太鼓之后,他们说了一番话,让所有的家长落泪:今天的发表会真高兴,低年组的小朋友们也非常努力地表演成功了。这是我们最后的发表会了,到了小学校我们仍然不会忘记我们的朋友和幼儿园。 8.教育是为了教孩子学会"笑"和"感谢" 在这个幼儿园,似乎完全不重视孩子们的知识教育,孩子们没有课本,只有每月一册的绘本。学校的教学计划中,完全没有数学、假名、绘画、音乐这些项目,更别说英语、奥数了。也不学轮滑,也不教游泳。问教什么,答案永远也想不到--"教孩子们学会笑眯眯!"在日本,无论走到哪里,无论和谁讲话,"笑眯眯"最重要,一个笑眯眯的女孩子最漂亮。还教什么?"教学会说谢谢"总之,这里强调的和国内是非常不同。但是通过三年的幼儿园生活,发现田田在音乐、美术、阅读等方面也有了长足的进步,而这方面的收获却是经由综合教育的方式获得的。 9.一年到头数不清的活动 看看我的日历上标出的做便当的日子,就是田田他们远足的日子,一年到头不知道爬多少次山,看多少次湖,观察多少次动物和植物。除此之外,捡橡子了,打年糕了,开运动会了,为社区演出了,宿泊了,过园节了,开发表会了,去拜寺庙了,作品展了,反正是名堂多多。总之,结论是:日本的幼儿园生命在于活动! 10.中国人都不过的节日日本幼儿园过 这也是让我狠狠吃惊的地方,像上面说的,日本幼儿园过一切他们自己的传统节日,女孩节,男孩节,纳凉节。除此之外,中国的正月初七的七草节(几位知道?)、二月的节分、七七乞巧节都认真地过上一遍。孩子回来说,今天老师问我这些节日在中国怎么过,我说:不知道。惭愧啊,妈妈也不知道。 11.老师的能量 日本一个班,少到10个人,多到30个人,老师都只有一位。开始我是颇为怀疑的,大约把这些孩子都看住也就不错了。然而,可真是看轻了日本的幼儿园老师。就这一位老师,30个孩子的作品展,30个孩子从无到有的打鼓本领(非常专业啊),30个孩子的美术、音乐、阅读,30个孩子的生日,30个孩子的大型发表会、运动会全是这一位,有条不紊,像模像样。 像去年发表会排的是《不来梅的音乐会》,日本的活动向来是一个孩子都不能少的,所以30个人当中,4只母鸡,3只猫,5只狗,2头驴子,几个小偷,老师要分别带领孩子们做好服装、道具和布景(全部废物利用)、配好音乐、编好剧目,排练一个多月,那可是不小的工作啊。但是看看那位老师每天还是轻轻松松的表情,50多岁的人了啊。佩服 12.佛教的影响 京都大概是日本寺庙最多的城市,整个城市有一种晨钟暮鼓的氛围,田田的幼儿园每个月都要到寺庙里受一次教诲,园里最重要的节日一定要拜佛,佛诞日、涅槃日都有活动。最近孩子们马上要毕业了,昨天就去了西本愿寺向佛许了愿,田田还代表班级给佛献了花。我问许了什么愿?她说:永远信任佛,永远对别人怀有感谢的心,永远认真倾听别人的话。"""

this text also detects errors in JAPANESE, real language is CHINESE.

pemistahl commented 7 months ago

Hi @simplew2011, thanks for reaching out to me. Yes, I know about this problem. The library's rule engine is a bit too sensitive and tends to classify Chinese text as Japanese too often. These two languages are the most difficult ones to distinguish correctly. Do you know any heuristics which can reliably tell whether a text is Chinese or Japanese?

romiras commented 6 months ago

In opposite, I found enough samples of texts that were identified as Chinese instead of Japanese. I'd like to mention that I've read somewhere that there is a higher probability that characters from CJK unified ideographs Unicode block belong to the Japanese language. But it should be confirmed by people who speak these languages.

itamarro commented 6 months ago

building on @romiras 's comment above, would it help if we tried to provide an annotated set of texts that the library gets wrong across Chinese <-> Japanese? If so, how many items would make such a set useful?

mikiex commented 6 months ago

I deal with often a lot of very short translations, trying to verify if they are valid for a particular language. For example "即時" could be Japanese or Chinese, both are valid (with maybe slightly different meanings). But it's detected as Chinese with 1.0 confidence and Japanese is 0.