只提取英文句子

时间:2011-07-12 15:52:10

标签: algorithm nlp

我需要从Facebok和Twitter中提取帖子和推文到我们的数据库进行分析。我的问题是系统只能处理英文句子(短语)。那么如何从我的数据库中删除非英文帖子,推文。

如果您确实知道NLP中的任何算法都可以这样做,请告诉我。

谢谢和问候

6 个答案:

答案 0 :(得分:4)

通常最好避免自动语言识别 - 例如,https://dev.twitter.com/docs/api/1/get/search表示返回的推文包含可能有用的字段iso_language_code

如果这还不够好,你必须要么

  • 以您正在使用的任何语言寻找现有的语言识别库;或
  • 获取足够的英文文本(例如英语维基百科或任何Google n-gram模型的转储),并实现类似http://www.cavar.me/damir/LID/的内容。

答案 1 :(得分:2)

获取英文字典,查看文本中的大多数单词是否在其中。由于您正在查看在线文本,请务必包含常用的俚语和缩写。

如果将字典存储在trie数据结构中,则可以非常快速地运行。

我认为花哨的NLP对于这项任务来说有点过分。如果语言不是英语,则无需识别语言,因此您只需使用英语的一些简单特征测试您的文本。

答案 2 :(得分:2)

我尝试在推文上使用标准库进行语言检测。你会得到很多漏报,因为在名字,表情符号等方面有很多非标准字符。在信噪比较低的小帖子中,这个问题更为严重。

主要问题不是算法而是过时的数据源。我建议从Twitter抓取/流式传输一个新的。 Twitter中的语言标志基于地理信息,因此在所有情况下都不起作用。 (中国人仍然可以在美国上中文)。我建议使用很多说英语的人的白名单并收集他们的帖子。

答案 3 :(得分:2)

我写了一个小小的推文语言分类器(无论是英语还是非英语),如果我记得正确的话,它的准确率是95 +%。我认为这只是天真的贝叶斯+ 1000个训练实例。将其与位置信息相结合,您可以做得更好。

答案 4 :(得分:1)

我找到了这个项目,源代码非常清楚。我已经测试过,它运行得很好。 http://code.google.com/p/guess-language/

答案 5 :(得分:1)

您是否尝试过LSI(潜在语义索引)的SVD(单值分解)& LSA(潜在语义分析)?见:http://alias-i.com/lingpipe/demos/tutorial/svd/read-me.html