首页 文章

斯坦福NLP如何预处理文本

提问于
浏览
-1

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

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

@walman   Walman
@text     Test

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

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

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

1 回答

  • 1

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

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

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

相关问题