斯坦福NLP如何预处理文本

时间:2015-04-10 20:47:17

标签: replace nlp stanford-nlp

我有这样的句子"在@walman工作的人不好"

我有一个包含映射的预处理文本文件,类似于以下两行:

@walman   Walman
@text     Test

对于上面的句子,我必须阅读文本文件,并用文本文件中找到的任何匹配单词替换该单词。

上述句子将改为"在沃尔曼工作的人并不好"

我正在寻找Standford NLP中可用的API来读取输入文本文件并替换文本。

1 个答案:

答案 0 :(得分:1)

这里唯一与NLP相关的部分是标记化。您应该将您的文本文件读入地图(例如,如果是Java,则为HashMap),然后对于每个新句子,您应该对其进行标记(例如,通过Stanford tokenizer),并检查每个标记是否为在地图中显示;如果是,只需用地图中找到的值替换,如果不是,则不对该标记执行任何操作。

标记化的示例代码(取自上面的链接):

  String arg = "The people working in @walman is not good";
  PTBTokenizer<CoreLabel> ptbt = new PTBTokenizer<CoreLabel>(new StringReader(arg),
          new CoreLabelTokenFactory(), "");
  for (CoreLabel label; ptbt.hasNext(); ) {
    label = ptbt.next();
    System.out.println(label);
  }
}

因此,label.toString()为您提供没有任何后缀的令牌。