【问题标题】:How to match text tokens from a lookup table?如何匹配查找表中的文本标记?
【发布时间】:2014-01-18 12:48:54
【问题描述】:

我正在尝试对推文进行文本预处理。我感兴趣的是将推文文本中的标记与查找表的标记相匹配。例如,我有一个情感词表/字典,我想检查推文是否包含其中一个词。

我目前的文本预处理如下:

  1. 将推文的文本存储在字符串中。
  2. 在空白字符处标记文本 (String.split(" ")) 并删除所有数字和奇怪字符标记。我还删除了所有提及和停用词。然后将令牌存储在字符串数组中。

这种方法会导致一些问题,下面是解释:

  • 一种直接的方法是将标记与表中的字符串进行比较并检查它们是否匹配。没关系,但这会导致下一个问题。
  • 我还想检查文本是否包含表情符号(也存储在字典中)。现在我已经删除了所有奇怪的字符标记,我不能简单地做以前的比较方法。可以说好的,然后不要删除数字和奇怪的字符标记,但这会导致以下问题。
  • 我还想对文本进行聚类,因此保留数字标记(或 URL)不是一种选择,因为它会影响聚类质量。
  • 保留两个版本的令牌会出现内存问题,因为所有内容都是重复的。

我想知道是否有一种方法可以匹配不需要复制的东西。也许使用正则表达式?

【问题讨论】:

    标签: java nlp tokenize text-processing text-mining


    【解决方案1】:

    为什么不反过来检查呢。测试推文字符串是否包含来自您的 lut 的字符串。

    tweetstring.contains(lut[i])

    或更好

    tweetstring.toLowerCase().contains(lut[i].toLowerCase())

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 2010-10-29
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多