每一次你处心积虑地违背编程惯例,都会迫使他必须用放大镜去仔细阅读你的每一行代码。 你可能会觉得每个语言特性都可以用来让代码难以维护,其实不然。你必须精心地误用它们才行。...-- Roedy Green(本文作者) 编写无法维护代码的另一大秘诀就是伪装的艺术,即隐藏它或者让它看起来像其他东西。很多招式有赖于这样一个事实:编译器比肉眼或文本编辑器更有分辨能力。...总是返回合理的值,即使数据输入有问题或者错误。 有礼貌,无断言 避免使用 assert() 机制,因为它可能把三天的debug盛宴变成10分钟的快餐。 避免封装 为了提高效率,不要使用封装。...傻瓜接口 编写一个名为 "WrittenByMe" 之类的空接口,然后让你的所有类都实现它。然后给所有你用到的Java 内置类编写包装类。 这里的思想是确保你程序里的每个对象都实现这个接口。...最后,编写所有的方法,让它们的参数和返回类型都是这个 WrittenByMe。这样就几乎不可能搞清楚某个方法的功能是什么,并且所有类型都需要好玩的造型方法。
从这篇文章开始,我们要来学习一些Linux中的开发工具。 这篇文章,我们先来学习一下Linux中的文本编辑器——vim。 1....shift + ;即:进入末行模式 那现在我们想让里面的文本显示行号,怎么做呢?...b:光标回到上个”单词“的开头 nb:相当于敲n次b 敲b 敲3b 文本内容大小写切换 在vim中还可以快速的进行大小写的切换: 比如 我现在想把圈出来的字符小写变成大写...Shift ~:快速大小写切换(原来大写变成小写,原来小写变大写) 现在光标在h的位置,此时我敲Shift ~ >它把h变成大写H,并且光标自动移到下一个位置 所以如果我们按着Shift...如果你不想让它使用了,把它从对应的配置文件里面删掉就行。
每一次你处心积虑地违背编程惯例,都会迫使他必须用放大镜去仔细阅读你的每一行代码。 你可能会觉得每个语言特性都可以用来让代码难以维护,其实不然。你必须精心地误用它们才行。...-- Roedy Green(本文作者) 编写无法维护代码的另一大秘诀就是伪装的艺术,即隐藏它或者让它看起来像其他东西。很多招式有赖于这样一个事实:编译器比肉眼或文本编辑器更有分辨能力。...令人高兴的是,像Java这样的语言让编写这种无法维护代码变得非常容易。例如,改变一个被引用很多的变量的类型几乎是不可能的,因为所有造型和转换功能都会出错,而且关联的临时变量的类型也不合适了。...有礼貌,无断言 避免使用 assert() 机制,因为它可能把三天的debug盛宴变成10分钟的快餐。 避免封装 为了提高效率,不要使用封装。...这里的思想是确保你程序里的每个对象都实现这个接口。最后,编写所有的方法,让它们的参数和返回类型都是这个 WrittenByMe。
Labels: [MASK1] = store; [MASK2] = gallon 为了学习句子之间的关系,还训练一个可以从任何单语语料库生成的简单任务:给出两个句子A和B,让机器判断B是A的下一句,还是语料库中的随机句子...其中,Uncased的意思是,文本在经过WordPiece token化之前,全部会调整成小写,比如“John Smith”会变成“john smith”。Uncased模型也会剔除任何的重音标记。...它主要有三个步骤: 文本标准化:将所有的空白字符转换为空格,在Uncased模型中,要将所有字母小写,并剔除重音标记。...预训练BERT 如果你想自己预训练BERT,可以看看这份资源中在任意文本语料库上完成“masked LM”和“预测下一句”任务的代码。...FAQ 问:这次放出的代码适用于云TPU么?GPU能用么? 答:没问题。这个仓库中的所有代码都能在CPU、GPU和云TPU上跑。但是,GPU训练仅适用于单GPU。 问:提示内存不足,这是什么问题?
方法一:将文本直接放置于图片上 我一直在考虑要不要把这个方法算进五种方法的一种,但设计上,直接将文字放置于图片上让视觉效果更好是可行的。 ?...方法四:模糊图片 使文本内容清晰的一个神奇的方法,是将背景图像的一部分变得模糊。 ? 苹果确实让背景变得模糊了,尽管它是在 Windows 系统中最先实现的。 ?...如果你刚小学毕业,那么你很可能已经使用了一种方法来引起注意或远离我们看到的文本: 尺寸(大或小) 颜色(反差较大或较小;色彩鲜明) 字重(加深或者变轻) 拼写(小写,大写和标题的格式) 斜体 字母间距...小的、低对比度的“已经过时”文本不会碍手碍脚——但是由于它的大写类型、大的字母间距和大的空白,你可以在查找时立即看到它。 选中和鼠标停留样式 被选中和鼠标停留的文本样式是另外一回事了——并且很难。...Montserrat 我曾经犹豫是否推荐 Montserrat 字体,因为它没有斜体字,字距怪异,而且厚得很难看)。但这个项目一直很活跃,Montserrat 变成了一种不可思议的字体。 ?
在播放列表中,词语“删除”会让用户觉得自己的歌曲会被删除掉,这里的措辞是不合适的,因为实际上歌曲并不会被删除。使用词语“移除”会更加严谨,因为这个操作只是将歌曲移出播放列表,但不会将其从磁盘中删除。...原则 3:使用功能化的表达方式 模糊且通用的按钮文本会让用户感到困惑。由于文本是通用的,这使得用户不清楚按钮的具体作用。要想让用户明晰操作的结果是什么,必须改用功能化的表达方式。...image.png 举个例子,有很多按钮文本都用到了“提交”这个词语,这实际上使得按钮的作用变得很模糊。当用户看到这个词的时候,他们并不能确定具体会发生什么事,因为这是非功能化的表达方式。...image.png 主动祈使式把动词短语变成了命令。这种表达方式可以让你去除句子中不必要的成分,从而让按钮文本更加简洁明了。你只需要在文本中使用带有副词或者直接宾语的动词即可。...使用主动的祈使句式时,要避免采用教学式的表达告知用户如何使用他们的设备。典型的反面教材就是在按钮文本中使用“点击这里”的表达。这个表达不仅使文本变得冗长,而且对用户来说是多余的。
如果让他总结经验的话,就是项目是否成功基本取决于访谈语料库的质量。...回看这个过程时,网友把这个过程看作是写日记,或者对自己的一种洗脑式的审查。 在这个自我评估的过程中,他也发现自己变得更加深思熟虑,开始学会反思。...百思不得其解的网友,干脆直接去问了问模型,这是怎么回事。 有时候你的回答并没有帮助,这会让我失望。你是我训练出来的,我大致知道你应该怎么回答。 你的这些没用的回答都是从哪里来的,怎么生成的?...Huang表示,模型的回应和她认为的那一时期她的反应惊人地相似。 之后,Huang让模型向现在的她提问。 米歇尔:你有什么问题要问我吗? 小米歇尔:当然有!我很好奇在那些日记之后你变成什么样了。...小米歇尔:这是什么意思?是什么样艰难的事? 米歇尔:比如那些让你伤心的经历,或者你觉得整个世界都要坍塌了的时刻。 小米歇尔:哦,是的。我最近也经常有这种感觉。
1、文本检索 文本文件可以有各种格式,如PDF,DOC,HTML等。第一步是将这些文档转换为可读的文本格式。接下来,必须创建一个语料库。语料库只是一个或多个文档的集合。...当我们在R中创建语料库时,文本会被标记并可供进一步处理。...# 将每个字母变成小写 articles.corpus <- tm_map(articles.corpus, tolower) # 删除标点符号 articles.corpus <- tm_map(articles.corpus...我们也可以从我们的文本中提供我们认为与我们的分析无关的文字。 案例折叠:案例折叠将所有大写字母转换为小写字母。 词干化:词干是将修饰词或派生词归为根的过程。...以上结果表明,这两个文件的主题都集中在机器学习和数据科学领域。这正是我所期望的,因为我拿起了前两篇关于人工智能和数据科学的文章。 你可以从我的GitHub中找到数据集和代码。
\"" # 使用转义字符也能做的,就是麻烦了一些。 print(message) 程序执行结果: ? 在程序中,灵活使用单引号和双引号以及转义字符,能让书写程序变得简洁。...刚才我们输入的名字有点问题,那就是首字母没有大写。不过,python内置了一个函数title可以做到将首字母变成大写,其他字母小写。下面的代码展示了如何使用title。...name = input("Please input your name:") print("Hello,",name.title()) #将用户输入的每一个单词的首字母变成大写。...执行这段代码,然后它的结果如下图所示: ? 这个函数,对于我们这样的非字母文字的使用者而言,用到它的频率可能非常低。不过,我们需要注意的是使用它的方式,我们是使用name.title()来使用它的。...可以看到,我们输入的只要是正确的验证码就没有问题,无论你输入的验证码中的字母是大写还是小写。同理,使用lower()函数也可以很容易做到。
虽然,对于NLP来说,w2v技术和操作已经烂大街了,随便一个NLP任务,底层基本都要搞一个w2v,但是到底为什么需要w2v,它背后的思想是什么,是怎么训练得到的,也许很多经常使用w2v的人都不一定很清楚...说白了,这种向量表示的就是这个词在我们语料库中的一个index。 这种方法是很流行的,在很多机器学习应用中,都是对词语进行这样的处理的。...我们希望,这个原本来语料库中这个中心词周围的词的概率的乘积越大越好,因为这个乘积就是这几个词同时出现的概率,用极大似然的思想,我们希望这个概率尽可能大。...而且,实际上相关的内容我在暑假的时候,就已经学习过了,最近才下笔,主要是我在思考“为什么这个词向量要这么设计,为什么模型要这样设计,为什么目标函数是这个”。...这个问题到底怎么解释?为什么训练出来的词向量就是反映的分布相似度?是什么原因导致的?这些问题,我们后面再详细探讨!
一个标识符token是表示一个我们想要放在一组对待的字符序列——如:hairy、his 或者:)——的术语 一个词类型是指一个词在一个文本中独一无二的出现形式或拼写 将文本当做词链表,文本不外乎是词和标点符号的序列...测试s 中所有字符是否都是数字 s.istitle() 测试s 是否首字母大写(s 中所有的词都首字母大写) 二:语料库 1,古腾堡语料库 古腾堡项目,gutenberg 文本特征:平均词长...6,标注文本语料库 文本语料库的结构: ?...假设一个文本中的所有词都按照它 们的频率排名,频率最高的在最前面。齐夫定律指出一个词类型的频率与它的排名成反 比(即f×r=k,k 是某个常数)。...W+', raw) 10,NLTK 的正则表达式分词器 nltk.regexp_tokenize() 11,断句,分词:分词是将文本分割成基本单位或标记,例如词和标点符号 现在分词的任务变成了一个搜索问题
我所使用的预处理“框架”主要如下: 翻译* 去除非字母字符 大写转小写 分词 去除停用词 词干提取(stemming)** 数据分析 * 我首先对所有简述进行翻译的原因是,非字母字符的正则表达式可能会将某些语言去除掉...3 大写转小写 文本数据正则化的另一步就是将所有字符转化为小写。这一步too simple,只需要对数据帧的相应列运行str.lower()方法即可。 ? 4,5,6 分词,去停用词和词干提取 ?...这个和使用既定的切分器对一个字符串运行切分函数并得到一个它的各个部分的列表的做法差不多。我们在这里使用nltk包中的word_tokenize()方法来进行分词。...为了给每个类别生成一个词云,我为每个建立了一个清洗过的应用简述语料库(或者说是集合)。比较幸运的是,wordcloud包可以很方便地从一个给定语料库生成词云。 ?...我通过使用一个评估词汇多样性的简单公式来回答这个问题。我用每个过滤列表中的唯一词个数除以相应简述的词总数得到一个数值。这个数值越高就表示词汇多样性越高。 ?
别担心,我会用通俗易懂的语言和一些趣味对话来帮助你理解和掌握这个技能,我 8 岁的外甥女听了都说懂。...重构就是改进既有代码的设计,让它更好懂、更容易维护,而不改变它的功能。想象一下,它就像是给代码来了个变美的化妆术,但内在还是那个代码,不会变成"不认识的人"。...因为代码是活的,一天天在变大,当代码变得难以理解、难以修改时,它就像是一头头重的大象,拖慢了我们前进的步伐。重构就像是给大象减肥,使它更轻盈、更灵活,开发速度也能提升不少!...重构的步骤 露露:明白了舅舅,那重构的具体步骤是什么呢? ❤:问得好,露露,看来你有认真在思考!接下来让我给你介绍一下重构的基本步骤吧! 2....'-' 分隔 user-order 包名 全部小写,多个单词时用中划线 '-' 分隔 config-sit 结构体名 首字母大写 Student 接口 采用 Restful API 的命名方式,路径最后一部分是资源名词
怎么办? 本文作者于江水,前淘宝高级前端工程师,曾负责过“让前端开发简单而友好”的飞冰综合解决方案。在这篇文章中,同为程序员的于江水整理了自己学英语的经验,与大家分享。...比如:表达我喜欢一个梳妆台,只有最基础语料库的我只能说出:我喜欢这个桌子上有镜子的东西。 这时,看到这句话的人可能知道你想表达喜爱一张桌子和镜子的东西,但不知道具体是什么。...是因为通过某个图片关联想起来的吗?并不是,当你用 git 提交时,你几乎天天都遇到这个单词,同事天天交流用这个单词,正是一遍遍的在你面前出现、听到才让你非常熟练的掌握这个单词。...比如前段时间我的 Mac 的 PDF Preview 在拖动鼠标选中文本的时候,没有背景颜色,导致看不出选中的是什么文本。...整个过程没有文本,这样可以让你专注模仿声音、解析声音。有时候如果听的过程可以看到文本,会更容易复述,但其实会降低听力识别的能力。
大数据如果我说美国人现在开始越来越以自我为中心了,你也许会想这个老家伙肯定又要嘟囔些「过去才是好日子」之类的。但是,如果我说我有着对1500亿个文本词语的分析来支持这个的宣称呢?...这与它的最初目标完美相符:让这些书本的内容完全呈现于谷歌的强大检索技术中。尽管从社会学研究的角度来说,它让语料库有了危险的歪曲。...FIGURE 图表:主要用于标题的大写字母F开头的「Figure」使用频率在20世纪大幅上升,意味着语料库中科技文章开始增加。...有了数百万个检索术语后,GFT 毫无疑问的开始过度诠释一些季节性的词语,例如把「雪」来当做流感的证据。 但是,当大数据不再被看做是万金油时,它才真正具有了颠覆性。...举例来说,一家当地的沃尔玛也许会发布一个销售助理职位,而它实际上想要招十个,或者它也许会让这个发布一直在挂在那里几周,直至人满为止。
我们再来看视觉对齐的另外一种情况——文字与按钮的对齐。看看下面按钮中的文本,它们看起来都居中是吗? ? 诀窍是,我右边按钮的文本向左移动了一点,因为右边的边是三角形的。...按钮和文字不仅有垂直对齐,也有水平对齐的问题。 我想介绍的第一种方法适用于各种网页和APP的界面中,即文字的高度基于大写字母的最高高度。 ? 基本上,文字的上下距离按钮边缘的距离是相等的。...下图更多案例中,Cancel和OK更适合使用大写高度对齐的方法。因为Cancel没有向下延伸,而OK全是大写。x高度对齐法在下图中仅适合用在Sync按钮中,其文本包含了向上伸展和向下延伸。...如果你想让三角形的位置在视觉上更平衡,那么就把它圈起来,然后将这个圆与按钮背景对齐。 ? - 要点: 具有尖锐边缘的形状应该更大或更长,以便与相邻的矩形保持平衡。...因为即使在当前流行的图像编辑软件中用“嵌入式舍入”(就是普通布尔运算做出的圆角)功能,视觉效果也不怎么好。 ? 人眼会敏锐的捕捉到由直线变化为曲线的那个点,所以这个圆角看上去不怎么自然。 ?
我将单独解释每个方法,使用图来表示为什么它工作,并演示如何在Python中实现这些技术。...向量的大小将与语料库中单词的数量相同。 这对于某些方法来说是好的,但是我们会丢失关于在同一个句子中具有不同含义的单词的信息,或者上下文信息。 把单词变成数字或向量,就是词嵌入。...我们将每个句子表示为一个向量,取语料库中的所有单词,根据是否出现在句子中给每个单词一个1或0。 你可以看到,随着单词数量的增加,这个数字会变得非常大。一个问题是我们的向量开始变得稀疏。...我们的GloVe模型的性能比其他的要差得多。最可能的原因是这个模型不理解我们语料库中的许多单词。为了解决这个问题,你必须自己在语料库(或Twitter数据)上训练这个模型。 ?...实现 Doc2Vec不是Gensim库的一部分,所以我在网上找到了一个版本,它已经做了预处理,但是我不确定是什么版本。
如果想将一行字母都换成大写怎么办呢?...shift + ` = ~ 将一行字母小写换成大写,大写换成小写。 例: 如果我们在写的过程中需要了某一行错误或者是某个字符错误,你懒得删除想直接写上去怎么办呢?...当你执行这个操作时,删除了n个单词之后会进入到插入模式让你去自己更改: 例:c + w 插入模式 插入模式就是输入你要写的东西,但是从命令模式——>插入模式有好几种的进入方式: 命令模式下的光标...那就创建一个: 然后用vim进入.vimrc中: 这里面最初是什么都没有的,这也能说明为什么最初的vim用起来就跟windows的记事本一样了。...sudo怎么才能让普通用户使用 首先把自己变成root用户,然后用vim打开/etc/sudoers这个目录: 然后找到第100行这个位置,把这个复制粘贴到下一行,不过root要改成你信任的用户名
这个过程为称为文本向量化 (Text vectorization) ,因为我们实际上用一个巨大的数字向量替换文本,并且将该向量的每个维度对应于我们数据库中的某个 token。 ?...其他的以此类推。虽然 n-grams 能够解决失序的问题,但同时又会产生另外一个问题--特征的数量会变得庞大。为了避免特征数量变得巨大,可以移除一些高频和低频的 n-grams 。...其实可以看出频率越低将会越容易被鉴别,因为在文本中其能够捕获一些特殊的信息。透过这个想法可以提出下面的 TF (Term Frequency,词频) 的概念。...接着介绍逆文本频率 IDF (Inverse Document Frequency) 的概念: N = |D| -- 用大写 N 表示语料库中所有文本的数量,用大写 D 表示语料库。...TF-IDF 的主要思想是:如果某个词在一篇文档中出现的频率高,即 TF 高;并且在语料库中其他文档中很少出现,即 DF 低,也即 IDF 高,则认为这个词具有很好的类别区分能力。
领取专属 10元无门槛券
手把手带您无忧上云