有道翻译WordPress插件新鲜出炉

特色

我自己写的第一个 wordpress 插件,很简单,但很有成就感!

Introduction:

Youdao Translator automatically translates your blog only by move the mouse to choose some words. It supports the following different language pairs:

  • Chinese (Simplified) <-> English
  • Chinese (Simplified) <-&[......]

阅读全文

比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能

对于机器学习的很多问题来说,计算的瓶颈往往在于大规模以及频繁的矩阵运算,主要在于以下两方面:

(Dense/Sparse) Matrix – Vector product
(Dense/Sparse) Matrix – Dense Matrix product
如何使机器学习算法运行更高效摆在我们面前,很多人都会在代码中直接采用一个比较成熟的矩阵运算数学库,面对繁多的数学库,选择一个合适的库往往会令人头疼,这既跟你的运算环境有关,也跟你的运算需求有关,不是每个库都能完胜的。

这篇文章的主要目的就是比较几个常见的BLAS库的矩阵运算性能,分别是[......]

阅读全文

LightSide’s Top Ten Papers at ACL 2013

ACL wraps up today. Here’s my rundown of what was most exciting at this year’s conference.

Let me start off by describing my bias: my Ph.D. research was in conversational discourse analysis, focusing on social behaviors in language. I also wrote LightSIDE, the open source tool for feature extraction, machine learning model building, and in-depth error analysis for text data. Since I left Carnegie Mellon, I’ve been focusing on automated writing evaluation, with applications to both essay grading and generation of formative feedback directly to students.

Because of this background, I spent very little time paying attention to machine translation talks. I don’t have the mathematics background to really contribute to discussions of parsing or machine learning optimization papers. I spent most sessions in the talks on social behaviors, dialogue, and some of the more creative fields, like summarization and generation. I also really like off-kilter applications of NLP, and growing fields like digital humanities.

My criteria was that the paper was full of innovative ideas and applicable to real world problems; I care less about accuracy numbers and pushing the diminishing returns on well-known corpora and tasks. With that being said, here’s my top 10 papers from this year’s conference.[......]

阅读全文

self-training and co-training

半指导学习(Semi-supervised Learning)的概念说起来一点儿也不复杂,即从同时含有标注数据和未标注数据的训练集中学习模型。半指导学习是介于有指导学习与无指导学习之间的一种机器学习方式。

在NLP领域的很多任务中,标注数据其实是很难获取的。尤其像句法、语义等训练资源在标注时往往需要比较深厚的专家知识(如语言学知识)作为指导,从而导致标注成本太高。尽管现在大家都在提倡标注简单化、大众化甚至娱乐化,但是对于这种知易行难的问题,要找到一种能利用群体智慧的标注方式又是何其难也。近年来比较热的“众包”技术也没能够有效地解决这种“专家级”标注问题。从这个角度来看,半指导学习是非常有意义而[......]

阅读全文

iTerm好用在哪?

iTerm 装了好久,但一直都还是在用系统自带的 Terminal.app, 原因主要是完全没发现 iTerm 有什么明显的优点,外加它的图标真的是很丑… 直到我看到 iTerm help 中 Highlights for New Users 这项,总结下来比较有用的是以下几点:

1. Mouseless Copy

cmd-f -> tab

2. Split Panes

cmd-d (vertically) / cmd-shift-d (horizontally)

navigate among split panes: cmd-opt-arrow

3. System Wide Hotk[......]

阅读全文

修复MGIZA++ 0.7.3编译问题

MGIZA++是GIZA++的一个多线程版本,并对GIZA++的内存使用等方面做了优化,可以同时在linux下和windows下编译。下载的编译工具已经改成了CMake,不过由于作者设置问题,导致有很多的编译问题,主要出现在BOOST库等问题上。

修改CMakeLists.txt

第49行改为:FIND_PACKAGE( Boost COMPONENTS thread system)

另外,在任意位置加入一行:set(CMAKE_EXE_LINKER_FLAGS “-lrt”)

以上基本可以解决编译问题

Mac安装GCC

Mac中的开发工具链都是围绕xcode展开的,但是对于只想使用gcc,g++编译c/c++代码的情况,装一个动辄3,4G的开发工具实在是不符合KISS原则。更新:4.3版本的xcode已经将图形开发界面和命令行工具分开了发布了。还有即使装了xcode,默认带的gcc编译器都是lvmm做前端的,并非纯正的gnu gcc。如果你想用纯正的gcc,最好的办法就是自己手动编译一个。主要有两个方法:[......]

阅读全文

利用srilm构建大语言模型

  原理上,语言模型模型越大,机器翻译质量越好,但是当语言模型的训练集非常大时,例如GB级别的时候,受限于时间和机器的内存等因素,传统的ngram-count训练方式无法满足实际需要,因此srilm的FAQ中提到了训练语言模型的方法,基本思想就是将大文件拆分成多个小文件,然后再将多个小文件的count合并,完成最终的语言模型训练。

  其基本方法:

  1. 把大文件分割成小文件,放在一个目录下,然后生成一个文件名列表文件,如filelist ,一般使用按行分割的形式,split -l 100 test.txt out

  使用split将一个大文件分成最多26*26(使用字母后缀,这是默认的[......]

阅读全文

Bias Variance Tradeoff

  统计学习中有一个重要概念叫做residual sum-of-squares

  RSS看起来是一个非常合理的统计模型优化目标。但是考虑k-NN的例子,在最近邻的情况下(k=1),RSS=0,是不是k-NN就是一个完美的模型了呢,显然不是k-NN有很多明显的问题,比如对训练数据量的要求很大,很容易陷入维度灾难中。

  k-NN的例子说明仅仅优化RSS是不充分的,因为针对特定训练集合拟合很好的model,并不能说明这个model的泛化能力好,而泛化能力恰恰又是机器学习模型的最重要的要求。真正能说明问题的不是RSS,因为它只是一个特定训练集合,而是在多个训练结合统计得出的RSS的期望,MSE(m[......]

阅读全文