【问题标题】:Extract only English sentences只提取英文句子
【发布时间】:2011-07-12 15:52:09
【问题描述】:

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

如果你知道 NLP 中的任何算法都可以做到这一点,请告诉我。

感谢和问候

【问题讨论】:

标签: algorithm nlp


【解决方案1】:

在可能的情况下避免自动语言识别通常是可取的 - 例如,https://dev.twitter.com/docs/api/1/get/search 表明返回的推文包含一个可能有用的字段 iso_language_code

如果这还不够好,你将不得不这样做

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

【讨论】:

  • 感谢您的回答。我从 Twitter 知道这个 API,问题是我的帖子不仅来自 Twitter,还可以来自 Facebook、搜索引擎……
【解决方案2】:

找一本英语词典,看看你的文本中的大部分单词是否都在其中。由于您正在查看在线文本,因此请务必包含常见的俚语和缩写词。

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

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

【讨论】:

  • 由于英语单词在其他语言中的流行,这不太可能很好地工作。寻找英语停用词可能是一个更聪明的主意。
  • 虽然我确信有许多英语单词在其他语言中是有效的,但我很难相信文本中的大部分单词都是如此。我相信您找到了适用于 99.99% 的阈值。
  • 我相信这比你想象的要困难得多,我的观点基于我的论文研究,我为此阅读了大量关于语言猜测的文献,以及我同事对 language guessing for Twitter 的研究.您建议的方法是在 1990 年代初尝试使用比推文更大、更清晰的文档,但即使在那时也效果不佳。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多