斯坦福NLP如何预处理文本



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

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

@walman   Walman
@text     Test

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

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

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

这里唯一与NLP相关的部分是标记化。您应该将文本文件读入地图(例如 HashMap在 Java 的情况下),那么对于每个新句子,您应该对其进行标记化(例如,通过斯坦福标记器),并检查每个标记是否显示在地图中;如果是,只需替换为映射中找到的值,如果不是,则不对此令牌执行任何操作。

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

  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()为您提供没有任何后缀的令牌。

最新更新