大家好!大家觉得如果需要翻译SO上全部问答可以怎么做呢?我讲讲我是怎么的,大家看看做得怎么样。
自我介绍
我是一名有10年开发经验的老程序员。做过大数据,做过Java程序员,也做过算法工程师,目前是一名大厂程序员。对搜索引擎与推荐特别感兴趣,即通过搜索关键字能找到想要的知识与答案是一种快感。我接下来讲讲我是怎么把2千万的SO问答翻译成中文的。
事情由来
大家都知道在网络上搜索技术问题的时候,很多专业一些的问题只有SO上有答案。由于SO是国外网站,国内打开特别慢,而且打开后基本都是英文。我的体感:英文阅读起来虽也不难,但是比看中文还是会多花些时间,偶尔遇到陌生的单词,还得找谷歌翻译(谷歌翻译最近来也挂了)。一来二去,至少花5-10分钟才能解决好问题。
基于这个痛点,我想到了把SO上的问答翻译成中文。在我做这件事的时候,是在2019年,那个时候其实已经有很多人在做了。网络上对机翻这件事情也非常反感,但机翻也是无奈之举。
为什么这么说呢?一个翻译一天正常翻译速度是3000个单词,SO的问答一篇大约300-2000个单词,假设取最小单词数300。1个人每天翻译不停歇,需要5479年才能翻译完成!所以这么大工作量不可能找人快速地完成它。
纯粹的机翻会引起大部分人的反感,所以需要做一些优化,首先是让我自己觉得能接受,再推荐给大家使用。
已解决的优化问题
优化一:翻译完后是否可以对照英文原文查看
这是目前其它网站没有做到的,很多网站只是给了一个翻译的结果,阅读者看着看着会莫名其妙。我实现了按句翻译(非段落翻译),在页面上鼠标放在中文句子上后会给出英文原文提示,防止用户在特定语句上产生疑惑。
例如:
优化二:翻译完后是否有很难接受的直译单词
例如:Spring翻译成了春天,Pandas翻译成了熊猫等
解决方法其实很简单,翻译前将开发相关的单词先替换再进入翻译器。
优化前
优化后
优化三:支持相关推荐
当前支持通过标题相似,找到相关的推荐内容,但似乎效果一般。
优化四:搜索全局搜索
已支持类似SO官网的方式的全局搜索,支持中文或英文搜索,英文搜索会更加准确。支持排序,问题过滤,标签过滤等,还有优化空间。
待解决的优化问题
-
支持全文搜索
由于索引过大导致性能问题,所以当前只做了标题的索引,但可能需要增加服务器费用(预算2万+);
-
支持异常堆栈相关推荐
当用户看到某个问题后,发现这个问题并没有很符合预期的回答,这个时候给用户推荐有相同堆栈报错的问答。可能的实现方式:提取堆栈信息,通过距离等的方式判断问题的相似性。
-
支持堆栈内容搜索问题
类似上面的相关推荐,当用户主动输入一段堆栈信息时,找到最相似报错的问答。
-
大数据分析统计
统计用户近期感兴趣的问题,标签,最火回答,最火用户,近期什么技术活跃度最高等,提供一个大数据看板。
-
提供TroubleShooting的功能
基于大数据或分析方法,帮用户快速找到问题的答案,节省用户时间。
-
基于智能推荐找到用户感兴趣的问答
基于用户的访问频次记录用户的标签置信兴趣,在页面提供用户感兴趣的活跃问答,拉近国内程序员与国外程序员的距离。
后续也会定期同步这些优化点的进展。
技术架构
说了这么多网站的技术架构是怎么样的呢?直接上图,No Pic,No BB。
架构图
服务器
基本上算是用了最低的配置,发挥了最高的性能
如果想知道更详细的架构设计,可以给我留言,后续我也会发文介绍。
写在最后
如果有同学不知道网址的请收藏一下:https://stackoom.com。如果想找大厂工作的,也可以加微信:wxxdoe,帮您内推。另外,您想要什么技术学习资料,可以给我留言,后续会有些宠粉的福利。^_^
最后,如果大家觉得好用,欢迎给我留言,提出优化建议,请多多支持!