2011-04-07 67 views
2

我正在创建一个检测短文本语言的应用程序,平均为< 100个字符并且包含俚语(例如tweet,用户查询,短信)。极短文本的语言检测

我测试的所有库都适用于普通网页,但不适用于非常短的文本。迄今为止效果最好的库是Chrome的语言检测(CLD)库,我必须将它作为共享库构建。

当文本由非常短的单词组成时,CLD失败。看过CLD的源​​代码后,我发现它使用4克,所以可能是原因。

我在想,现在提高精度的方法是:

  • 删除名牌,号码,URL和文字,如“软件”,“下载”,“互联网”
  • 使用字典当文本包含多个短语时,或者当它包含太少的单词时。
  • 该字典来自维基百科新闻文章+ hunspell字典。

什么数据集最适合这项任务?我该如何改进这种方法?

到目前为止,我正在使用EUROPARL和维基百科的文章。我在大部分工作中使用NLTK。

+0

您是否设法将CLD构建为共享库?你愿意分享吗? – Stuart 2011-10-18 20:57:49

+0

@Stuart是的,我有。您需要在构建时将此作为参数传递: './build/gyp_chromium -f make -D library = shared_library' 然后仅采用您想要的'make cld'的特定库。 此处的完整说明http://code.google.com/p/chromium/wiki/LinuxFasterBuilds – MrD 2011-10-18 22:06:58

回答

5

很短文本的语言检测是当前研究的主题,所以没有确定的答案。推特数据的算法可以在Carter, Tsagkias and Weerkamp 2011中找到。另请参阅那里的参考资料。

+0

感谢您的链接 – MrD 2011-04-12 09:13:25

4

是的,这是一个研究课题,并且已经取得了一些进展。

例如,http://code.google.com/p/language-detection/的“语言检测”作者已创建了短消息的新配置文件。目前,它支持17种语言。

我将它与Bing语言检测器进行了比较,收集了大约500条推文,这些推文大多是英文和西班牙文。精度如下:

Bing = 71.97% 
    Language-Detection Tool with new profiles = 89.75% 

欲了解更多信息,可以查看他的博客指出: http://shuyo.wordpress.com/2011/11/28/language-detection-supported-17-language-profiles-for-short-messages/

-2

而且省略学名或药品等你的做法似乎很细到我的名字。我认为维基百科是创建字典的最佳选择,因为它包含标准语言。如果你没有耗尽时间,你也可以使用报纸。